| 
 
	积分6814贡献 精华在线时间 小时注册时间2011-12-4最后登录1970-1-1 
 | 
 
| 
本帖最后由 bsb0 于 2021-5-31 22:23 编辑
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 下载了ERA5 hourly data on pressure levels的数据,选择了整层的数据,即1000hPa到1hPa,想使用mpcalc.lifted_index计算抬升指数,公式中需要先计算parcel profile(翻译为层结?),但是会报错,ValueError: place: mask and data must be the same size,请教这是什么原因呢?
 PS:网上搜了一下,有人说需要将array数据转换为 Unit类型的数据;不转就会出错。使用.data*units.degC也还是会报错,不明白原因。代码如下
 
 复制代码ds = xr.open_dataset('D:/history_weather/CDS20210500h.nc')
lon=ds['longitude'][:]#读取经度
lat=ds['latitude'][:]#读取纬度
lon_range = lon[(lon>117.4) & (lon<123.6)]
lat_range = lat[(lat>24.9) & (lat<32.4)]
lons,lats=np.meshgrid(lon_range,lat_range)
p = ds['level']
t = ds['t']
q = ds['q']
h = ds['r']
##计算部分
e = mpcalc.vapor_pressure(p,q)
Td = mpcalc.dewpoint(e)
t0 = ds['t'][0,36]
td0 = Td[36,0]
prof = mpcalc.parcel_profile(p,t0,td0)
li = mpcalc.lifted_index(p,t,prof)
 
 | 
 |