气象上一般使用气压垂直坐标系,在不同的气压层绘制变量。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. lama-cleaner全部命令行参数

    usage: main.py [-h] [--host HOST] [--port PORT] [--config-installer] [--load-installer-config] [--in ...

  2. kubebuilder简明教程

    一.operator概述 Operator 是 Kubernetes 的扩展软件,它利用 定制资源 管理应用及其组件. Operator 遵循 Kubernetes 的理念,特别是在控制器 方面[1] ...

  3. 【4】java之基础数据类型的包装类

    一.认识包装类 ​ java 在设计之初有一个基本原则:一切皆对象,一切的操作都基于对象,但是有一个矛盾,基本数据类型不是对象.为了符合于这种要求,最早使用人为的方式解决此问题,如下所示: class ...

  4. 在grafana中使用不同的数据源及插件安装

    一.postgresql作为数据源 现在PG的版本是10.5(10+) 加入datasource 时只能指定一个数据库,对于监控来说可使用默认数据库postgres! 可以方便地作趋势图以及使用tab ...

  5. VMwareSDN环境配置之git安装

    ------------恢复内容开始------------ null ------------恢复内容结束------------

  6. MessageUtil

    1 public abstract class MessageUtil { 2 3 public static String changeMsg(CustomerReportQueryObject q ...

  7. GitHub访问缓慢

    参考:https://www.cnblogs.com/liuchao888/p/11733996.html

  8. Swift async await 使用介绍

    // // ViewController.swift // AsynWait // // Created by shengjie on 2022/2/9. // import UIKit class ...

  9. Mac技术服务, 感谢 点赞打赏

    ​ 首先,非常感谢大家对我的支持和鼓励. 如果需要单独解决Mac问题,您也可以选择付费服务,感谢大家的理解与支持! * 普通问题/软件安装:10元--100元每个(根据具体问题由您而定): * 普通问 ...

  10. IDEA的常用快捷键和文档注释

    IDEA的常用快捷键 Alt + 回车 导入包,自动修正 Ctrl + N 查找类 Ctrl + Shift + N 查找文件 Ctrl + Alt + N 格式化代码 Ctrl + Alt + O ...