SWAT-CUP参数率定过程问题总结
SWAT-CUP如果有参数设置有误,运行应该就会卡顿。个人亲身感受。
Q1 SWAT-CUP中calibrate按钮一直是灰色无法点击?
1.1 问题描述
软件是从2W2E上下载的SWAT-CUP2019,新建的文件利用的是运行成功的SWAT的Tstinout文件,版本是2012版64bit。
问题是从新建项目到修改完所有参数保存后calibrate按钮一直是灰色无法点击。
1.2 解决办法
网上有说是因为“新版本的SWAT CUP 需要购买,可下载公开的旧版本”。
那就安装旧版本试试!
安装旧版本之后,可以打开之前用2019版本建立的文件诶,且calibrate按钮是绿色的!!!
Q2 “SWAT”不是内部命令
2.1 问题描述
运行时提示“SWAT”不是内部命令,如下图:
问题分析:该问题为CUP工程路径下缺少swat.exe的程序
2.2 解决办法
将SWAT安装目录下的swat2012.exe文件复制到当前SWATCUP所在的工程路径下,并重命名为“swat.exe”。为避免运行中出现此问题,可以在每次建立SWATCUP工程后,在运行前完成此工作。
Q3 未将对象引用设置到对象的实例
3.1 问题描述
3.2 解决办法
原因是删了保存的iteration ,但该iteration的结果文件没关闭。
解决方法是点上方的close all。
Q4 模拟效果太差啦!!!
此处NS值为负,说明模拟结果与实测结果偏差较大,可能为实测径流数据输入有误(如把月总流量当作月平均流量、实测数据单位不一致等),可通过修正输入的实测数据解决。
Q5 找不到 SUFI2.OUTbeh_*文件
5.1 问题描述
率定过程出现以下错误:
5.2 问题解决
原因分析与解决办法:
- 首先可能与swat.exe损坏有关,可按照上述步骤替换swat.exe文件。(替换后仍然可以报错,并非此原因)
- 其次,此处NS值为负,说明模拟结果与实测结果偏差较大,可能为实测径流数据输入有误(如把月总流量当作月平均流量、实测数据单位不一致等),可通过修正输入的实测数据解决。
- 此外,还可能是模拟率定时段设置不合理;或率定参数设置有误。
如我最初模拟的截止日期设置为2013/12/31,后改为2014/01/01(cup中File.Cio的Ending julian day of simulation由365改为1,SUFT2_ extract rch. def中end year of simulation仍为2013而非2014),虽然实际的预热期、率定期并未改变,但问题由此得到了解决。
beginning year of simulation not including the warm up period应为去除预热期后的起始年。
Q6 Cannot open input file /SUFI2.OUT/no_beh_sims.txt
6.1 问题描述
其次,此处NS值为负,说明模拟结果与实测结果偏差较大,可能为实测径流数据输入有误(如把月总流量当作月平均流量、实测数据单位不一致等),可通过修正输入的实测数据解决。
6.2 问题解决
Q7 error72:floating overflow
7.1 问题描述
率定选取参数的范围设置不合理,如部分参数的取值可能为负值,但设置的参数下界为0。
7.2 问题解决
预热/率定/检验期说明
整个时段分为以下三个时期:
- 预热期(Warmup)
- 率定期(calibration)
- 检验期(validation)
一般而言,率定期大于检验期,比例在3:1~2:1之间。
SWAT-CUP率定时,模拟年数应该包括预热期。
观测数据不需要输入预热期数据,观测数据序号从1开始,即率定或验证开始时间。
验证时,将率定好后的参数保持不变,改变模拟开始年份,将率定期观测数据替换为验证期观测数据后再次运行率定程序即可。