SWAT模型学习——气象数据制备过程记录

1.所需数据

SWAT模型需要的气象数据有六类:主要包括流域的日降水量、日最高、最低气温、日太阳辐射、日平均风速和日相对湿度。以及天气发生器数据。(加粗为必需数据)

(简介:理想情况下SWAT模型需要至少20年的天气资料,如果缺少必要的资料则可用天气发生器进行补充。在时间尺度上,模型的模拟时间步长可以为年、月、日,天气发生器主要是用于缺失数据的模拟,没有缺失的时候可以直接调用系统默认的)
 

1.1 数据准备

首先按研究区域范围筛选出流域内的站点,按站点整理各气象数据,依次按照各要素整理好文件夹。文件夹整理格式为:

一个气象要素一个文件夹,文件夹内每个站点的数据为一个txt,再加一个索引文件(要放在同一个文件夹下)

每个站点的数据格式整理为1列,第一行是数据的起始日期,索引文件(prefork)整理如图

***一些注意事项:缺失值使用-99替代,然后由天气发生器模拟得到结果;气温数据为两列,最高温一列,最低温一列。

除太阳辐射外的气象数据直接整理完毕即可,太阳辐射没有直接的数据,需要基于日照时数进行计算,参考相关教程(原链接提供的excel表非常清楚,也很简洁明了,可以直接使用),由于数据较多,在R中完成批量处理(代码如下),最终得到对应的太阳辐射数据。利用日照时数计算太阳辐射_根据日照时数计算太阳总辐射_聂小七f的博客-CSDN博客https://blog.csdn.net/qq_35823062/article/details/129026872

```{r Define function}
rm(list = ls())

#首先定义函数,输入值为day, lat和SSD,即可输出SR
Fsr <- function(day, lat, SSD){
  gsc = 118.108
  
  j = 2*pi*(day-1)/365
  j2 = j*2
  j3 = j*3
  e0 = 1.00011+0.034221*cos(j)+0.00128*sin(j)+0.000719*cos(j2)+0.000077*sin(j2)
  
  a1 = 0.399912*cos(j)
  a2 = 0.070257*sin(j)
  a3 = 0.006758*cos(j2)
  a4 = 0.000907*sin(j2)
  a5 = 0.002697*cos(j3)
  a6 = 0.00148*sin(j3)
  
  sita = (180/pi)*(0.006918-a1+a2-a3+a4-a5+a6)
  ws1 = -tan((pi/180)*sita)*tan((pi/180)*lat)
  ws = 180/pi*acos(ws1)
  
  h01 = cos((pi/180)*lat)*cos((pi/180)*sita)*sin((pi/180)*ws)
  h02 = (pi/180)*sin((pi/180)*lat)*sin((pi/180)*sita)*ws
  
  h0 = (1/pi)*gsc*e0*(h01+h02)
  h1 = 0.8*h0
  sl = 2/15*ws
  SR = h1*(0.248+0.752*SSD/sl)
  return(SR)
} 
```

1.2 天气发生器

当所需的六类数据中,有缺失项,或者是某一项中有缺失值时,便需要用到天气发生器,但如果所有数据均无缺失,可以不进行天气发生器的制备,因为不需用到他的模拟。因此两个思路:

(1)对原始数据的一些缺失值进行插值处理,直接输入模型中;

(2)制备天气发生器。需要的数据值包括下表所示,可以通过SWATWeather进行计算,也可以通过自己写代码计算(我觉得),最终需要的数据格式表头参考SWAT2012里的WGEN_user。但需要注意的是,导入软件以及自己计算天气发生器所需参数时,不能包含缺失值,因此缺失值也得先简单处理一下。

天气发生器所需参数
参数含义参数含义
TMPMX

每月平均日最高气温

PR_W1每月湿日之后干日的概率
TMPMN每月平均日最高气温PR_W2每月湿日之后湿日的概率
TMPSTDMX每月日最高气温的方差PCPD每月平均降水天数
TMPSTDMN每月日最低气温的方差RAINHHMX每月最大半小时降水量
PCPMM每月日平均降水量SOLARAV每月日均太阳辐射量
PCPSTD每月日降水量的方差DEWPT每月平均日露点温度
PCPSKW每月日降水量偏斜系数WNDAV每月日平均风速

 **统计的都是每月的多年平均值,所以最终是有14*12列的数据。

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
SWAT模型气象数据的计算翻译By:94527257 The Program pcpSTAT User’s Manual Stefan Liersch, Berlin, August 12, 2003 stliersch@freenet.de 下载地址:http://www.brc.tamus.edu/swat/pcpSTAT.zip 引言 pcpSTAT.exe 程序用来计算SWAT 模型气象发生器所需要的每日降水数据的统计 参数(userwgn.dbf)。表1 中列出的一些参数能毫不费力地利用MICROSOFT EXCEL 等 工具计算出来,而PR_W1 和 PR_W2 比较难计算。 表 1:SWAT 所用的降水统计参数 PCPMM(mon) = average or mean total monthly precipitation PCPSTD(mon) = standard deviation for daily precipitation in month PCPSKW(mon) = skew coefficient for daily precipitation in month PR_W1(mon) = probability of a wet day following a dry day PR_W2(mon) = probability of a wet day following a wet day PCPD(mon) = average number of days of precipitation in month 输入文件 存储着每日降水数据的输入文件必须是只有一列数字的 ASCII 码文本文件(图1)。 观测期必须是开始于1 月1 日,结束于12 月31 日。换句话说,第一个数据值是1 月1 日的,最后一个是12 月31 日的。虽然对利用的总数没有限制,但每一次的计算都 必须是基于一整。 若是有缺失的数据,需要用空值(必须是数字)来填充这些缺失的数据值。程序 会询问这些值,并用整个系列的平均值取代空值。 图1: Example of a Precipitation Input File 翻译By:94527257 创建输入文件 降水数据文件通常是文本文件,一列是日期,一列为降水值。用EXCEL 打开数据 文件,若有必要可以缩减日期,以使其从1 月1 日开始,12 月31 日结束。随后,删除 日期列,只剩降水数据列,并保存为文本文件(filename.txt)。 若是使用其它软件创建输入文件或是之后使用文本编辑器操作文件,确保最后存 在一个空行。若是没有空行或是超过一个空行,程序将会中断并弹出消息“End of file during read”,且将会产生错误的输出数据 运行 pcpSTAT.exe 程序 将程序和输入文件放在同一个目录,双击 pcpSTAT.exe 或是从DOS 窗口中启动程 序(图2)。键入输入、输出文件的名字(包括其扩展名),至于输出文件,可以任意命 名。下一步,需要输入起始份,用来判断一个份是否是闰。只要键入第一(4 位数字)回车。此后,需要输入无数据值,若降水数据有缺测,需要输入一个并不存 在的数字,例如“999”。 图2: Program pcpSTAT.exe 在计算结束后,输出文件(图3)会自动保存在程序目录中。此外,还会生成2 个文件:totalpcp.sta 和mean_pcp.sta。totalpcp.sta(图4)包含了每每个月的总降水, mean_pcp.sta 则包含每每个月的平均每日降水。 翻译By:94527257 图3: Example of an Output File 翻译By:94527257 图4: Example of the File totalpcp.sta

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值