Создать две интерполированные сетки из двух наборов точек 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.

0 ответов

Другие вопросы по тегам