爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4832|回复: 4

Grads多个时次循环输出数据到同一个文件,只有第一个时次数据能正常作图

[复制链接]

新浪微博达人勋

发表于 2020-6-5 21:40:13 | 显示全部楼层 |阅读模式
GrADS
系统平台:
问题截图: -
问题概况: grads读取nc数据,多个时次循环计算整层水汽通量,并输出到同一个文件,只有第一个时次数据能正常作图,后几个时次数据有问题
我看过提问的智慧: 看过
自己思考时长(天): 1

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

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

x
grads读取nc数据,计算整层水汽通量积分,多个时次循环并输出到同一个文件出现问题
1、首先,附上数据ctl:
1.png
2、然后,计算整层水汽通量,垂直层次选取1000hPa-100hPa,挑选11个时次,输出每个时次选定区域的整层水汽通量积分,为grd格式,gs文件如下:
  1. 'reinit'
  2. 'sdfopen h:\ecmwf_typhoon\200806.nc'

  3. 'set lat 15 30'
  4. 'set lon 105 125'
  5. 'set z 1'
  6. 'set t 101 111'

  7. 'define e=exp(17.67*(t-273.15)/(t-29.65))*(r/100)*6.112'
  8. 'define q=0.622*e/(lev-0.378*e)'
  9. 'define qu=u*q/9.8'
  10. 'define qv=v*q/9.8'
  11. 'define quall=vint(z(z=1),qu,100)'
  12. 'define qvall=vint(z(z=1),qv,100)'

  13. 'set fwrite h:\ecmwf_typhoon\quvall.grd'
  14. 'set gxout fwrite'
  15. 'set lat 15 30'
  16. 'set lon 105 125'   

  17. t1=101
  18. while(t1<=111)
  19.     'set t 't1''
  20.     'set z 1'
  21.     'd quall'
  22.     'd qvall'  
  23.     t1=t1+1
  24. endwhile
  25.    
  26. 'disable fwrite'
  27. ;
复制代码
3、运行gs文件没有报错,为grd文件写ctl文件如下:
2.png
4、‘set t 1’,'d quall'能正常出图,但是t=2,……11出图都有问题。
4.png
3.png
5、排查代码问题,一开始怀疑是多时次循环数据写入文件字段有问题,尝试循环输出其他变量(气温),该段代码更改如下:
  1. t1=101
  2. while(t1<=111)
  3.     'set t 't1''
  4.     'set z 1'
  5.     'd t'
  6.     t1=t1+1
  7. endwhile
复制代码
发现气温能够正常输出并作图,证明该段代码没有错误,ctl描述文件也没问题。
6、然后猜测可能是整层水汽通量积分计算方法有问题,尝试逐时次输出整层水汽通量的分布图,代码更改如下:
  1. t1=101
  2. while(t1<=111)
  3.     'set t 't1''
  4.     'set z 1'
  5.     'set gxout contour'
  6.     'd quall'
  7.     'd qvall'  
  8.     'printim h:\ecmwf_typhoon\'%t1%'.png white'
  9.     'c'
  10.     t1=t1+1
  11. endwhile
复制代码
发现每个时次均可以正常出图,证明计算方法代码也没有错: 5.png
求问各位大神,gs文件怎样修改才能每个时次的数据都能输出并正常作图??


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

新浪微博达人勋

发表于 2020-6-6 13:42:05 | 显示全部楼层
ctl缺测设为-9.99+08试试
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-6-6 23:51:59 | 显示全部楼层
本帖最后由 river 于 2020-6-6 23:58 编辑
  1. 'reinit'
  2. 'sdfopen h:\ecmwf_typhoon\200806.nc'

  3. 'set gxout fwrite'
  4. 'set fwrite h:\ecmwf_typhoon\quvall.grd'
  5. 'set lat 15 30'
  6. 'set lon 105 125'   

  7. t1=101
  8. while(t1<=111)
  9.     'set t 't1''
  10.     'set z 1'
  11. 'define e=exp(17.67*(t-273.15)/(t-29.65))*(r/100)*6.112'
  12. 'define q=0.622*e/(lev-0.378*e)'
  13. 'define qu=u*q/9.8'
  14. 'define qv=v*q/9.8'
  15. 'define quall=vint(z(z=1),qu,100)'
  16. 'define qvall=vint(z(z=1),qv,100)'
  17. 'd  quall'
  18. 'd  qvall'
  19.     t1=t1+1
  20. endwhile
  21.    
  22. 'disable fwrite'
  23. ;


复制代码

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-6-7 09:29:15 | 显示全部楼层
苏拉苏拉 发表于 2020-6-6 13:42
ctl缺测设为-9.99+08试试

可以了!台风中心的整层水汽通量积分存在极值中心,一开始忽略了这点。谢谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-6-7 09:31:36 | 显示全部楼层

问题已经解决了,谢谢您
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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