Suite

Longueurs d'onde des images hyperspectrales Python/GDAL


Je peux ouvrir et lire une image hyperspectrale en utilisant GDAL selon les instructions apportées par Max König ici :

Donc après avoir lu les données comme ceci :

data = gdal.Open( nom de fichier )

alors je peux voir les informations x, y, dim de l'ensemble de données :

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

Maintenant, la question est de savoir s'il existe un moyen de découvrir que chaque bande représente réellement quel spectre électromagnétique ?

Après avoir lu tous les groupes sous forme de liste en python comme ceci :

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

Je peux écrire:

RasterBands[1].ComputeBandStats()

Cela me donnera deux valeurs flottantes, mais je ne sais pas si elles représentent les longueurs d'onde de la bande 1 ou non.

Serait reconnaissant si quelqu'un peut me donner une piste!

Meilleur Sina


Comme le dit @ user30184, gdal ne fait que lire les valeurs de votre bande raster, mais vous devriez pouvoir connaître la longueur d'onde de chaque bande en fonction des métadonnées (informations que vous devriez obtenir sur les données).

les deux valeurs renvoyées par "ComputeBandStats()" seront les moyenne et écart-type des valeurs dans vos bandes. Si la valeur moyenne est comprise entre zéro et un, vous pouvez supposer que vos données stockent la réflectance, sinon les valeurs sont probablement des chiffres.

Habituellement, les données hyperspectrales ont un très grand nombre de bandes (plusieurs centaines) avec un intervalle d'échantillonnage constant dans les longueurs d'onde (par exemple 6 nm), donc si vous connaissez la valeur de la plage de longueurs d'onde (par exemple 400-900 nm), vous pouvez dériver la longueur d'onde centrale de chaque bande en utilisant une règle de 3.


Voir la vidéo: Introduction à la télédétection (Octobre 2021).