[SWAT模型学习经验]之预定义流域与水系

 加载预定义流域与水系:

A 先从SWAT自动生成的子流域边界导出,作为自定义修改的初稿:

新建文档,导入ArcHydro里面的Watershed和Reach的shp文件,建议备份一个副本。

B 然后把watershed和reach的属性表改成swat所要求的格式

watershed的属性表格式:共4列

reach的属性表格式:共8列

C 建议利用湖泊和宽大河流裁剪掉形状偏离实际的子流域:

像这种子流域边界明显有问题,实际上这里是有湖泊存在的(如子流域85和94),而子流域78、88又是宽大河流的位置。因为它们的地势很平坦,对子流域划分影响较大,所以除利用湖泊裁剪子流域边界外,还可适当用靠近湖泊的宽大河流裁剪掉子流域。

裁剪方法:

  • 选中湖泊

  • 启动编辑,使用Clip裁剪工具。

D 裁剪后就可以自己合并或删除子流域了,但千万不要手动编辑子流域的节点!如下图(错误示范!):

因为是人工编辑,并不能保证子流域之间没有空隙,这样导入SWAT之后会报错!

正确的方法应该是只使用编辑中的merge和cut polygons工具:

在这当中,分享在裁剪过程中的经验,对于一个横跨湖泊的子流域,裁剪后会存在两个多边形隔岸相望但却是一个多边形的属性或编号(Gridcode)的情况,这样在选择一个子流域时,相隔十万八千里的多边形会被同时选中,如:

裁剪前
裁剪后

这样的结果在流域划分中绝对是错误的

解决办法是,事先利用cut polygons 工具把横跨湖泊的子流域分成若干个不会横跨湖泊的多边形,如图上;这样在裁剪后就不会存在上述情况,如图下:

E 在合并子流域时,会存在编号变动的情况。例如84号的子流域合并到95号子流域中,编号为84号的子流域就不存在了,导致gridcode和subbasin编号不连续,这导致后续swat写入文件时会报错:“文件名或配置错误”。所以在合并之后,还应该挨个检查每个子流域的属性表,修改它们的gridcode和subbasin使其连续:

F 子流域修改后,水系的属性表也要随之改变,且必须一一对应。举一个例子,下图中,选中的河流属于gridcode编号为1的子流域,且从编号为1的子流域出发(FROM_NODE)流向编号为3的子流域(TO_NODE)。在流域出口处,则把TO_NODE和subbasinR改为0即可。

持续学习,持续更新,欢迎讨论交流!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值