爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7692|回复: 11

grads fwrite/ctl求助

[复制链接]

新浪微博达人勋

发表于 2016-12-7 14:36:41 | 显示全部楼层 |阅读模式
GrADS
系统平台:
问题截图: -
问题概况: 将经度平均后数据fwrite到dat文件,但是用这个文件画出来的图与原来不一样
我看过提问的智慧: 看过
自己思考时长(天): 2

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

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

x
本帖最后由 Penny_Kuan 于 2016-12-7 14:37 编辑

原本数据是3B42的降水数据(x,y,z,t)四维数据,其中z只有一层。做经度平均后,display出来是一个纬度—时间图。此时把数据fwrite到一个dat文件,我试过几种ctl的写法(第一种:xdef为时间,ydef为纬度,zdef和tdef只有1个grid;第二种:xyzt维的说明与真实情况一样,既xdef只有1个grid,ydef为纬度,zdef为1个grid,tdef为时间),画出来的图和原来不一样。求问各位大神ctl该怎么写?grads的fwrite的规则是怎么样的?

以下是fwrite的代码:
  1. ‘open e:/pp.ctl’
  2. 'set gxout fwrite'
  3. 'set fwrite e:/1.dat'
  4. 'set lon 110'
  5. 'set lat 10 27'
复制代码
以下是ctl的第一种写法:(把每个时间点当作一个格点长度)
  1. dset e:/1.dat
  2. undef -9.99e+33
  3. xdef 30 linear 1 1
  4. ydef 69 linear 10 0.25
  5. zdef 1 linear 0 1
  6. tdef 1 linear 00z01jan2000 3hr
  7. vars 1
  8. r3 1 99 **
  9. endvars
复制代码


以下是ctl的第二种写法:
  1. dset e:/1.dat
  2. undef -9.99e+33
  3. xdef 1 linear 110 0.25
  4. ydef 69 linear 10 0.25
  5. zdef 1 linear 0 1
  6. tdef 30 linear 00z01jan2000 3hr
  7. vars 1
  8. r3 1 99 **
  9. endvars
复制代码


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

新浪微博达人勋

 楼主| 发表于 2016-12-7 14:39:33 | 显示全部楼层
不知为什么第一段代码后面部分没了,我写在这里。
  1. ‘open e:/pp.ctl’
  2. 'set gxout fwrite'
  3. 'set fwrite e:/1.dat'
  4. 'set lon 110'
  5. 'set lat 10 27'
  6. 'set z 1'
  7. 'set t 1 30'
  8. 'd ave(r,lon=110,lon=115)'
  9. 'disable fwrite'
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-9 17:12:16 | 显示全部楼层
lat,lon,level,time,有几个格点就写几个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-11 09:34:18 | 显示全部楼层
liyf 发表于 2016-12-9 17:12
lat,lon,level,time,有几个格点就写几个

所以就是按照实际情况来写?那为什么出来的图会和原来的不一样呀?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-12 12:22:18 | 显示全部楼层
‘open e:/pp.ctl’

'set gxout fwrite'

'set fwrite e:/1.dat'

'set lon 110 115'

'set lat 10 27'

'set z 1'

'set t 1 30'

'define  a=ave(r,lon=110,lon=115)'
'set lon 110'
'set lat 10 27'
'set z 1'
'set t 1 30'
'd a'
'disable fwrite'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-12 12:23:37 | 显示全部楼层
ctl
dset e:/1.dat
undef -9.99e+33
xdef 1 linear 110 0.25
ydef 69 linear 10 0.25
zdef 1 linear 0 1
tdef 30 linear 00z01jan2000 3hr
vars 1
r3 0 99 **
endvars
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-12 12:24:19 | 显示全部楼层
只有一层时,vars 1
r3 0 99 **
endvars
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-12 13:12:11 | 显示全部楼层
liyf 发表于 2016-12-12 12:24
只有一层时,vars 1
r3 0 99 **
endvars

为什么'define  a=ave(r,lon=110,lon=115)'前面需要重复设置维数范围,特别是lon的范围?经度取平均不是不会影响到经度的维数设置吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-13 10:53:35 | 显示全部楼层
具体原因我也不清楚,我只知道如果后面要求某个区域的平均,前面维数设置的时候要超过这个区域。你可以不用试试,但平均后面肯定需要'set lon 110'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-13 16:44:51 | 显示全部楼层
liyf 发表于 2016-12-13 10:53
具体原因我也不清楚,我只知道如果后面要求某个区域的平均,前面维数设置的时候要超过这个区域。你可以不用 ...

好呢,谢谢啦~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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