我试图插入不均匀的表面。由于不均匀,我的意思是输入表面在数据中有很大的间隙。我试图找出一种方法来读取这些数据,并忽略数据丢失的区域,只是插入有数据的区域。
以下是我所谈论的数据示例:
这是我正在使用的测深表面的片段。我为表面中的每个点输出x,y和z值的数据。正如您所知,在插值过程中我想忽略的数据缺失很大。
我使用np.genfromtxt
读取数据,并生成三个包含x,y和z值的数组。问题是数据是交错格式,因此数据不包含空值或NoData值。
这是我当前的插值方法,我使用scipy griddata
包进行插值:
x, y = np.mgrid[x1:xn:complex(numx+1,0), y1:yn:complex(numy+1,0)]
points = (easting,northing)
surface = griddata(points,depth,(x, y),fill_value='nan')
此处numx,numy
值只是曲面中的最大x和y点,easting, northing
是从数据中读取的x,y点。当我运行插值时,我会得到类似的结果:
你可以看到插值几乎使纳米填充正确。阵列的外侧部分是正确的,但它仍然试图在表面中间插入大间隙。效率并不是我现在的重要因素,但有一种很好的方法可以对表面进行插值,以便更好地“尊重”原始表面吗?所以它不会尝试插入没有值的区域或某种方式来填充没有nans值的区域?