爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16371|回复: 35

用GrADS将nc文件转化为grd格式

[复制链接]

新浪微博达人勋

发表于 2014-4-21 15:25:21 | 显示全部楼层 |阅读模式
GrADS
系统平台:
问题截图: -
问题概况: 提取nc资料,并转为grd格式
我看过提问的智慧: 看过
自己思考时长(天): 1

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

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

x
本帖最后由 yh1223 于 2014-4-21 15:27 编辑

我从NCEP/NCAR上下了1948年至今的温度资料,想要用GrADS提取1973年至2013年每年6月至8月的数据,并处理为grd格式,这要怎么弄呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 15:54:29 | 显示全部楼层
本帖最后由 睦南道 于 2014-4-21 15:55 编辑

'sdfopen e:\....\air.mon.mean.nc'
'set gxout fwrite'
'set fwrite e:\....\air_197301_201312.grd'
'set x 1 144'
'set y 1 73'
'set z 1'
'set t 301 792'
'd air'
'reinit'
'c'

提取每年6月至8月的数据,Fortran 就可以实现
air(i,j,k)=(air(i,j,12*k+6)+air(i,j,12*k+7)+air(i,j,12*k+8))/3.0

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

新浪微博达人勋

 楼主| 发表于 2014-4-21 16:00:09 | 显示全部楼层
睦南道 发表于 2014-4-21 15:54
'sdfopen e:\....\air.mon.mean.nc'
'set gxout fwrite'
'set fwrite e:\....\air_197301_201312.grd'

有没有办法直接用GrADS提取6至8月的,而不用Fortran呢?说实话我编程很烂。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-21 16:06:37 | 显示全部楼层
睦南道 发表于 2014-4-21 15:54
'sdfopen e:\....\air.mon.mean.nc'
'set gxout fwrite'
'set fwrite e:\....\air_197301_201312.grd'

你的意思你是先把1973年到2013年所有的资料先提出来,再用Fortran提取6-8月的是吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 16:08:49 | 显示全部楼层
睦南道 发表于 2014-4-21 15:54
'sdfopen e:\....\air.mon.mean.nc'
'set gxout fwrite'
'set fwrite e:\....\air_197301_201312.grd'

gs那样写是肯定不对的,时间需要循环。至于fortran,那个是算平均而不是提取三个月吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 16:21:18 | 显示全部楼层
yh1223 发表于 2014-4-21 16:00
有没有办法直接用GrADS提取6至8月的,而不用Fortran呢?说实话我编程很烂。。。

人家连编程的语句都告诉你了。。。再怎么烂也编得出来了啊
用grads直接提取更麻烦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 16:22:12 | 显示全部楼层
lqouc 发表于 2014-4-21 16:08
gs那样写是肯定不对的,时间需要循环。至于fortran,那个是算平均而不是提取三个月吧。

就是这样写啊。。。
只有一层的数据时不需要时间循环的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-21 16:26:18 | 显示全部楼层
2009003391 发表于 2014-4-21 16:21
人家连编程的语句都告诉你了。。。再怎么烂也编得出来了啊
用grads直接提取更麻烦

编程的那个语句是求3个月平均的吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 16:33:47 | 显示全部楼层
哦 对。。我没看清
那你就这样

open(10,file='……',form='unformatted')
do t=1,41
write(10)(((air(i,j,k),i=1,144),j=1,73),k=t*12+6,t*12+8)
end do
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-21 16:37:21 | 显示全部楼层
2009003391 发表于 2014-4-21 16:33
哦 对。。我没看清
那你就这样

弱弱的问下,i和j是代表格点数的吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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