爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 44895|回复: 11

[图形美化] grads绘图直接绘制假相当位温和逐层提取后在绘制图不一样,麻烦帮找下原因

[复制链接]

新浪微博达人勋

发表于 2021-1-22 19:59:16 | 显示全部楼层 |阅读模式
10金钱
*画相当位温相关图
'reinit'
********************************************* data ***
'open E:\taifeng\ctl\fnl_20200903_06_00.ctl'
'set grads off'
'set grid off'
'set timelab off'
'set lat 10 70'
'set lon 50 160'
'set lev 1000'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'define th=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define the=th*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'set grads off'
'set grid off'
'set gxout contour'
'set ccolor 1'
'set csmooth on'
'set cthick 7'
'd the'
'printim E:\taifeng\pic\thse1000.png white'
;
下面这个是论坛绘制湿位涡的一部分
'reinit'
'set gxout fwrite'
********************************************* data ***
'open E:\taifeng\ctl\fnl_20200903_06_00.ctl'
'set fwrite E:\taifeng\thse.dat'
*i=925
*while(i<=977)
'set lon 50 160'
'set lat 10 70'
*'set t 'i''
'set lev 1000'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 925'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 850'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 700'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 600'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 500'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 400'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
'set lev 300'
'define prs=lev'
'define e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
'define es=6.112*exp(e1)'
'define qs=(0.62197*es/(prs-0.378*es))/100'
'define shum=rhprs*qs'
'define e=prs*shum/(0.62197+shum)'
'define tk=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'undefine e'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*shum)))'
'define thse=theta*exp(((3376/tk)-2.54)*shum*((1.0+0.81*shum)))'
'd thse'
   j=1
   while(j<=8)
   'set lon 50 160'
   'set lat 10 70'
* 'set t 'i''
   'set z 'j''
   'd ugrdprs'
    j=j+1
    endwhile
    j=1
   while(j<=8)
   'set lon 50 160'
   'set lat 10 70'
*   'set t 'i''
   'set z 'j''
   'd vgrdprs'
    j=j+1
    endwhile
*i=i+1
*endwhile
'disable fwrite'
'reinit'

之后写的ctl绘制
DSET E:\taifeng\thse.dat
TITLE Upper Data
undef -9.99E33
xdef 45 linear 50 2.5
ydef 25 linear 10 2.5
zdef 8 levels 1000 925 850 700 600 500 400 300
tdef 1 linear 0z20Aug2020 6hr
vars 3
thse 8 99 temps
ugrdprs 8 99 u-wind
vgrdprs 8 99 v-wind
Endvars
绘制图

'reinit'

'open E:\taifeng\gs\tfgs\shiweiwo\thse.ctl'
'set lat 10 70'
'set lon 50 160'
'set lev 1000'
'set gxout contour'
'set csmooth on'
'set cthick 7'
'd thse'


'printim E:\taifeng\pic\thse100.png white'


thse100.png
thse1000.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2021-1-24 12:24:55 | 显示全部楼层
一起研究下啊{:5_235:}{:5_235:}{:5_235:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-1-25 13:40:56 | 显示全部楼层
fnl是2.5的分辨率吗?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-1-28 22:04:37 | 显示全部楼层
太长就不检查每行代码了,话说算假相当位温用ept这个内置函数就好了啊
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-11-7 23:21:29 | 显示全部楼层
e1=17.67*(TMPprs-273.15)/(TMPprs-29.65)'
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-11-27 21:11:24 | 显示全部楼层
伽蓝鸟 发表于 2021-1-28 22:04
太长就不检查每行代码了,话说算假相当位温用ept这个内置函数就好了啊

哪有eqt ?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-11-28 11:21:01 | 显示全部楼层

首先,是ept不是eqt。其次,这是个内置函数,算相当位温的。相当位温跟假相当位温非常接近,几乎可以视为等同的。
ept(T,RH,P)
This function computes the equivalent potential temperature in Kelvin given the Temperature T in Kelvin, the relative humidity RH in percent, and the pressure P in hPa.
直接调用就行了,不用整那么多行代码
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-11-28 11:58:19 | 显示全部楼层
伽蓝鸟 发表于 2021-11-28 11:21
首先,是ept不是eqt。其次,这是个内置函数,算相当位温的。相当位温跟假相当位温非常接近,几乎可以视为 ...

哦哦,,好哒~ 我去看看,3Q
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-12-8 23:10:36 | 显示全部楼层
伽蓝鸟 发表于 2021-11-28 11:21
首先,是ept不是eqt。其次,这是个内置函数,算相当位温的。相当位温跟假相当位温非常接近,几乎可以视为 ...

内置函数我run了一下,跟计算出来的确实相差不大~ 请问大佬,grads有些什么内置函数去哪里可以看到?我在官网的index似乎没有找到ept
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-12-9 07:53:26 | 显示全部楼层
puck66 发表于 2021-12-8 23:10
内置函数我run了一下,跟计算出来的确实相差不大~ 请问大佬,grads有些什么内置函数去哪里可以看到?我在 ...

看你GrADS安装在了哪里,\opengrads2.1\Contents\Resources\Documentation\opengrads\doc\udxt
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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