爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7635|回复: 23

[分享资料] 计算画图和提取结果出图不一致

[复制链接]

新浪微博达人勋

发表于 2013-11-20 17:19:31 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 紫雨微澜 于 2013-11-23 21:59 编辑

已解决!~
感谢各位提点~
计算直接出图和计算提出结果出图为什么结果差这么多?哪位大侠指教一下首先,是计算假相当位温直接出图,图和GS如下。
'reinit'
'sdfopen I:\daily\air.1979.nc'
'sdfopen I:\daily\rhum.1979.nc'
'set display color white'
'c'
'set xlopts 1 8 0.25'
'set ylopts 1 8 0.25'
'set clopts 1 8 0.25'
'set lon 70 140'
'set lat 15 55'
'set t 257'
'set lev 850'
'define t0=air.1'
'define rh=rhum.2'
'define prs=lev'
'define es=(6.112*exp(17.67*(t0-273.15)/(t0-29.65)))'
'define q=rh*(0.62197*es/(prs-es))/100.'
'define e=prs*q/(0.62197+q)+1e-10'
'define tlcl=55.0+2840.0/(3.5*log(t0)-log(e)-4.805)'
'define theta=t0*pow((1000/prs),(0.2854*(1.0-0.28*q)))'
'define eqt=theta*exp(((3376./tlcl)-2.54)*q*(1.0+0.81*q))'
'define thse=eqt-273.15'

'set ccolor 1'
'set cthick 16'
'set grid off'
'set grads off'
'd thse'
'printim I:\daily\ts.png'


ts.png
其次,是计算假相当位温后先提取出来成grd,然后再画图,图和GS如下。
'reinit'

'open I:\daily\thse.ctl'
'set display color white'
'c'
'set xlopts 1 8 0.25'
'set ylopts 1 8 0.25'
'set clopts 1 8 0.25'

'set lon 70 140'
'set lat 15 55'
'set t 257'
'set lev 850'

'set ccolor 1'
'set cthick 16'
'set grid off'
'set grads off'

'd thse'
'printim I:\daily\thse-grd.png'


thse-grd.png
fwrtie假相当位温:
'reinit'
'sdfopen I:\daily\air.1979.nc'
'sdfopen I:\daily\rhum.1979.nc'
'set gxout fwrite'
'set fwrite I:\daily\thse.grd'

zz=1
  while (zz<=8)
  if zz=1   
'set lev 1000'
endif
     if zz=2   
'set lev 925'
endif
     if zz=3   
'set lev 850'  
endif
    if zz=4   
'set lev 700'
endif
     if zz=5   
'set lev 600'
endif
     if zz=6   
'set lev 500'
endif
  if zz=7   
'set lev 400'
endif
  if zz=8   
'set lev 300'
endif

    tt=1
  while (tt<=365)
'set t 'tt''

'define t0=air.1'
'define rh=rhum.2'
'define prs=lev'
'define es=(6.112*exp(17.67*(t0-273.15)/(t0-29.65)))'
'define q=rh*(0.62197*es/(prs-es))/100.'
'define e=prs*q/(0.62197+q)+1e-10'
'define tlcl=55.0+2840.0/(3.5*log(t0)-log(e)-4.805)'
'define theta=t0*pow((1000/prs),(0.2854*(1.0-0.28*q)))'
'define eqt=theta*exp(((3376./tlcl)-2.54)*q*(1.0+0.81*q))'
'define thse=eqt-273.15'
'd thse'
tt=tt+1
endwhile
zz=zz+1
endwhile

'disable fwrite'
'reinit'

@暴雨@版主  


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

新浪微博达人勋

发表于 2013-11-20 17:25:52 | 显示全部楼层
提取资料你的循环都反了吧,外循环应该是时间
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-20 17:27:55 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-20 17:34:42 | 显示全部楼层
river 发表于 2013-11-20 17:25
提取资料你的循环都反了吧,外循环应该是时间

晕,和之前上面2个图都不一样 thse-grd2.png

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

新浪微博达人勋

发表于 2013-11-20 17:45:45 | 显示全部楼层
那把你的改过的gs什么的都贴出来看看吧。
话说你在循环高度的时候有必要用那么多判断么?直接set z不就好了?这个和set lev没区别的吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-20 17:49:31 | 显示全部楼层
lqouc 发表于 2013-11-20 17:45
那把你的改过的gs什么的都贴出来看看吧。
话说你在循环高度的时候有必要用那么多判断么?直接set z不就好了 ...

因为之前是用Z的,但是计算时候pre=lev,用z结果不对,所以就用了判断
'reinit'
'sdfopen I:\daily\air.1979.nc'
'sdfopen I:\daily\rhum.1979.nc'
'set gxout fwrite'
'set fwrite I:\daily\thse2.grd'

    tt=1
  while (tt<=365)
'set t 'tt''

zz=1
  while (zz<=8)
  if zz=1   
'set lev 1000'
endif
     if zz=2   
'set lev 925'
endif
     if zz=3   
'set lev 850'  
endif
    if zz=4   
'set lev 700'
endif
     if zz=5   
'set lev 600'
endif
     if zz=6   
'set lev 500'
endif
  if zz=7   
'set lev 400'
endif
  if zz=8   
'set lev 300'
endif
  

*'set lon 70 140'
*'set lat 15 55'

'define t0=air.1'
'define rh=rhum.2'
'define prs=lev'
'define es=(6.112*exp(17.67*(t0-273.15)/(t0-29.65)))'
'define q=rh*(0.62197*es/(prs-es))/100.'
'define e=prs*q/(0.62197+q)+1e-10'
'define tlcl=55.0+2840.0/(3.5*log(t0)-log(e)-4.805)'
'define theta=t0*pow((1000/prs),(0.2854*(1.0-0.28*q)))'
'define eqt=theta*exp(((3376./tlcl)-2.54)*q*(1.0+0.81*q))'
'define thse=eqt-273.15'
'd thse'

zz=zz+1
endwhile
tt=tt+1
endwhile

'disable fwrite'
'reinit'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-20 17:58:09 | 显示全部楼层
紫雨微澜 发表于 2013-11-20 17:27
不是外循环高度或时间都可以吗?
我改下试试

这个是grads的规定,资料排序必须那样排好吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-20 17:59:44 | 显示全部楼层
嗯嗯,看起来好像真的是没啥问题啊。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-20 18:04:39 | 显示全部楼层
lqouc 发表于 2013-11-20 17:59
嗯嗯,看起来好像真的是没啥问题啊。

难道是fwrite的对精度有影响?但也不会差这么多吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-20 18:05:26 | 显示全部楼层
river 发表于 2013-11-20 17:58
这个是grads的规定,资料排序必须那样排好吧

学习了,从来没想过这个问题
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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