我的总体目标是通过使用水平地形将一堆3d(“水平”)气候数据文件转换为2d,方法是将它们“投影”到目标地形上。由于气候数据文件的级别相同,因此我正在构建一个投影矩阵,然后可以将其分别应用于每个文件。在这里,我正在构建此投影矩阵,它只不过是包含一些线性插值权重的3d权重矩阵:
wgt = np.ma.zeros((nlat,nlon,nlev))
print(wgt.shape)
> (2700, 1496, 11)
到目前为止,我已经能够得出必要的权重(wgt_A
,wgt_B
-均为2d)和相应的级别索引(lev_idx-1
,lev_idx
)使用np.digitize
。剩下的步骤是使用这些权重和索引来构建3d权重矩阵。我有这个实现:
for ii in range(nlat):
for jj in range(nlon):
wgt[ii,jj,lev_idx[ii,jj]-1] = wgt_A[ii,jj]
wgt[ii,jj,lev_idx[ii,jj]] = wgt_B[ii,jj]