5.0 KiB
5.0 KiB
GasFlux 项目说明文档
项目概述
GasFlux 是一个基于 Flask 的气体通量分析 Web API 系统,专门用于处理无人机或飞行器采集的气体浓度数据,支持 CO₂、CH₄ 等温室气体通量的计算。
核心功能
🧪 数据处理
- 数据预处理: Excel/CSV 文件解析,数据验证和清洗
- 背景校正: 集成 FastChrom 算法的智能背景扣除
- 空间插值: 克里金插值算法,支持多种半变异函数模型
- 通量计算: 基于质量平衡法的气体通量计算
🌐 Web API 服务
- RESTful API: 完整的 HTTP API 接口
- 异步处理: 支持大文件后台处理
- 实时监控: 任务状态实时查询和进度跟踪
- 文件管理: 自动上传、处理和下载管理
🔐 安全与认证
- API 密钥认证: 安全的密钥管理系统
- 权限控制: 支持不同范围的 API 访问权限
- 引导密钥: 初始管理员密钥配置
🧹 自动维护
- 任务清理: 自动清理过期任务和文件
- 存储管理: 智能的磁盘空间管理
- 日志记录: 完整的操作日志和性能监控
技术架构
后端技术栈
- 框架: Flask (Python Web 框架)
- 数据库: SQLite (任务状态和配置存储)
- 部署: Waitress (生产环境 WSGI 服务器)
- 认证: 自定义 API 密钥系统
数据处理引擎
- 核心算法: GasFlux 气体通量分析引擎
- 数据格式: Excel, CSV, YAML 配置
- 输出格式: CSV 数据, HTML 报告, PNG 图表
前端界面
- Web 界面: 内置 HTML/CSS/JavaScript 控制台
- API 客户端: 支持 cURL, Python requests 等
- 实时更新: WebSocket 风格的任务状态轮询
快速开始
1. 环境准备
# Python 3.8+ 环境
python --version
# 安装依赖
pip install -r requirements.txt
2. 配置系统
# 编辑配置文件
notepad gasflux.ini
# 创建初始 API 密钥
python create_api_key.py
3. 启动服务
# 启动 Web API 服务
python -m src.gasflux.app
# 服务启动后访问: http://localhost:5001
4. 使用 API
# 上传处理文件
curl -X POST \
-H "X-API-Key: your-api-key" \
-F "file=@data.xlsx" \
http://localhost:5001/upload
配置文件说明
gasflux.ini (主配置文件)
[server]
host = 0.0.0.0
port = 5001
debug = false
[paths]
uploads = ./web_api_data/uploads
outputs = ./web_api_data/outputs
[cleanup]
task_cleanup_interval = 30
successful_task_cleanup_age = 60
failed_task_cleanup_age = 60
janitor_dry_run = false
[security]
admin_bootstrap_key = bootstrap_key_2024
gasflux_config.yaml (处理配置)
output_dir: ./output
gases:
ch4: [1.5, 10.0]
co2: [300, 500]
strategies:
background: "algorithm"
spatial: "curtain"
interpolation: "kriging"
API 接口列表
核心接口
POST /upload- 文件上传和处理GET /task/{task_id}- 查询任务状态GET /download/{path}- 文件下载GET /health- 系统健康检查
管理接口
POST /api-keys- 创建 API 密钥GET /api-keys- 列出 API 密钥DELETE /api-keys/{key_id}- 撤销 API 密钥
监控接口
GET /stats- 系统统计信息GET /config- 配置信息查询
部署选项
开发环境
# 直接运行
python -m src.gasflux.app
生产环境 (Waitress)
# 使用 Waitress 服务器
python server_waitress.py
Docker 部署
# 构建 Docker 镜像
docker build -t gasflux .
# 运行容器
docker run -p 5001:5001 gasflux
目录结构
gasflux-develop/
├── src/gasflux/ # 核心源码
│ ├── app.py # Flask 应用主文件
│ ├── auth.py # 认证模块
│ ├── db.py # 数据库模块
│ ├── janitor.py # 自动清理模块
│ └── blueprints/ # API 蓝图
├── gasflux.ini # 主配置文件
├── create_api_key.py # API 密钥创建工具
├── requirements.txt # Python 依赖
├── web_api_data/ # 数据目录
│ ├── uploads/ # 上传文件
│ └── outputs/ # 输出文件
└── logs/ # 日志文件
常见问题
Q: 如何创建 API 密钥?
A: 运行 python create_api_key.py,按照提示输入描述信息。
Q: 如何查看任务处理状态?
A: 使用 GET /task/{task_id} 接口,或在 Web 界面中查看。
Q: 如何修改清理策略?
A: 编辑 gasflux.ini 中的 [cleanup] 部分配置。
Q: 系统支持哪些气体?
A: 目前支持 CO₂、CH₄ 等主要温室气体,可在配置中扩展。
技术支持
- 项目主页: [GitHub Repository]
- 文档: API_DOCUMENTATION.md
- 配置指南: CONFIG_README.md
- 部署指南: WAITRESS_DEPLOYMENT.md
版本信息
- 当前版本: v0.2.1
- Python 版本: 3.8+
- 许可证: AGPL v3.0