python - metpy.units 函数有问题吗?

标签 python metpy

我正在尝试使用 metpy.calc 函数,但是每次我尝试使用 metpy.units 分配单位时,它都不会运行。如果我允许的话,它会坐在那里并继续运行几个小时。过去,metpy 函数在相同的数据集上对我来说工作得非常好,但由于某种原因将不再工作。我尝试过更新metpy和spyder,并且还使用了多台笔记本电脑以确保它不仅仅发生在一台笔记本电脑上。我还尝试了两种不同的方法 metpy.units 。它使用单位(“kg/kg”)运行,但实际上不会将单位分配给数组。关于如何让它发挥作用有什么想法吗?

这是我的代码:

import numpy as np 
import matplotlib.pyplot as plt
from netCDF4 import Dataset
import metpy
import metpy.calc as mpcalc
from metpy.units import units

f = Dataset('C:/Users/hkenward/Desktop/MS/cm1out.nc', mode = 'r', format="NETCDF4")
mrv=f.variables['qv'][:]
pt=f.variables['th'][:]
p=f.variables['prs'][:]
p=p/100.
mrv=mrv*units('kg/kg')
p=p * units.hPa
pt=pt*units.kelvin

e=mpcalc.vapor_pressure(p,mrv)
Td=mpcalc.dewpoint(e)
T=mpcalc.temperature_from_potential_temperature(p, pt)
Te=mpcalc.equivalent_potential_temperature(p, T, Td)

最佳答案

这是 Pint 单位框架(由 MetPy 使用)和屏蔽数组(netCDF4-python 默认情况下吐出的内容)的兼容性问题。最简单的解决方法是将左侧的单位相乘,如下所示:

pt = units.kelvin * pt

这使得一切正常。希望通过使用 Xarray 之类的东西,这样的事情将来会变得更好。

关于python - metpy.units 函数有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61895233/

相关文章:

python - 插值后向 matplotlib 图添加特征叠加时出现问题

python - PyQt 4 中处理事件的正确方法是什么?

python 基本 for 循环/列表理解

python监控一个日志文件非阻塞

metpy - 如何将 MetPy 的横截面分析应用于具有二维经纬度的数据集?

python - 使用metpy计算比湿时的错误

javascript - Flask form onchange this.form.submit() 抛出 TypeError : 'HTMLString' object is not callable

python - 追加到数组[i](第一个元素)直到比较条件不再为真

metpy - 使用Metpy和Pyart绘制Nexrad level 2文件,坐标计算

python - MetPy Skew-T 基准线和限制