跳转到主要内容

将包含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()

待办事项

  • 添加具有默认值的额外包

  • 添加一个切换来关闭参数描述

  • 添加行宽作为参数

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

flopymetascript-1.0.0.tar.gz (15.9 kB 查看哈希

上传时间

构建分发

flopymetascript-1.0.0-py3-none-any.whl (38.9 kB 查看哈希

上传时间 Python 3

由以下支持