一个创建与ParFlow水文模型接口的Python包。
项目描述
pftools
这是一个通过 Python 接口运行 ParFlow 的包。此包允许用户在 Python 中构建脚本,该脚本构建数据库 (.pfidb 文件),ParFlow 读取该文件作为输入。
如何使用此包
-
使用以下命令安装
pip install pftools
-
在您喜欢的文本编辑器或 IDE 中打开一个新的 Python 脚本。
- 您可以在主 ParFlow 仓库的 /parflow/test/python/ 下找到示例 Python 脚本。
-
在脚本顶部,确保包含以下行
from parflow import Run runname = Run("runname", __file__)
此行导入包并初始化您的运行对象为 "runname" 对象
-
在您的 ParFlow 运行对象上设置您想要的键和值,例如
runname.FileVersion = 4
注意:对于用户定义的键名,在使用之前请确保已定义名称。例如
runname.GeomInput.Names = 'domain_input'
需要在使用之前设置
runname.GeomInput.domain_input.InputType = 'SolidFile'
-
在为您的键分配值之后,您可以对您的ParFlow运行对象调用多个方法
validate()
:这将验证您的键/值对集合并打印验证消息。这不需要ParFlow。write(file_name=None, file_format='pfidb')
:这将把您的键/值对写入一个文件,文件格式由您选择(默认为ParFlow数据库pfidb
格式)。其他可接受的格式包括作为file_format
参数传递的yml
、yaml
和json
。此方法不需要ParFlow。clone(name)
:这将生成一个具有给定name
的运行克隆对象。请参见parflow/test/python/new_features/serial_runs/serial_runs.py
以获取如何使用此方法的示例。run(working_directory=None, skip_validation=False)
:这将执行write()
方法。如果将skip_validation
设置为False
,它还将执行validate()
方法。如果想要更改输出文件写入的目录,可以将working_directory
作为参数定义,但默认为Python脚本的目录。最后,run()
将执行ParFlow。这将打印环境数据(ParFlow目录、ParFlow版本、工作目录和生成的ParFlow数据库文件)。如果ParFlow运行成功,您将得到一条消息“ParFlow运行成功”。否则,您将得到一条消息“ParFlow运行失败。”,后面跟着打印runname.out.txt
文件的正文。
-
完成输入脚本后,请将其保存并通过Python终端或命令行运行
python3 runname.py
您可以将以下一个或多个参数附加到运行中
--parflow-directory [None]
:覆盖$PARFLOW_DIR
环境变量。--parflow-version [None]
:覆盖用于验证键的源ParFlow版本。--working-directory [None]
:覆盖ParFlow运行的工作目录。这与在run()
方法中指定working_directory
相同。--skip-validation [False]
:如果设置为True
,将跳过validate()
方法。这与在run()
方法中指定skip_validation
相同。--show-line-error [False]
:如果设置为True
,将显示发生错误时的行。--exit-on-error [False]
:如果设置为True
,则运行遇到错误时退出。--write-yaml [False]
:如果设置为True
,将键/值对写入yaml文件。这与调用方法runname.write(file_format='yaml')
相同。-p [0]
:覆盖Process.Topology.P
的值(必须为整数)。-q [0]
:覆盖Process.Topology.Q
的值(必须为整数)。-r [0]
:覆盖Process.Topology.R
的值(必须为整数)。
如何更新此包(仅限开发者)
这假设您正在使用CMake和pftools包,因为它们包含在主ParFlow仓库中(请参阅https://github.com/parflow/parflow)
-
在
setup.py
中更新版本号。 -
使用cmake命令行进行构建。确保通过
PARFLOW_ENABLE_PYTHON
选项启用Python。mkdir build cd build cmake .. \ -D PARFLOW_ENABLE_PYTHON=TRUE
-
运行以下命令以创建和测试包的源存档和wheel发行版。确保您在已安装
twine
Python包的环境中运行此命令。make PythonCreatePackage
-
如果发行版通过,则运行以下命令以发布发行版。为了成功运行此命令,您必须首先设置
TWINE_USERNAME
和TWINE_PASSWORD
环境变量,以您用于通过PyPI进行身份验证的用户名和密码。make PythonPublishPackage
-
检查PyPI以确认您的包更新已正确发布。感谢您的贡献!
获取帮助
如果您对代码有任何问题或疑问,请参考以下选项之一
- 用户邮件列表:Parflow-Users
- ParFlow博客:Parflow Blog
- GitHub 仓库(用于跟踪问题和请求功能):Parflow 问题跟踪器
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
pftools-1.3.11.tar.gz (119.0 kB 查看哈希值)
构建分发
pftools-1.3.11-py3-none-any.whl (124.2 kB 查看哈希值)
关闭
pftools-1.3.11.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3b80b9950033da17c6b4c17a6be41fd38ce12f14dffc87ae91b6b805df28514 |
|
MD5 | 1e7c7a06d2e0806b750a76ad92189838 |
|
BLAKE2b-256 | 69d3fcc040f38223cf331bc8bdb8f5a233d79ecc5611ea0d8a942f04b8a3203d |
关闭
pftools-1.3.11-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7364be2f18de25482b05e8bd81e98b2ed06f747904e3f913e4cb0e73a3b05d26 |
|
MD5 | 00807ea11c8dfbe4443da1d27d1db24a |
|
BLAKE2b-256 | d8adf3716d7f399d35184af52f5f48928918af1d0f6241e126737d577dd7e3ce |