公司动态

FloPy + MODPATH完全教程:构建粒子追踪模拟并可视化地下水流路径

📅 2026/8/22 15:45:11
FloPy + MODPATH完全教程:构建粒子追踪模拟并可视化地下水流路径
FloPy MODPATH完全教程构建粒子追踪模拟并可视化地下水流路径【免费下载链接】flopyA Python package to create, run, and post-process MODFLOW-based models.项目地址: https://gitcode.com/gh_mirrors/fl/flopyFloPy 是一个强大的 Python 地下水模拟库配合 MODPATH 粒子追踪工具可以快速构建、运行并可视化地下水流路径模拟。无论你是水文地质新手还是科研人员只需几行代码就能从 MODFLOW 模型出发释放虚拟示踪粒子并追踪它们在地下水中的运动轨迹生成直观的流路径图。什么是 FloPy MODPATH 粒子追踪简单理解整个工作流分两半FloPyPython 包负责创建、运行和后处理 MODFLOW 系列数值模型把繁琐的文件操作封装成简洁的 API。MODPATH 6 / 7美国地质调查局USGS开发的粒子追踪程序读取 MODFLOW 的水头和预算文件计算粒子在含水层中的运动路径。FloPy 内置的 flopy/modpath/ 模块将两者无缝衔接——你不需要手写 MODPATH 输入文件也不需要手动解析二进制轨迹输出。核心组件位置作用Modpath7flopy/modpath/mp7.pyMODPATH 7 模型类推荐Modpath6flopy/modpath/mp6.pyMODPATH 6 兼容支持Modpath7Simflopy/modpath/mp7sim.py多模型联合模拟管理ParticleGroupflopy/modpath/mp7particlegroup.py粒子组定义释放位置与时间ModpathFileflopy/utils/modpathfile.py读取粒子轨迹二进制输出快速安装3 步准备你的环境 使用 pip 即可完成安装pip install flopy同时需要安装 MODFLOW 6 和 MODPATH 7 的可执行文件mf6与mp7。安装后FloPy 会自动定位可执行文件并调用它。 环境配置参考etc/environment.yml4 步构建粒子追踪模拟核心工作流下面是最常用的 MODPATH 7 工作流理解了这 4 步你就可以完成大多数粒子追踪任务。第 1 步加载或创建 MODFLOW 模型粒子追踪的前提是先有一个能计算的地下水模型。你可以从零构建也可以直接加载已有模型import flopy m flopy.modflow.Modflow.load(mf2005.nam) # 或 flopy.mf6.MFModel一个典型的地下水模型网格和边界条件示意如下含水层含水率分区、地表水头等高线与观测井布设第 2 步创建 Modpath7 模型只需把 Flow 模型对象传进去FloPy 会自动匹配水头文件与单元预算文件mp flopy.modpath.Modpath7(my_mp7, flowmodelm) mp.run_model()关键参数都在Modpath7.__init__中见flopy/modpath/mp7.pymodelname指定输出文件前缀exe_name指定可执行文件名默认mp7model_ws指定工作目录。第 3 步定义粒子组——释放位置与时间粒子组ParticleGroup决定在哪里、什么时候放粒子。MODPATH 7 支持两种定位方式单元定位LRC按层、行、列指定释放单元适合大面积均匀释放节点定位XYZ按三维坐标精确定位释放点适合沿井群或河道释放。from flopy.modpath import ParticleGroupLRCTemplate, NodeParticleData group ParticleGroupLRCTemplate(recharge, releasedata0.0, lrcdata(0, 0, 0)) mp.add_particle_group(group)释放时间还支持起止时间 间隔的连续释放模式详见flopy/modpath/mp7particlegroup.py的releasedata参数说明。第 4 步运行并读取粒子轨迹模拟完成后用ModpathFile读取二进制轨迹文件.pathline每个时间步的粒子位置都能转成 numpy 数组from flopy.utils.modpathfile import ModpathFile mpf ModpathFile(my_mp7.pathline, verboseTrue) tracks mpf.load_all()可视化地下水流路径让轨迹说话FloPy 的绘图模块flopy/plot/可以直接叠加绘制速度矢量场用箭头展示地下水流向与流速大小粒子轨迹线彩色曲线展示粒子迁移路径剖面轨迹图PlotCrossSection支持沿任意断面查看三维迁移。from flopy.plot import PlotMapView fig mpf.plot(flowmodelm, vectorstylequiver)如文章开头的示意图所示左上高水头区为补给源黄色粒子沿流向箭头向右下排泄区深紫色迁移一条轨迹甚至跨越了水头梯度变化带——这正是粒子追踪模拟要回答的水从哪里来、到哪里去问题。复杂河谷含水层中粒子轨迹还可与河道分段、水头等高线叠加分析帮助判断河水与地下水的互补关系常见问题速答FAQQ1没有 MODPATH 可执行文件会怎样run_model()会报错。确认mp7/mp6在系统 PATH 中或通过exe_name参数指定完整路径。Q2MODFLOW 6 模型能直接用吗可以。Modpath7同时接受flopy.modflow.Modflow与flopy.mf6.MFModel对象且要求模型类型为 GWF见mp7.py中的类型校验。Q3粒子消失了怎么办粒子可能到达边界、进入抽水井或被吸附。检查输出文件中的粒子状态列ModpathFile会保留每个粒子的终止原因。Q4如何批量管理多个模型使用Modpath7Simflopy/modpath/mp7sim.py统一管理多个 Flow 模型与对应粒子模拟。小结学习路径说明入门用Modpath7 单元定位跑通第一个粒子追踪模拟进阶掌握节点定位与连续释放精确布设释放点高级用ModpathFilePlotMapView制作发表级轨迹图FloPy 把 MODFLOW 与 MODPATH 的文件工作变成了几行 Python让地下水流路径模拟变得快速、可复现、易分享。准备好后就从加载一个现成模型、释放你的第一批粒子开始吧【免费下载链接】flopyA Python package to create, run, and post-process MODFLOW-based models.项目地址: https://gitcode.com/gh_mirrors/fl/flopy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考