振动分析+故障频率标识

lcb 0e5851f383 首次提交 1 month ago
.idea 0e5851f383 首次提交 1 month ago
__pycache__ 0e5851f383 首次提交 1 month ago
logs 0e5851f383 首次提交 1 month ago
.api_test.py.swp 0e5851f383 首次提交 1 month ago
Miniconda3-latest-Linux-x86_64.sh 0e5851f383 首次提交 1 month ago
README.md 0e5851f383 首次提交 1 month ago
api.log 0e5851f383 首次提交 1 month ago
api_20241201.py 0e5851f383 首次提交 1 month ago
api_test.py 0e5851f383 首次提交 1 month ago
cms_class_20241201.py 0e5851f383 首次提交 1 month ago
connect mysql.py 0e5851f383 首次提交 1 month ago
test.py 0e5851f383 首次提交 1 month ago

README.md

CMSAnalyst API 接口文档

概述

此 API 提供了多种分析方法,旨在处理加速度数据并进行时域、频域、包络谱和趋势分析。该 API 通过 FastAPI 构建,并提供文件上传与分析功能,支持生成分析结果并返回JSON格式数据。

基本配置

API 路由

1. 上传数据文件

  • 路径: /upload/

  • 方法: POST

  • 参数:

file (必需): 上传的加速度数据文件(.csv 格式)。

  • 响应:

    • 成功时,返回消息:{"message": "文件上传成功", "file_path": "<文件路径>"}
  • 错误时,返回 HTTP 错误代码和消息。

2. 通用分析接口

  • 路径: /analyze/{analysis_type}

  • 方法: POST

  • 参数:

    • analysis_type (必需): 指定分析类型,支持的值为 envelopefrequencytrendtime,表示分别进行包络谱分析、频域分析趋势分析或时域分析。
    • 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以及场站信息编号,fminfmax(可选,默认从配置加载)。
  • 请求体 (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 使用 FastAPIPlotlyNumPySciPyPandas 等库,请确保已安装相关依赖。
  • 文件存储:测试api的文件为api_test.py,分析结果格式示例在 output.json 中。