Ich entwickle in Python und verwende GDAL von OSGEO, um Raster und Shapefiles zu manipulieren und mit ihnen zu interagieren.
Ich möchte ein Shapefile mit Punkt-Features in ein Oberflächen-Raster interpolieren. Im Moment verwende ich die Methode 'RasterizeLayer', die einen Wert aus dem Punkt-Feature in das Raster (das mit allen Knotendatenwerten festgelegt ist) brennt, aber alle unberührten Pixel als 'Knotendaten'-Wert zurücklässt. Ich habe also ein Schachbrettmuster.
Was ich nach der Verwendung von RasterizeLayer habe:
Was ich mir für ein Endprodukt wünsche:
Ich glaube, die gesuchte Funktion ist aus dem ArcGisscripting-Import als "Spline_sa ()" bekannt.
Hat GDAL eine ähnliche Funktion oder gibt es eine andere Methode, um die gewünschte Ausgabe zu erhalten?
quelle
Schauen Sie sich die GDAL-Gridding-API an . Ich weiß nicht, ob dies in den Python-Bindungen enthalten ist, aber wenn nicht, rufen Sie das Dienstprogramm gdal_grid über das Subprozessmodul auf .
Die GDAL-Raster-API verwendet nur Inverse Distance Weighting, Moving Average und Nearest Neighbor. Splines werden nicht implementiert. Eine andere Möglichkeit ist die Verwendung von Scipy .
quelle
Ein bisschen alt für diesen Thread, aber ich habe ein einfaches Modul geschrieben, das den KNN-Algorithmus von sklearn namens skspatial verwendet.
https://github.com/rosskush/skspatial
Sie können ein Shapefile mithilfe von Geopandas importieren und eine Spalte auswählen. Dadurch wird eine Oberfläche interpoliert, die in ein Raster exportiert werden kann. Es ist sehr einfach und wahrscheinlich nicht der beste Weg, es zu tun, aber es hält zumindest alles reine Python.
quelle