将包含MODFLOW输入文件的zip转换为包含不同格式Flopy脚本的zip文件
项目描述
pyflopy脚本
将包含MODFLOW输入文件的zip转换为包含不同格式Flopy脚本的zip文件。这个Flopy(Python)脚本可以生成初始的MODFLOW输入文件。
它应该适用于MODFLOW、MT3D和SEAWAT的所有软件包。对于完整列表,请参阅https://github.com/modflowpy/flopy/blob/develop/docs/supported_packages.md 中的支持软件包加载。
作者不会通过此软件包获得任何金钱。作者绝对没有信心认为此脚本正确,也不对恶意脚本的任何内容和后果负责。如果您觉得它有用,请考虑向慈善机构捐款(在选择时发挥创意)并给我发个消息(或创建并关闭一个问题)。谢谢!作者与modflow系列以及Flopy无关。此转换器/生成器使用Flopy加载函数。任何错误/错误在Flopy加载函数中传播到生成的脚本中。
用例
您来自不同的建模环境,并希望开始使用Flopy
清理您的flopy脚本/笔记本
为您的参数添加描述(和默认值)
检查他人的MODFLOW输入文件/Flopy脚本
检查作业
优势
返回您的MODFLOW输入文件的.ipynb、py、tex、html、markdown和rst文件
使用一致且干净的标记
所有参数都明确定义
描述从flopy包直接加载和解析。使用与docs中相同的描述(modflowpy.github.io/flopydoc/)。
使用智能广播来减少打印到脚本的数组大小。
安装
在终端中输入:
$ pip install https://github.com/bdestombe/flopymetascript/zipball/master
应省略$符号,它仅表示该命令应在bash命令行中输入。flopymetascript包已添加到系统的$PATH中,并可从任何目录访问。在任意目录中输入以检查是否一切正常,
$ flopymetascript --help
使用以下命令卸载:
$ pip uninstall flopymetascript
有关包结构的更多信息,请参阅https://gehrcke.de/2014/02/distributing-a-python-command-line-application/。
支持
目前仅在Mac平台上对几个MODFLOW和SEAWAT模型进行了测试。
# 已知问题
命令行中的示例用法
使用zip文件
首先尝试这样做,
$ flopymetascript --outbytesfile output.zip --inbytesfile input.zip --logfile log.txt
input.zip是一个包含MODFLOW输入文件和单个.nam文件的zip文件。其内容被处理并写入output.zip。一些日志被写入log.txt。
使用管道
$ openssl base64 -in input.zip -out input.zip.b64
$ flopymetascript --outbytesfile output.zip --inbase64file input.zip.b64
input.zip被编码为base64,并用作flopymetascript的输入文件
$ flopymetascript --outbytesfile output.zip --inbase64file - < input.zip.b64
input.zip.b64的内容被流式传输/管道到flopymetascript
$ openssl base64 -in input.zip | flopymetascript --outbytesfile output.zip --inbase64file -
与之前所做的相同,但是input.zip被编码,并且不是将其写入文件,而是将其作为stdin传递给flopymetascript的inbase64file参数。
$ openssl base64 -in input.zip | flopymetascript --outbase64file utput.zip --inbase64file - --logfile -
日志文件被打印到stdout。
您不能同时将outbase64file和logfile发送到stdout。它们将混合,生成的输出文件不可读。
Python中的示例用法
这可能需要一些工作,并且将来可能会发生变化。
from flopymetascript.flopymetascript import process
# fn = 'input.zip.b64'
# inbase64file = open(fn, 'r')
# fn = 'output.zip.b64'
# outbase64file = open(fn, 'w')
fn = 'input.zip'
inbytesfile = open(fn, 'rb') # Dont forget the b
fn = 'output.zip'
outbytesfile = open(fn, 'rb') # Dont forget the b
fn = 'log.txt'
logfile = open(fn, 'w')
process(inbytesfile=inbytesfile, outbytesfile=outbytesfile, logfile=logfile)
inbytesfile.close()
outbytesfile.close()
logfile.close()
待办事项
添加具有默认值的额外包
添加一个切换来关闭参数描述
添加行宽作为参数
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。