Я закончил с использованием scipy.interpolat-функцию под названием GridData. Это использует meshgrid, чтобы получить координаты в сетке, и мне пришлось подделать его из-за ограничений памяти meshgrid.
import scipy.interpolate as il #for griddata
# meshgrid of coords in this tile
gridX, gridY = np.meshgrid(xi[c*tcols:(c+1)*tcols], yi[r*trows:(r+1)*trows][::-1])
## Creating the DEM in this tile
zi = il.griddata((coordsT[0], coordsT[1]), coordsT[2], (gridX, gridY),method='linear',fill_value = nodata) # fill_value to prevent NaN at polygon outline
Линейная интерполяция, похоже, делает именно то, что я хочу. См. Описание на https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html
Можете ли вы привести пример GeoJSON в исходном вопросе? Является ли каждый многоугольник 2D плоским, но с другим значением Z? –