快速入门:学习视频下载地址

ArcSWAT介绍与数据准备气象数据库与土壤数据库下载土壤数据库构建ArcSWAT模型构建与结果解读基于SWAT-CUP的模型率定

土地利用数据的处理

数据下载

首先登陆网址中科院1km土地利用数据:http://www.resdc.cn/data.aspx?DATAID=264

也可以去清华大学高精度土地利用数据:http://data.ess.tsinghua.edu.cn/

本次以中科院的下载方式进行介绍。

进入界面如图所示

ESA土地利用 swat土地利用_图层

在数据集(库)目录中选择土地利用遥感监测数据,点击进入,可以看到数据详情介绍,包含有数据的具体分类系统表。

ESA土地利用 swat土地利用_数据库_02

下滑至最下面有下载链接,如果看不到下载链接,请先注册登陆,根据需要下载资料,一天好像只能下载一次,此处我以北京的为例。

ESA土地利用 swat土地利用_ESA土地利用_03

下载完解压后长这样。

ESA土地利用 swat土地利用_图层_04

数据处理

为什么要进行数据处理? 此处下载的数据类型包含25个二级类型,通常来讲种类过多,不利于后面SWAT的计算与处理,在不影响研究的情况下,可以进行适当的合并,当然,如果研究关注各种土地利用的影响,就另当别论了。

这里我考虑都使用一级类型,即将11和12两种类型和为一种,21、22、23、24等和为第二种,依次类推。

ESA土地利用 swat土地利用_ESA土地利用_05

首先打开工具箱,找到重分类。

ESA土地利用 swat土地利用_ESA土地利用_06

打开重分类工具箱,进行重分类。

ESA土地利用 swat土地利用_数据_07

重分类完成之后的图像。

ESA土地利用 swat土地利用_经验分享_08

构建索引表

为什么需要构建索引表? 我们下载的数据集与swat模型中自带的数据库类型不完全一致,因此需要根据重分类后的土地利用情况与SWAT数据库中的类型进行一一对应起来,即建立索引表。

构建索引表,根据下载的土地利用的数据说明表可以看出,总共分为7类,其中海洋在北京这块没有,因此总共是六类,分别是:耕地,林地,草地,水域,城乡、工矿和居民用地以及未利用土地。

ESA土地利用 swat土地利用_数据_09

ESA土地利用 swat土地利用_图层_10

将我们下载的这些土地利用情况与SWAT分类对应,建立索引表。

这个对应表来源网络,在实际使用时根据情况自行调整,如果有更好更准确的对应方法,不妨各位大佬评论留言一起分享~~~

ESA土地利用 swat土地利用_经验分享_11

ESA土地利用 swat土地利用_图层_12

ESA土地利用 swat土地利用_经验分享_13

新建一个txt文件,根据前面查得的对应关系,将资料填进去,即得到索引表。

ESA土地利用 swat土地利用_经验分享_14

土壤数据库

数据下载

数据来源于联合国粮农组织(FAO)和维也纳国际应用系统研究所(IIASA)所构建的世界和谐土壤数据库(Harmonized World Soil Database)(HWSD)。 http://www.fao.org/nr/land/soils/harmonized-world-soil-database/en/

数据分辨率为1km,中国境内数据源为第二次全国土地调查南京土壤所提供的1:100万土壤数据,外蒙地区数据源为区域土壤及地形数据库(SOTWIS)比例尺为1:500万。

数据处理

为什么需要进行重分类? 我们下载的数据中土壤种类通常很多,数据量大,不便于后续的处理和计算,因此一般先进行重分类,将一些土壤合并,减少种类。

根据所需要的区域进行裁剪,同时对裁剪完的图像进行投影

在SWAT模型中,DEM、土地利用数据和土壤数据需要投影到统一坐标系,前面的土地利用图层也是需要投影的,记得自己加上去。

ESA土地利用 swat土地利用_数据库_15

右键投影后的图像,打开图层属性,选择用唯一值显示,如图所示。

ESA土地利用 swat土地利用_图层_16

进行上一步操作后,图像变成五颜六色的了,左侧每个颜色对应一个数字,数字表示土壤的编号。

ESA土地利用 swat土地利用_数据_17

为了更好地理解,需要先打开下载的HWSD数据库。

ESA土地利用 swat土地利用_数据_18

