Skip to content

Repository files navigation

logo

土壤有机污染物空间插值软件

面向土壤环境调查的地统计空间插值桌面工具

Python PyQt5 License


简介

本软件面向土壤有机污染物的空间分布分析场景,提供从数据导入、预处理、变异函数建模到空间插值、交叉验证、结果导出的完整地统计工作流,并以 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 导出

软件截图

主界面

主界面

数据预处理 — Box-Cox 变换前后分布对比

数据预处理

半变异函数分析 — 实验点云与模型拟合

半变异函数分析

各向异性分析 — 四方向变异函数对比

各向异性分析

空间插值结果

空间插值结果

克里格预测不确定性(sigma^2 热力图)

预测不确定性

交叉验证结果表

交叉验证结果

数据格式

输入为 CSV 文件,列名可任意(软件启动列映射对话框自动识别常见别名)。

字段 含义 常见列名示例
经度 采样点经度(WGS84) longitudelon经度x
纬度 采样点纬度(WGS84) latitudelat纬度y
深度 采样深度(m) depthz深度
浓度 污染物浓度(mg/kg 等) concentrationconc浓度value

示例数据位于 data/ 目录(5 个覆盖不同地区的合成数据集)。


安装与运行

依赖环境:conda(推荐 miniforge)

# 1. 创建环境(仅首次)
conda env create -f "# environment.yml"

# 2. 运行程序
conda run -n soft python main.py

Windows 用户也可直接双击 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

About

面向土壤环境调查的地统计空间插值桌面工具

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages