爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5544|回复: 17

[分享资料] 关于数据转换

[复制链接]

新浪微博达人勋

发表于 2012-10-28 09:42:42 | 显示全部楼层 |阅读模式

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

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

x
    我拿到的ncep的数据,数据读取后的信息如下图
1.jpg

我想把这个nc数据转为grd文件,在gs里编辑如下
'reinit'
'set  gxout  fwrite'
'sdfopen  e:\shuju\vwnd.mon.ltm.nc'
'set  fwrite  e:\shuju\vwnd.grd'
num=1
while(num<=60)
'set t ''num'
'set x 1 145'
'set y 1 73'
'set lev 1000 100'
'd  vwnd'
num=num+1
endwhile
'disable fwrite'
;
然后在grads里运行不了,请帮忙看看是哪儿的问题,谢谢
2.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 09:51:35 | 显示全部楼层
t是不是写错了啊?'set t 'num
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 09:51:49 | 显示全部楼层
set t ''num'这句你好好查查,细节问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 09:56:46 | 显示全部楼层
本帖最后由 残月 于 2012-10-28 09:57 编辑

'set t ''num'
'set x 1 145'
'set y 1 73'
'set lev 1000 100'   

这个估计还得抽出一维写循环。。
'set t ''num'--------》》‘set t 'num'’
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-28 10:04:30 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2012-10-28 10:13:43 | 显示全部楼层
'reinit'
'set  gxout  fwrite'
'sdfopen  e:\shuju\vwnd.mon.ltm.nc'
'set  fwrite  e:\shuju\vwnd.grd'
num=1
while(num<=12)
'set t ''num'
'set x 1 145'
'set y 1 73'
'set lev 1000 100'
'd  vwnd'
num=num+1
endwhile
'disable fwrite'
;
若不行,再添加一个层次循环~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-28 10:20:47 | 显示全部楼层
兰溪之水 发表于 2012-10-28 10:13
'reinit'
'set  gxout  fwrite'
'sdfopen  e:\shuju\vwnd.mon.ltm.nc'

还是不行,我是这样想的,这是一个四维数据,从1948年的1月开始计算到2017年的12月,每年12个月平均值,然后想把这个数据转换,你所说的再添加一个层次循环,具体要怎么添加,因为新手,对这个了解不多,查看了一些帖子才勉强写出这个转换程序
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-28 10:44:49 | 显示全部楼层
Aires 发表于 2012-10-28 09:51
t是不是写错了啊?'set t 'num

我发现问题了,我把'set lev 1000.100‘换位;set lev1000'就能转了,如果我这样改的话,读取的数据是不是只限定在1000hpa的位置了,其余的数据是不是就抹掉了?是不是需要在镶嵌一个循环语句把其余的读出来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 10:51:09 | 显示全部楼层
把set level也写成一个循环试试
'reinit'
'set  gxout  fwrite'
'sdfopen  e:\shuju\vwnd.mon.ltm.nc'
'set  fwrite  e:\shuju\vwnd.grd'
num=1
while(num<=12)
'set t ''num'
z1=1
while(z1<=*)
'set z 'z1''
'set x ...'
'set y ...'
'd ..'
.....
'set x 1 145'
'set y 1 73'
'set lev 1000 100'
'd  vwnd'
num=num+1
endwhile
'disable fwrite'
;

评分

参与人数 1金钱 +6 贡献 +1 收起 理由
言深深 + 6 + 1 赞一个!

查看全部评分

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

新浪微博达人勋

 楼主| 发表于 2012-10-28 11:33:21 | 显示全部楼层
Ivy 发表于 2012-10-28 10:51
把set level也写成一个循环试试
'reinit'
'set  gxout  fwrite'

万分感谢,在你这个基础上我改变成功了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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