打开HWSD数据库,双击HWSD_DATA这张表,可以看到,这张表里面含有很多数据,后面会用到,其中这张表MU_GLOBAL这一列表示的就是前面GIS每种土壤后面对应的数字。

ESA土地利用 swat土地利用_经验分享_19

HWSD_DATA这张表后面还会用到,因此先将其导出,在HWSD_DATA上右键导出为excel即可,导出之后的表如图所示,命名为HWSD_DATA。

ESA土地利用 swat土地利用_数据_20

打开GIS中刚刚处理完的图层的属性表,可以看出,其中的VALUE值对应上面的MU_GLOBAL,COUNT表示栅格的个数,需要将这个属性表导出。

ESA土地利用 swat土地利用_ESA土地利用_21

全选属性表,左上角的小三角下拉选择Export,选择路径和命名,将.dbf文件导出,这个文件可以直接用excel打开。

ESA土地利用 swat土地利用_ESA土地利用_22

ESA土地利用 swat土地利用_数据库_23

导出后的表如图所示,包含VALUE和COUNT。

ESA土地利用 swat土地利用_图层_24

利用导出的图层的VALUE值,在HWSD_DATA中的MU_GLOBAL查找,找到相同数字的一行(即相同土壤编号),复制粘贴到一起,如图。

ESA土地利用 swat土地利用_ESA土地利用_25

ESA土地利用 swat土地利用_图层_26

为了便于看清,我习惯于将各个土壤进行中文分类。

利用SU_SYM90这一列的缩写,对应查找土壤的名称,得到各个土壤的分组,最后汇总得到如图所示。

ESA土地利用 swat土地利用_图层_27

ESA土地利用 swat土地利用_ESA土地利用_28

ESA土地利用 swat土地利用_数据库_29

ESA土地利用 swat土地利用_数据库_30

ESA土地利用 swat土地利用_数据_31

经过以上的操作,就把GIS的目标图层的所有土壤数据从HWSD_DATA中提取出来了,并且每一个土壤的栅格个数也统计好了(可以理解为每种土壤面积的占比),同时对每种土壤进行了中文名称的汇总。

从这张汇总表里面可以看出,土壤的种类有几十,如果不进行重分类,后面的操作过于麻烦,因此考虑根据土壤分组进行重分类,同一土壤分组下的所有土壤归为一类,将该土壤分组中百分比最高的这类土作为最终土壤,该组中其他土壤都采用这类土的属性。

简而言之,统一土壤分组中的土,谁的百分比高,其他土就都听她的,变成它的小弟。

举例来说根据得到的这张总表,雏形土中11031这类占比最多,那么其他的雏形土都命名为11031。

这里的分类方法没有那么绝对,主要目的就是为了减少土壤数量,在减少数量的情况下尽量保证原始土壤类型占比多的土壤类型,在处理完之后仍然比较多,而相对小的有可能就被其他土壤类型合并了。

ESA土地利用 swat土地利用_数据库_32

原理清楚了,下面就接着进行GIS操作。打开工具箱,找到重分类。

ESA土地利用 swat土地利用_ESA土地利用_33

ESA土地利用 swat土地利用_ESA土地利用_34

最后分类完成,得到新的图层,可以看出土壤类型减少了很多。

ESA土地利用 swat土地利用_数据库_35

为什么需要建立土地利用索引表? 我们下载的数据与SWAT中生成的数据库的数据不一样,也就是说我们的土地类型的相关数据在SWAT自带的数据库中检索不到,我们需要自己把这些属性信息添加进去才能使用。

ESA土地利用 swat土地利用_图层_36

ESA土地利用 swat土地利用_数据库_37

首先我们研究一下SWAT中土壤属性表有哪些字段,打开SWAT中新建的工程文件夹,其中数据库SWAT2012则是在项目创建时自动建立的,打开土壤属性表usersoil,将属性表导出来,单独放在excel中,将之前根据图层筛选得到的土壤类型数据粘贴过来,构建新的属性表,下面会讲述如何对应粘贴。

ESA土地利用 swat土地利用_数据_38

ESA土地利用 swat土地利用_图层_39

下面逐一进行介绍,首先介绍土壤的基本属性。

对于没有太多作用的字段OBJECTID、MUID、SEQN、S5ID、CMPPT可以自己编写,我习惯性将HWSD数据库中的MU_GLOBAL填在OBJECTID这一列,SEQ填在SEQN这一列。

其他字段设置情况: SNAM可将HWSD中的SU_SYM90写入; NLAYERS对应HWSD中的T_TEXTURE; HYDGRP后续需要计算,先空着; SOL_ZMX可参考REF_DEPTH,也可写默认值1000,注意SWAT中单位是mm,HWSD中是cm; ANION_EXCL默认0.5; SOL_CRK默认0.5; TEXTURE后续需要计算得到,先空着。

注意:有的字段如果原来数据库中有值的话,可以按照HWSD中填写,如果没有就写默认值也行。

ESA土地利用 swat土地利用_图层_40

ESA土地利用 swat土地利用_经验分享_41

下面是土壤第一层的属性字段,字母后面都写有数字1,依次类推,若土壤有三层,则最后这些参数需要填到3。

字段设置情况: SOL_Z1是表层到深层的深度,注意这里要看土壤分几层,一般如果前述SOL_ZMX是1000mm且土壤分为两层,那么第一层一般写300mm,第二层写700mm; SOL_BD1可以采用HWSD中的T_REF_BULK_DENSITY字段,也可以采用后面计算的结果; SOL_AWC1和SOL_K1需要计算,先空着; SOL_CBN1采用T_OC的值;CLAY1采用T_CLAY的值; SILT1采用T_SILT的值; SAND1采用T_SAND的值; ROCK1采用T_GRAVEL的值; SOL_ALB1默认0.001; USLE_K1需要计算获得,先空着; SOL_EC1采用T_ECE的值。

注意:HWSD中字母开头为T表示第一层,开头为S表示第二层。

ESA土地利用 swat土地利用_ESA土地利用_42

ESA土地利用 swat土地利用_数据_43

根据上述的规则,依次对照前面获取的HWSD的数据,填写SWAT表头的数据表,最后得到表如图所示,除了几个空着的(标黄部分),我的土壤最多只有两层,因此只写到了两层。

ESA土地利用 swat土地利用_经验分享_44

ESA土地利用 swat土地利用_数据库_45

ESA土地利用 swat土地利用_数据_46

计算TEXTURE、SOL_BD(可选)、SOL_AWC、SOL_K。

SOL_BD可以用之前数据库中的值,也可以用这里计算的值

这里要根据土壤层数分别计算,TEXTURE对应填写土壤质地,用英文首字母缩写表示,土壤层之间用-连接,以第一层的计算为例。

打开SPAW,点击options,选择Units下面的Metric和Volume。

ESA土地利用 swat土地利用_ESA土地利用_47

ESA土地利用 swat土地利用_ESA土地利用_48

根据前面填写的各个参数,对应计算,如图所示。

ESA土地利用 swat土地利用_经验分享_49

ESA土地利用 swat土地利用_数据库_50

将计算得到的数据填进excel即可,后面第二层计算方式相同,两层都计算完了就可以填写土层结构了。

水文分组HYDGRP的计算 根据土壤平均粒径分层计算土壤下渗率,若最小下渗率出现在土层上层深度小于500mm时,则参考正常标准;若最小下渗率出现在土层上层深度500-1000mm时,则将土壤水文单元上调一类,即B调至A;若最小下渗率出现在土层上层深度1000mm之下,则基于1000mm之上的土壤下渗率来划分水文分组。

但一般简便来算,计算的都最小下渗率查阅表格选择分组即可。

根据Z,土壤中含沙量(%)分别计算土壤各层的平均颗粒粒径Y,然后计算下渗率X,取其中最小的X作为最小下渗率,考虑两个公式: Y=Z/100.03+0.02 X=(20Y)^1.8

当沙粒含量为0时,Y取0.01mm,当沙粒含量为100%时,Y取0.3mm,粘土含量为100%时,Y取0。002mm。

ESA土地利用 swat土地利用_图层_51

计算完成如下图所示。

ESA土地利用 swat土地利用_数据库_52

计算USLE_K1可蚀性因子土壤可蚀性因子计算按照下面几个公式即可。

ESA土地利用 swat土地利用_ESA土地利用_53

ESA土地利用 swat土地利用_数据_54

计算方式如下。

ESA土地利用 swat土地利用_ESA土地利用_55

最后分组完成之后将数据加入到SWAT2012中的usersoil中即可。

土壤类型索引表的建立

与土地利用索引表的建立类似,新建一个txt文件。

ESA土地利用 swat土地利用_经验分享_56

气象数据的处理

这一块我的理解也不是很透彻,因此大家仅借鉴

在swat中气象数据的准备包含:天气发生器、降水数据、气温数据、相对湿度、 风速和日照,其中前三者是必须的,而天气发生器需要自行准备,后面的数据可以直接从站点获取。

数据下载

进入下载网站:www.cmads.org.com ,下滑至最后面,可以看见数据集和下载链接,根据需要下载相应的链接。

这里我选择的是的CMADSV1.0(Chinese),如图所示。

ESA土地利用 swat土地利用_经验分享_57

ESA土地利用 swat土地利用_经验分享_58

进入下载网页之后,点击申请下载,需要注册和登陆,填写相关信息,申请成功后可以在个人中心的数据订单的数据下载中看见。

ESA土地利用 swat土地利用_ESA土地利用_59

ESA土地利用 swat土地利用_数据库_60

ESA土地利用 swat土地利用_图层_61

根据指示下载软件,在软件最上方输入相应的IP地址,用户名和用户密码,点击连接之后,一段时间连接成功,在下方的框内可以看见数据集,右键点击下载即可。

数据量比较大,可能需要下载一段时间,此处就不截图了。

我将文件夹和压缩包都下载下来了,以备不时之需,下载地址只有一个星期的有效期。

ESA土地利用 swat土地利用_数据_62

数据处理

将压缩包一一解压后,找到以下目录中的地图,用GIS打开,同时导入自己要用的区域的图层。

ESA土地利用 swat土地利用_数据库_63

ESA土地利用 swat土地利用_数据库_64

为了更加清楚看见所需地区的站点编号,将北京图层放大,数据量大,可能会卡住,圈出北京的所有站点,并记录下来。

北京:119-167119-173、119-167125-167、125-167125-174、119-174125-174

圈出来的方框共有56个站,可以删掉距离较远且没有代表性的站,我去掉了图中20个站,因此最终36个站。

ESA土地利用 swat土地利用_数据库_65

ESA土地利用 swat土地利用_图层_66

根据图中标注的文件夹,找到数据集中给定的索引文档,并新建一个自己的索引表,依次根据前面的编号找到索引表中的数据,复制到自己的文档中。

所有的索引表都需要进行这一步操作。

一些文档的解释: Relative-Humidity-104000-txt\日平均相对湿度(fraction) (txt) Precipitation-104000-txt \日24h累计降水量(mm) (txt) Solar radiation-104000-txt \日平均太阳辐射(MJ/m2) (txt) Temperature-104000-txt \日最高最低气温(℃) (txt) Wind-104000-txt \日平均风速(m/s) (txt) PCPFORK.txt 降水索引表 RHFORK.txt 相对湿度索引表 SORFORK.txt 太阳辐射索引表 TMPFORK.txt 温度索引表 WINDFORK.txt 风速索引表

ESA土地利用 swat土地利用_图层_67

ESA土地利用 swat土地利用_ESA土地利用_68

ESA土地利用 swat土地利用_图层_69

ESA土地利用 swat土地利用_图层_70

ESA土地利用 swat土地利用_数据_71

至此,除了天气发生器之外的各项数据已经基本准备完毕。

天气发生器

此处有教程是用的SWATWEATHER进行计算,但我自己研究的时候看到了这个版本,目前还不知道是否可行,能够计算,但是计算结果还在验证中。

新建一个txt文件,根据前面的站点信息来填写,如图所示,根据前面的索引表来得到txt的内容。

ESA土地利用 swat土地利用_数据_72

导出SWAT2012中WGEN_user这张表,将txt文档中四列数据导入到excel中,后面的数字可以自己写。

ESA土地利用 swat土地利用_经验分享_73

ESA土地利用 swat土地利用_图层_74

最后将这个excel导入到SWAT2012中WGEN_user表即可。

打开天气数据定义的对话框,如图所示。

ESA土地利用 swat土地利用_图层_75

根据每一个对话框要求的数据,一一导入索引表,天气发生器选择用户,即选择了数据库中刚刚自己导入的表,最后点ok,完成导入。

ESA土地利用 swat土地利用_数据库_76

ESA土地利用 swat土地利用_数据库_77

接下来选择Write SWAT Database Table,点击全选,然后计算。

这里我是计算完成后的界面,显示已完成。

ESA土地利用 swat土地利用_ESA土地利用_78

最后还有一个更新数据库的选项,如果哪一个表发生了变化,可以选择更新。

ESA土地利用 swat土地利用_经验分享_79