## CMSAnalyst API 接口文档 ### 概述 此 API 提供了多种分析方法,旨在处理加速度数据并进行时域、频域、包络谱和趋势分析。该 API 通过 FastAPI 构建,并提供文件上传与分析功能,支持生成分析结果并返回JSON格式数据。 ### 基本配置 ### API 路由 #### 1. 上传数据文件 - **路径**: `/upload/` - **方法**: `POST` - 参数: `file` (必需): 上传的加速度数据文件(`.csv` 格式)。 - 响应: - 成功时,返回消息:`{"message": "文件上传成功", "file_path": "<文件路径>"}` - 错误时,返回 HTTP 错误代码和消息。 #### 2. 通用分析接口 - **路径**: `/analyze/{analysis_type}` - **方法**: `POST` - **参数**: - `analysis_type` (必需): 指定分析类型,支持的值为 `envelope`、`frequency` 、`trend`或 `time`,表示分别进行包络谱分析、频域分析趋势分析或时域分析。 - `input_data` (必需): 请求体中包含 `ids`:list,`windcode`。 - **请求体** (JSON 格式): ``` json复制代码{ "ids": [id1,id2...,idn], "windcode":str#场站编号 } ``` - **响应**: - 成功时,返回: ``` json复制代码{ "message": "<分析类型> 分析完成", "result_file": "<结果文件路径>" } ``` - 错误时,返回: ``` json复制代码{ "error": "<错误信息>" } ``` #### 3. 包络谱分析接口 - **路径**: `/analyze/{trend}` - **方法**: `POST` - **参数**: - `input_data` (必需): 请求体中包含多个id以及场站信息编号,`fmin` 和 `fmax`(可选,默认从配置加载)。 - **请求体** (JSON 格式): ``` json复制代码{ "ids": [id1,id2...,idn], "windcode":str#场站编号, "fmin": <最低频率(可选,默认值)>, "fmax": <最高频率(可选,默认值)> } ``` - **响应**: - 成功时,返回: ``` json复制代码{ "message": "完成包络谱分析", "trend_analysis_results": "<分析结果 CSV 文件路径>" } ``` - 错误时,返回: ``` json复制代码{ "error": "<错误信息>" } ``` ### 请求示例 #### 上传数据文件 ``` bash复制代码curl -X 'POST' \ 'http://localhost:8000/upload/' \ -H 'accept: application/json' \ -F 'file=@path_to_your_file.csv' ``` #### 通用分析接口 包络谱分析请求示例: ``` bash复制代码curl -X 'POST' \ 'http://localhost:8000/analyze/envelope' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "data_path": "/path/to/data.csv", "fmin": 10, "fmax": 1000 }' ``` #### 趋势分析接口 ``` bash复制代码curl -X 'POST' \ 'http://localhost:8000/trend-analysis/' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "data_paths": ["/path/to/data1.csv", "/path/to/data2.csv"], "fmin": 20, "fmax": 500 }' ``` ### 数据格式 - 数据文件应为 CSV 格式,其中每列代表一个加速度传感器的数据,文件内容应为一列数值(时间序列数据)。 - 包络谱、频域分析及时域分析返回的结果为 HTML 格式的图表。 - 趋势分析的结果为包含多个统计指标的 CSV 文件。 ### 错误处理 - 如果指定的分析类型无效(如 `/analyze/invalid_analysis`),将返回 HTTP 400 错误,详细说明“无效的分析类型”。 - 如果数据文件路径无效或文件格式不正确,将返回 HTTP 500 错误,包含详细的错误信息。 ### 注意事项 - **依赖包**:此 API 使用 `FastAPI`、`Plotly`、`NumPy`、`SciPy`、`Pandas` 等库,请确保已安装相关依赖。 - **文件存储**:测试api的文件为api_test.py,分析结果格式示例在 `output.json` 中。