本软件面向土壤有机污染物的空间分布分析场景,提供从数据导入、预处理、变异函数建模到空间插值、交叉验证、结果导出的完整地统计工作流,并以 PyQt5 桌面 GUI 呈现,适合无编程基础的环境科学研究人员使用。
| 模块 | 功能 |
|---|---|
| 数据管理 | CSV 导入、列映射对话框、采样点 folium 地图可视化 |
| 数据预处理 | Box-Cox / 对数 / 无变换,分布直方图与统计指标输出 |
| 变异函数分析 | 球形、指数、高斯三种模型自动拟合,RSS / R² 比较 |
| 各向异性分析 | 0° / 45° / 90° / 135° 四方向变异函数对比,判断各向异性 |
| 空间插值 | 普通克里格(OK)、反距离加权(IDW)、径向基函数(RBF) |
| 不确定性图 | OK 插值后自动输出预测方差 σ² 热力图 |
| 深度层位筛选 | 插值前按采样深度范围过滤数据点 |
| 交叉验证 | K 折交叉验证,自动选出 RMSE 最小的最优模型 |
| 地图叠加 | 插值结果以半透明图层叠加到 folium 卫星底图 |
| 结果导出 | PDF 报告一键导出,中间图表自动保存至 data/ 目录 |
| 项目管理 | 保存 / 加载 .sip 项目文件,保留完整分析状态 |
导入 CSV
│
▼
列映射(经度 / 纬度 / 深度 / 浓度)
│
▼
数据预处理(Box-Cox 变换 → 正态化)
│
├──▶ 半变异函数分析(球形 / 指数 / 高斯)
│ │
│ └──▶ 各向异性分析(四方向对比)
│
▼
空间插值(选择方法 + 深度范围)
│
├──▶ OK:同步输出预测方差 σ² 图
│
▼
交叉验证(K 折,自动选最优模型)
│
▼
地图叠加 / PDF 导出
输入为 CSV 文件,列名可任意(软件启动列映射对话框自动识别常见别名)。
| 字段 | 含义 | 常见列名示例 |
|---|---|---|
| 经度 | 采样点经度(WGS84) | longitude、lon、经度、x |
| 纬度 | 采样点纬度(WGS84) | latitude、lat、纬度、y |
| 深度 | 采样深度(m) | depth、z、深度 |
| 浓度 | 污染物浓度(mg/kg 等) | concentration、conc、浓度、value |
示例数据位于 data/ 目录(5 个覆盖不同地区的合成数据集)。
依赖环境:conda(推荐 miniforge)
# 1. 创建环境(仅首次)
conda env create -f "# environment.yml"
# 2. 运行程序
conda run -n soft python main.pyWindows 用户也可直接双击
main.py(需提前激活soft环境)。
所有输出默认保存至 data/ 目录(可在设置中修改):
| 文件 | 内容 |
|---|---|
preprocess.png |
原始分布与变换后分布对比直方图 |
variogram_analysis.png |
变异函数点云与拟合曲线 |
directional_variogram.png |
四方向各向异性变异函数图 |
variogram_table.png |
各模型拟合参数汇总表截图 |
interpolated.png |
交叉验证最优模型插值结果图 |
interpolated_single.png |
手动插值结果图 |
uncertainty.png |
OK 预测方差 σ² 热力图 |
map.html |
采样点 + 插值叠加图 folium 地图(浏览器打开) |
*.sip |
项目文件(JSON 格式,可恢复完整分析状态) |
*.pdf |
PDF 综合报告 |
soil_interpolation/
├── main.py # 主窗口与 UI 逻辑
├── data_input.py # CSV 导入
├── data_preprocessing.py # 数据预处理(QThread)
├── variogram_analysis.py # 变异函数分析(QThread)
├── interpolation.py # 空间插值
├── cross_validation.py # 交叉验证
├── result_export.py # PDF 导出
├── core/
│ └── interp_methods.py # IDW / RBF / OK 统一实现
├── ui/
│ ├── column_mapper.py # 列映射对话框
│ ├── config_dialog.py # 插值参数配置对话框
│ └── settings_dialog.py # 全局参数设置对话框
├── utils/
│ ├── config.py # 全局配置单例(JSON 持久化)
│ ├── geo.py # 坐标变换与数据变换工具
│ └── project.py # 项目保存 / 加载
├── data/ # 示例数据与输出文件
├── icons/ # 图标资源
└── "# environment.yml" # conda 环境配置
MIT License





