爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5314|回复: 8

[结贴]grads画出多年日平均出错问题

[复制链接]

新浪微博达人勋

发表于 2014-4-30 21:55:43 | 显示全部楼层 |阅读模式
GrADS
系统平台: windows
问题截图:
问题概况: 我想画34年的6月每日日平均,即30张图,编程后报错,应该是语法错误?一直找不到错在哪。请各位帮忙看看,谢谢
我看过提问的智慧: 看过
自己思考时长(天): 7

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

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

x
本帖最后由 echo要读书 于 2014-5-2 00:38 编辑

我想直接用gs画出图,没有用Fwrite把文件写出来再画,感觉二者工程量差不多. fwrite后也一样要计算时间。
想达到的效果是画出34年6月1日平均,6月2日平均……6月30日平均30张图。
程序如下:

'c'

***计算6月各天的多年平均,从而画出30张图***
k=0
while(k<=29)
***设定累加初值c***
'p=0.0'

***循环1980-2013年***
i=1980
while(i<=2013)

***循环读入文件***
'sdfopen z:\Guo\climate\temdaily\air.'%i%'.nc'

***设定维度***
'set lon 100 130'
'set lat 20 40'
'set lev 850'

***平年闰年?***
'define t1=i-1980'

if(t1=0|t1=4|t1=8|t1=12|t1=16|t1=20|t1=24|t1=28|t1=32)
t0=153
else
t0=152
endif

***设定时间***
'set t 't0'+'k''

***计算***
'define ab=air.1'
'define p=ab+p'

'close 1'

i=i+1
endwhile

***计算平均***
'define p=p/34'

***画图***
'draw title temperature in 06 ,'i', 1980-2013'
'set clab forced'
'set cint 0.5'
'set ccolor 1'
'set cthick 10'
'set grid off'
'set grads off'
'set gxout contour'
'd p'
'printim z:\Guo\climate\'i'.jpg'
'disable printim'

k=k+1

endwhile

'reinit'

;


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-30 22:10:36 | 显示全部楼层
报错说的很清楚了,平闰年的那句define把 i 拿出来到引号外
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-30 22:40:47 | 显示全部楼层
lqouc 发表于 2014-4-30 22:10
报错说的很清楚了,平闰年的那句define把 i 拿出来到引号外

你好,
我改成:'define t1='i'-1980',
依然报错,不过报的是p了。。。而且很奇怪的是报完错不回到ga->的命令行。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-1 01:16:26 | 显示全部楼层
另外有没有办法把34个日平均文件中所需的数据排放在同一个dat文件中呢?我用fwrite可以得到每个nc数据对应的dat文件('sdfopen z:\Guo\climate\temdaily\air.1980.nc'
'set fwrite z:\Guo\climate\2jinzhi\1980.dat'...依次读入34年),但是尝试写到同一个文件时(
'sdfopen z:\Guo\climate\temdaily\air.1980.nc'
'set fwrite z:\Guo\climate\2jinzhi\all.dat'...依次读入34年),写出来的all.dat文件和之前的1980.dat一样大,貌似写入的只有最后一个nc文件的数据?如何实现把34年的6月数据放在同一个dat文件呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-1 08:26:36 | 显示全部楼层
echo要读书 发表于 2014-4-30 22:40
你好,
我改成:'define t1='i'-1980',
依然报错,不过报的是p了。。。而且很奇怪的是报完错不回到ga- ...

把报错截图,光描述不知道你啥问题。
我猜是你的时间维不匹配,最开始你给p赋值的时候那是一个常量,而且没有时间维,后来调用的时候可能就出错了。建议你自己整理下逻辑顺序。
至于你说的fwrite,还是那句话,把你的完整信息贴上来,没人能凭着你错误的结果猜出原因。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-1 19:59:52 | 显示全部楼层
'sdfopen z:\Guo\climate\temdaily\air.'%i%'.nc' 改 'sdfopen z:\Guo\climate\temdaily\air.'i'.nc'
'define t1=i-1980' 改 t1=i-1980
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-1 20:05:32 | 显示全部楼层
lqouc 发表于 2014-5-1 08:26
把报错截图,光描述不知道你啥问题。
我猜是你的时间维不匹配,最开始你给p赋值的时候那是一个常量,而 ...

报错截图。。第一个错误是define error那边,貌似是因为文件没打开?

fwrite的问题:
读写的gs我是直接写了34个读写过程…
'reinit'
'sdfopen z:\Guo\climate\temdaily\air.1980.nc'
'set fwrite z:\Guo\climate\2jinzhi\all.dat'
'set gxout fwrite'
'set lat 20 40'
'set lon 90 130'
'set z 3'
'set t 153 182'
'd air'
'disable fwrite'
'reinit'
'sdfopen z:\Guo\climate\temdaily\air.1981.nc'
'set fwrite z:\Guo\climate\2jinzhi\all.dat'
'set gxout fwrite'
'set lat 20 40'
'set lon 90 130'
'set z 3'
'set t 152 181'
'd  air'
'disable fwrite'
'close 1'

...
...
'sdfopen z:\Guo\climate\temdaily\air.2013.nc'
'set fwrite z:\Guo\climate\2jinzhi\all.dat'
'set gxout fwrite'
'set lat 20 40'
'set lon 90 130'
'set z 3'
'set t 152 181'
'd  air'
'disable fwrite'
'reinit'


ctl:
dset z:\Guo\climate\2jinzhi\all.dat
title mean daily NMC reanalysis alll

options template
undef -9.99e+33
dtype netcdf
xdef 9 linear 20 2.5
ydef 17 linear 90 2.5
zdef 1 levels 850
tdef 1020 linear 00Z01Jun1980 1440mn
vars 1
air=>air 17 t,z,y,x mean Daily Air Temperature
endvars


=
写出来的all.dat文件和之前尝试把数据按年份分别写到34个dat文件一样大,应该是没读进所有的数据?
QQ截图20140430153737.png
QQ截图20140501130230.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-1 21:14:21 | 显示全部楼层
river 发表于 2014-5-1 19:59
'sdfopen z:\Guo\climate\temdaily\air.'%i%'.nc' 改 'sdfopen z:\Guo\climate\temdaily\air.'i'.nc'
'def ...

你好,这个我试过,还是不行。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-2 00:39:23 | 显示全部楼层
最后还是用http://bbs.06climate.com/forum.p ... hlight=%BA%CF%B2%A2的第一种方法解决了。。。
这个帖的程序依然不知道问题在哪。。- -

谢谢楼上两位~river & lqouc~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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