Verwendung von GDAL zum Konvertieren von Int16-Daten in Byte

8

Ich habe einige Daten mit Int16-Bändern im HDF-Format.

Ich möchte dies in Byte-Bänder im GeoTIFF-Format konvertieren.

Der Datenbereich für den Int16 liegt zwischen -2000 und 12000, daher möchte ich diesen dem Byte-Bereich 0 bis 255 zuordnen.

Wie mache ich das mit GDAL-Tools? (wenn es möglich ist) Wie kann ich sonst ein Python-Skript schreiben, um dies zu tun?

ljbade
quelle

Antworten:

8

Ich bin mir nicht sicher, ob Ihnen die -scale-Funktion des gdaltranslate-Tools bekannt ist. Es könnte genau das sein, wonach Sie suchen. Der Standardwert ist 0-255 und das Min- und Maxx Ihrer Raster. Sie sollten auch die Nullwerte festlegen, bevor Sie diese verwenden.

Möglicherweise möchten Sie die Ausgabe als Typ Byte angeben, um sicherzugehen -ot "Byte"

hoffe das hilft, :)

Bearbeiten: Ich füge immer gerne hilfreiche Links hinzu: http://www.gdal.org/gdal_translate.html

s_a
quelle
Gern geschehen.
s_a
6

Was Sie tun möchten, heißt Normalisierung und die allgemeine Formel lautet:

Normalisierungsformel

wo:

  • In = Neuer Wert
  • I = Barwert
  • Min = Der minimale Barwert
  • Max = Der maximale Barwert
  • newMin / newMax = der gewünschte Min / Man (in Ihrem Fall 0 und 255)

Sie können eine Kombination aus gdal / python / numpy verwenden, um HDF-Datensätze zu öffnen und Zellberechnungen basierend auf der obigen Formel durchzuführen (dies ist jedoch nicht ganz so einfach wie bei einer Geotiff-Datei; Sie können jetzt ein Startskript finden wie man die Unterdatensätze hier lädt )

Nickves
quelle
Danke für die Information. Ich werde sehen, ob ich ein Skript dafür schreiben kann.
ljbade