气象上一般使用气压垂直坐标系,在不同的气压层绘制变量。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文件的生成需要使用grib2ctlgribmap命令,不再赘述)

'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气压层剖面图(含地形)的更多相关文章

  1. altium designer 10如何画4层板

    本篇博客主要讲解一下如何用altium designer10去画4层板. 想想当初自己画4层板时,也去网上海找资料,结果是零零散散,也没讲出个123,于是硬着头皮去找师兄,如何画4层板.师兄冷笑道:“ ...

  2. [原][译][osgearth][EarthFile]关于EarthFile 的Model Layer 讲解(通过earth文件加载模型层)(OE官方文档翻译)

    原文参考:http://docs.osgearth.org/en/latest/references/earthfile.html#model-layer 本人翻译能有限.... 模型层 模型层渲染“ ...

  3. 3层-CNN卷积神经网络预测MNIST数字

    3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...

  4. 【Protle99SE】PCB中各层的含义【小汇】

    忽然发现,对solder和paste,layer和plane这两对有些糊涂了,摘录网络中的文章如下: [http://www.360doc.com/content/10/0608/15/514342_ ...

  5. Cadence PCB层的概念

    Slikscreen_Top  :顶层丝印层 Assemly_Top    :装配层,就是元器件含铜部分的实际大小,用来产生元器件的装配图.我自己感觉这一层如果对于贴片的元器件,如电容,就是两个贴片铜 ...

  6. Altium Designer中各层的含义

    1 Signal layer(信号层) 信号层主要用于布置电路板上的导线.Protel 99 SE提供了32个信号层,包括Top layer(顶层),Bottom layer(底层)和30个MidLa ...

  7. android shape 怎么在底部画横线

    使用layer-list可以,画了两层 1 2 3 4 5 6 7 8 9         <layer-list>             <!-- This is the lin ...

  8. 经典网络LeNet5看卷积神经网络各层的维度变化

    本文介绍以下几个CNN经典模型:Lenet(1986年).Alexnet(2012年).GoogleNet(2014年).VGG(2014年).Deep Residual Learning(2015年 ...

  9. Altium Designer入门学习笔记4:PCB设计中各层的含义

    阻焊层:solder mask,是指板子上要上绿油的部分:因为它是负片输出,所以实际上有solder mask的部分实际效果并不上绿油,而是镀锡,呈银白色! 助焊层:paste mask,是机器贴片时 ...

  10. Android用canvas画哆啦A梦

    先上图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...

随机推荐

  1. Nextcloud的一些错误提示

    Nextcloud的一些错误提示 PHP 内存限制低于建议值 512MB 您可以通过以下步骤增加PHP内存限制: 打开php.ini文件 在终端中输入以下命令打开php.ini文件: bash sud ...

  2. 在 Ubuntu 22 的基础上进行 Hadoop 伪分布式(HDFS)的搭建

    一.使用VMware安装Ubuntu虚拟机 在Linux系统各个发行版中,Ubuntu系统在服务端和桌面端使用占比最高,网络上资料最是齐全,所以这里使用Ubuntu LTS. 整体的系统安装文件较大( ...

  3. 跟着廖雪峰学python 006

    ​ 递归函数 在函数内部调用自身本身 计算阶乘: def fact(n): if n == 1: return 1 return n * fact(n - 1) 注意:使用递归函数需要防止栈溢出. 在 ...

  4. 【转】IDEA搭建SSM框架(spring+maven+mybatis+mysql+junit)

    环境安装: apache-tomcat-9.0 https://tomcat.apache.org/download-90.cgi 配置:https://blog.csdn.net/qq_415706 ...

  5. Jmix- 业务系统高效开发的少代码平台

    企业在数字化转型的过程中,都面临将现有的业务流程进行"软件化"的过程.然而,在我们的印象中,通常会觉得针对业务系统的软件开发不是特别高效.这背后有很多原因,从开发角度看,有一个主要 ...

  6. aop切面记日志

    package com.netauth.utils.component; import java.lang.annotation.ElementType; import java.lang.annot ...

  7. Matplotlib 绘图线

    绘图过程如果我们自定义线的样式,包括线的类型.颜色和大小等. 线的类型 线的类型可以使用 linestyle 参数来定义,简写为 ls. 类型 简写 说明 'solid' (默认) '-' 实线 'd ...

  8. NSIS Inetc插件 扩展使用

    Inetc客户端插件,用于文件的上传和下载. 官网文档:https://nsis.sourceforge.io/Inetc_plug-in 以下载net包为例 inetc::get "htt ...

  9. 使用源码编译安装PHP7

    使用源码编译安装PHP7 2015年6月11日,PHP官网发布消息,正式公开发布PHP7第一版的alpha版本. PHP7特性: PHP 7.0.0 Alpha 1使用新版的ZendEngine引擎, ...

  10. WDA学习(27):RoadMap使用

    1.20 UI Element:RoadMap使用 本实例测试创建RoadMap; 运行结果: 点击2,Input显示输入航班Id 点击3,根据input输入,查询航班信息 1.创建Component ...