论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Mysql
›
SWAT| 水文 | SWAT模子(三):土壤数据库制备 ...
SWAT| 水文 | SWAT模子(三):土壤数据库制备
丝
金牌会员
|
2025-3-18 09:05:00
|
显示全部楼层
|
阅读模式
楼主
主题
944
|
帖子
944
|
积分
2832
Tips:
本期向各人分享
SWAT模子的土壤数据库的制备方法
。在开始之前,要注意的是:
我的土壤数据是HWSD天下土壤数据,必要举行土壤重新分类
。最终要完成的任务有3项,分别是:
(1)重分类后的土壤类型数据(栅格数据文件)
(2)地皮利用类型索引表(txt文件)
(3)usersoil数据库(更换原来SWAT自带的参数库“SWAT2012“中的”usersoil“表内容),数据最多保留两位小数。
三者关系如下:
索引表
起到桥梁的作用,SWAT模子通过
索引表
来连接
栅格数据
与
usersoil土壤数据库
目次
1 研究区土壤数据提取
2 研究区土壤数据重分类
2.1 提取研究区土壤数据库
2.2 研究区土壤数据重分类
3 研究区土壤索引表制作
4 usersoil数据库制备
4.1 HWSD复制至usersoil
4.2 SPAW盘算
4.3 USLE方程中可蚀性因子盘算
4.4 水文分组
4.5 usersoil数据库制备完成
1 研究区土壤数据提取
将“HWSD”栅格文件加载至ArcMap,通过第一期内容得到的
澜沧江DEM数据
举行掩膜提取,得到
澜沧江土壤数据
。
①加载HWSD栅格土壤数据。
②
在ArcToolbox中找到
“数据管理工具”——“投影和变换”——“界说投影”
,对HWSD栅格土壤数据界说一个
GCS_WGS1984的地理坐标系
。
③在ArcToolbox中找到
“Spatial Analyst 工具”——“提取分析”——“按掩膜提取”
,通过
澜沧江DEM数据lcrdem_prj
对HWSD栅格数据按掩膜提取,得到
澜沧江土壤数据lcr_soil
。
④在ArcToolbox中找到
“数据管理工具”——“投影和变换”——“栅格”——“投影栅格”
,对澜沧江土壤数据举行投影,直接选择与澜沧江DEM数据相同的投影坐标系。
⑤将投影后的
澜沧江土壤数据lcrlu_soprj
添加至ArcMap。
2 研究区土壤数据重分类
2.1 提取研究区土壤数据库
打开HWSD天下土壤数据库,即
HWSD.mdb
。我们必要用到其中的表是
HWSD_DATA
,将其导出为Excel格式,将澜沧江土壤数据的属性表导出,用Excel的
VLOOKUP函数
提取研究区澜沧江的土壤数据库。
①导出
HWSD_DATA
表。
②将
澜沧江土壤数据lcrlu_soprj
的属性表导出为
txt格式
。
③在导出的
HWSD_DATA
表中新建
Sheet2
工作簿,将从ArcGIS中澜沧江土壤数据导出的
txt文件
导入Sheet2中。
④用
VLOOKUP函数结合COLUMN函数
,一对多匹配,获取对应
VALUE列
的所有土壤数据,即澜沧江的土壤数据。
VALUE列
的数据对应
HWSD_DATA
表的U_GLOBAL列的数据,以此来举行VLOOKUP匹配。
蓝框标黄
是从ArcGIS中导出的
txt文件内容
,
红框
是
函数内容
,具体的VLOOKUP函数和COLUMN函数使用步骤在网上有很多教程,这里不做赘述。
2.2 研究区土壤数据重分类
①新建一个
Sheet3
工作簿,将
Sheet2中的所有内容按保留值格式粘贴到Sheet3,避免后续操作导致公式改变。
在
Sheet3
的COUNT列背面插入新的一列,将SU_SYM74的前两个值Ao和Lf复制到新的一列,利用Excel的
LEFT函数
将SU_YM90的所有值的
前两个字母
延续复制到新的一列。所有前两个字母相同的土壤,我们将其归为一类,然后看同类中谁的COUNT最大,这意味着该土壤在流域中占比在同类中最大,用该土壤代表同类的所有土壤,以这样的思路来举行土壤重分类。
②新建一列,用来存储新的VALUE值(定名为NEW_VALUE)即COUNT最大的土壤的VALUE列的值。比如,筛选AC类的土壤,这其中12537最大,那么就在NEW_VALUE列填入11788。同理将所有类共23类土壤重复上述操作,得到完整的NEW_VALUE列。
③新建Excel文件,将原来Excel表格的VALUE列和NEW_VALUE列放进内里,保存为CSV格式。
④打开ArcMap,右键
澜沧江土壤数据lcrlu_soprj
,点击
“连接和关联”——“连接”
。
⑤基于
澜沧江土壤数据lcrlu_soprj
的VALUE字段,和
Re.csv文件
中的VALUE字段匹配举行连接。
⑥打开
澜沧江土壤数据lcrlu_soprj
的属性表,发现已经连接乐成。
⑦在ArcToolbox中找到
“Spatial Analyst 工具”——“重分类”——“重分类”
,输入栅格选择上述连接过的
澜沧江土壤数据lcrlu_soprj
,重分类字段选择
NEW_VALUE
,点击
唯一
,定名输出栅格。
⑧将
重分类后的澜沧江土壤数据relcr_soil
添加至ArcMap,重分类后的土壤类型减少至23种,至此土壤
重分类
完成,完成了第一项任务。
3 研究区土壤索引表制作
①
打开先前的Excel表格HWSD_DATA,新建Sheet4,后续根据此工作簿制作
索引表
,将Sheet3中的NEW_VALUE复制到Sheet4中的第一列,然后
删除重复值,保留唯一值
。
在Excel工具栏中选择“数据”——“删除重复值”
,这样能够保证每个VALUE都是唯一值。
②重复
2.1中④的VLOOKUP函数结合COLUMN函数操作
,获取重分类后的土壤数据。
③新建一个Excel表格,定名为“
索引表
”,将
HWSD_DATA表格Sheet4中的SU_SYM74和SU_YM90
中的土壤名称复制到“索引表”中的
第二列
,列名为“
NAME
”。在
第一列
定名列名为“
VALUE
”,根据ArcGIS土壤重分类结果,
将序号从0开始编号,下拉至22
。
④
在
Excel工具栏中选择“文件”,另存为逗号分隔的CSV格式,再将文件名后缀改为txt。
——>修改后缀名为txt——>
⑤
打开
索引表.txt
文件,为列名添加
英文双引号(eg:VALUE——>"VALUE")
,
土壤索引表
制作完成,完成了第二项任务。
4 usersoil数据库制备
我们先前获取的重分类到土壤数据归根照旧HWSD土壤数据库,SWAT无法直接读取,所以我们要将其换一个格式,制备成SWAT2012.mdb参数数据库中uersoil表的格式,usersoil就是SWAT的土壤数据库。所有的操作我们在Excel中举行,这样方便批量复制数据,HWSD中的部分列可以直接复制到uersoil中的指定列,具体复制到哪些指定列,下面我会给出一个表格来一一对应两者的列名。usersoil其余的空缺部分必要我们用SPAW软件来盘算。
4.1 HWSD复制至usersoil
①导出usersoil为Excel格式。usersoil表是在下载ArcSWAT时自带的,一个SWAT工程包含3个数据库,分别是:工程库(工程名.mdb)、栅格库(RasterStore.mdb)、参数库(SWAT2012.mdb)。usersoil表在参数库中可以找到,参数库的默认路径是:
电脑下载ArcSWAT的路径\ArcSwat\Databases\SWAT2012.mdb
②
HWSD与usersoil列名对照表
。将usersoil里的第一行列名保留,其余内容删除,将与之对应的HWSD中的列的数据复制进去。注意
深度的转换
,在复制到usersoil时要乘10,
有机质
的值是HWSD中的TOC除以0.58。其中SOL_BD土壤湿容重也可以用SPAW盘算。
思路参考:SWAT模子土壤数据库的建立教程(一)———土壤数据的裁剪,投影以及重分类处理_哔哩哔哩_bilibili
③
usersoil的其他列的含义和数值见下表
。表中另有一些未提及的列,这些列对应的值都是任意的,沿用SWAT自带的usersoil原本的值即可。
④把现在能填的列都填到usersoil中,如下图。
4.2 SPAW盘算
①打开SPAW软件,首先将
度量单元
由英制English
改为公制Metric
。
②输入参数。以
土壤Ao的表层
为例:
Sand:49
;
Clay:24
;
Organic Matter:
就是有机质含量,T_OC除以0.58,值是
1.72
;
Salinity:
就是HWSD中的T_ECE,值是
0.1
;
Gravel:10
。
每次输入参数都要敲击回车Enter!!得到的结果在SPAW界面右上角:
(1)TextureClass
对应usersoil的TEXTURE土壤结构
SandyClayLoam
(注意这个参数对后续SWAT盘算没什么影响,所以随便填个值也是没标题标,比如用土壤名称Ao代替);
(2)AvailableWater
对应SOL_AWC1,
0.11
;
(3)SatHydraulicCond
对应SOL_K1,
9.25
;
(4)MatricBulkDensity
对应SOL_BD1,
1.51
。上面提到过,SOL_BD土壤湿容重也可以直接用HWSD中的REF_BULK_DENSITY来代替。
这样就完成了一个土壤表层的参数盘算,将盘算结果填入usersoil中。由于大部分土壤不但要盘算表层参数,还要盘算深层的参数,所以险些每个土壤要操作SPAW2次,共有23个土壤类型,所以要重复操作SPAW40多次,工作量比力大。
4.3 USLE方程中可蚀性因子盘算
将usersoil中的各土壤类型的
Clay粘土、Silt粉土、Sand沙土、Rock砾石、OC有机碳含量
分别填入Excel中,自动盘算出末了一列的
ULSE_K可蚀性因子
。表层深层都要输入,所以共需输入40多行数据,但是由于Excel中编辑好了公式,所以盘算起来工作量不大。
可蚀性因子盘算表格是网上一个大佬做的,必要的话可以评论区留言
4.4 水文分组
将usersoil中的各土壤类型的
表层和深层Sand沙土含量
填入Excel中,自动盘算出末了一列的水文分组。公式思路:利用
含沙量
盘算
平均颗粒粒径
,利用平均颗粒粒径盘算
下渗率
,选择
表层和深层下渗率两者中最小
的一个,由
最小下渗率
来判断土壤的
水文分组
。
思路参考:
SWAT土壤属性数据库构建——水文分组及USLE可蚀性因子简直定(5.5)_哔哩哔哩_bilibili
SWAT模子土壤数据库的建立教程(二)———数据库的处理及字段的盘算_哔哩哔哩_bilibili
4.5 usersoil数据库制备完成
将可
USLE方程中可蚀性因子
和
水文分组结果
填入usersoil,完成usersoil土壤数据库的制备,将其导入自己工程文件夹中的SWAT2012.mdb的usersoil中。
(注意:导入SWAT2012.mdb后小数最多保留两位,否则在后续运行SWAT时大概报错!)
以上是全部内容,欢迎各人评论区留言,品评指正。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
丝
金牌会员
这个人很懒什么都没写!
楼主热帖
ShardingSphere 异构迁移最佳实践:将3 ...
本科毕设CTF平台-MarsCTF
MySQL 5.7 安装教程(全步骤、保姆级教 ...
KubeEdge 1.12版本发布,稳定性、安全 ...
15.Linux和Windows入侵排查
Grafana 系列文章(一):基于 Grafana ...
Sickos1_1
学生信息管理系统(JAVA+MYSQL) ...
mysql数据迁移,通用windows->linux,li ...
Redis介绍与安装
标签云
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表