- 积分
- 755
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-1-25
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-1-23 22:53:57
|
显示全部楼层
本帖最后由 红河岸 于 2014-1-23 22:58 编辑
kongfeng0824 发表于 2014-1-9 21:32
是的。如果你的数据是批量的,就这么修改。
不知版主是否还在,急切盼望得到解答!
我用你的那个批量的方法仿写了一个文件,但出现了问题,因为我算的数据都是冬半年,即都是10月份到次年3月份的数据,为2011年10月-2012年3月,2012年10月-2013年3月,我先把我写的gs给出,
先解释一下
1、这里hour都是12,所以固定取12。
2、因为我做的是三天数据的插值,所以set t 1 72 在这里是固定的,没法拿到任何地方去改,这个是与版主之前有所不同的地方。
3、grads2ascii是插值用法,导出是插值数据txt,这里随时间变化的,一是cwrf_d03_'%aaa%12'_0000.ctl 这里的,起始数据为cwrf_d03_2011100112_0000.ctl,生成数据为station2011100112.txt和dire2011100112.txt,而“2011100112”这部分就是逐日增加,如“2011100212”“2011100312”等等,需要变化的就是这个量。
这里会出现几个问题:
1、day这里,如果小于10的,很奇怪一律只输出一位数,也就是2011100112会变成201110112。
2、我也不知道程序结果调用哪一天的数据,反正算出来的每一个文件,都是一样的数据,摊手。
我看了半天也看不出啥毛病,恳请版主赐教!
'reinit'
'set gxout fwrite'
year=2011
#设定开始的年
month=1
day=1
while(year<2014)
while(month<13)
while(day<32)
if(month<10)
if(day<10)
*******设定输出的字符,输出的格式是4位年+2位月+2位日*******
*******日小于10,在前面加0,保证日是2位************
aaa=year%0%month%0%day
*******月小于10,在前面加0,保证月是2位************
else
aaa=year%0%month%day
endif
else
aaa=year%month%day
endif
'open P:\2\cwrf_d03_'%aaa%12'_0000.ctl'
'set x 1'
'set y 1'
*'set lon 112 128'
*'set lat 17 30'
'set z 1'
'set t 1 72'
#now interp the grid data to station data and export
#浮标#
'P:\2\wrf\grads2ascii mag(gr2stn(u10,120.38,26.94),gr2stn(v10,120.38,26.94)) P:\2\wrf\703520\station'%aaa%12'.txt'
'define pi=3.14159'
'P:\2\wrf\grads2ascii atan2(gr2stn(u10,120.38,26.94),gr2stn(v10,120.38,26.94))*180/3.14159+180 P:\2\wrf\703520\dire'%aaa%12'.txt'
day=day+1
endwhile
day=1
month=month+1
endwhile
month=1
year=year+1
endwhile
;
|
|