尝试使用地块配置文件时出现问题

2024-10-04 03:23:57 发布

您现在位置:Python中文网/ 问答频道 /正文

新手用户在这里

我在尝试使用parcel_profile时遇到了一个问题,它不断抛出一个错误,说变量没有与其关联的单位:

回溯(最近一次呼叫最后一次): 文件“Advanced_Sounding_3Dnetcdf2.py”,第165行,在 prof=mpc.地块剖面图(p,T[0],Td[0])至('degC')

有问题的代码段:

p = phPa * units.hPa
T = TdegC* units.degC
Td = TddegC* units.degC

lcl_pressure, lcl_temperature = mpcalc.lcl(p[0], T[0], Td[0])
skew.plot(lcl_pressure, lcl_temperature, 'ko', markerfacecolor='black')

print(p)

prof = mpcalc.parcel_profile(p, T[0], Td[0]).to('degC')

当我打印“p”时,它看起来如下所示:

[<Quantity(965.2435302734375, 'hectopascal')>
 <Quantity(959.7489624023438, 'hectopascal')>
 <Quantity(954.278564453125, 'hectopascal')>
...

数据以如下方式读入:

file = 'cm1out_000001.nc'
figname = 'control'
figtime = '1'

f = Dataset(file, 'r')

[deleted for brevity]

th = f.variables['th'][0,0:zfl,yfl,xfl] #Read in potential temperature
p0=f.variables['prs0'][0,0:zfl,yfl,xfl] #Read in base state pressure
p = f.variables['prs'][0,0:zfl,yfl,xfl] #Read in pressure

[deleted for brevity]

phPA = p/100

[deleted for brevity]

p = phPa * units.hPa

这里是否有另一个编码错误,或者是否有其他问题

谢谢


Tags: forvariablesquantitytdunitstemperaturepressuredegc
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:57

netCDF4 python默认为您提供屏蔽数组,而这些数组在Pint的单元支持方面存在一些奇怪的问题。左边乘以单位应该可以解决这个问题:

p = units.hPa * phPa
T = units.degC * TdegC
Td = units.degC * TddegC

相关问题 更多 >