DHSVM模型运行及驱动数据说明
DHSVM模型简介
Distributed Hydrology Soil Vegetation Model (DHSVM) ,是目前被广泛使用的分布式水文模型,其以数字高程模型(DEM)为基础计算单元,可以在较高的时空分辨率上模拟流域的水文过程。但模型的复杂物理过程和精细流域划分方式,对模型的驱动数据提出了较高的要求,驱动数据制备方式比较复杂。本文以模型自带的样例数据为模板,对DHSVM模型所需的驱动数据以及如何运行模型进行简单的介绍。
DHSVM模型相关链接
模型主页:https://www.pnnl.gov/projects/distributed-hydrology-soil-vegetation-model
模型简介及一些工具,可以参考张凌老师的博客:http://blog.sciencenet.cn/blog-922140-843004.html
模型驱动数据
参数配置文件
主页下载的压缩包中包含名为 INPUT.Mercer.3.1.2_Bin 的配置文件,这个文件是用来配置模型的功能选项、输入数据路径、参数取值等要素的,在运行模型之前,请先仔细阅读配置文件。此小节只介绍配置文件中比较重要的部分,其他没有介绍的部分在配置文件中自带一些说明,请自行阅读。配置文件主要包含以下几个部分:
模型选项设置
这部分用来决定模型运行时是否打开某些功能,可以根据自己的需求设置,不用MM5的话,大部分设置基本都可以关闭。
流域信息
包括投影方式、流域坐标、分辨率等信息,因为模型是基于DEM的二维栅格数据运行的,所以这里也需要填上行列号。投影坐标可以将流域DEM放到 ArcMap 中查看。
时间选项
包括模拟的时间步长和起止时间,时间步长需要和输入的气象驱动数据匹配。
常量
一些物理常量,没必要的话不建议更改。
地形数据选项
包括DEM、MASK和河道数据的输入路径。如果有道路数据之类的额外数据的话,可以在模型选项设置中打开开关,并加上相关数据的路径。
气象数据选项
包括气象站点个数、名称、坐标和海拔,以及气象数据路径。如果要使用MM5、雷达、风速图等数据,请根据说明自行添加。
土壤数据选项
最上方设置土壤类型、土壤深度输入路径,确定土壤类型数量;对每一个土壤类型,都需要在下面设置这个类型的基本参数。
植被类型选项
和土壤类型相似,最上方设置植被类型输入路径和植被种类数量,下方对每个植被类型设置相应的参数。
模型输出选项
包含输出路径和初始状态输入路径。
模型输出设置
在配置文件的最下方,可以输出某个计算单元、某个时刻的计算结果,有需要的话自行设置。
栅格数据
栅格数据包含DEM数据、MASK数据、土壤类型、植被类型、流向、土壤深度,每个数据的行列、分辨率等信息都得一致。DHSVM只接受二进制或者Netcdf格式的栅格数据。Netcdf可以通过R语言等工具制作,二进制栅格数据可以通过ArcMap将栅格导出为ASCII,再利用DHSVM官网给的convent.exe工具转为二进制。
DEM
普通DEM数据文本,没啥好说的。
MASK数据
用来标记DEM数据,确定流域范围的,在流域中的单元格为1,流域外的为0,不参与计算。流域范围用ArcMap水文分析工具确定。
土壤类型和植被类型
下载的栅格土壤类型数据和植被类型数据,需要根据DEM进行裁剪、重采样,保证与DEM数据的尺寸、行列范围、分辨率等信息一致,可以通过ArcMap制作。
流向
在ArcMap中,根据DEM,利用坡向计算工具获得。
土壤深度
可以自己提供数据,也可以在后期的河道数据制备时获取。但需要注意,土壤深度数据必须要大于配置文件中的土壤深度和植被根系深度设置,否则模型会报错。这边建议在制作河道数据时一起制作。
河道数据
河道数据可以根据官网提供的AML脚本,在ArcWorkstation中运行获取。
河网数据 stream.network.dat
每个河道的ID编号、河道等级、坡度、长度以及上下级河道编号。上下级编号决定了该河道的流向和河道之间的级联关系,其中下游河道ID为0的河道是流域出口河道。河道等级决定河道的宽度、深度等属性。可通过AML脚本制作。
单元格河道数据 stream.map.dat
河道会被单元格切割,这个文件代表每个单元格上的河道截段信息。包括单元格行列号,所属河道ID,单元格内的河道长宽深、河道流动方向。可以根据AML脚本制作。
河道属性 adjust.classfile
不同等级河道对应的深度、宽度、曼宁系数、摩擦系数等数据,需要自行设置。
气象站数据
记录气象站点的观测数据,配置文件中的每个站点都必须有对应的文件。内容分变为:时间、温度、风速、湿度、短波辐射、长波辐射、降水。可以直接用EXCEL制作。
初始状态数据
驱动模型运行的初始数据,给定第一个时间步长之前的土壤含水量、温度、积雪、植被、河道蓄水量等相关信息。
栅格初始数据
包括初始植被(Interception.State.)、初始积雪(Snow.State.)、初始土壤(Soil.State.)信息,日期需要跟参数配置文件中设置的初始日期一致。可以用官网下载的MakeModelStateBin.exe工具制作
河道初始数据
初始河道中的水含量(Channel.State),日期仍然要和模型初始日期一致。可以用makechannelstate.exe工具制作。
输出数据
模型在每个时间步长模拟得到的数据,DHSVM模型默认的输出数据十分全面,可以根据需求自行提取。流域出口的径流数据在Stream.Flow中。
模型运行
- 确保所有需要的数据已经制备成功,确保参数配置文件中的输入路径正确,确保参数配置文件中的土壤、植被参数设置没有问题。
- 编译模型源代码,获取DHSVM.exe可执行程序。
- 打开命令提示符(cmd)或者PowerShall(win10自带的,感觉比cmd好看),调整工作目录,将DHSVM.exe和配置文件按照如图所示输入:
回车确认,等模型执行,如果不停跳出时间,则运行成功,可以等着收结果了: - 如果没有成功运行,可以检查报错信息,进行修改,DHSVM的报错很全面,很容易查到哪里出错了。
以上就是DHSVM模型的驱动数据说明和运行方法,具体的数据制备方法可以参考官网的模型应用手册,我以后有时间也会写一些重要数据的制作方法。祝大家科研顺利!
吐槽一下CSDN的分类标签,没有找到水文模型相关的分类,只能放到时序模型里面了。。。