爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5856|回复: 5

[分享资料] 关于grads2ascii功能的一个输出改进

[复制链接]

新浪微博达人勋

发表于 2017-6-5 14:37:38 | 显示全部楼层 |阅读模式

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

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

x

       最近在处理ecwmf的全球数据,下了38年的月数据,十几个变量,数据格式是nc。下载之后都是用grads2ascii转化为txt格式再继续用c语言进行下一步处理。结果,我被转出来的TXT文件里的“Printing Grid -- 10512 Values -- Undef = -9.99e+08”难住了。通过测试我发现“Printing Grid -- 10512 Values -- Undef = -9.99e+08”应该是nc数据里自带的,在每一个domain的第一行。       尝试在c语言程序里读数据时把这句读出来失败了,怪我c语言也不是很精通了。对grads编程也是小白,尝试改grads2ascii源码失败,只好把每个txt里的这句话手动删除,每个txt要删除38*12次,特别费时间。
       所幸后来程序员GG学了一下grads帮我改了,就加了一句话就搞定了,分享给需要的童鞋。只改动了下文中红色部分,原理是每次进行行数对74求余,如果余数是0,则写入数据时跳过这一行。缺点是每次需要根据具体情况改“74”这个参数。我是用的ecmwf数据,2.5°*2.5°,是144行*73列,所以是每74行跳过一行。
*--从第二行开始把数据写入ASCII文件中--

   say ' ------------------------------------------- '
   if(NorA='a')
       say ' Data will append to 'filename'!'
   else
       say ' Data will cover the file: 'filename'!'  
   endif
   say ' ------------------------------------------- '

   i = 2; line = sublin(temp,i)
   while(line !='')
       rc = write(filename,line,append)
       if (subwrd(rc,1) !=0); return -2; endif   
       fmod = math_fmod(i,74)
       if(fmod=0);i=i+1;endif   
       i = i + 1
       line = sublin(temp,i)
   endwhile



grads2ascii.gs

4.68 KB, 下载次数: 29, 下载积分: 金钱 -5

评分

参与人数 1金钱 +12 贡献 +3 收起 理由
mofangbao + 12 + 3

查看全部评分

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

新浪微博达人勋

 成长值: 19710
发表于 2017-6-5 22:40:24 | 显示全部楼层
一般不会出现你这样的问题,除非真的版本或者电脑的差异,不过为了使脚本更加robust,我稍微改动了下,你可以测试下~http://bbs.06climate.com/forum.p ... mp;extra=#pid120349
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-6 09:09:52 | 显示全部楼层
兰溪之水 发表于 2017-6-5 22:40
一般不会出现你这样的问题,除非真的版本或者电脑的差异,不过为了使脚本更加robust,我稍微改动了下,你可 ...

我用的是第二版…我也不知道是什么问题,第一版的时候确实不会有这个问题,但是第二版就这样了,也有可能是电脑的问题,换了个性能比较好的电脑
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-8-18 19:08:48 | 显示全部楼层
{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2019-6-11 19:34:50 | 显示全部楼层
请问这样转换出来的数组是一维的吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-2-27 19:18:46 | 显示全部楼层
谢谢分享!!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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