问题标签 [flopy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flopy - 如何在 Flopy 中为 MF6 DISV 网格创建 SFR 输入?
我正在 Flopy 中创建一个 MF6 disv-grid 模型,并希望使用 SFR 包来表示一条小溪。有没有人有从 shapefile(或 Shapely LineString)将 SFR 输入添加到 MF6 DISV 网格的经验?
我试过使用 SFRmaker 包。但不幸的是,对非结构化网格的支持并没有完全实现,我也没有设法找到合适的解决方法。
有谁知道使用 Python 和 Flopy 从 shapefile 创建 SFR 输入的方法?
vtk - VTK 使用 Flopy 导出 MODFLOW 6 数据集?
我知道 Flopy 可以从 MF2005 数据集(例如flopy3_vtk_export.ipynb)导出 VTK 文件,但是我试图让该示例与 MODFLOW 6 数据集和一些代码编辑一起使用,但没有成功。
Flopy 是否真的支持从 MODFLOW 6 数据集导出 VTK,还是该功能尚不可用?
回复 Sarah Leray 的回复:
我尝试使用 vtk.export_heads 函数,发现模型对象似乎期待一些 MF6 公式中不存在的属性。您是否遇到过这个问题,如果遇到过,您是如何解决的?修改源代码?
...我得到一个“属性错误:详细”,因为 mf6.MFSimulation 中不存在详细信息(但在从 MF2005 等导出时使用的等效 modflow.Modflow 中存在)。我强制 verbose 为 False 只是为了让代码继续运行,然后有一个'attribute error: modelGrid',它看起来像是一个更实质和更复杂的缺失属性。
python - 是否可以使用 Flopy 的交换功能在子 mf6 模型和父 mf6 模型之间进行 Modpath7 粒子跟踪
我在使用结构化网格的 modflow6 模型上使用 modpath7 运行粒子跟踪有很好的结果。
但是 atm 我正在运行一个带有外部和内部 modflow6 流模型的嵌套模型,我似乎只能在我的“childGWF”或“parentGWF”而不是 exchangemodel 上运行 modpath。
由于交换模型包含两个不同的网格,我也看不到如何定义粒子。
是否有解决方案或示例在某处执行此操作?我有一种情况,粒子将从父模型穿过子模型并在父模型中结束,而粒子将从父模型中开始而接收器在子模型中。
到目前为止,我已经通过使用带有一个网格的更简单模型来“解决”它来进行粒子跟踪。
python - 使用 flopy 加载 MODFLOW-USG 模型时遇到 ValueError
我正在使用 FloPy 加载现有的 MODFLOW-USG 模型。
在加载LPF包的过程中,python显示hk和hani已经加载成功,然后报如下错误:</p>
我该如何解决这种问题。
顺便说一句,我使用 GMS 中的“保存原生文本副本”功能创建了这个模型。Flopy可以正常读取LPF包中的其他内容,报错位置出现在读取[ANGLEX(NJAG)]数据部分。
我将LFP文件与MODFLOW-USG的输入输出描述进行对比,符合输入文件的格式要求。
我是 pyhton 和 flopy 的新手,这个问题让我很困惑。非常感谢您为我提供了一些参考信息,无论是关于 Python、FloPy、MODFLOW-USG 还是 GMS。
python - River 包中的 ITMP 参数
我正在尝试使用 River Package 在我的 MODFLOW 6 模型中的几个压力期间激活/停用一些运河。问题是我需要完全停用一些运河(或河段),所以我不能为“舞台”分配 0 值。在以前的 MODFLOW 版本中,参数 ITMP 对此有效,但现在没有为 MODFLOW 6 River Package 指定。
有谁知道如何使用 MF6 上的 River 包激活/停用某些范围?
python - Flopy - 在充值包中分配时间序列
我一直在尝试使用时间序列、绑定名称和乘数在 Flopy 中分配瞬态充电,如下所示(请注意,我使用的是带顶点的离散化(DISV)):
这部分代码运行时没有任何错误消息,但是当我使用以下方法查看包压力期数据时:
pack_rch.stress_period_data.get_data()
我得到以下信息:
它返回一个 rec.array 的压力周期 0 的元组(这是我想要的),但元组是杂乱无章的,如:
所有成员都打包在第一个元组成员中,而它应该是:
关于我在哪里出错的任何建议?
python - Flopy MF6 传输预算不一致
我正在使用 Flopy (3.3.5) 和 MF6 (6.2.2) 运输来模拟从工业现场向小溪的羽流运动。我正在使用具有 6 层流量和运输同时运行的结构化规则网格,并且使用 RIV 包在流模型中表示小溪,沿岸有排水管。使用新的 ATS 包,模拟效果很好!并产生合理的浓度结果。我遇到的困难是试图从各种预算和通量输出选项中将质量通量提取到代表小溪的边界条件中。我已经建立了一个观察包来记录边界条件单元与模型其余部分共享的每个“JA-FACE”的质量通量,这似乎有效,
• 我注意到该模型模拟了非常小的质量通量,而不是在几次迭代后远离羽流的零。当具有三位指数的数字被写入列表文件和 obs 包的 csv 输出时,数字中的“E”被删除(例如“-2.90933775-241”,而两位指数数字被写成“- 2.90933775E-41”),我尝试更改输出的位数,但行为似乎始终如一。我已经为观察包的输出文件编写了一个修复脚本,但我想这可能是为什么当我尝试使用 flopy listBudget 实用程序读取列表文件时得到一个包含所有“无”条目的对象的原因。
• 我已将 SinkSourceMixing (SSM) 包设置为打印和保存预算信息。当我查看写入列表文件的输出时(在文本编辑器中而不是在 python 中),使用 SSM 信息写入列表文件的单元格(l,r,c 元组)与压力中的原始单元格不相关原始流量模型包的周期数据(井、河流和排水包之间的不一致)
• 我已经加载了二进制预算文件,并且可以使用“cbb.get_data(totem=t,text=”SOURCE-SINK MIX”) 来选择 SSM 数据以获得适当的recarray。我一直在根据“discretization/structuredgrid”包“node=L nrow ”的“get_node”方法中的公式计算节点数ncol+R*ncol+C” 与 flopy/mf6 复杂模型示例笔记本中使用的不同。使用这个节点号,我可以选择在“节点”列中包含它的recarray 的行。当我这样做时,我注意到“node2”列中的所有相关条目似乎都不是我能找到的任何尝试从节点号中退出 LRC 的方法的相邻单元格。当我查看预算中的“FLOW-JA-FACE”数据时,我使用从观察包中获得的计算节点号(用 L,R 定义,C 元组)所以看起来不错,但是从“FLOW-JA-FACE”数据进入单元的所有通量的总和似乎与预算中 SSM 数据中的值相加。
我认为出于我的目的,我从 obs 包中进入边界节点的流量就足够了,我只想发布一个问题来记录这些观察结果,希望我可以:
- 了解它是否是由于我的模型设置中的某些原因,以及
- 如果它们是由于需要解决的代码中的问题引起的,请根据我的经验为 flopy/mf6 项目做出一些贡献。
感谢此软件包的所有贡献者 Kevin
flopy - 当一个包调用write_file()函数时如何控制数组格式,比如DISU包?
对于所有 MODFLOW 包,都有一个 write_file() 函数需要调用。我想知道在调用它时如何控制数组的输出格式?例如,在 DISU 包中,即使对于很长的一维数组,该函数也会将所有内容写在一行中?有没有办法控制它让它只在一行上写 X 个数字?
transport - UcnFile(二进制集中文件)的模糊数据访问
我刚刚浏览了 flopy 网站 ( https://flopy.readthedocs.io/en/latest/_notebooks/tutorial01_seawat.html ) 上的 SEAWAT 教程,我有一种感觉,当我阅读压力期和注意力集中的时间步长时,输出很奇怪。
本教程的以下几行在这里很重要:
dis = flopy.modflow.ModflowDis(...,nper=1,perlen=1.5,nstp=15)
和
btn = flopy.mt3d.Mt3dBtn(...,nprs=-5,nprobs=10,nprmas=10,dt0=0.001)
如果我理解正确的话,我有一个长度为 1.5 天的压力期,它分为 15 个时间步进行流量计算。对于传输,选择 0.001 天的时间步长,其中每 5 天保存一次作为输出。这将导致 300 个步骤被保存。
当我访问数据时
ucnobj = bf.UcnFile("MT3D001.UCN", model=swt)
ucnobj.get_kstpkper()
它为传输输出(时间步长,压力周期)的元组。我得到了 300 个值,这是预期的,但是其中只有 15 个是唯一的。(0,0), (1,0), (2,0), ..., (14,0) 分别重复 20 次。而且由于我有很多重复项,因此实际上不可能使用
ucnobj.get_data(kstpkper=(14,0))
例如。get_data() 函数似乎是基于流模拟而不是传输模拟。访问浓度数据的唯一方法是使用时间参数。这真的是它应该如何工作的吗?因为这使得 get_kstpkper() 函数以及 get_data() 函数的 kstpkper 参数看起来毫无用处。
也许我只是错过/误解了一些东西......如果你能帮助我理解这一点,我将不胜感激:)
flopy - 您可以在 MODFLOW 6 中停用 UZF 细胞吗?
其他高级 GWF 软件包(LAK、SFR、MAW)有一个“状态”标志,可让您在压力期间停用 BC。UZF 似乎没有这个选项(但 UZT 有)。
我在 UZF 中使用 GWSEEP 来控制随时间和路线渗流而变化的地表。我想停用“被掩埋”的 UZF 细胞,这样它们就不会继续通过 GWSEEP 排水。关于谁来做这件事的任何想法?将所有应力(evt、inf、ect)设置为 0 是否会停用 UZF 并停止 GWSEEP?