爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5696|回复: 10

[脚本编辑] grads 批处理文件的问题

[复制链接]
发表于 2015-1-5 20:18:29 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
      我的数据文件是2014122101.grd,2014122102.grd,2014122103.grd------2014122123.grd  .一共23个文件。我想把它们批处理合并到一个grd中
      我的ctl文件如下
DSET E:\data\testd3.20141221%h2.grd
TITLE NAQMPS output for domaind3
OPTIONS byteswapped  template
UNDEF     -1.E20
XDEF 204 LINEAR 1. 1.0
YDEF 204 LINEAR 1. 1.0
ZDEF   12 LEVELS
   50.00000       160.0000       300.0000       470.0000       680.0001   
   929.9999       1220.000       1570.000       1990.000       2500.000   
   3110.000       3840.000   
TDEF      23 LINEAR 01:00Z21DEC2014 60MN
VARS     63
dz         12  99 Layer Depth m
u          12  99 U         m/s
v          12  99 V         m/s
w          12  99 V         m/s
temp       12  99 temp      K
............


gs文件:
'reinit'
'open E:\data\testd3.2014122101.ctl'
'set gxout fwrite'
'set fwrite E:\data\outdata.grd'
'set grads off'
hour=1
t=1
while(hour<24)
'set x 1 204'
'set y 1 204'
'set t 't
'set z 1'
'd rh'
hour=hour+1
t=t+1
endwhile
'disable fwrite'
;
只能生成一个时次的图(只读入了t=1一个时次的数据),t=2以后都报错。。

如果固定了x,y就可以输出结果。。
不知道是哪里出了问题,想请教大家帮忙看看。{:soso_e134:}





密码修改失败请联系微信:mofangbao
发表于 2015-1-6 07:55:36 | 显示全部楼层
你的循环有问题,时间根本没有循环······
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-1-6 09:07:47 | 显示全部楼层
river 发表于 2015-1-6 07:55
你的循环有问题,时间根本没有循环······

是t的问题么?能不能大概说一下我要怎么改时间呢,试了很多次都没弄明白 。。
密码修改失败请联系微信:mofangbao
发表于 2015-1-6 09:07:52 | 显示全部楼层
你只最开始打开了一个ctl,而且z明明有12层,'set t 't是什么东西?你原始grd里面都只有1个时次对吧?那除了set t 1还能选别的?


while(hour<10)
'open E:\data\testd3.201412210'hour'.ctl'
'set x 1 204'
'set y 1 204'
'set t 1'
'set z 1 12'
'd rh'
hour=hour+1
'close 1'
endwhile
while(hour<23)
'open E:\data\testd3.20141221'hour'.ctl'
'set x 1 204'
'set y 1 204'
'set t 1'
'set z 1 12'
'd rh'
hour=hour+1
'close 1'
endwhile
密码修改失败请联系微信:mofangbao
发表于 2015-1-6 09:11:50 | 显示全部楼层
太好了,就是需要这个
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-1-6 09:20:19 | 显示全部楼层
维克多·蓝晶 发表于 2015-1-6 09:07
你只最开始打开了一个ctl,而且z明明有12层,'set t 't是什么东西?你原始grd里面都只有1个时次对吧?那除 ...

因为z我是想着只提取一层出来,所以当时设的‘set z 1’,这种批处理是不可以只提取一层么?那我再去把时间那块改改试试,grads不太熟练,谢谢你的指正
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-1-6 09:27:24 | 显示全部楼层
本帖最后由 笨笨兔 于 2015-1-6 09:40 编辑
维克多·蓝晶 发表于 2015-1-6 09:07
你只最开始打开了一个ctl,而且z明明有12层,'set t 't是什么东西?你原始grd里面都只有1个时次对吧?那除 ...


我的打开的ctl文件应该不只一个呀?那个ctl就是我上面贴出来得描述文件,里面DSET E:\data\testd3.20141221%h2.grd不是应该就表示一直读入所有23个grd么?我是所有grd都用这一个ctl来读取,虽然名字是testd3.2014122101.ctl,但是不是只读的testd3.2014122101.grd。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-1-6 09:53:34 | 显示全部楼层
river 发表于 2015-1-6 07:55
你的循环有问题,时间根本没有循环······

我把时间hour=1
t=1
while(hour<24)
'set x 1 204'
'set y 1 204'
'set t 't
'set z 1'
'd rh'
hour=hour+1
t=t+1
endwhile
改为

hour=1
while(hour<24)
'set x 1 204'
'set y 1 204'
'set t 1'
'set z 1'
'd rh'
hour=hour+1
endwhile
还是出错。。是hour不对么?
报错提示:Low level I/O Error: read error on data file
                 data filename=E:\data\outdata.grd
                Error reading 204 bytes at location 3995136
               Data Request Error:Error for variable'rh'
                 Error ocurred at column 1
               DISPLAY error: Invalid expression
                 Expression=rh
不太懂这是哪里的问题。。。
密码修改失败请联系微信:mofangbao
发表于 2015-1-6 11:35:45 | 显示全部楼层
笨笨兔 发表于 2015-1-6 09:53
我把时间hour=1
t=1
while(hour

没有改到点子上,而且t是grads里面默认的时间,所以不能随便拿来当变量用,像z x y z也是一样的
hour=1
while(hour<24)
'set x 1 204'
'set y 1 204'
'set t 'hour''
'set z 1'
'd rh'
hour=hour+1
endwhile
密码修改失败请联系微信:mofangbao
发表于 2016-3-18 12:15:02 | 显示全部楼层
像上面那样改,问题就没有了吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表