Ich schreibe ein einfaches Dienstprogramm, um Stapel von Multiband-Geotiff-Rasterdateien auf denselben (kleineren) Bereich zuzuschneiden. Mit gdalwarp kann ich eine Datei mithilfe eines Shapefiles mit einem einzelnen Polygonausschnitt ganz einfach zuschneiden:
gdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif
Der tatsächliche Bereich, in den ich einen Clip einfügen möchte, wird anfangs jedoch immer von einer anderen Geotiff-Rasterdatei und nicht von einem Shapefile definiert. Es wäre schön, wenn ich das Ausmaß dieses Rasters als Clipping-Datei verwenden könnte, aber ich bin mir nicht sicher, wie ich das machen soll. Es überrascht nicht, dass das Folgende nicht funktioniert (es löst keinen Fehler aus, es produziert einfach nichts):
gdalwarp -cutline clipper.tif-crop_to_cutline input.tif output.tif
Also, meine Frage ist, gibt es eine Möglichkeit, ein Raster zu liefern gdalwarp -cutline
? Gibt es alternativ eine andere gdal-Funktion, die ein Raster mit einem anderen Raster ausschneiden kann? Wenn beides nicht möglich ist, gibt es eine sehr einfache Möglichkeit, ein Shapefile mit einem einzelnen Polygon zu erstellen, das durch die Ausdehnung eines Rasters definiert wird?
Dieser Code wird in ein umfangreicheres Python-Skript eingebunden, sodass ich entweder die Befehlszeilen-Dienstprogramme gdal oder eine der Python-Bindungen für gdal verwenden kann.
Als Randnotiz weiß ich, dass ich einfach ein Clipping-Shapefile erstellen kann, das die Ausdehnung meines Rasters in QGIS abdeckt. Möglicherweise mache ich das, wenn ich keine einfache Lösung finde, aber letztendlich benutze ich dieses Dienstprogramm für Dutzende, wenn nicht Hunderte von Bereichen als Teil einer großen automatisierten Analyse manueller Schritt, auch wenn es sehr einfach ist.
gdaltindex clipper.shp clipper.tif
, gefolgt vongdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif