画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掉了
效果图:

画ERA5气压层剖面图(含地形)的更多相关文章
- altium designer 10如何画4层板
本篇博客主要讲解一下如何用altium designer10去画4层板. 想想当初自己画4层板时,也去网上海找资料,结果是零零散散,也没讲出个123,于是硬着头皮去找师兄,如何画4层板.师兄冷笑道:“ ...
- [原][译][osgearth][EarthFile]关于EarthFile 的Model Layer 讲解(通过earth文件加载模型层)(OE官方文档翻译)
原文参考:http://docs.osgearth.org/en/latest/references/earthfile.html#model-layer 本人翻译能有限.... 模型层 模型层渲染“ ...
- 3层-CNN卷积神经网络预测MNIST数字
3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...
- 【Protle99SE】PCB中各层的含义【小汇】
忽然发现,对solder和paste,layer和plane这两对有些糊涂了,摘录网络中的文章如下: [http://www.360doc.com/content/10/0608/15/514342_ ...
- Cadence PCB层的概念
Slikscreen_Top :顶层丝印层 Assemly_Top :装配层,就是元器件含铜部分的实际大小,用来产生元器件的装配图.我自己感觉这一层如果对于贴片的元器件,如电容,就是两个贴片铜 ...
- Altium Designer中各层的含义
1 Signal layer(信号层) 信号层主要用于布置电路板上的导线.Protel 99 SE提供了32个信号层,包括Top layer(顶层),Bottom layer(底层)和30个MidLa ...
- android shape 怎么在底部画横线
使用layer-list可以,画了两层 1 2 3 4 5 6 7 8 9 <layer-list> <!-- This is the lin ...
- 经典网络LeNet5看卷积神经网络各层的维度变化
本文介绍以下几个CNN经典模型:Lenet(1986年).Alexnet(2012年).GoogleNet(2014年).VGG(2014年).Deep Residual Learning(2015年 ...
- Altium Designer入门学习笔记4:PCB设计中各层的含义
阻焊层:solder mask,是指板子上要上绿油的部分:因为它是负片输出,所以实际上有solder mask的部分实际效果并不上绿油,而是镀锡,呈银白色! 助焊层:paste mask,是机器贴片时 ...
- Android用canvas画哆啦A梦
先上图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...
随机推荐
- 脚本之美│VBS 入门交互实战
目录 什么是 VBS 第一个 VBS 脚本 msgbox 语法 中文乱码 弹窗交互功能 表白恶搞 什么是 VBS VBS 是一种 Windows 脚本语言,全称是 Microsoft Visual B ...
- centos7 安装MariaDB数据库
1.添加 MariaDB yum源 #添加MariaDB.repo配置文件 vim /etc/yum.repos.d/MariaDB.repo #添加内容 [mariadb] name = Maria ...
- redis运维与管理
redis内存存储,速度极快 丰富的附件功能 1.持久化功能:降存储在内存的数据保存到硬盘 2.发布与订阅:将消息同时分发给多个客户端 3.过期键功能:为键设置一个过期时间,让它在指定的时间之后自动被 ...
- soursetree 关于https:git remote: Unauthorized和username和password修改
一.sourcetree推送代码提交不上提示https:git remote: Unauthorized由于没有权限,需要登陆正确的账号以及密码即可以提交 二.SourceTree这是一个无效源路径/ ...
- 如何批量删除office文档属性
在文件资源管理器界面全选所有office文档, 右键->属性->详细信息->删除属性和个人信息->从此文件中删除以下信息->全选->确定,即可.
- Git安装,配置、基本使用
p.p1 { margin: 0; font: 12px ".PingFang SC" } p.p2 { margin: 0; text-align: justify; font: ...
- java的%d和%f 是什么意思
Java中,%d和%f分别用来表示输出时,替换整型输出和浮点型输出的占位符. 如: int a=28; float b = 13.0f; System.out.printf("整数是:%d% ...
- pnpm 中无法使用 patch-package 打补丁
原文:https://lwebapp.com/zh/post/pnpm-patch-package 介绍 前端开发过程中,经常会遇到第三方开源库有 BUG 的情况,通常我们有以下处理方式 自己 for ...
- 狂神--Docker
官网地址 官网 https://www.docker.com/ 官方文档Docker文档是超详细的 https://docs.docker.com/ 仓库地址 https://hub.docker.c ...
- WinForms 嵌入 Web服务
1.首先安装一个Kestrel服务器包 Microsoft.AspNetCore.Server.Kestrel 2.在Main方法中插入如下代码 static class Program { /// ...