0

我试图从垂直压力速度估计垂直风速。我找到了metpy.calc.vertical_velocity(欧米茄,压力,温度,混合=0)。

https://unidata.github.io/MetPy/latest/api/generated/metpy.calc.vertical_velocity.html

但是,没有关于它需要什么单元的文档。我给它以 Pa s-1 为单位的 Omega,以 Pa 为单位的压力,以 K 为单位的温度,所有这些都采用 xarray 格式。我希望输出也是一个 xarray 。我收到此错误:“无法从 'pascal * second' 转换为 'dimensionless'”。任何想法为什么它需要无量纲变量以及如何解决这个问题?

4

1 回答 1

1

该错误来自解析 Udunits 格式的单位字符串“Pa s-1”的问题。pint(MetPy 使用的单元库)中的默认单元解析器将其解析为: Pa * s - 1,这是无意义的。幸运的是,使用 MetPy 1.0,这应该可以工作:

import metpy.calc
import xarray as xr

omega = xr.DataArray([5], attrs={'units': 'Pa s-1'})
pressure = xr.DataArray([50000], attrs={'units': 'Pa'})
temperature = xr.DataArray([283], attrs={'units': 'K'})
metpy.calc.vertical_velocity(omega, pressure, temperature, mixing_ratio=0)

您目前可以从 pip 安装metpy 1.0.0rc1:

pip install --pre metpy

或来自 conda-forge:

conda install -c conda-forge/label/metpy_rc metpy=1.0.0rc1
于 2020-07-31T17:40:36.287 回答