请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 450538|回复: 1118

[图形美化] 任意两点间斜剖面做法总结【利用GRADS自带函数】

  [复制链接]

新浪微博达人勋

发表于 2012-11-10 20:40:40 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 river 于 2021-9-21 21:41 编辑

   有的时候正常的经纬度剖面图不能很好地反映某个物理量的变化,需要将其沿某一不平行于经纬度的直线做剖面才能反映出其变化。这也是很多人都问的一个问题。前些日子看动力论坛上有相关的帖子,学习了一下。今天就在这儿总结一下,希望对大家有一些用处。

   其实主要就是利用grads自带的几个函数实现。用到的主要function函数如下:
collectcoll2gr 、gr2stn

其中gr2stn清风大神@mofangbao已经讲的比较清楚了,简单点儿说就是把格点的值插值到选定的经纬度上,具体见清风的帖子http://bbs.06climate.com/forum.php?mod=viewthread&tid=1780
      那另外两个函数干什么用的呢,简单说一下。collect 命令可以把站点数据和不同的时间序列的数据暂时存放在内存中作为可以调用的一个数据集,用法很简单:collect cnum expr ,cnum就是个编号,为0-31之间任意一个值,expr就是grads中任意一个表达或者表达式。
   coll2gr就是将collect在内存中的站点数据集转化成格点数据。
    上面这两个函数的解释和用法是我自己的理解。还有很多注意事项什么的,这里不细说,有兴趣的就看这个附件吧 用到的几个grads命令的说明.docx (19.13 KB, 下载次数: 1028)

评分

参与人数 14威望 +7 金钱 +169 贡献 +45 体力 +160 收起 理由
wjkhaida + 2 很给力!
爱喝柠檬汁 + 10 + 2 赞一个!
咏咏 + 2 很给力!
blacktupid + 2 很给力!
dlgyz + 8 + 2 赞一个!
morer + 2 很给力!
mikado + 10 + 1 很给力!
传说中的谁 + 4 + 25 + 11 + 120
做个霸气的木头 + 22 + 6 + 40 很给力!
尽头的尽头 + 14 + 4
善人/jw + 22 + 8
njzqxt + 10 + 1 赞一个!
mofangbao + 3 + 20 + 8
Aires + 20 + 2 很给力!

查看全部评分

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

新浪微博达人勋

发表于 2013-11-23 14:35:06 | 显示全部楼层

谢谢@river  !问题解决了,只有等压面上的资料可以用-u,若等高面上的资料则需要改为所用等高面的层数,比如此处的26 。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-7 17:33:52 | 显示全部楼层
没什么技术含量,给有这方面疑问的提供个方便。
QQ截图20150507173100.png

评分

参与人数 1金钱 +10 贡献 +2 收起 理由
river + 10 + 2 很给力!

查看全部评分

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

使用道具 举报

新浪微博达人勋

发表于 2020-9-23 16:36:03 | 显示全部楼层

后面没敢弄地形的弄了一个斜剖,感觉画出来的图不完全,也不知道是什么原因,画MPV1的时候时能画出来的
'reinit'
'open L:\DZQDL\2014datafiles\fnl_2014.ctl'
i=1
while (i<=31)
'set t 'i''
'set lon 80 120'
'set lat 10 40'
'set z 1 21'
'define tmpz=TMPprs'
'define rhz=RHprs'
'define prsz=lev'
'define esz=(6.112*exp(17.67*(tmpz-273.15)/(tmpz-29.65)))'
'define qz=rhz*(0.62197*esz/(prsz-esz))/100.'
'define ez=prsz*qz/(0.62197+qz)+1e-10'
'define tlclz=55.0+2840.0/(3.5*log(tmpz)-log(ez)-4.805)'
'define thetaz=tmpz*pow((1000/prsz),(0.2854*(1.0-0.28*qz)))'
'define eqtz=thetaz*exp(((3376./tlclz)-2.54)*qz*(1.0+0.81*qz))'
'define dtx=cdiff(eqtz,x)'
'define dty=cdiff(eqtz,y)'
'define dx=cdiff(lon,x)*3.1416/180*cos(lat*3.1416/180)*6.371e6'
'define dy=cdiff(lat,y)*3.1416/180*6.371e6'
'define vy=VGRDprs'
'define uy=UGRDprs'

