跳转到主要内容

一个创建与ParFlow水文模型接口的Python包。

项目描述

pftools

这是一个通过 Python 接口运行 ParFlow 的包。此包允许用户在 Python 中构建脚本,该脚本构建数据库 (.pfidb 文件),ParFlow 读取该文件作为输入。

如何使用此包

  1. 使用以下命令安装

     pip install pftools
    
  2. 在您喜欢的文本编辑器或 IDE 中打开一个新的 Python 脚本。

    • 您可以在主 ParFlow 仓库的 /parflow/test/python/ 下找到示例 Python 脚本。
  3. 在脚本顶部,确保包含以下行

     from parflow import Run
     runname = Run("runname", __file__)
    

    此行导入包并初始化您的运行对象为 "runname" 对象

  4. 在您的 ParFlow 运行对象上设置您想要的键和值,例如

     runname.FileVersion = 4
    

    注意:对于用户定义的键名,在使用之前请确保已定义名称。例如

     runname.GeomInput.Names = 'domain_input'
    

    需要在使用之前设置

     runname.GeomInput.domain_input.InputType = 'SolidFile'
    
  5. 在为您的键分配值之后,您可以对您的ParFlow运行对象调用多个方法

    • validate():这将验证您的键/值对集合并打印验证消息。这不需要ParFlow。
    • write(file_name=None, file_format='pfidb'):这将把您的键/值对写入一个文件,文件格式由您选择(默认为ParFlow数据库pfidb格式)。其他可接受的格式包括作为file_format参数传递的ymlyamljson。此方法不需要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文件的正文。
  6. 完成输入脚本后,请将其保存并通过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

  1. setup.py中更新版本号。

  2. 使用cmake命令行进行构建。确保通过PARFLOW_ENABLE_PYTHON选项启用Python。

     mkdir build
     cd build
     cmake .. \
         -D PARFLOW_ENABLE_PYTHON=TRUE
    
  3. 运行以下命令以创建和测试包的源存档和wheel发行版。确保您在已安装twinePython包的环境中运行此命令。

     make PythonCreatePackage
    
  4. 如果发行版通过,则运行以下命令以发布发行版。为了成功运行此命令,您必须首先设置TWINE_USERNAMETWINE_PASSWORD环境变量,以您用于通过PyPI进行身份验证的用户名和密码。

     make PythonPublishPackage
    
  5. 检查PyPI以确认您的包更新已正确发布。感谢您的贡献!

获取帮助

如果您对代码有任何问题或疑问,请参考以下选项之一

项目详情


下载文件

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

源代码分发

pftools-1.3.11.tar.gz (119.0 kB 查看哈希值)

上传时间 源代码

构建分发

pftools-1.3.11-py3-none-any.whl (124.2 kB 查看哈希值)

上传时间 Python 3

由以下支持