一个使用Docker改变模型参数和自动并行使用Wrfhydro/National Water模型的框架
djs的Python项目详细描述
DJ
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
的位置。在
创建不同的参数集非常简单:
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
请注意,上面的'nCC_route_link.nc'
和{
以前缀rep-
开头的新目录应该出现在pocono_test_case
目录中。这些目录包含每个模型仿真。在
贡献者:Austin Raney,Iman Maghami,Yenchia Feng
- 项目
标签: