致力于土壤、地下水的生态环境保护政策、技术传播与推广。关注我们,带你领略埋藏深处的风景,邂逅水与土的羁绊。
——地下水环境网(groundwater_Z)
首先登陆网址中科院1km土地利用数据:http://www.resdc.cn/data.aspx?DATAID=264
也可以去清华大学高精度土地利用数据:http://data.ess.tsinghua.edu.cn/
本次以中科院的下载方式进行介绍。
进入界面如图所示
在数据集(库)目录中选择土地利用遥感监测数据,点击进入,可以看到数据详情介绍,包含有数据的具体分类系统表。
下滑至最下面有下载链接,如果看不到下载链接,请先注册登陆,根据需要下载资料,一天好像只能下载一次,此处我以北京的为例。
此处下载的数据类型包含25个二级类型,通常来讲种类过多,不利于后面SWAT的计算与处理,在不影响研究的情况下,可以进行适当的合并,当然,如果研究关注各种土地利用的影响,就另当别论了。这里我考虑都使用一级类型,即将11和12两种类型和为一种,21、22、23、24等和为第二种,依次类推。
我们下载的数据集与swat模型中自带的数据库类型不完全一致,因此需要根据重分类后的土地利用情况与SWAT数据库中的类型进行一一对应起来,即建立索引表。构建索引表,根据下载的土地利用的数据说明表可以看出,总共分为7类,其中海洋在北京这块没有,因此总共是六类,分别是:耕地,林地,草地,水域,城乡、工矿和居民用地以及未利用土地。
将我们下载的这些土地利用情况与SWAT分类对应,建立索引表。
新建一个txt文件,根据前面查得的对应关系,将资料填进去,即得到索引表。
数据来源于联合国粮农组织(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、土地利用数据和土壤数据需要投影到统一坐标系,前面的土地利用图层也是需要投影的,记得自己加上去。
右键投影后的图像,打开图层属性,选择用唯一值显示,如图所示。
进行上一步操作后,图像变成五颜六色的了,左侧每个颜色对应一个数字,数字表示土壤的编号。
打开HWSD数据库,双击HWSD_DATA这张表,可以看到,这张表里面含有很多数据,后面会用到,其中这张表MU_GLOBAL这一列表示的就是前面GIS每种土壤后面对应的数字。
HWSD_DATA这张表后面还会用到,因此先将其导出,在HWSD_DATA上右键导出为excel即可,导出之后的表如图所示,命名为HWSD_DATA。
打开GIS中刚刚处理完的图层的属性表,可以看出,其中的VALUE值对应上面的MU_GLOBAL,COUNT表示栅格的个数,需要将这个属性表导出。
全选属性表,左上角的小三角下拉选择Export,选择路径和命名,将.dbf文件导出,这个文件可以直接用excel打开。
利用导出的图层的VALUE值,在HWSD_DATA中的MU_GLOBAL查找,找到相同数字的一行(即相同土壤编号),复制粘贴到一起,如图。
利用SU_SYM90这一列的缩写,对应查找土壤的名称,得到各个土壤的分组,最后汇总得到如图所示。
经过以上的操作,就把GIS的目标图层的所有土壤数据从HWSD_DATA中提取出来了,并且每一个土壤的栅格个数也统计好了(可以理解为每种土壤面积的占比),同时对每种土壤进行了中文名称的汇总。从这张汇总表里面可以看出,土壤的种类有几十,如果不进行重分类,后面的操作过于麻烦,因此考虑根据土壤分组进行重分类,同一土壤分组下的所有土壤归为一类,将该土壤分组中百分比最高的这类土作为最终土壤,该组中其他土壤都采用这类土的属性。简而言之,统一土壤分组中的土,谁的百分比高,其他土就都听她的,变成它的小弟。举例来说根据得到的这张总表,雏形土中11031这类占比最多,那么其他的雏形土都命名为11031。这里的分类方法没有那么绝对,主要目的就是为了减少土壤数量,在减少数量的情况下尽量保证原始土壤类型占比多的土壤类型,在处理完之后仍然比较多,而相对小的有可能就被其他土壤类型合并了。
原理清楚了,下面就接着进行GIS操作。打开工具箱,找到重分类。
最后分类完成,得到新的图层,可以看出土壤类型减少了很多。
我们下载的数据与SWAT中生成的数据库的数据不一样,也就是说我们的土地类型的相关数据在SWAT自带的数据库中检索不到,我们需要自己把这些属性信息添加进去才能使用。
首先我们研究一下SWAT中土壤属性表有哪些字段,打开SWAT中新建的工程文件夹,其中数据库SWAT2012则是在项目创建时自动建立的,打开土壤属性表usersoil,将属性表导出来,单独放在excel中,将之前根据图层筛选得到的土壤类型数据粘贴过来,构建新的属性表,下面会讲述如何对应粘贴。
对于没有太多作用的字段OBJECTID、MUID、SEQN、S5ID、CMPPT可以自己编写,我习惯性将HWSD数据库中的MU_GLOBAL填在OBJECTID这一列,SEQ填在SEQN这一列。NLAYERS对应HWSD中的T_TEXTURE;SOL_ZMX可参考REF_DEPTH,也可写默认值1000,注意SWAT中单位是mm,HWSD中是cm;注意:有的字段如果原来数据库中有值的话,可以按照HWSD中填写,如果没有就写默认值也行。
下面是土壤第一层的属性字段,字母后面都写有数字1,依次类推,若土壤有三层,则最后这些参数需要填到3。SOL_Z1是表层到深层的深度,注意这里要看土壤分几层,一般如果前述SOL_ZMX是1000mm且土壤分为两层,那么第一层一般写300mm,第二层写700mm;SOL_BD1可以采用HWSD中的T_REF_BULK_DENSITY字段,也可以采用后面计算的结果;SOL_CBN1采用T_OC的值;CLAY1采用T_CLAY的值;注意:HWSD中字母开头为T表示第一层,开头为S表示第二层。
根据上述的规则,依次对照前面获取的HWSD的数据,填写SWAT表头的数据表,最后得到表如图所示,除了几个空着的(标黄部分),我的土壤最多只有两层,因此只写到了两层。
计算TEXTURE、SOL_BD(可选)、SOL_AWC、SOL_K。SOL_BD可以用之前数据库中的值,也可以用这里计算的值这里要根据土壤层数分别计算,TEXTURE对应填写土壤质地,用英文首字母缩写表示,土壤层之间用-连接,以第一层的计算为例。打开SPAW,点击options,选择Units下面的Metric和Volume。
将计算得到的数据填进excel即可,后面第二层计算方式相同,两层都计算完了就可以填写土层结构了。根据土壤平均粒径分层计算土壤下渗率,若最小下渗率出现在土层上层深度小于500mm时,则参考正常标准;若最小下渗率出现在土层上层深度500-1000mm时,则将土壤水文单元上调一类,即B调至A;若最小下渗率出现在土层上层深度1000mm之下,则基于1000mm之上的土壤下渗率来划分水文分组。但一般简便来算,计算的都最小下渗率查阅表格选择分组即可。根据Z,土壤中含沙量(%)分别计算土壤各层的平均颗粒粒径Y,然后计算下渗率X,取其中最小的X作为最小下渗率,考虑两个公式:当沙粒含量为0时,Y取0.01mm,当沙粒含量为100%时,Y取0.3mm,粘土含量为100%时,Y取0。002mm。
最后分组完成之后将数据加入到SWAT2012中的usersoil中即可。
土壤类型索引表的建立
与土地利用索引表的建立类似,新建一个txt文件。
在swat中气象数据的准备包含:天气发生器、降水数据、气温数据、相对湿度、风速和日照,其中前三者是必须的,而天气发生器需要自行准备,后面的数据可以直接从站点获取。进入下载网站:www.cmads.org.com ,下滑至最后面,可以看见数据集和下载链接,根据需要下载相应的链接。这里我选择的是的CMADSV1.0(Chinese),如图所示。
进入下载网页之后,点击申请下载,需要注册和登陆,填写相关信息,申请成功后可以在个人中心的数据订单的数据下载中看见。
根据指示下载软件,在软件最上方输入相应的IP地址,用户名和用户密码,点击连接之后,一段时间连接成功,在下方的框内可以看见数据集,右键点击下载即可。
数据量比较大,可能需要下载一段时间,此处就不截图了。
我将文件夹和压缩包都下载下来了,以备不时之需,下载地址只有一个星期的有效期。
数据处理
将压缩包一一解压后,找到以下目录中的地图,用GIS打开,同时导入自己要用的区域的图层。
为了更加清楚看见所需地区的站点编号,将北京图层放大,数据量大,可能会卡住,圈出北京的所有站点,并记录下来。
北京:119-167119-173、119-167125-167、125-167125-174、119-174125-174
圈出来的方框共有56个站,可以删掉距离较远且没有代表性的站,我去掉了图中20个站,因此最终36个站。
根据图中标注的文件夹,找到数据集中给定的索引文档,并新建一个自己的索引表,依次根据前面的编号找到索引表中的数据,复制到自己的文档中。
所有的索引表都需要进行这一步操作。
一些文档的解释:
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 风速索引表
至此,除了天气发生器之外的各项数据已经基本准备完毕。
天气发生器
此处有教程是用的SWATWEATHER进行计算,但我自己研究的时候看到了这个版本,目前还不知道是否可行,能够计算,但是计算结果还在验证中。
新建一个txt文件,根据前面的站点信息来填写,如图所示,根据前面的索引表来得到txt的内容。
导出SWAT2012中WGEN_user这张表,将txt文档中四列数据导入到excel中,后面的数字可以自己写。
最后将这个excel导入到SWAT2012中WGEN_user表即可。
根据每一个对话框要求的数据,一一导入索引表,天气发生器选择用户,即选择了数据库中刚刚自己导入的表,最后点ok,完成导入。
接下来选择Write SWAT Database Table,点击全选,然后计算。
这里我是计算完成后的界面,显示已完成。
最后还有一个更新数据库的选项,如果哪一个表发生了变化,可以选择更新。
以上主要介绍了三大比较复杂的部分的数据处理以及软件操作的相关部分,自学总结的经验,如有错误,敬请批评指正,谢谢大家~~~版权声明:本文为CSDN博主「安-芸熙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_41917608/article/details/114634911
往期推荐