'define eqtxy=eqtz(z-1)-eqtz(z+1)'
'define vxy=vy(z-1)-vy(z+1)'
'define uxy=uy(z-1)-uy(z+1)'

'define dp=10000'
'define mp1=-9.8*absvprs*eqtxy/dp'
'define mp2=9.8*((vxy/dp)*(dtx/dx)-(uxy/dp)*(dty/dy))'
'define mp=mp1+mp2'
'define mpv=mp*1E6'
'define mpv1=mp1*1E6'
'define mpv2=mp2*1E6'

'set x 1'
'set y 1'
'set z 1 21'
lon1 = 96.0
lon2 = 108.0
lat1 = 21.5
lat2 = 28.6
lon3 = 101.12
lon4 = 102.04
lat3 = 26.64
lat4 = 25.09
lon = lon1
'collect 1 free'
while (lon <= lon2)
  ratio1 = (lat4-lat3)/ (lon4-lon3)
  ratio2 = -1/ratio1
  lat = lat4 + ratio2*(lon-lon4)
  'collect 1 gr2stn(mpv2,'lon','lat')'
  lon = lon + 1
endwhile

'set grads off'
'set zlog on'
'set grid off'
'set lon 96 108'
'set z 1 21'
'set ylab off'
'set xlab off'
'set csmooth on'
'set ylab on'
'set xlab on'
'set csmooth on'
*'set ylevs 1000 925 850 700 600 500 400 300 200 100'
'set xlabs 22N,96E|23N,99E|25N,102E|27N,105E|29N,108E'
'set csmooth on'
'set gxout stream'
'set ccolor 1'
'set clab on'
'd coll2gr(1,-u)'
'q dim'
it=sublin(result,5)
it=subwrd(it,6)
'draw title 'it' along (22N,96E) to (29N,108E)'
'printim L:\DZQDL\2014datafiles\mpv2_xpou\fnl_mpv2-xpou4_'it'.png white'
'c'
i=i+1
endwhile
'disable gxprint'
*


fnl_mpv2-xpou4_00Z10JUN2014.png
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-1 21:50:25 | 显示全部楼层
--惊鸿- 发表于 2020-3-1 18:47
啊啊啊啊把-u改成40一下子就出图了!可以了!
太感谢您了,这个斜剖面图困扰了我好久,真的太谢谢你的指 ...

没事儿多去GrADS官网逛逛,了解了解命令和和函数的用法,说不准就不要困扰喇嘛久了
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-12-30 13:46:37 | 显示全部楼层

不好意思,年底很忙。我没时间给你一一解释你问的这些问题。这些都是基本知识,你应该直接去看书和官方文档······
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2012-11-10 21:57:13 | 显示全部楼层
晚晴山 发表于 2012-11-10 21:41
你为何不把orog.ctl传上来~~~~

这个论坛的资料站有下载哦
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-11-28 22:53:16 | 显示全部楼层
海蓝蓝 发表于 2014-11-28 12:47
把1000 925 ··· 500 ··· 10的图按照高度放起来,得到的三维数据不就是等压面的位势高度吗?
可是 ...

http://bbs.06climate.com/forum.php?mod=viewthread&tid=2663 来自luoziwuhui的贴子。我画了其中topo10.ctl所对应的数据,应该就是下垫面地形的高度。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2012-11-10 20:51:43 | 显示全部楼层
先赞一个再看   
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-10 21:30:32 | 显示全部楼层
神帖子!鉴定完毕!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-10 21:34:37 | 显示全部楼层
恩,不错,我很喜欢~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-10 21:41:00 | 显示全部楼层
你为何不把orog.ctl传上来~~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-10 22:19:50 | 显示全部楼层
river 发表于 2012-11-10 21:57
这个论坛的资料站有下载哦

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

新浪微博达人勋

发表于 2012-11-10 22:24:16 | 显示全部楼层
好~~~~~~~~~~~~~~~~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-11-10 22:26:37 | 显示全部楼层
真的不错!会成为经典的!

点评

RP太高了= = 我最近老是衰神……  发表于 2012-11-10 23:14
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-11-10 22:29:59 | 显示全部楼层
mofangbao 发表于 2012-11-10 22:26
真的不错!会成为经典的!

还好你帮我移过来了,太感激了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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