【SWAT水文模型】SWAT水文模型建立及应用第七期:SWAT模型检验

方式1:参数带回至ArcSWAT

方式1.1:文件替换

将率定完的文件夹(名称为XXX.Sufi2.Swatcup)中所有文件(除文件夹外),复制到ArcSWAT的工作空间下的Scenario下的Default下的TxtInOut,替换掉里面的文件。
在这里插入图片描述

注意事项:mdb数据库行数

方式1.2:手动修改

推荐在ArcSWAT中【Manual Calibration】中进行模型验证,不要在SWAT CUP中运行。
步骤1: 打开Manual Calibration,选择参数与变化方式

  • 如果是r,表示百分比变化,例如r参数=0.1,则在swat中选择Multiply By (1+r),参数增加10%的意思。
  • 如果为v,直接在swat中repalce填上v的值即可。
    在这里插入图片描述
    步骤2: 然后选择相应的HRU即可。

步骤3: 如果参数不在ArcSWAT的【Manual Calibration】里面,就在数据库中修改,但是要点击【rewrite input】。
在这里插入图片描述
参数修改完毕后,重新运行SWAT并进行模拟。
在这里插入图片描述
【说明】更新了参数后,再运行,会出现新的情景,新情景的参数是刚更改的参数;但是如果不运行,需要再需改参数,只需要将当前的情景设置为default sim即可,刚修正的参数就会不会更新。

方式1.3:

在SWAT CUP中得到率定后参数(Bestsim),需将其带回到SWAT中修改参数并进行模拟。

具体步骤如下:

  1. 在SWAT CUP中定义好需要传递给SWAT的参数,如农业管理措施、土地利用类型等。

  2. 打开SWAT运行文件夹,并修改其中的control文件。在控制文件中找到包含SWAT CUP参数的行,将其修改为类似于以下格式的代码:
    $Parameter General Common SWATCUP

  3. 在修改后的control文件中,找到包含SWAT CUP的命令行,将其修改为以下格式:
    swatcup.exe -i mymodel.in -o mymodel.out -p myparam.prm -s -l
    其中,mymodel.in是SWAT的模型文件名,mymodel.out是输出文件名,myparam.prm是包含SWAT CUP参数的参数文件名。

  4. 运行SWAT CUP,按照提示依次输入参数文件名,输出文件名以及SWAT运行文件夹的路径等。

  5. SWAT CUP会自动将参数文件中的参数值写入到SWAT的模型文件中,然后启动SWAT运行。

通过这样的流程,就可以将SWAT CUP参数成功地带回到SWAT中,实现对模型的修改和调整。

model.in文件(位于SWAT-CUP文件中的IN File中)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方式2:于SWAT CUP中确定检验期结果

方式2.1:率定期径流数据验证

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

验证时,将率定好后的参数保持不变,改变模拟开始年份,将率定期观测数据替换为验证期观测数据后再次运行率定程序即可。

固定参数值如下:

v__CN2.mgt________1-7,9       60.990002
v__CN2.mgt________8           50.250000
v__CN2.mgt________10-13,22    63.910000
v__CN2.mgt________16-18,20,25-26,28,31-32	57.150002
v__CN2.mgt________14-15,29-30,33	71.510002
v__CN2.mgt________19,21,23-24,27,24,35	51.825001
v__SURLAG.bsn                 8.461500
v__OV_N.hru________1-7,9      0.472550
v__OV_N.hru________8          0.243350
v__OV_N.hru________10-13,22   0.276950
v__OV_N.hru________16-18,20,25-26,28,31-32	0.031605
v__OV_N.hru________14-15,29-30,33	0.200450
v__OV_N.hru________19,21,23-24,27,24,35	0.018845
v__ESCO.hru                   0.777350
v__GW_REVAP.gw________1-7,9   0.072475
v__GW_REVAP.gw________8       0.096475
v__GW_REVAP.gw________10-13,22	0.058125
v__GW_REVAP.gw________16-18,20,25-26,28,31-32	0.092875
v__GW_REVAP.gw________14-15,29-30,33	0.076375
v__GW_REVAP.gw________19,21,23-24,27,24,35	0.090625
v__ALPHA_BF.gw________1-7,9   0.358500
v__ALPHA_BF.gw________8       0.441900
v__ALPHA_BF.gw________10-13,22	0.428500
v__ALPHA_BF.gw________16-18,20,25-26,28,31-32	0.441700
v__ALPHA_BF.gw________14-15,29-30,33	0.451700
v__ALPHA_BF.gw________19,21,23-24,27,24,35	0.427500
v__GW_DELAY.gw________1-7,9   144.375000
v__GW_DELAY.gw________8       129.675003
v__GW_DELAY.gw________10-13,22	114.824997
v__GW_DELAY.gw________16-18,20,25-26,28,31-32	124.625000
v__GW_DELAY.gw________14-15,29-30,33	197.690002
v__GW_DELAY.gw________19,21,23-24,27,24,35	159.889999
v__CH_N2.rte________1-7,9     0.019085
v__CH_N2.rte________8         0.115265
v__CH_N2.rte________10-13,22  0.161255
v__CH_N2.rte________16-18,20,25-26,28,31-32	0.063815
v__CH_N2.rte________14-15,29-30,33	0.161465
v__CH_N2.rte________19,21,23-24,27,24,35	0.079775
v__CH_K2.rte                  252.100006
v__ALPHA_BNK.rte              0.473150
v__SOL_K().sol                8.325000
v__SOL_AWC().sol              0.700250
v__SOL_BD().sol               1.637750
v__GWQMN.gw________1-7,9      661.299988
v__GWQMN.gw________8          621.700012
v__GWQMN.gw________10-13,22   686.299988
v__GWQMN.gw________16-18,20,25-26,28,31-32	658.700012
v__GWQMN.gw________14-15,29-30,33	665.500000
v__GWQMN.gw________19,21,23-24,27,24,35	650.299988

方式2.2:率定期+检验期径流数据验证

所有参数设置与上相同,但检验时期为【率定期+检验期】(径流输入数据为整个时期)。
可以看到,参数模拟效果并不好,与率定期结果并不相同:
在这里插入图片描述

总结

参考

MATLAB工具包

目的: 在利用CUP对SWAT参数率定之后,如何将满意的参数返回SWAT,以便用于气候变化对径流响应等方面的研究
在这里插入图片描述
程序解释:

  • reddeer_addwetland_original 放置原始的SWAT模型
  • reddeer_addwetland_running放置返回的SWAT模型
  • Parameter.xlsx存放CUP校正好的参数
  • 打开mainReturn.m,运行即可

参考

1、CSDN博客-轻松学会SWAT系列4–基于SWATCUP的参数率定