一个使用Docker改变模型参数和自动并行使用Wrfhydro/National Water模型的框架

djs的Python项目详细描述


DJ

djs pypi version

DJS是一个开源的python库,用于调整参数并完成WRF Hydro/National水模型模拟。它提供了简化模型使用和执行的工具,这些工具可以跨操作系统进行操作。框架由两个主要部分组成:

  • ^{str1}$微扰引擎用于缩放和随机生成模型参数集。在
  • Job Scheduler用于生成和管理并发模型模拟。在

大多数用户应该使用DJS的click命令行界面来访问和使用扰动引擎和作业调度器。CLI接受yaml输入文件,这些文件告诉扰动引擎和作业调度程序要处理哪些文件以及如何处理它们。有关更多详细信息,请参见示例和文档。在

安装

注意,如果您只想改变模型参数,可以跳到package installation。在

Docker

在安装包之前,首先安装Docker。Windows和macOS用户应该安装Docker Desktop,Linux用户应该安装Docker Developer Tools。在

安装了homebrew的macOS用户可以安装Docker。在

brew cask install docker

拉出NWM/WRF Hydro Docker图像

从docker hub中提取docker图像,以便DJ可以使用它们来运行模型。查看Docker Hub上的所有可用图像。在

^{pr2}$

组件安装

DJS需要python3.5或更高版本,可以使用pip。作为最佳实践,建议将DJ安装到虚拟环境或conda环境中。就我个人而言,我认为康达有点轻松,但也承认有点臃肿。在

要创建虚拟环境,请在终端中运行以下命令

python3 -m venv djs-env

# If on Mac or Linuxsource djs-env/bin/activate

# If on Windows
. \djs-env\Scripts\activate

要使用conda创建环境,请在终端中执行以下操作。{a10}你可以。在

conda create --name djs python=3.8
conda activate djs

使用pip安装DJ

pip install --upgrade djs

示例案例

本例中的文件NCAR Pocono, PA test case可以下载并提取以用于娱乐目的。在

在本例中,将创建一组不同的模型参数文件,并用于运行NWM版本2.0仿真。在

创建各种参数文件

在改变参数之前,让我们先看看pe_setup.yml内部。有关扰动引擎yaml设置文件的文档可以通过运行djs perturbation-engine --help或在文档中找到。在

# Perturbation Engine setup yml fileprimary/DOMAIN/Route_Link.nc:-nCC:scalar:'*1.3'output:'nCC_route_link.nc'primary/DOMAIN/soil_properties.nc:-mfsno:uniform:Trueoutput:'mfsno_soil_properties.nc'primary/DOMAIN/Fulldom_hires.nc:-OVROUGHRTFAC:scalar:'-0.2'output:'OVROUGHRTFAC_fulldom_hires.nc'-multi_group:output:'RETDEPRTFAC_OVROUGHRTFAC_fulldom_hires.nc'OVROUGHRTFAC:norm:Falsescalar:'-0.3'RETDEPRTFAC:scalar:'-0.05'

对于下面的内容,请使用终端/命令提示符导航到提取pocono_test_case.zip的位置。在

cd to directory

创建不同的参数集非常简单:

djs perturbation-engine pe_setup.yml

不同的参数文件现在应该存在于pocono_test_case目录中。在

运行NWM模拟

首先,确保Docker正在运行。接下来,让我们来看看作业调度程序的设置文件。有关扰动引擎yaml设置文件的文档可以通过运行djs job-scheduler --help或在文档中找到。在

# Job Scheduler setup yml fileprimary:'primary'alternative-files:--'nCC_route_link.nc'-'mfsno_soil_properties.nc'-'OVROUGHRTFAC_fulldom_hires.nc'-'RETDEPRTFAC_OVROUGHRTFAC_fulldom_hires.nc'image:'aaraney/nwm-djs:2.0'max-jobs:2cpus:'0-2'mpi-np:2

要启动模拟运行,请执行以下操作:

djs job-scheduler js_setup.yml

run simulations

请注意,上面的'nCC_route_link.nc'和{}嵌套在一个列表中,这告诉作业调度器在同一个模拟中使用这两个文件。而其他文件将有自己的模拟。在

以前缀rep-开头的新目录应该出现在pocono_test_case目录中。这些目录包含每个模型仿真。在

贡献者Austin RaneyIman MaghamiYenchia Feng

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java随机填充2d数组   java运行时。getRuntime。带有长参数的exec(cmd)   java Minecraft无法放置自定义背景   java AChartEngine YAxis自定义标签区域边距和图表值为字符串?   泛型类的java类型安全错误   整数的java符号等价物。toBinaryString方法?   Java中数组列表的数组   java WebView应用程序在谷歌登录后显示空白屏幕   java从backback中删除特定片段   如果服务器不支持使用的协议,java JSSE是否实现回退?   java Sonarqube正在进行核心漏洞查找。如何解决   javajavax。jcr。UnsupportedPositionOperationException:testVersionable处的节点不可版本化   java在安卓中每隔X小时运行一次文件/函数,无需打开应用程序   java如何为磁盘持久性配置BigMemory?   java BufferWriter不转换383以上的整数   Java7交集类型:规范具体说明了什么?   Java:CollectionHow创建多列   java如何检测运算符的空白   java问题:在firebase中为导航栏中的第二个表单提交数据第一个表单工作正常。实际isse是连接Mainactivity中的另一个活动