在我的站点上,我们遇到了 MetPy 在尝试调用 surface_based_cape_cin 时返回单位错误的问题
我看到以下错误:
Traceback (most recent call last):
File "Advanced_Sounding_3Dnetcdf2.py", line 202, in <module>
sbcape, sbcin = mpcalc.surface_based_cape_cin(p1, T1, Td1)
File "/gpfs/group/kal6112/default/sw/anaconda3/lib/python3.6/site-packages/metpy/xarray.py", line 677, in wrapper
return func(*args, **kwargs)
File "/gpfs/group/kal6112/default/sw/anaconda3/lib/python3.6/site-packages/metpy/units.py", line 320, in wrapper
return func(*args, **kwargs)
File "/gpfs/group/kal6112/default/sw/anaconda3/lib/python3.6/site-packages/metpy/calc/thermo.py", line 1851, in surface_based_cape_cin
return cape_cin(p, t, td, profile)
File "/gpfs/group/kal6112/default/sw/anaconda3/lib/python3.6/site-packages/metpy/xarray.py", line 677, in wrapper
return func(*args, **kwargs)
File "/gpfs/group/kal6112/default/sw/anaconda3/lib/python3.6/site-packages/metpy/units.py", line 319, in wrapper
raise ValueError(msg)
ValueError: `cape_cin` given arguments with incorrect units: `temperature` requires "[temperature]" but given "none", `dewpt` requires "[temperature]" but given "none".
当我检查传入的值 p1、T1 和 Td1 时,它们都有正确的单位(百帕斯卡、度_摄氏度)。
只是为了确保我在调用 surface_based_cape_cin 之前添加了以下内容并检查了结果:
p1 = units.hPa * phPa
T1 = units.degC * TdegC
Td1 = units.degC * TddegC
我正在运行以下版本的 MetPy
# Name Version Build Channel
metpy 0.12.2 py_0 conda-forge
我不记得在更新到这个版本之前有这个,但我不能确定我看到的问题是在更新之后出现的。
感谢您的任何帮助,您可以提供。