Создать две интерполированные сетки из двух наборов точек XYZ и рассчитать разницу с помощью Python
Я пытаюсь сделать что-то подобное. Но пытаемся вычислить разницу между двумя интерполированными сетками. Сетки имеют разные формы, поэтому нельзя использовать np.subtract для расчета разницы. Любая помощь о том, как рассчитать разницу?
#create two interpolated grids from two set of xyz points and calculate difference
ixx = np.array(self.ix)
iyy = np.array(self.iy)
izz = np.array(self.iz)
iminx = min(ixx.flat)
imaxx = max(ixx.flat)
iminy = min(iyy.flat)
imaxy = max(iyy.flat)
# post surface - get extents
pxx = np.array(self.px)
pyy = np.array(self.py)
pzz = np.array(self.pz)
pminx = min(pxx.flat)
pmaxx = max(pxx.flat)
pminy = min(pyy.flat)
pmaxy = max(pyy.flat)
ixi = np.arange(iminx, imaxx, self.cellsize)
iyi = np.arange(iminy, imaxy, self.cellsize)
iX,iY = np.meshgrid(ixi,iyi)
iextent = (min(ixi), max(ixi), min(iyi), max(iyi))
pxi = np.arange(pminx, pmaxx, self.cellsize)
pyi = np.arange(pminy, pmaxy, self.cellsize)
pX,pY = np.meshgrid(pxi,pyi)
pextent = (min(pxi), max(pxi), min(pyi), max(pyi))
igrid = griddata((ixx, iyy), izz, (iX, iY), method='linear')
pgrid = griddata((pxx, pyy), pzz, (pX, pY), method='linear')
# would like to calcualte difference, but this wont work, due to different shapes
changegrid = np.subtract(pgrid, igrid)
форма сетки (181, 130), форма сетки (184, 126).
Другая важная информация - это пространственные сетки с перекрывающимися пространственными экстентами. Если мы просто передадим / расширим формы массива, этого будет достаточно? Я не хочу вычитать сетки в неправильных местах х / у. В общем, как в GIS/Arcmap, мы рассчитываем разность растра в каждой ячейке в определенном месте ячейки xy.