爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4834|回复: 3

[脚本编辑] grads将多个nc文件处理并写入一个grb文件,出图明显错误,说明grb里面的数据有错误...

[复制链接]

新浪微博达人勋

发表于 2018-4-24 13:25:43 | 显示全部楼层 |阅读模式

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

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

x
将三个时间连续的月平均pdsi数据nc文件处理成年平均数据并写入grb文件中。
gs 如下:
  1. 'reinit'
  2. 'set gxout fwrite'
  3. 'set fwrite d:/matlabht/pdsi/pdsi1901-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. tt=13
  9. while(tt<600)
  10.     'set lon 70 140'
  11.     'set lat 10 60'
  12.     'set lev 0'
  13.     'set t 'tt''
  14.     'd ave(pdsi,t='tt',t='tt'+11)'
  15.     tt=tt+12
  16. endwhile

  17. 'set dfile 2'
  18. tt=1
  19. while(tt<600)
  20.     'set lon 70 140'
  21.     'set lat 10 60'
  22.     'set lev 0'
  23.     if(tt=1)
  24.         'set t 'tt''
  25.         'd ave(pdsi,t='tt',t='tt'+11)'
  26.         tt=tt+12
  27.     else if(tt>12)
  28.         'set t 'tt''
  29.         'd ave(pdsi,t='tt',t='tt'+11)'
  30.         tt=tt+12
  31.     endif
  32. endwhile

  33. 'set dfile 3'
  34. tt=1
  35. while(tt<180)
  36.     'set lon 70 140'
  37.     'set lat 10 60'
  38.     'set lev 0'
  39.     if(tt=1)
  40.         'set t 'tt''
  41.         'd ave(pdsi,t='tt',t='tt'+11)'
  42.         tt=tt+12
  43.     else if(tt>12)
  44.         'set t 'tt''
  45.         'd ave(pdsi,t='tt',t='tt'+11)'
  46.         tt=tt+12
  47.     endif
  48. endwhile
  49. 'disable fwrite'
  50. ;
复制代码
运行之后成功写生成grb文件,ctl文件如下:
dset d:\matlabht\pdsi\pdsi1901-2014.grd
undef -99999
title  1991-2014 annual average sc_PDSI
xdef 141 linear 70 0.5
ydef 101 linear 10 0.5
zdef 1   linear 0 1
tdef 114 linear 00Z01JAN1901 1yr
vars  1
pdsi  0 99  Annual Self-calibrated Palmer Drought Severity Index
endvars

打开grads,open .ctl文件顺利,说明描述文件是正确的。
编写如下脚本用ctl文件画图,counterline数值明显有误,分析应该是grb生成的数据有误,正常的数据范围应该是-4—4左右。
  1. 'reinit'
  2. 'open D:\matlabht\pdsi\pdsi1901-2014.ctl'
  3. 'set mpdset cnbasemap'
  4. 'set lon 70 140'
  5. 'set lat 10 60'
  6. 'set lev 0'
  7. 'set grads off'
  8. 'set gxout shaded'
  9. 'set grid off'
  10. 'cnbasemap ave(pdsi,t=1,t=114)'
  11. 'cbarn'
  12. 'run southsea.gs'
  13. 'printim D:\matlabht\tp\pdsi000.png white'
  14. pull dummy
  15. 'c'
复制代码



counterline数值错误图片

counterline数值错误图片
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-25 22:30:28 | 显示全部楼层
错误已经找到,是ctl的问题,undef -99999改为-9.99e+8
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-26 12:42:21 | 显示全部楼层
好帖子,学习到了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-26 15:08:37 | 显示全部楼层
旺旺小小酥 发表于 2018-4-26 12:42
好帖子,学习到了!

哈哈,对我来说也是学习的过程,是在逛别人帖子的时候发现的。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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