merge conflict
基于SimPEG的交互式重力勘探数据处理与3D密度模型反演Web应用。
本系统针对澳大利亚Forrestania地区重力勘探数据,实现以下功能:
重力勘探是一种地球物理勘探方法,通过测量地表重力加速度的微小变化,推断地下岩石密度分布。高密度体(如金属矿体)产生正重力异常,低密度体(如沉积盆地、洞穴)产生负重力异常。
反演目标:给定地表观测重力异常,反推地下密度三维分布。
# 1. 克隆或下载本项目 cd /path/to/simpeg_test # 2. 创建Python虚拟环境 python -m venv simpeg_env # 3. 激活虚拟环境 # Linux/macOS: source simpeg_env/bin/activate # Windows: # simpeg_env\Scripts\activate # 4. 安装依赖 pip install -r requirements.txt # 5. 启动应用 streamlit run app.py
如果已经配置过SimPEG环境:
# 激活现有环境 source simpeg_env/bin/activate # 安装额外依赖 pip install streamlit plotly # 启动应用 streamlit run app.py
# 检查Python版本 python --version # 检查关键包 python -c "import simpeg; import streamlit; import plotly; print('All OK!')"
准备包含重力数据的ZIP文件(参考数据格式)
streamlit run app.py
浏览器自动打开 http://localhost:8501
http://localhost:8501
根据数据特点调整反演参数(参考参数说明)
your_data.zip ├── data.csv # 主数据文件(必需) ├── readme.txt # 可选:说明文件 └── other_files/ # 可选:其他辅助文件
CSV文件必须包含以下四列:
Forrestania示例数据预览:
X,Y,Z,FGrav_mgal 748151.81,6416320.50,380.31,0.147 748034.16,6416308.50,380.62,0.233 747994.06,6416313.00,380.57,0.284 747709.00,6416310.00,380.26,0.519 747416.75,6416310.00,375.74,0.359 ...
选择建议:
参数调优建议:
反演不收敛(目标函数上升):
反演太慢:
模型太粗糙:
模型太光滑(丢失细节):
包含每个网格单元的密度值:
density 0.001234 -0.002345 0.003456 ...
包含每次迭代的信息:
iteration,misfit,model_change 1,3.6632,0.022594 2,3.1893,0.019550 3,2.8284,0.017482 ...
┌─────────────────────────────────────────────────────────────┐ │ 🔬 Forrestania重力反演系统 │ │ 基于SimPEG的交互式重力勘探数据处理 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 📊 Step 1: 数据读取与验证 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ ✅ 数据验证通过! │ │ │ │ 测点数量: 992 │ │ │ │ X范围: 744682.28 ~ 749356.50 │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ 📈 Step 2: 数据可视化 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ [测点分布图] [直方图] │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ 🔲 Step 3: 构建3D计算网格 🔄 Step 4: 执行反演 │ │ ┌────────────────────────┐ ┌────────────────────────┐ │ │ │ [创建网格] │ │ [🚀 开始反演] │ │ │ │ 网格单元: 7392 │ │ 进度: ████████░░ 80% │ │ │ └────────────────────────┘ └────────────────────────┘ │ │ │ │ 📊 Step 5: 反演结果展示 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ [收敛曲线] [密度切片] [3D交互模型] │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ ┌────────────────┐ │ 📁 数据与参数设置 │ │ │ │ [上传ZIP文件] │ │ │ │ ⚙️ 网格设置 │ │ X尺寸: ───●── │ │ Y尺寸: ───●── │ │ Z尺寸: ───●── │ │ │ │ ⚙️ 反演设置 │ │ 迭代: ───●── │ │ 平滑: ───●── │ └────────────────┘
症状: 上传ZIP后提示”数据加载失败”
可能原因:
解决方法:
症状: 提示”数据验证失败”
症状: 点击开始反演后报错
症状: 3D模型区域空白
症状: 反演开始后进度不动
ValueError: ZIP中未找到CSV
ValueError: 数据缺少必要列
RuntimeError: 反演失败
MemoryError
# 查看Python版本 python --version # 检查包版本 pip list | grep -E "simpeg|streamlit|plotly" # 查看日志 # Streamlit会在终端输出详细错误信息
app.py (Streamlit) ├── simpeg (地球物理反演) │ ├── discretize (网格) │ ├── pymatsolver (线性代数) │ └── geoana (解析计算) ├── streamlit (Web框架) ├── plotly (3D可视化) ├── pandas (数据处理) └── matplotlib (2D绘图)
本项目基于SimPEG开源协议。
如有问题或建议,请联系开发团队。
最后更新: 2026-05-11
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
Forrestania重力反演系统
基于SimPEG的交互式重力勘探数据处理与3D密度模型反演Web应用。
目录
项目简介
本系统针对澳大利亚Forrestania地区重力勘探数据,实现以下功能:
背景知识
重力勘探是一种地球物理勘探方法,通过测量地表重力加速度的微小变化,推断地下岩石密度分布。高密度体(如金属矿体)产生正重力异常,低密度体(如沉积盆地、洞穴)产生负重力异常。
反演目标:给定地表观测重力异常,反推地下密度三维分布。
功能特性
核心功能
3D可视化
系统要求
硬件要求
软件要求
安装部署
方式一:从头安装
方式二:使用已有环境
如果已经配置过SimPEG环境:
验证安装
快速开始
1. 准备数据
准备包含重力数据的ZIP文件(参考数据格式)
2. 启动应用
浏览器自动打开
http://localhost:85013. 上传数据
4. 调整参数
根据数据特点调整反演参数(参考参数说明)
5. 执行反演
6. 查看结果
数据格式
ZIP文件结构
CSV数据格式
CSV文件必须包含以下四列:
数据要求
示例数据
Forrestania示例数据预览:
参数说明
网格设置
选择建议:
反演设置
高级设置
参数调优建议:
反演不收敛(目标函数上升):
反演太慢:
模型太粗糙:
模型太光滑(丢失细节):
结果输出
输出文件
1. 密度模型 (CSV)
包含每个网格单元的密度值:
2. 迭代历史 (CSV)
包含每次迭代的信息:
图像输出
密度单位
应用界面
主界面布局
侧边栏控件
故障排除
常见问题
1. 数据加载失败
症状: 上传ZIP后提示”数据加载失败”
可能原因:
解决方法:
2. 数据验证失败
症状: 提示”数据验证失败”
可能原因:
解决方法:
3. 反演失败
症状: 点击开始反演后报错
可能原因:
解决方法:
4. 3D可视化不显示
症状: 3D模型区域空白
可能原因:
解决方法:
5. 进度条卡住
症状: 反演开始后进度不动
可能原因:
解决方法:
错误代码
ValueError: ZIP中未找到CSVValueError: 数据缺少必要列RuntimeError: 反演失败MemoryError获取帮助
技术架构
依赖关系
核心算法
版本历史
许可协议
本项目基于SimPEG开源协议。
联系方式
如有问题或建议,请联系开发团队。
最后更新: 2026-05-11