zhaoyistop的个人博客分享 http://blog.sciencenet.cn/u/zhaoyistop

博文

DHSVM河道数据制作

已有 2019 次阅读 2020-11-19 16:47 |个人分类:DHSVM|系统分类:科研笔记

河道数据是DHSVM所需驱动数据中比较难获取的数据,幸好模型官方提供了一系列的AML脚本,可以在Arc Workstation中实现河道数据的自动化制作,本文将介绍如何使用这些AML脚本。


勘误:上一个版本的文章中第二节导出数据存在问题,因此将原文删除重新发布:注意河道制作需要的流域边界数据不是之前制作的MASK数据,而是水文分析之后获取的流域边界栅格数据,特征是流域内部区域值为1,外部为nodata。


一、所需工具

  1. Arc Workstation:控制台版的ArcGis,请自行安装。

  2. DHSVM官网提供的AML脚本,在模型压缩包的amlscripts文件夹中。

  3. AddAat2.java、Aat.java、AatError.java 三个文件,位置在模型压缩包的program文件夹中。

  4. Java环境,请自行配置。

  5. DEM数据、流域数据:之前制作的栅格数据,不是ASCII文本数据,是在Arcmap中能直接打开的栅格数据。

二、河道数据制作

1.文件转换

需要将 AddAat2.java、Aat.java、AatError.java 三个文件转为 .class 类型,否则无法使用。
(1)在program文件夹位置打开命令提示符(cmd)PowerShell,输入 “javac” ,检查java环境是否可以使用。
Java环境
(2)输入 “javac AddAat2.java”,回车运行。
文件转换
发现新生成了三个文件 AddAat2.class、Aat.class、AatError.class,将这三个文件放入AML脚本所在的amlscripts文件夹。
新生成的文件

2.导出DEM和流域边界数据

(1)建立新的工作文件夹。
(2)用Arcmap打开DEM数据,在左边内容列表 右键点击数据名——数据——导出数据,格式选择GRID,保存到新的工作文件夹
在这里插入图片描述
(3)用同样的方法导出流域边界数据,注意此处的流域边界数据不是之前制作的MASK数据,是前文第三节第一步水文分析中最后得到的流域范围数据,特征是流域内部为1,外部为nodata(MASK数据是第二步中对这个数据重分类的结果,流域内部为1,外部为0)。
流域范围数据
如果这边使用了MASK数据,会使流域外的区域也生成河道,影响河道文件制作结果。

3.河道数据制作

(1)打开Arc Workstation的工作程序Arc
打开Arc
(2)输入 “&workspace 文件夹地址” 更改工作空间,将工作空间更改到导出的DEM数据和MASK数据所在的文件夹,我这边是“F:/DHSVM200/workspace”
更改工作空间
(3)输入 “Grid” ,切换到Grid模式。
Grid模式
(4)输入 “新数据名 = FLOAT(dem数据名)” 将DEM数据转换为float型。注意,这边用到的DEM数据需要预先填洼,如果没有填洼的话,可以在Arcmap中预先操作好,或者用FILL命令先填洼。
转为FLOAT
(5)输入 “q” 退出Grid模式,输入 “&amlpath 脚本目录位置” 加载AML脚本目录。
在这里插入图片描述
(6)输入 “&run createstreamnetwork” ,检查AML脚本目录是否正常加载,如果加载成功,会提示这个createstreamnetwork命令的用法。
河道制作命令用法
根据用法提示,前两项demwshed分别是float型dem数据流域范围数据;第三项soildepth是将要生成的土壤深度数据名;stream network是要生成的河道数据名;MOUTH|MASK是流域范围确定方式,这边选MASK;source area是生成河道的汇水面积,建议取值是220000,值越小,生成的河网越密集;min depth 和 max depth 是土壤层的最大、最小深度,建议取0.76和1.5,但最小深度不能小于植被参数中的根系深度。

(7)根据提示输入相应数据,以我这边为例,输入 “&run createstreamnetwork demfloat wtsh soild stream MASK 220000 0.76 1.5” ,程序会自动运行。

注意:
——这一步需要比较长的时间,如果单元格数量过多的话,可能需要好几天,所以尽量把单元格个数控制在10万个以下;
——中间如果卡住了,好几个小时没动静,只要没报错退出到Arc,都很正常,等着就行了;
——如果出现询问是否继续的提示,输入yes可以继续运行。
——在界面任何一个地方点击鼠标,都会导致计算暂停,可以按回车继续;也可以根据光标是否在最下面,判断是否还在计算。
河道制作运行
(8)计算结束之后,会退回到Arc:,检查工作文件夹,发现多了stream.map.datstream.network.dat文件,和土壤深度数据soild、河道数据streamstream.map.datstream.network.dat文件是驱动模型所需要的河道文件。
计算结束
生成的数据

(9)土壤深度soild可以在Arcmap中打开,再根据上文栅格数据的处理方法,转为二进制文件。河道矢量数据stream也可以在Arcmap中加载
土壤深度数据
河道矢量数据
(10)adjust.classfile 文件需要自己手动制作,根据河道等级填入对应的河道宽度、深度等信息,具体可以参考DHSVM样例数据和流域的实际情况。
adjust.classfile数据

边做边截图边写,因为AML脚本运行比较慢,所以这篇文章花了很长时间,中间还因为不小心把计算暂停了,白白浪费了一晚上。所以再次提醒大家,一是要注意控制单元格数量;二是注意检查运行状态;三是要有耐心,千万别还没算完就退出。


以上就是DHSVM河道数据stream.map.datstream.network.datadjust.classfile和土壤深度数据的制作方法,希望对大家有帮助。初始状态数据的制作方法我们下回再说。




https://blog.sciencenet.cn/blog-3452201-1259052.html

上一篇:DHSVM栅格数据制作
下一篇:DHSVM初始状态数据制作
收藏 IP: 58.240.39.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-4 12:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部