Estou desenvolvendo em Python e usando o GDAL da OSGEO para manipular e interagir com rasters e shapefiles.
Eu quero pegar um shapefile com recursos de ponto e interpolar em um raster de superfície. No momento, estou usando o método 'RasterizeLayer', que grava um valor do recurso de ponto na varredura (que é definida com todos os valores de nodata), mas deixa todos os pixels intocados como valor de 'nodata'. Portanto, sou deixado com uma varredura do tipo quadriculado.
O que tenho depois de usar o RasterizeLayer:
O que eu quero para um produto final:
Acredito que a função que estou procurando seja conhecida como 'Spline_sa ()' na importação de scripts de arco.
O GDAL tem uma função semelhante ou existe um método diferente para obter a saída desejada?
fonte
Veja a API de grade da GDAL . Não sei se isso está exposto nas ligações do Python, mas se não, você chama o utilitário gdal_grid por meio do módulo de subprocesso .
A API da grade GDAL usa apenas ponderação de distância inversa, média móvel e vizinho mais próximo; ela não implementa splines. Outra opção é usar o Scipy .
fonte
Um pouco antigo para este segmento, mas escrevi um módulo simples que usa o algoritmo KNN do sklearn chamado skspatial.
https://github.com/rosskush/skspatial
Você pode importar um arquivo de forma usando geopandas e selecionar uma coluna, que interpola uma superfície que pode ser exportada para uma varredura. É muito básico e provavelmente não é a melhor maneira de fazê-lo, mas mantém pelo menos tudo puro python.
fonte