Ich habe ungefähr 1.000 Satellitenbilder im TIFF-Format und möchte ein Shapefile erstellen, das als Index für die Raster dient. Dies ähnelt einem Raster-Katalog, ich möchte jedoch keinen Raster-Katalog erstellen.
Einige Hindernisse, die ich sehen kann, sind, dass das Bild georeferenziert ist, so dass sie keine rechteckige Form haben (ich spreche über den Datenbereich).
Um dies zu verdeutlichen, muss das Polygon nur die Pixel des Rasters abdecken, die nicht Null (oder Nicht-Nodata) sind, und nicht das gesamte rechteckige Raster. Die meisten bisherigen Antworten ergeben ein rechteckiges Polygon, das sowohl die Daten- als auch die Nichtdatenpixel abdeckt.
Mein Bild
Das Ergebnis stammt von Tools, die ich untersucht habe (z. B. Raster-Catlog, verschiedene Arcscripts, benutzerdefiniertes Python-Skript in einer der Antworten):
Ergebnis, das ich will:
quelle
Antworten:
In QGIS gibt es ein Plugin namens Image Boundary . Es ist ein großartiges Werkzeug. In diesem Tool gibt es eine Option für "Gültige Pixel", bei der beispielsweise die schwarzen Ränder eines Satellitenbilds weggelassen werden.
quelle
Mit dem folgenden Code wird ein Eingabe-Raster erstellt, die Ausdehnung abgerufen und diese Ausdehnung in eine Polygon-Feature-Class eingefügt:
Sie können es im ArcMap Python-Fenster ausführen, indem Sie Folgendes einrichten
in_raster
und ausführenfc
:Wo
r_extent
befindet sich eine vorhandene Polygon-Feature-Class? Dann einfach den Code kopieren und ausführen. Ich bekomme das:quelle
Sie können hierfür gdaltindex verwenden: http://www.gdal.org/gdaltindex.html
Es werden jedoch weiterhin Rechtecke (z. B. 4 + 1 Punkte) im selben Referenzsystem wie die Bilder erstellt. Aber ich frage mich, ob das wirklich ein Problem ist: Wie groß sind Ihre Bilder?
quelle
Ich habe das Tool "Image Boundary" in QGIS ausprobiert, aber es schlägt bei einigen Rastern fehl.
Eine andere Option, die für mich funktioniert hat, ist: 1. Konvertieren Sie das Eingabe-Raster mit dem Befehlszeilen-Dienstprogramm gdal_translate in eine einzelne digitale Zahl.
gdal_translate -co compress = lzw -b 1 -ot byte -scale 1 1 inp.tif out.tif
Dadurch wird überall dort ein Raster mit den Werten 1 erstellt, wo inp.tif Werte ungleich Null verwendet wurden.
Das Ausgabe-Shapefile hat nicht-vierseitige Grenzen mit mehreren Polygonscheitelpunkten, die der tatsächlichen Grenze des Bildes folgen.
quelle
Wenn Sie an einer Skriptlösung interessiert sind, probieren Sie den Befehl gdal nearblack aus . Mit dem Flag -white können Sie auch Daten abrufen, die durch Leerzeichen begrenzt sind. Sie können die Ausgabe polygonisieren , um eine nicht rechteckige Grundfläche der Rasterdaten zu generieren.
quelle
In der ArcGIS-Welt können Sie dies meines Erachtens mit dem Tool 3D Analyst \ Conversion \ From Raster \ Raster Domain erreichen .
quelle
In ArcGIS 3D Analyst gibt es ein Tool namens Raster Domain , das einen Polygon- oder Polylinien-Footprint der Datenbereiche eines Raster-Datasets erstellt und NoData-Zellen ignoriert. Hat super für mich funktioniert.
quelle
Sie können einen Raster-Katalog mit einem zugewiesenen Raumbezug erstellen, den Raster-Katalog zu ArcMap hinzufügen und dann "Footprint exportieren". Denken Sie daran, dass Sie einen "UNMANAGED" -Rasterkatalog erstellen können, damit Sie nicht von jedem Raster-Dataset ein Duplikat erstellen.
quelle