爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5413|回复: 6

[脚本编辑] 画位温沿任意点的垂直剖面图出现问题

[复制链接]

新浪微博达人勋

发表于 2014-4-20 21:20:31 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 小虹 于 2014-4-20 21:23 编辑

求教大神们,我想画假相当位温沿任意点的垂直剖面图,但是画出来是这个样子的,明显不对啊 vert1-con-theta-t25-d02.png

我的脚本如下:
'reinit'
'open F:\datest\test1\con-p-d01.ctl'


'enable print E:\wrf-3dvar\newtest1\thetase\vert1-con-theta-d01.gmf'


tt=25
while(tt<=25)

*'set parea 1 11 1 8'
'set grads off'
'set grid off'
'set xlint 2'
*'set ylint 5'
'set xlopts 1 10 0.25'
'set ylopts 1 10 0.25'
'set font 1'
'set lev 1000 400'
'define prs=lev'
'define es=(6.112*exp(17.67*(tk-273.15)/(tk-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(tk)-log(e)-4.805)'
'define theta=tk*pow((1000/prs),(0.2854*(1.0-0.28*q)))'
'define eqt=theta*exp(((3376./tlcl)-2.54)*q*(1.0+0.81*q))'

'set zlog on'
'set t 'tt
'set x 1'
'set y 1'
lon1=109
lon2=121
lat1=23.2
lat2=28.2
lon=lon1
'collect 1 free'
      while(lon<=lon2)
       lat=lat1+(lat2-lat1)*(lon-lon1)/(lon2-lon1)
       'collect 1 gr2stn(eqt,'lon','lat')'
       lon=lon+1
       endwhile
'set lon 108 120'
'set zlog on'
'set z 1 13'
'set gxout shaded'
*'D:\study\grads-i\12-color.gs'
*'set clevs 321 324 327 330 333 336 339 342 345 348 352'
*'set ccols 23 24 25 26 27 28 29 30 31 32 33 '
'd coll2gr(1,-u)'

'draw title t='tt''
'printim E:\wrf-3dvar\newtest1\thetase\vert1-con-theta-t'tt'-d02.png  x1600 y1200 white'   
'print'
'c'
tt=tt+1
endwhile
'disable print'     

;


其中画别的变量是可以画出来的,将图中红色部分改为[size=13.63636302947998px]'collect 1 gr2stn(tc,'lon','lat')' [size=13.63636302947998px]是可以出图的,但是改成假相当位温就不行了,请教大神们到底是怎么回事?
[size=13.63636302947998px]

[size=13.63636302947998px]算假相当位温的过程是没错的,沿经度或纬度的剖面图是可以做出来的,就是演任意点的剖面图出问题。

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

新浪微博达人勋

发表于 2014-4-21 08:02:18 | 显示全部楼层
gs和你的图根本对不上啊,你插值的经度是从109到121,画图设置的是109到120,但出来的图是100到110。还有前面高度设置的set lev 1000 400,画图的时候有设置成set z 1 13,从1000到400一共有13层吗? gs和fortran编程是类似的,也是需要条理清晰,前后对应的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-21 10:35:19 | 显示全部楼层
river 发表于 2014-4-21 08:02
gs和你的图根本对不上啊,你插值的经度是从109到121,画图设置的是109到120,但出来的图是100到110。还有前 ...

谢谢大神指教,是我图传错了,按照您的提示,前后设置一致,画出来了,如下 vert1-con-theta-t25-d01.png
但是还有一个问题,下面850hPa以下全是蓝色,按理说会有地形存在,应该有的地方有空白。我又画了contour图,如图
vert11-con-theta-t25-d01.png

您看下面有一个等值线的密集区,如果说0以下的是地形,那么等值线密集区的地方都是有值的,是从0-300之间,这是因为插值造成的吗?

我的gs如下:
'reinit'
'open F:\datest\test1\con-p-d01.ctl'


'enable print E:\wrf-3dvar\newtest1\thetase\vert1-con-theta-d01.gmf'


tt=25
while(tt<=25)

*'set parea 1 11 1 8'
'set grads off'
'set grid off'
'set xlint 2'
*'set ylint 5'
'set xlopts 1 10 0.25'
'set ylopts 1 10 0.25'
'set font 1'
'set lev 1000 400'
'set zlog on'
'set t 'tt

'define prs=lev'
'define es=(6.112*exp(17.67*(tk-273.15)/(tk-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(tk)-log(e)-4.805)'
'define theta=tk*pow((1000/prs),(0.2854*(1.0-0.28*q)))'
'define eqt=theta*exp(((3376./tlcl)-2.54)*q*(1.0+0.81*q))'

'set x 1'
'set y 1'
lon1=109
lon2=121
lat1=23.2
lat2=28.2
lon=lon1
'collect 1 free'
      while(lon<=lon2)
       lat=lat1+(lat2-lat1)*(lon-lon1)/(lon2-lon1)
       'collect 1 gr2stn(eqt,'lon','lat')'
       lon=lon+1
       endwhile
'set lon 109 121'
'set zlog on'
'set lev 1000 400'
'set gxout shaded'
'D:\study\grads-i\12-color.gs'
*'set clevs 320 322 324 326 328 330 332 334 336 338'
*'set ccols 23 24 25 26 27 28 29 30 31 32 33 '
'set gxout contour'
'set ccolor 2'
'set cthick 8'
'd coll2gr(1,-u)'
'D:\study\grads-i\cbarn_interp.gs 1 1 0 6.0 0.26 '
'draw title t='tt''
'printim E:\wrf-3dvar\newtest1\thetase\vert11-con-theta-t'tt'-d01.png  x1600 y1200 white'   
'print'
'c'
tt=tt+1
endwhile
'disable print'     

;

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

新浪微博达人勋

发表于 2014-4-21 14:56:22 | 显示全部楼层
小虹 发表于 2014-4-21 10:35
谢谢大神指教,是我图传错了,按照您的提示,前后设置一致,画出来了,如下
但是还有一个问题,下面850h ...

1、楼主还是仔细看看grads的基础知识吧,你的等值线图和上面的阴影图根本对不上啊,阴影是正确的话,那等值线的就是多了一个命令而已,怎么会差别这么大?
2、你说850hPa以下全是蓝色,按理说会有地形存在,应该有的地方有空白才对。grads还没有高级到可以自己判断有没有地形,地形都是自己加上去的好吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-21 19:34:25 | 显示全部楼层
river 发表于 2014-4-21 14:56
1、楼主还是仔细看看grads的基础知识吧,你的等值线图和上面的阴影图根本对不上啊,阴影是正确的话,那等 ...

1 阴影图是set clevs 了,等值线图没有set clevs,是默认出的,主要是看下面不一样。
2 我用变量计算的假相当位温,一般有地形的地方是缺测值,如果画阴影图的话应该是空白的。这里没有空白,我想是不是因为插值的原因。
谢谢您的指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 21:18:29 | 显示全部楼层
小虹 发表于 2014-4-21 19:34
1 阴影图是set clevs 了,等值线图没有set clevs,是默认出的,主要是看下面不一样。
2 我用变量计算的假 ...

哦,那就可能是插值的问题,你可以另外加地形覆盖不真实的数据
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-11-10 14:32:03 | 显示全部楼层
楼之后来的,假相当位温画出来没游,我最近也是画这个图,出现的问题类似,楼主好人,帮忙解答一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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