分布式水资源雪模拟
smrf-dev的Python项目详细描述
资源框架的空间建模
资源空间建模框架(SMRF)由美国农业部农业研究局(ARS)的Scott Havens博士在美国伊利诺伊州博伊西市开发。SMRF旨在增加获取实测气象数据和在流域内分布点测量值的灵活性。SMRF被开发用来作为一个操作或研究框架,其中易用性、效率和近实时运行能力是最优先考虑的。在
阅读full documentation for SMRF,包括最新的安装说明。在
安装
python3 -m pip install smrf-dev
要在MacOSX的Linux上本地安装SMRF,请首先克隆存储库并构建到虚拟环境中。这需要gcc <= 9.0
。一般步骤如下,将通过运行测试来测试SMRF安装。在
从存储库克隆
^{pr2}$安装需求,SMRF并运行测试。在
python3 -m pip install -r requirements_dev.txt .[tests] python3 setup.py install
要可选地验证安装,请运行单元测试
python3 -m unittest -v
对于Windows,install方法使用Docker。在
系统依赖性
如果将SMRF与GRIB文件中的网格化天气数据一起使用,则需要eccodes
的系统依赖性,这是GRIB文件读取器。在
地形设置
拓扑为SMRF提供以下静态层:
- 数字高程模型
- 植被类型
- 植被高度
- 植被消光系数
- 植被光透过率
- 面盆面罩(可选)
所有这些层都存储在netCDF文件中,通常称为topo.nc
文件。在
虽然topo.nc
文件可以手动生成,但是一个很好的选择是使用basin_setup来创建一个与SMRF和AWSM兼容的topo文件。在
输入数据
SMRF的气象数据输入需要以下变量:
- 空气温度
- 蒸汽压
- 降水
- 风速和风向
- 云量因子(被云层阻挡的入射太阳的百分比,介于0和1之间)
数据可以通过以下格式提供:
- CSV文件
- MySQL database
- 天气研究和预报(WRF)输出
- 高分辨率快速刷新(HRRR)
- 通用netCDF
运行SMRF
运行SMRF有两种方法,第一种是通过run_smrf
命令或通过smrfapi。如果SMRF被用作雪或水文模型的输入,我们建议使用run_smrf
,因为它将生成所需的所有输入。有关更多详细信息,请参阅完整文档。在
run_smrf <config_file>
码头工人
SMRF还内置在docker映像中,以便于在任何操作系统上安装。docker映像是从Github存储库自动构建的,包括最新的代码库或稳定版本映像。在
SMRF docker映像有一个文件夹,用于在docker映像中装入数据,该文件夹位于/data
。在
docker run -v <path to data>:/data usdaarsnwrc/smrf run_smrf <path to config>
<path to data>
应该是主机上配置文件、数据和topo所在的路径。这也是SMRF输出的位置。在
注意:配置文件中的路径必须调整为位于docker映像中。例如,在上面的命令中,配置的路径将位于docker映像中。这将是/data/config.ini
,而不是主机上的路径。在
在ARS使用的方式中,我们将config、topo和数据保存在一个位置,因为文件非常小。然后将输出放在另一个位置,因为它的文件大小可以大得多。为了实现这一点,请分别挂载输入和输出数据,并修改配置路径。在
docker run -v <input>:/data/input -v <output>:/data/output usdaarsnwrc/smrf run_smrf <path to config>
- 项目
标签: