Mehr

Python/GDAL hyperspektrale Bildwellenlängen

Python/GDAL hyperspektrale Bildwellenlängen


Ich kann ein hyperspektrales Bild mit GDAL gemäß den Anweisungen von Max König hier öffnen und lesen:

Also nach dem Lesen der Daten wie folgt:

data = gdal.Open( Dateiname )

dann kann ich die x, y, dim-Informationen des Datensatzes sehen:

x = data.RasterXSize y = data.RasterYSize dim = data.RasterCount

Die Frage ist nun, ob es eine Möglichkeit gibt herauszufinden, ob jedes Band tatsächlich welches elektromagnetische Spektrum repräsentiert?

Nachdem Sie alle Bänder als Liste in Python wie folgt gelesen haben:

RasterBands =[] for i in range(data.RasterCount): RasterBands.append(data.GetRasterBand(i))

Ich kann schreiben:

RasterBands[1].ComputeBandStats()

Dies gibt mir zwei Float-Werte, aber ich bin mir nicht sicher, ob sie die Wellenlängen von Band 1 darstellen oder nicht.

Wäre dankbar, wenn mir jemand einen Anhaltspunkt geben kann!

Beste Sina


Wie @ user30184 sagt, liest gdal nur die Werte Ihres Rasterbandes, aber Sie sollten in der Lage sein, die Wellenlänge jedes Bandes basierend auf den Metadaten (Informationen, die Sie über die Daten erhalten sollten) zu kennen.

die beiden von "ComputeBandStats()" zurückgegebenen Werte sind die bedeuten und Standardabweichung der Werte in Ihren Bändern. Wenn der Mittelwert zwischen null und eins liegt, können Sie davon ausgehen, dass Ihre Daten den Reflexionsgrad speichern, ansonsten handelt es sich wahrscheinlich um Ziffern.

Normalerweise haben hyperspektrale Daten eine sehr große Anzahl von Bändern (mehrere Hundert) mit einem konstanten Abtastintervall in den Wellenlängen (zB 6 nm). Wenn Sie also den Wert des Wellenlängenbereichs (zB 400-900 nm) kennen, können Sie ableiten die zentrale Wellenlänge jedes Bandes unter Verwendung einer Regel von 3.


Schau das Video: Read and write raster files with GDAL in Python