请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4275|回复: 2

[脚本编辑] grads把多个nc文件写入一个grb文件中,为什么写不进去,也没显示什么错误。

[复制链接]

新浪微博达人勋

发表于 2018-4-22 18:19:31 | 显示全部楼层 |阅读模式

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

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

x
想把时间连续的三个nc文件写入一个二进制文件,(1901-2014)但运行之后没什么反应,不知道错在哪里?
代码如下,数据文件太大传不上来。
  1. 'reinit'
  2. 'set gxout fwrite'
  3. 'set fwrite D:/matlabht/pdsi/pdsi1991-2014.grb'
  4. 'sdfopen D:/matlabht/remap05x05.pdsi.mon.mean.selfcalibrated_190001-194912.nc'
  5. 'sdfopen D:/matlabht/remap05x05.pdsi.mon.mean.selfcalibrated_195001-199912.nc'
  6. 'sdfopen D:/matlabht/remap05x05.pdsi.mon.mean.selfcalibrated_200001-201412.nc'
  7. 'set x 1 720'
  8. 'set y 1 360'
  9. 'set lev 0'
  10. 'set dfile 1'
  11. 'set t 13'
  12. while('t'<601)
  13.     'd ave(pdsi,t='t',t='t'+11)'
  14.     'set t 't+1
  15. endwhile

  16. 'set dfile 2'
  17. 'set t 1'
  18. while('t'<601)
  19.     if('t'=1)
  20.         'd ave(pdsi,t='t',t='t'+12)'
  21.         'set t 't+1
  22.     else if(t>12)
  23.         'd ave(pdsi,t='t',t='t'+11)'
  24.         'set t 't+1
  25.     endif
  26. endwhile

  27. 'set dfile 3'
  28. 'set t 1'
  29. while('t'<181)
  30.     if('t'=1)
  31.         'd ave(pdsi,t='t',t='t'+12)'
  32.         'set t 't+1
  33.     else if('t'>12)
  34.         'd ave(pdsi,t='t',t='t'+11)'
  35.         'set t 't+1
  36.     endif
  37. endwhile
  38. 'disable fwrite'
  39. ;
复制代码


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

新浪微博达人勋

 楼主| 发表于 2018-4-23 16:04:58 | 显示全部楼层
问题已经解决,之前因为自己没有认真看兰溪的分享,有些细节错误,今天终于弄懂了。
code如下:
  1. 'reinit'
  2. 'set gxout fwrite'
  3. 'set fwrite d:/matlabht/pdsi/pdsi1991-2014.grd'
  4. 'sdfopen d:/matlabht/remap05x05.pdsi.mon.mean.selfcalibrated_190001-194912.nc'
  5. 'sdfopen d:/matlabht/remap05x05.pdsi.mon.mean.selfcalibrated_195001-199912.nc'
  6. 'sdfopen d:/matlabht/remap05x05.pdsi.mon.mean.selfcalibrated_200001-201412.nc'

  7. 'set dfile 1'
  8. 'set x 1 720'
  9. 'set y 1 360'
  10. 'set lev 0'
  11. tt=13
  12. while(tt<=600)
  13.     'd ave(pdsi,t='tt',t='tt'+11)'
  14.     tt=tt+12
  15. endwhile

  16. 'set dfile 2'
  17. 'set x 1 720'
  18. 'set y 1 360'
  19. 'set lev 0'
  20. tt=1
  21. while(tt<=600)
  22.     if(tt=1)
  23.         'd ave(pdsi,t='tt',t='tt'+11)'
  24.         tt=tt+12
  25.     else if(tt>12)
  26.         'd ave(pdsi,t='tt',t='tt'+11)'
  27.         tt=tt+12
  28.     endif
  29. endwhile

  30. 'set dfile 3'
  31. 'set x 1 720'
  32. 'set y 1 360'
  33. 'set lev 0'
  34. tt=1
  35. while(tt<=180)
  36.     if(tt=1)
  37.         'd ave(pdsi,t='tt',t='tt'+11)'
  38.         tt=tt+12
  39.     else if(tt>12)
  40.         'd ave(pdsi,t='tt',t='tt'+11)'
  41.         tt=tt+12
  42.     endif
  43. endwhile
  44. 'disable fwrite'
  45. ;
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-23 22:18:31 | 显示全部楼层
LemonTree007 发表于 2018-4-23 16:04
问题已经解决,之前因为自己没有认真看兰溪的分享,有些细节错误,今天终于弄懂了。
code如下:

但是出来的数据似乎有错误,因为画图时等值线数值有问题,比如-1e+..
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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