Files
UAV-CO2/PROJECT_README.md
2026-02-11 16:28:51 +08:00

205 lines
5.0 KiB
Markdown

# 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. 环境准备
```bash
# Python 3.8+ 环境
python --version
# 安装依赖
pip install -r requirements.txt
```
### 2. 配置系统
```bash
# 编辑配置文件
notepad gasflux.ini
# 创建初始 API 密钥
python create_api_key.py
```
### 3. 启动服务
```bash
# 启动 Web API 服务
python -m src.gasflux.app
# 服务启动后访问: http://localhost:5001
```
### 4. 使用 API
```bash
# 上传处理文件
curl -X POST \
-H "X-API-Key: your-api-key" \
-F "file=@data.xlsx" \
http://localhost:5001/upload
```
## 配置文件说明
### gasflux.ini (主配置文件)
```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 (处理配置)
```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` - 配置信息查询
## 部署选项
### 开发环境
```bash
# 直接运行
python -m src.gasflux.app
```
### 生产环境 (Waitress)
```bash
# 使用 Waitress 服务器
python server_waitress.py
```
### Docker 部署
```bash
# 构建 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](API_DOCUMENTATION.md)
- **配置指南**: [CONFIG_README.md](CONFIG_README.md)
- **部署指南**: [WAITRESS_DEPLOYMENT.md](WAITRESS_DEPLOYMENT.md)
## 版本信息
- **当前版本**: v0.2.1
- **Python 版本**: 3.8+
- **许可证**: AGPL v3.0