爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 21076|回复: 10

[作图] 使用ncl画垂直廓线、垂直剖面图

[复制链接]

新浪微博达人勋

发表于 2019-8-5 08:56:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 mozhiting 于 2019-8-5 09:01 编辑

首先需要分清两个概念,一个是垂直剖(pōu)面,英语上表达为section。另外还有垂直廓线,英语对应profile。
图1 垂直剖面图。
1、垂直剖面图
对于像左边的这张图,由等值线图和矢量图两张图叠加而成。一般将等值线图设为底图,使用专门画垂直剖面的函数来画。
base = gsn_csm_pres_hgt(wks,C,resC)
矢量图用一般的函数即可:
plot = gsn_csm_vector(wks,yy,zz,resV)
另外还有一个函数,可以同时把等值线图和矢量图画下来:
base =gsn_csm_pres_hgt_vector(wks,C,yy,zz,resV)
画图效果如下,调一调,与使用两个函数差别倒也不大。

下面详细介绍第一个函数:gsn_csm_pres_hgt(wks,C,resC)
可以看到,这个函数需要三个参数。第一个参数为前面已经生成的工作台(wks=gsn_open_wks(“png”,“test”)),第二个参数为需要画的二维变量,第三个参数为画图设置。
对于画图的变量C,有一定的要求:最左边的维度(0维)为一维坐标向量,存储气压值。画图的时候,函数会检查其单位,只有为以下单位,才能正常画图:
hPa,hpa,Pa,pa,mb,millibars,etc
如果为Pa,会在画图过程中自动转化为hPa。
这就提醒我们只是二维变量还不行,需要带有元数据,且第一维的坐标信息为带有单位的气压。
相对于0维的要求,另一维就随意多了,可以为纬度、经度、时间或其他。
另外还需注意的是,左边的Y轴会被标记对数压力值,右边的Y轴则为高度值。高度是将大气视为标准大气,根据气压值算出来的。
可以通过gsnPresHgtHeightLabelOn = False 来关掉右边的height标签。
关掉以后清爽多了。
2、垂直廓线图
垂直廓线图就比较简单了,只要使用一般的画xy的函数:
base = gsn_csm_xy(wks,y,z,res)
注意这里要颠倒一下。
比如在1000hPa,对应的数值为1,925hPa对应的是4,完整的序列为:
y(1,4,3,6,7),z(1000,925,850,700,200),要先把y放前面,另外还应注意把垂直坐标调整一下就行了。
注意这里trYReverse将y坐标转换了一下,非常关键。因为XY画图默认就是从小到大画,但是垂直廓线下面气压大于上面气压。
不知道为什么图显示不出来。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-8-5 09:00:08 | 显示全部楼层
赞!很有用~谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-8-5 09:02:18 | 显示全部楼层
图好像显示不出来,有需要的,欢迎讨论哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-19 11:00:55 | 显示全部楼层
我用gsn_csm_contour画出来的垂直剖面图,也许是因为我画的是填色图
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-19 16:39:02 | 显示全部楼层
lixin丶 发表于 2019-9-19 11:00
我用gsn_csm_contour画出来的垂直剖面图,也许是因为我画的是填色图

嗯嗯,这个是画二维图的通用函数吧。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-4 23:59:42 | 显示全部楼层
???图像呢
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-5 09:05:26 | 显示全部楼层

图不知道为啥不能正常显示。具体有什么问题,可以提出来我们讨论哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-5-25 09:46:54 | 显示全部楼层
您好,我想请问一下,如果用这个函数gsn_csm_pres_hgt的话 最左边的维度(0维)不是以hPa,hpa,Pa,pa,mb,millibars,etc为单位的话怎么办呢怎么能转换成以上的单位呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-5-25 22:50:40 | 显示全部楼层
whhh昊 发表于 2021-5-25 09:46
您好,我想请问一下,如果用这个函数gsn_csm_pres_hgt的话 最左边的维度(0维)不是以hPa,hpa,Pa,pa,mb,mil ...

数据是气压,但就是单位不是气压的单位?如果是这种情况就给d第0维一个单位的属性就行了,不过具体是Pa还是hPa需要看你的数据到底是啥。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-5-29 09:59:56 | 显示全部楼层
mozhiting 发表于 2021-5-25 22:50
数据是气压,但就是单位不是气压的单位?如果是这种情况就给d第0维一个单位的属性就行了,不过具体是Pa还 ...

非常感谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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