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

博文

轻松学会SWAT系列4--基于SWATCUP的参数率定

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

写在前面的

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

注意问题:

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

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

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

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


C. 基于SWATCUP的参数率定

(本节所有需要调整的参数皆粗体,斜体,标红处理)

参数率定与校准需要下载SWAT-CUP,在官网下载即可【见附件10。最新版SWAT-CUP2019的阶面与老版不同,本说明为2019最新版。

C1.新建率定工程

a.SWATTxtInOut导入SWAT-CUP;

b.SWAT Version201264-bit

c.选择算法,并创建工程,选择工程位置。

(注意不同算法对应的操作界面可能有所不同,以第一个算法SUFI2为例)

算法有这么几种:SUFI2(连续不确定率定法V2);PSO(粒子群算法);GLUE(广义最大似然不确定估计);ParaSol(参数优化方法);MCMC(蒙特卡罗过程)。

C2.编辑Par_inf.txt(参数信息)

设置参数的个数与模拟的次数,如果提示参数较少,可以通过 Add a new parameter 按钮新增参数。

图片.png

Var的意思代表修改参数的方法,分别为赋值、加减、乘以。

可以在Text View 里面更新参数,而不用在Form View视图中挨个调。

图片.png

  注意1:swatcup中的Sol_BDALPHA_BNK两个参数不在swat中的自带调参工具中。

注意2.bsn为后缀的参数,是全流域性质的参数,因此不可以按子流域修改,手动调参的时候不能指定某各子流域改参数,因此在此处填写的时候,不用选流域。

C3.SUFI2_swEdit.def(算法信息)

分别输入起始与终止的模拟次数,分别为1n

C4.File.CioSWAT-CUP运行的基本参数)

图片.png

需要修改这几项数据。分别为:模拟的年数11);模拟的起始年1961);起始日的年积日1);结束日的年积日365,此项如果模拟最终年份为闰年,被4整除,则此项为366,输错可能引起错误)

C5.Absolut_SWAT_Values.txt(修改参数的上下界)

该项一般不做修改。

C6.Observed_rch.txt(输入观测数据)

输入观测数据需要只需要激活rch即可,激活需要点击上方的Rch按钮。

图片.png

图片.png

Number of observed variables,指观测变量个数,如果同时校准多个rch的流量,这里填的是rch的个数。

例如>>如果要校正5个出口的流量,这里就写5

>>如果校正2个流量,2个泥沙,这里就写4

FLOW_OUT_1,需改后边的数字,改为每个rchGis代码。

141,为rch1的实测数据的个数,如果为月值,2年的数据,个数填24

如果rch个数多,则需要对每个实测数据进行输入,可在EXCEL进行整理,第一列为序号,第二列为名称,第三列为流量值,输入的时候注意单位,output的月值单位为cms,实测值应该与其对应。

如果有这种情况,水文站位于rch5rch6汇流的地方,rch5rch6汇合成rch7。那水文站实测的流量就不能用rch5rch6Flow_Out,机智的我发现,用rch7Flow_In不就可以了?当然rch7Flow_Inrch5&6Flow_Out之和有误差,但是绝对可以忽略。【通常,在定义子流域的时候,我们已经会在水文站处设置流域出口了】

C7.Var_file_rch.txt

此处为所选的变量,需将6)中输入的进行整理过来。

C8.SUFI2_extract_rch.def

图片.png

2,变量个数,不是rch的个数,而是变量的种类,不同的rch都输出为flowout,因此变量个数为1

但是如果同时校正流量和泥沙,不管矫正多少个出口,这里都为2.

【总结:variables observed variables的区别】

variables:单独的variables意味着变量的种类,种类为流量、泥沙、N含量,是指的类别】

observed variables:是指观测的变量,为流域出口的各种变量的和,一个出口的3种变量则为33个出口的1个变量,也为3

7___18,变量所在swat输出文件的列,如果为流量,填7即可,中间隔3个空格;特别注意,这个列数,不是看在Arcgis中数据库的那个!经过本人研究发现,两者列数差1列。真正的Output的列数与其对应的项目在下边列出。

图片.png

流域的总数量,根据实际情填写;

3,第一个变量,Flow_out,用到的子流域个数,如果选择4个子流域的Flow_out,则填4

1__3__7,第一变量的子流域的代码,有多个出口,则需在中间隔2个空格;

【注意】:这里填写子流域代码时,必须从小到大填写!不按照上下游的顺序!

1,使用第二个变量的子流域个数,如果没有第二个变量,则删除该行与下一行;

7,第二个变量所在的子流域代码,没有则删除;

1990,包括预热期在内的模拟起始年份;

2001,模拟结束年份;

2,模拟的时间步长,1日,2月,3年。

C9.Observed.txt(将输入的数据再次输入,确认)

图片.png

4,观测变量的个数,根据出口个数来填写,n个出口填n个观测变量个数;

5,目标函数类型,选NS系数即可;

0.5,目标函数的阈值,一般NS选择0.5,但是可以试试更高;

1,如果目标函数为修正的NS系数,输入p值;

FLOW_OUT_1,修正每个观测变量的变量名;

1-1-111,可以不做修改;

10为测量值的误差百分比,可以适当调低;

141,该出口变量的观测值个数;

依次修改每一个出口变量的参数及实测值,注意单位CMS

C10.Var_file_name.txt

再次输入每个子流域变量名

【注意】:这里填写子流域代码时,必须从小到大填写!不按照上下游的顺序!

(注意,如果填错一个选项,都不行!!!)

C11.Save all
C12.确定输出项

点开最后两个,看看是不是有对号。

图片.png

C13.Calibration

第一个界面输入Y(大写)后,点一下回车。接下来点确定就行了。

C14.Validation

A.  swatcup中进行Validation时,只需要改变“Observed_rch.txt”“SUFI2_extract_rch.def”“Observed.txt”三个文件,将径流数据改为验证期的数据(率定期的数据删掉,重新编号;验证期的数据不可以过长),模拟年份也改为验证期的年份,然后Calibration。其他的数据和参数不用改,swatcup可记住率定参数和率定期的数据。(以与校准运行相同的仿真次数执行迭代)

B. 推荐在SwatManual Calibration中进行模型验证,不要在swatcup运行。如果参数不在swatManual Calibration里面,就在数据库中修改,但是要点击rewrite input

图片.png

C.  打开Manual Calibration,选择参数与变化方式。如果是r,表示百分比变化,例如r参数=0.1,则在swat中选择Multiply By (1+r),参数增加10%的意思。如果为v,直接在swatrepalce填上v的值即可。

D. 然后选择相应的HRU即可。

图片.png

最后读取验证期的结果,与实测值进行对比。注意output的值为日均流量,单位为cms

E.更新了参数后,在运行,会出现新的情景,新情景的参数是刚更改的参数;但是如果不运行,需要再需改参数,只需要将当前的情景设置为default sim即可,刚修正的参数就会不会更新。

F.计算R2的时候,在excel中用correl函数得到的是r

C15.敏感性分析

通常需要先分析参数敏感性,再确定需要率定的参数,但是这里是同时进行的。






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

上一篇:轻松学会SWAT系列3--Arc-SWAT操作过程
下一篇:轻松学会SWAT系列5--SWAT与SWAT-CUP常见问题
收藏 IP: 222.168.41.*| 热度|

1 王丽娟

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

数据加载中...

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

GMT+8, 2024-4-20 14:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部