Ich habe 3 separate 1-Band-GeoTIFF-Dateien. Die Farbinterpretation für Band ist grau. Ich möchte eine 3-Band-RGB-Datei. Ich habe gdal_merge.py verwendet
gdal_merge.py -separate file1.tif file2.tif file3.tif -o output_file.tif
Die Farbinterpretation für die 3 Bänder der resultierenden output_file.tif ist jedoch grau, undefiniert, undefiniert. Abgesehen davon sind alle Pixel 0 .
Wenn ich pct2rgb.py ausführe, erhalte ich eine RGB-Datei:
pct2rgb.py output_file.tif output_file_rgb.tif
Aber natürlich sind die Pixel auch 0. Ich habe also 3 Fragen:
- Ist gdal_merge.py das richtige Tool, um 3 1-Band-Dateien in einer 3-Band-RGB-Datei zu kombinieren?
- Warum bekomme ich eine undefinierte Farbinterpretation für Bands?
- Ist pct2rgb das richtige Werkzeug, um 3-Band-Dateien mit dieser Farbinterpretation in RGB-Dateien umzuwandeln?
UPDATE : Die Raster haben keine Farbtabelle. Nur Farbinterpretation: Grau.
Andererseits gehen die Pixelwerte von 0 bis 1023 (dies ist absichtlich)
Weitere Daten: Sie sind gedrehte Raster (kein Norden nach oben), aber alle haben die gleiche Geotransform.
UPDATE 2 : Ich kann die Bilder verziehen, um sie nach Norden zu bringen, eine VRT erstellen und ColorInterp für jedes Band hinzufügen, aber ich bekomme immer noch eine Farbinterpretation als grau, undefiniert, undefiniert im Ausgabeergebnis.
Das Problem ist, dass ich zumindest im ersten Band eine Farbtabelle erstellen muss. Ich weiß , wie man sie erstellt , aber ich weiß nicht, wie viele Einträge meine Tabelle haben soll. Warum enthält das Beispiel der GDAL-Raster-FAQ 13 Einträge? Alle Pixel haben Werte zwischen 0 und 1023, wenn dies hilft.
Lesen über diese Tags:
PHOTOMETRIC repräsentiert den Farbraum der Bilddaten. Ein Wert von 2 bedeutet, dass die Komponenten eines Pixelwerts RGB sind, aber es werden Byte-Pixel angenommen, und ich habe UInt16-Pixel (ich habe es versucht
-co "PHOTOMETRIC=rgb"
und habe einen Fehler erhalten). Daher kann ich kein PHOTOMETRIC-Tag für die Ausgabedatei angeben.EXTRASAMPLES gibt an, dass jedes Pixel N zusätzliche Komponenten enthält. Ich bin mir nicht sicher, wie ich dieses Tag zum Erstellen meiner zusammengeführten Datei verwenden soll. Oder wenn ich es brauche.
In Update 2 schlage ich die Erstellung einer Farbtabelle vor, aber wie? In meinen 3 Eingabedateien reichen die Pixelwerte von 0 bis 1023. Muss ich sie mit Farben abgleichen? Muss ich eine ColorTable mit 1024 Eingängen erstellen? Wie?
In Update 3 könnte ich beim Erstellen der zusammengeführten Datei einige GeoTIFF-Tags verwenden, bin mir aber nicht sicher, ob oder wie ich sie wirklich verwenden kann.
quelle
Antworten:
gdal_merge.py ist das richtige Werkzeug, um Ihre Eingabebilder zu "stapeln".
Angenommen, Ihr erstes Band hat eine gültige Farbtabelle, die Sie verwenden könnten:
gdal_merge.py -separate -pct -o output_file.tif file1.tif file2.tif file3.tif
Hinweis: Der Befehl wurde
-o output_file.tif
vor der Liste der Eingaben neu formatiert .Aus den Dokumenten:
Ich würde Ihre Ausgabe mit testen
gdalinfo -stats
, um sicherzustellen, dass sie richtig gestapelt wird.Aktualisiert für OP
Aus der Osgeo-Liste geht hervor , dass Sie möglicherweise ein anderes Format ausprobieren, um die Ergebnisse zu überprüfen:
-Evan (das Plakat) kennt GDAL in- und auswendig.
quelle
Der erste Weg, den ich mir vorstellen kann, ist, ein vrt zu erstellen, zu bearbeiten und zu übersetzen:
Fügen Sie bei Bedarf das Farb-Interp-Tag hinzu:
und dann:
quelle
Ihr eingegebenes Graustufenband hat Werte von 0 bis 1024, aber RGB erlaubt nur Werte von 0 bis 255 für jedes Band.
Sie können
gdal_translate -scale [src_min src_max [dst_min dst_max]]
Ihre Quelldatei neu skalieren.In einem zweiten Durchgang können Sie Ihre drei Bänder mit gdal_merge.py stapeln und anwenden
-co "PHOTOMETRIC=rgb"
.quelle