我正在使用xarray.open_mfdataset()
函数读取多个 netCDF 格式的数据文件(WRF 模型输出文件)。我正在阅读和取消各种变量,例如 Variable和QVAPOR
resp 。我正在使用以下代码来读取 netCDF 变量和计算结果变量。U
V
UQ
import xarray as xr
def desta_var(pp,var):
flnm = xr.open_mfdataset(pp)
if var=="U":
U1 = (flnm.variables[var])
U = 0.5*(U1[:,:,:,0:-1] + U1[:,:,:,1:] )
del U1
return U
elif var=="V":
V1 = (flnm.variables[var])
V=0.5*(V1[:,:,0:-1,:] + V1[:,:,1:,:])
del V1
return V
else:
W1 = (flnm.variables[var])
W=0.5*(W1[:,0:-1,:,:] + W1[:,1:,:,:])
del W1
return W
U=desta_var('./WRF_3D_2005_*.nc','U')
V=desta_var('./WRF_3D_2005_*.nc','V')
flnm=xr.open_mfdataset('./WRF_3D_2005_*.nc')
QV = flnm.QVAPOR
UQ = U*QV
使用上述代码获得的变量的维度和形状:
风变量的维度 Ex。U
它的形状是
Times, lev, y, x_2 它的形状是 (1186, lev: 36, y: 699, x_2: 639)
湿度变量的维度 Ex。QVAPOR
它的形状是
Times, lev, y, x 它的形状是 (1186, lev: 36, y: 699, x: 639)
乘以U
和后QVAPOR
;我计算UQ=U*QVAPOR
. 的尺寸和形状UQ
是
Times, lev, y, x_2, x and shape is (Times: 1186, lev: 36, y: 699, x_2: 639, x: 639)
所以问题如下:
我无法获得正确的尺寸。的正确尺寸UQ
应该是Times, lev, y, x
。任何人都可以帮助我如何将 xarray 数据集与不同的维度名称相乘。我不确定为什么我会得到 5 维的 UQ 变量,而 U 和 QVAPOR 都是 4 维。