陆地水循环分享 http://blog.sciencenet.cn/u/afantics

博文

轻松学会SWAT系列3--Arc-SWAT操作过程

已有 9387 次阅读 2021-10-20 19:43 |个人分类:SWAT学习|系统分类:科研笔记

写在前面的

      SWAT模型构建过程初次学习可能很困难,必须坚持一步步来,有问题琢磨,琢磨不透就问,总能解决。

注意问题:

S1:SWAT2012更新说明在安装目录下“D:\软件\Arcswat\ArcSWATHelp”

S2:SWAT自带案例,可按《ArcSWAT2009用户指南》自学

S3:本教程可能出现部分附件,附件主要为数据集或者部分处理好的数据或者索引表,可加QQ群获取

QQ群:790411341 (Terrestrial hydrological cycle)如有问题或相关交流亦可加群

B. Arc-SWAT操作过程

B1.数据准备

Swat构建过程中所需的shp或者栅格文件,必须为统一的投影坐标系源。如果数据投影不同,则需要投影变换。首先将数据框的坐标系改为需要的投影坐标系,如下图所示。然后将各个数据导出,导出时选择数据框,新的导出的数据即为统一的投影系。

图片.png

除了土壤数据外,还需要DEM和土地利用的数据。

加载研究区土地利用(数据来自http://www.resdc.cn/),查看该区的土地利用类型,根据土地利用SWAT分类对照表【见附件6确定索引表【见附件7。注意土地利用栅格中存在的值必须出现在索引表中。如果认为土地利用类型的分类过于复杂或者不利于HUR计算,可使用arcgis工具箱中的空间分析→重分类→查找表,通过给LUCC添加新的整形字段,替换原来的Value

很大可能需要更新土地利用和土壤类型的索引表,由于索引表格式为dbf,因此需要在Arcgis中进行编辑处理,再导出才可以。

B2.创建SWAT工程文件

 SWAT Project Setup→New SWAT Project 创建SWAT工程文件

提示:创建工程文件,路径不要太深,不要带中文,别问我为啥,结果会导致导入DEM时复制栅格失败。

B3.流域描述

可基于数字高程模型dem数据自动划分子流域。用户指定子流域的数目和大小,也可输人预先定义的流域边界及相应的河网数据。注意栅格数据均需要提前进行投影!

 Watershed Delineator→Automatic Watershed Delineation→打开DEMLoad from Disk

1)  Z值改为meter(如不选择,自动设置为meter)→【mask(可选)软件会处理mask掩膜的区域,可缩短运行时间】

2)  导入河流shp  注意河流线shp的投影也要与栅格保持一致。

3)  流向设定,点一下即可

4)  创建河流与流域出口(有时平原区河网提取断断续续,解决方法burn in更精确的河流shp使用精度更高的dem,例如90m30m30m15m由于Dem精度越高,运行越慢,因此还可以在90m的基础上修改现有的河流shp,河网断断续续是因为部分平坦地区的river.shpdem存在偏差(如图),因此只需要手动将错误的river.shp修正至新的位置即可)

图片.png

5)  流域补排项,这里选Subbasin outlet即可(如果有径流数据需要来校正,且水文站不在已经生成的流域出口点,则在Edit manually选择Add添加新的子流域出口即可;如需删除节点,点击delete即可;编辑完成右键stop edit,保存退出)。如果上游部分地区不在模拟范围,有入流数据,可添加inlet点,但数据需要用户提供。如有跨流域调入水,也需要添加inlet

6)  选择整个流域的出口,在流域下游水文站位置,用鼠标框选最后一个即可,再点击Delineate watershed,再点击Calculation watershed parameters最后SWAT会将数据写入GDBReduce report output 可选,选择后加快计算速度,如果子流域过多,可选,一般不用选)

7)  如果有水库,可以在Add reservoir加入,没有则不选。

8)  退出Exit

图片.png

【注意】:流域描述过程生成的shp,如下,必须展开,不可放入图层组中,必须在最外层。


图片.png

B4.水文响应单元分析

1.准备工作

HRU Analysis 进行这一步前,如果Arcgis为中文版,需要更改一下ArcCatalog的语言环境。保存后关闭Arcgis,在菜单栏找到 Arcgis Administrator,点击Advanced,将语言更改成English。不改则无法加载土地利用的栅格数据。

图片.png


如果不想改语言,则在进行此步的时候,预先添加土地利用数据,然后选择第一个 From the map,即可。


图片.png


然后你会发现,不用英文的话,Lookup Table没法用!所以,改成英文吧。

2)操作

【Landuse】首先加载landuse数据,选择VALUE,再选择Lookup Table,User Table(查找表已经做好【见附件7】,实际上),最后Reclassify即可。

