重构: 切换存储至SQLite,启用INI配置与API Key校验

This commit is contained in:
2026-02-09 17:10:11 +08:00
parent d5edbc0723
commit b9828a1b13
30 changed files with 2721 additions and 612 deletions

165
FRONTEND_CONFIG_README.md Normal file
View File

@ -0,0 +1,165 @@
# GasFlux前端配置下拉选项说明
本文档描述了如何在前端应用中使用GasFlux的配置下拉选项。
## 文件结构
- `frontend_config_options.json` - 主要配置文件,包含所有下拉选项的定义
- `frontend_integration_example.js` - React组件集成示例
- `FRONTEND_CONFIG_README.md` - 本说明文档
## 配置结构说明
### 主要分类
配置选项按以下类别组织:
1. **处理策略 (strategies)** - 核心处理策略设置
2. **背景校正算法 (algorithmic_baseline)** - 基线校正算法选择
3. **半变异函数设置 (semivariogram)** - 克里金插值参数
4. **普通克里金设置 (ordinary_kriging)** - 插值核心参数
### 选项字段说明
每个配置选项包含以下字段:
```json
{
"key": "option_key", // 配置键名
"name": "中文名称", // 中文显示名称
"nameEn": "English Name", // 英文显示名称
"description": "中文描述", // 中文描述
"type": "select|boolean", // 选项类型
"required": true, // 是否必填
"default": "default_value", // 默认值
"options": [ // 选项列表
{
"value": "option_value", // 选项值
"label": "显示标签", // 显示标签
"labelEn": "Label", // 英文标签
"description": "选项描述" // 选项详细描述
}
]
}
```
## 前端集成步骤
### 1. 加载配置选项
```javascript
import configOptions from './frontend_config_options.json';
// 或通过API加载
fetch('/api/config-options')
.then(res => res.json())
.then(data => setConfigOptions(data));
```
### 2. 渲染下拉组件
```javascript
const renderSelect = (category, option) => {
return (
<select
value={currentValue}
onChange={(e) => handleChange(category.id, option.key, e.target.value)}
>
{option.options.map(opt => (
<option key={opt.value} value={opt.value}>
{opt.label} - {opt.labelEn}
</option>
))}
</select>
);
};
```
### 3. 应用空间模式默认值
当用户选择不同的空间处理模式时,自动应用推荐的默认参数:
```javascript
const applySpatialModeDefaults = (spatialMode) => {
const defaults = configOptions.validation.spatial_mode_defaults[spatialMode];
if (defaults) {
// 应用半变异函数和克里金参数的默认值
updateConfig({
semivariogram_settings: defaults.semivariogram_settings,
ordinary_kriging_settings: defaults.ordinary_kriging_settings
});
}
};
```
## 具体选项说明
### 1. 空间处理模式 (strategies.spatial)
- **curtain**: 平面模式,适用于直线或平行航线
- **spiral**: 螺旋模式,适用于螺旋或圆形飞行路径
选择不同模式会自动调整相关的半变异函数和克里金参数。
### 2. 背景校正算法 (algorithmic_baseline.algorithm)
- **fastchrom**: FastChrom算法推荐适用于大多数情况
- **dietrich**: Dietrich算法基于多项式拟合
- **fabc**: FABC算法全自动基线校正
- **golotvin**: Golotvin算法分段式基线校正
### 3. 半变异函数模型 (semivariogram.model)
- **spherical**: 球面模型,适用于大多数地理数据
- **gaussian**: 高斯模型,适用于平滑变化的数据
- **exponential**: 指数模型,适用于螺旋模式数据
### 4. 切割地面选项 (ordinary_kriging.cut_ground)
- **true**: 切割地面以下的负值
- **false**: 保留所有插值结果
## 验证规则
### 必填字段
所有标记为 `required: true` 的选项都是必填的。
### 空间模式默认值
配置中包含了针对不同空间模式的推荐参数:
- **平面模式 (curtain)**:
- 半变异函数容差: 15°
- 最大滞后距离: 80m
- 网格分辨率: 200
- **螺旋模式 (spiral)**:
- 半变异函数容差: 30°
- 最大滞后距离: 100m
- 网格分辨率: 500
## 使用建议
1. **界面设计**: 为每个选项提供清晰的标签和描述
2. **默认值**: 总是显示并应用合理的默认值
3. **联动更新**: 空间模式改变时自动更新相关参数
4. **验证**: 在提交前验证所有必填字段
5. **保存**: 支持配置的保存和加载功能
## 扩展配置
对于不在下拉选项中的参数(如数值范围、路径等),建议使用:
- **数值输入框**: 带范围验证的数字输入
- **文本输入框**: 文件路径、自定义名称等
- **滑块组件**: 百分比、比例等数值调整
- **复选框组**: 多选配置项
## 版本控制
- **版本**: 1.0
- **最后更新**: 2025-02-09
- **兼容性**: 支持GasFlux配置文档v1.0
---
*此配置系统基于GasFlux官方文档设计如有更新请参考最新文档。*