爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3502|回复: 7

[分享资料] 关于gs读写dat的问题【已解决】

[复制链接]

新浪微博达人勋

发表于 2014-4-4 20:16:44 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 希尔博拉斯 于 2014-4-5 15:12 编辑

    小白想问一个问题,用gs把nc或者dat写到另一个dat里面的时候,似乎只能写三维的数据,写了经纬度跟时间就没法写多层次,请问这种情况是不是只能用fortran去解决?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-4 20:21:12 | 显示全部楼层
显然fwrite可以输出五维。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-4 20:24:41 | 显示全部楼层
lqouc 发表于 2014-4-4 20:21
显然fwrite可以输出五维。

真的啊。。为毛我每次写时间经纬度层次的数据会出错,而只要一个经度或者一个层次就没问题啊。。。
'reinit'
'set gxout fwrite'
'sdfopen f:\data\omega.mon.mean.nc'
'set fwrite f:\wind\wnd\wnd4.dat'



'set x 1 144'
'set z 1 12'
'set y 1 73'

i=0
while(i<=64)

'define a=ave(omega,t='12+i*12',t='14+12*i)'
'd a'
i=i+1
endwhile
'disable fwrite'

这样是可以的吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-4 20:28:12 | 显示全部楼层
希尔博拉斯 发表于 2014-4-4 20:24
真的啊。。为毛我每次写时间经纬度层次的数据会出错,而只要一个经度或者一个层次就没问题啊。 ...

不可以,垂直空间要单独循环,至于为什么,你要搞清楚grads的存储方式。一个x*y可以是一个最大的记录,所以输出的时候,x和y可以循环也可以不用循环,但是z,t,var必须循环。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-4 20:40:39 | 显示全部楼层
举个例子:
'reinit'
'open e:\air\air.1983.nc'
'set gxout fwrite'
'set fwrite e:\air\air.dat'
'set x 1 144'
'set y 1 73'
id=1
while(id<=365)
'set t 'id''
llev=1
while(llev<=12)
'set z 'llev''
'd air'
llev=llev+1
endwhile
id=id+1
endwhile

'disable fwrite'
'reinit'
;

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

新浪微博达人勋

 楼主| 发表于 2014-4-5 11:35:55 | 显示全部楼层
lqouc 发表于 2014-4-4 20:28
不可以,垂直空间要单独循环,至于为什么,你要搞清楚grads的存储方式。一个x*y可以是一个最大的记录,所 ...

哦。这样啊,好的,谢谢了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-5 11:36:10 | 显示全部楼层
边缘人糊涂乐 发表于 2014-4-4 20:40
举个例子:
'reinit'
'open e:\air\air.1983.nc'

懂了。谢谢啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-12 20:47:23 | 显示全部楼层
最近在处理多层次的海温一直出错,非常感谢!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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