(如何制作Lookup table呢?首先找到swat自带的土地利用都有哪些,在安装目录下找到文件CropLu.txtUrbanLu.txt,里面即为swat内置土地利用,翻译后可与本区的土地利用相对应,制作Lookup table。例如二评的水田不可以简单用AGRL代替,需用RICE(水稻),旱田用CORN(玉米))。

图片.png

注意:如果加载时提示土地利用没有属性表,则先添加数据→符号系统→选唯一值→提示构建属性表→确定,此时再加载即可。

Soil】首先加载Soil数据,选择VALUE,再选择UserSoil,然后点Lookup Table(查找表已经做好【见附件5),最后Reclassify即可。

Slop】坡度信息,可以选择Single Slope(国内常用),当资料很多的时候可以选择Multi Slope(当坡度分级多的时候,可以设置每一类的阈值。如果分5类,则需要设置4个百分比阈值,因为0-99999已经预置),Reclassify

【集成】点击 Creat HRU,再点击Overlay即可,如果Overlay为灰色,则需要检查这三步,是否全部设置完成。

HRU Definition】这一步的意思是将占比特别小的土地利用或土壤或坡度给分配到相邻地方,以便能更快地运行。一般可以5%--10%

图片.png

3)注意事项

LuccSoilLookup Table的格式,可能在其中某个栅格产生0值,由于栅格并不是完美叠加,因此如果在Soil的栅格产生0值,需要在土壤数据库中添加0的一行,并且在Lookup Table上更新0值。

另外Lookup Table并不是Excel,而是dbf文件,先将Excel导入至Arcgis,在输出为dbf,该dbfLookup Table

图片.png

HRU Definition里面可定义HRU的类型,有3(新版本4种)中方式,默认为第三种,如下。创建之后HRU图层不变,但是会有新的report生成。

图片.png



B5.气象数据写入

1)  天气生成器直接选用CFSR_World即可。

2)  实测的气象数据,例如降水、温度啥的,需要做成txt文件【见附件8,具体的要求如下:

图片.png

1.雨量站位置表,可参照example中的格式。

2.表中都为逗号分隔符。

3.站名皆为xxxxpcppcpxxx

图片.png

单独的雨量站降水量表,

注意:从NC文件得到的降水数据,需要将数据的格式改一下,改成常规

图片.png


要求1:每个雨量站的txt文件名,与位置表中的一样。

要求2:雨量站位置表中的站点必须每一个都有一个单独的txt

要求3:单独的表,第一行为开始时间,格式为yyyymmdd,往下的所有行为降雨量。

要求4:请参照附件8

要求5:温度的位置表与降水类似,站名改为  tmp_xxxx

要求6:温度的单个表,第一行为开始时间,第二行为最高温度,最低温度

要求6:相对湿度,为0.8,不是80

要求7:太阳辐射,solar,不是指的净辐射,然而净辐射我也会算(’’),指的是太阳到达地面的总辐射Rs,或者叫太阳短波辐射【见附件9。例子的范围为0-30左右 (单位为MJ/m2/day)。

图片.png

要求8:具体不清楚要求的风速为几米风速,暂且以气象站的记吧。

要求9:位置表命名可依据:风速=wind;温度=tmp;辐射=solar;相对湿度=rh;降水=pcp

        单个要素可依据:风速=w***;温度=t***;辐射=s***;相对湿度=r***;降水=p***

最后点击Write SWAT input tables,依次选择select all Create Tables,出来第一个弹出框时,好像是最后为US only,选择yes

图片.png

B6.运行模型

设置运行的时间、结果输出的时间步长,依次选择:Setup SWA Run→Run SWAT,即可。

图片.png

B7.读取结果

Read SWAT Output

1)  勾选前三个,然后点击Import Files to Database,然后给结果命名sim1,再Save一下,Cancle就行了/

图片.png

2)  本人研究发现,如果只做径流模拟的话,只需要输出rch即可。输出的rch结果中,有一列,是Flow_Outcms,按月来的,单位为m3/s,进行初步验证的时候,需要将最后的子流域的rch,及流域出口的rchFlowout记下,最后子流域的Flowout即为整个子流域的流量,需要×86400×30/10000,即为单位为万方的流量。

3)  如需读取结果:

【方法1】需添加数据,在工作路径下依次找到Scenarious,sim1TablesoutSWAToutputhru/rch/sub,加载这三个即可。

【方法2】找到数据库,打开,找到rch(含有径流数据)basin(含有流域蒸散发、降水数据),点上方“外部数据”,导出Excel即可。

4)  SWAT的输出结果见附件11





https://blog.sciencenet.cn/blog-3459054-1308725.html

上一篇:轻松学会SWAT系列2--土壤数据库的构建
下一篇:轻松学会SWAT系列4--基于SWATCUP的参数率定
收藏 IP: 222.168.41.*| 热度|

0

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

数据加载中...

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

GMT+8, 2024-4-25 02:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部