giovedì 26 febbraio 2026

Da radianza a riflettanza su dati Aviris con IARR

 I dati Aviris sono distribuiti spesso in radianza ed in formato netcdf

Per trasformali in riflettanza in modo semplice tramite IARR Internal Average Relative Reflectance e per usarli in modo altrettanto tramite un formato Envi  si puo' usare il seguente script

 

Riflettanza

Radianza


 

import xarray as xr
import spectral.io.envi as envi
import numpy as np

ds_root = xr.open_dataset("dati.nc")

data_cube = ds_rad['radiance'].transpose('lines', 'samples', 'wavelength').values
mean_spectrum = np.mean(data_cube, axis=(1, 2))
reflectance = data_cube / mean_spectrum[:, None, None]


if 'wavelength' in ds_rad:
wavs = ds_rad['wavelength'].values.tolist()
elif 'wavelength' in ds_root:
wavs = ds_root['wavelength'].values.tolist()
else:
wavs = list(range(data_cube.shape[2]))

metadata = {
'description': 'AVIRIS-3 Radiance converted for SNAP',
'wavelength units': 'nanometers',
'wavelength': wavs
}

envi.save_image('aviris_radiance.hdr', data_cube, metadata=metadata, force=True)
envi.save_image('aviris_reflectance.hdr', reflectance, metadata=metadata, force=True)

print("Done! Open aviris_radiance.hdr in SNAP.")


 

Nessun commento:

Posta un commento

Errore NTFS su Debian

Montando un disco USB esterno che usiamo di scambio a lavoro (e quindi formattato NTFS per Windows) e' comparso il seguente errore    lu...