我正在尝试计算大气层(500mb)上的3D发散场。我拥有的数据是来自grib文件的U,V和W风向量,如下所示:
DataA = source.select(name='U component of wind',typeOfLevel='isobaricInhPa',level=250)[0]
DataA = DataA.values
DataB = source.select(name='V component of wind',typeOfLevel='isobaricInhPa',level=250)[0]
DataB = DataB.values
DataC = source.select(name='Vertical velocity',typeOfLevel='isobaricInhPa',level=250)[0]
DataC = DataC.values
我想知道的是如何将它组合成一个数组,以便我可以计算分歧(大概来自np.grad)。例如。我试过了:
Data = np.zeros((3,721,1440))
Data[0:,:] = DataA
Data[1:,:] = DataB
Data[2:,:] = DataC
Plot = np.gradient(Data,axis=0)
但是这产生了一个(3,1,1440)数组(这是错误的,因为输出应该与输入数据的尺寸相同,即740(纬度)乘以1440(lon)网格。