This is my first pass at building a tool to understand the physics involved, from electromagnetic absorption and reflectance of sunlight through to corrected sensor observation. I've been focused on building out and validating existing spectral indices to understand the fundamentals before exploring my own based on molecular properties of materials from first principles.
So far the tool includes:
-An atmospheric correction processor with three methods: empirical band-ratio, Py6S radiative transfer, and ISOFIT optimal estimation
-An interactive viewer for both radiance and reflectance data with RGB composites, 23 spectral indices, and ROI-based spectral signature extraction with reference material matching
-A learning suite that explains each stage of the observation chain from solar irradiance to sensor capture
So far I've tested on AVIRIS-3 data from Santa Barbara Island, San Joaquin Valley and Cuprite, NV. I'd love a sanity check on the direction and general utility. If anyone works with hyperspectral data and wants to take a crack at stress testing, install requires Python 3.9+ and optionally conda for Py6S.