如何在不进行插值的情况下对数据进行网格处理

时间:2019-02-13 08:48:27

标签: python grid average interpolation

我有一个xyz(xy坐标z高程),它是一百万个点。 由于内存不足或需要,无法进行任何类型的网格化。 我想要的是为自己提供一个网格,并在每个单元格内进行简单搜索,以便能够找到平均值。

换句话说,我编写了以下脚本(Xp,Yp和Z是带有数据的向量)

    delta=1 # desired resolution
xmin=np.min(Xp)
xmax=np.max(Xp)
ymin=np.min(Yp)
ymax=np.max(Yp)

x_idx=np.arange(xmin+delta/2,xmax-delta/2,delta)
y_idx=np.arange(ymin+delta/2,ymax-delta/2,delta)
gridc=np.zeros((x_idx.shape[0],y_idx.shape[0]))

for ii in range(0,x_idx.shape[0]):
    for jj in range(0,y_idx.shape[0]):

        dummy1=np.where( (Xp>=x_idx[ii]-delta/2) & (Xp<x_idx[ii]+delta/2)  &  
                         (Yp>=y_idx[jj]-delta/2) & (Yp<y_idx[jj]+delta/2)    
                        )[0]


        gridc[ii,jj]=np.nanmean(Z[dummy1])

是否已经在python中实现了更好的方法?这不是非常有效的编程方法。

0 个答案:

没有答案