爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8675|回复: 9

[分享资料] 关于将多个dat文件的变量合成到一个dat文件

[复制链接]
发表于 2013-11-25 18:08:15 | 显示全部楼层 |阅读模式

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

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

x
最近在自学grads。做到一个风场的实验,具体如代码'reinit''open d:\grads\13\uwnd-mon'
'open d:\grads\13\vwnd-mon'
'set gxout fwrite'
'set fwrite d:\grads\13\jiaxin.dat'
t=12
  'set x 1 144'
  'set y 1 73'
  'set z 1'
  'define a=ave(uwnd,t=12,t=23)'
  'set dfile 2'
  'set x 1 144'
  'set y 1 73'
  'set z 1'
  'define b=ave(vwnd,t=12,t=23)'
while(t<=23)
  'set dfile 1'
  'set x 1 144'
  'set y 1 73'
  'set z 1'
  'set t ' t
  'd uwnd-a'
  'set dfile 2'
  'set x 1 144'
  'set y 1 73'
  'set z 1'
  'set t ' t
  'd vwnd-b'
  t=t+1
endwhile
'disable fwrite'
我的目的是将u、v风场的年据平资料写入一个dat文件,但是我这样写后用ctl描述如下:
DSET  d:\grads\13\jiaxin.dat
TITLE 1958
UNDEF  9.999E+20
XDEF   144   LINEAR  0   2.5
YDEF    73   LINEAR  -90 2.5
ZDEF    1  levels 1000
TDEF  12  linear jan1958 1mo
VARS  1
uwnd      1  99 ** air temperature: [K]
vwnd      1  99 ** air temperature: [K]
ENDVARS
然后提示vwnd变量不存在。 然后我把时间的12设置为24文件可以正常读取,我意识到u、v变量被当成一个变量写入了dat文件。于是我的问题是,为达到我的目的,即将u、v变量区分开,我的gs文件该如何修改?  谢谢各位大大了,我是按照xyz变量t的顺序写的文件,为什么不可以呢。。


密码修改失败请联系微信:mofangbao
发表于 2013-11-25 18:43:48 | 显示全部楼层
当然不存在了,你的ctl里面只声明了一个变量好吧。注意细节啊。
另外直接在变量后面注明文件号就好了,dfile什么的去掉吧。
还有啊,空间维set一遍就好了,不要写那么多,本来就几行的事情写这一大堆。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-25 18:52:43 | 显示全部楼层

奥不好意思,我前面是加了两个变量也不行的。。。这个一个变量是我把t变成24时候测试用的。。忘记改了,不好意思     总之这个程序没把u,v区分开,而我不知道问题在哪呢。。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-25 18:54:50 | 显示全部楼层
lqouc 发表于 2013-11-25 18:43
当然不存在了,你的ctl里面只声明了一个变量好吧。注意细节啊。
另外直接在变量后面注明文件号就好了,dfi ...

奥,对不起,我发现问题所在了。谢谢您的提醒,是小弟粗心了 vars写了1  。  谢谢你的提醒,我一定继续努力学习并和同学推广论坛
密码修改失败请联系微信:mofangbao
发表于 2013-11-25 19:44:42 | 显示全部楼层
雪お轩漠 发表于 2013-11-25 18:54
奥,对不起,我发现问题所在了。谢谢您的提醒,是小弟粗心了 vars写了1  。  谢谢你的提醒,我一定继续努 ...

不用客气哈,共同学习,欢迎常来~
密码修改失败请联系微信:mofangbao
发表于 2013-11-25 19:50:39 | 显示全部楼层
grads读取文件时是不知道你有几个变量的,你把ctl中写成4个变量也行。只要总字节数能对应上就行了,即:
NX*NY*NZ*NT*VARs=常数,随便你在里面怎么定义NX,NY、VARs
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-25 20:04:45 | 显示全部楼层
zzl 发表于 2013-11-25 19:50
grads读取文件时是不知道你有几个变量的,你把ctl中写成4个变量也行。只要总字节数能对应上就行了,即:
N ...

恩,谢谢你,通过这次的教训和实践我大致体会到一点数据的排列结构了。 数据好像是依次排下来的。根据用户定义的xyz变量t来读取相应的文件。   这点似乎和站点数据转换成的dat文件结构有些区别? 因为站点文件写成的dat似乎不同变量也是在同一行用空格的形式表出的。  而这次的风场数据似乎是按顺序依次排列,不同的定义方法就有不同的读法。  这里涉及到dat文件的数据排列的问题,看来我还得仔细研究下这个问题才行。  谢谢提醒
密码修改失败请联系微信:mofangbao
发表于 2013-11-26 09:12:33 | 显示全部楼层
有用,学习了
密码修改失败请联系微信:mofangbao
发表于 2017-4-18 13:42:27 | 显示全部楼层
有用,学习了
密码修改失败请联系微信:mofangbao
发表于 2017-10-11 12:03:26 | 显示全部楼层
grads里的排列应该是这样的
i = 1
while(i<=xx)
    'set t 'i   

    j = 1
    while(j<=xx)
    'set z 'j  
    'd a'    j=j+1
    endwhile

    j = 1
    while(j<=xx)
    'set z 'j  
    'd b'
    j=j+1
    endwhile

i=i+1
endwhile

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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