画ERA5气压层剖面图(含地形)
气象上一般使用气压垂直坐标系,在不同的气压层绘制变量。ERA5再分析数据的最低气压层是1000 hPa。实际上,由于地形起伏,一些位置的地面气压低于1000 hPa,一些位置的地面气压高于1000 hPa。所以,1000 hPa等压面所对应的高度位置,有时候在地面之下,有时候在地面之上。对于那些位于地面之下的数据,没有实际意义的,需要进行剔除。
那么,如何判断等压面的数据是否在地面之上,还是在地面之下呢。
常规的思维,如前所述,就是比较等压面的气压Plevel和该位置正下方地面的地面气压Psp(Surface Pressure),如果等压面气压小于地面气压(即Plevel<Psfc),则该等压面位于地面之上,该气压层的气象要素(比如温度,风速)有实际意义,若该等压面位于地面之下,则该气压层的气象要素没有实际意义。
但是,实际工作中,一般用的是海平面气压Psfc,地面气压Psp这个量一般用不到,尽管ERA5数据有这个量。所以利用气压进行地面高度判断不是很方便。
那么,有什么比较方便的办法呢?使用位势/位势高度进行比较。这是因为观测气压比测量高度更加方便,并且气压一般是随高度递减的,气压和高度一一对应。这也就说明了,气象上通常不画不同高度上的等压线,而画不同等压面的上的等位势/位势高度线。
如何比较呢,可以通过比较不同气压层上某点对应的位势Z和该位置对应的地面的位势Zsfc,可以判断该等压面是否在地面之上。若Z>Zsfc,则位于地面上,Z<Zsfc,则位于地面下。
这里以GrADS软件,ERA5再分析数据为例,讲如何绘制带地形覆盖的剖面图(垂直坐标为气压)。
需要用到变量有两个,地面位势,不同等压面的位势。
其中,ERA5的地面位势是"ERA5 hourly data on single levels from 1959 to present"的数据集中,名称为Geopotential的变量(在ncl中变量名为 Z_GDS0_SFC),单位是 m**2 s**-2,表示各格点的地面层所在的位势。这是一个二维变量。
而不同等压面的位势Z是在"ERA5 hourly data on Pressure levels from 1959 to present"数据集中,名称为Geopotential的变量(在ncl中变量名为 Z_GDS0_ISBL_**),单位是 m**2 s**-2,表示各格点的地面层所在的位势。这是一个三维变量。
在GrADS中,二维变量和三维变量不能直接比较(没有类似python的broadcast广播机制),所以需要另外定义一个三维变量,把二维的地形数据spread扩展到三维,再进行比较。
gs绘图脚本。
(注:zsfc.ctl为地面位势数据zsfc.grib的描述文件,pressure_level.ctl为气压层数据pressure_level.grib的描述文件。zsfc.grib可从"ERA5 hourly data on single levels from 1959 to present"的数据集中自己选定变量名Geopotential和时空范围来下载,pressure_level.grib可从"ERA5 hourly data on Pressure levels from 1959 to present"数据集选定变量和时空范围下载。ctl文件的生成需要使用grib2ctl和gribmap命令,不再赘述)
'reinit'
*打开地面位势文件
'open zsfc.ctl'
*打开气压层数据(包含位势zprs,温度tprs等变量)
'open pressure_level.ctl
'set lat 30'
'set lon 95 115'
'set lev 1000 70'
'set time 00Z01JAN2022'
'define z=zsfc'
'set gxout shade2b'
*绘制mask之后的温度剖面
'd maskout(tprs.2,zpr2.2-z)'
'draw title tprs 00Z01JAN2022 1mo'
‘cbarn'
'gxprint a.png white'
;
这样就可以将地形以下的数据mask掉了
效果图:
最新文章
- hadoop_elk架构图
- Java主要知识结构
- script标签不带属性与带async、defer的区别
- Java帮助文档的生成
- Ubuntu 13.10 安装 ia32-lib
- DNS子域委派配置案例[转载]
- selenium文件上传的实现
- 跳转到QQ聊天界面和QQ群界面
- [React] React Router: Nested Routes
- uc/os 笔记(转)
- 程序中非action获得spring容器
- head和tail命令-----得到头尾N行或者这去掉尾头N/N-1行
- Windows10 Ubuntu bash 配置 LAMP+JDK+Tomcat
- 记录下扣jio的2018年
- log4j日志输出框架
- sql中varchar(n),nvarchar(n) 长度性能及所占空间分析
- Rest风格理解
- Windows如何安装Android SDK
- 毒枭第一季/全集Narcos迅雷下载
- C#: 获取当前路径不要用Environment.CurrentDirectory