- 积分
- 6102
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-12-4
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 bsb0 于 2021-5-31 22:23 编辑
下载了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)
复制代码
|
|