Geospatial Technology Associates · Digital Whitepaper

ISOFIT Atmospheric Correction — Arizona Area Trial

Author: William Basener Published: May 2026 Scenes: 23 Companion: Atmospheric Gas Spectra DB

Scene Footprints

Geographic footprints of all 23 EMIT scenes used in this whitepaper, colored by the shared gta_quality tier. Click any footprint for its scene ID and QC reason; use the sliders to adjust per-tier fill opacity.

40%
40%
40%
40%

Abstract: The Imaging Spectrometer Optimal FITting (ISOFIT) framework solves the coupled surface–atmosphere inverse problem from at-sensor radiance, retrieving per-pixel surface reflectance simultaneously with atmospheric water vapor and aerosol optical thickness via Accelerated Optimal Estimation. We summarize the algorithm and present a side-by-side comparison of the JPL operational EMIT L2A V001 product against a local ISOFIT + sRTMnet retrieval on 23 EMIT scenes covering Arizona Area Trial. For each scene we provide a true-color RGB pair with PC-pure pixel markers, mean and selected spectra, the first eighteen principal-component composites, the eigenvalue spectrum, and a nested mineral-spectral-index accordion.

1. Why Atmospheric Correction Matters

An imaging spectrometer measures at-sensor radiance \(L(\lambda)\) — a tangled superposition of light scattered by atmospheric molecules and aerosols, light reflected from the surface that transits the atmosphere twice, and the spherical-albedo coupling between the two. Recovering surface reflectance \(\rho(\lambda)\) requires inverting that radiative transfer chain pixel-by-pixel.

$$ L(\lambda) = L_a(\lambda) + \frac{T_\downarrow(\lambda)\,T_\uparrow(\lambda)\,\rho(\lambda)\,F_0(\lambda)\cos\theta_s}{\pi\bigl(1 - s(\lambda)\,\rho(\lambda)\bigr)} $$

The algorithms here apply to a family of NASA imaging spectrometers — AVIRIS-Classic, AVIRIS-NG, AVIRIS-3, and EMIT — that share a common forward-model architecture in ISOFIT. The 23 scenes presented here come from EMIT.

Methods note · water-band masking

Two atmospheric water-vapor absorption regions, 1250–1500 nm and 1750–2000 nm, are explicitly excluded from PCA fitting, the eigenvalue spectrum, the ASTER-band synthesis used for the mineral indices, and the spectra plots (where the lines visibly break across those windows). The masks are applied in addition to the per-pixel band-quality flags (bbl) embedded in each retrieval. This isolates the comparison from the wavelengths most contaminated by atmospheric residuals — keeping the principal-component structure dominated by surface variance rather than unconverged H₂O absorption.

2. The ISOFIT Algorithm

2.1 The Forward Model

ISOFIT writes the at-sensor radiance as the composition of a surface model \(\rho(\mathbf{x}_s; \lambda)\) and an atmosphere model \(\mathcal{A}(\mathbf{x}_a; \lambda)\):

$$ \mathbf{f}(\mathbf{x}_s, \mathbf{x}_a) = \mathbf{R}\!\left[L_a + \frac{T_\downarrow T_\uparrow\,\rho(\mathbf{x}_s)\,F_0\cos\theta_s/\pi}{1 - s\,\rho(\mathbf{x}_s)}\right] $$

where \(\mathbf{R}\) applies the spectral response of the instrument and \(\mathbf{x}_s\), \(\mathbf{x}_a\) are the surface- and atmospheric-state vectors. The state \(\mathbf{x}_a\) is kept low-dimensional (column water vapor, AOT at 550 nm) because well-mixed gases can be held at climatology with negligible error in retrieved \(\rho\).

2.2 Accelerated Optimal Estimation

OE inverts the forward model under a Gaussian prior and Gaussian instrument noise. The cost is:

$$ \chi^2(\mathbf{x}) = \bigl(\mathbf{y} - \mathbf{f}(\mathbf{x})\bigr)^\top \mathbf{S}_\epsilon^{-1} \bigl(\mathbf{y} - \mathbf{f}(\mathbf{x})\bigr) + (\mathbf{x} - \mathbf{x}_a)^\top \mathbf{S}_a^{-1} (\mathbf{x} - \mathbf{x}_a) $$

The Accelerated formulation collapses the >280-dimensional Levenberg–Marquardt iteration into a closed-form surface inversion wrapped in a small two-dimensional outer search over the atmospheric state, so retrievals are orders of magnitude faster while still reporting a full posterior covariance.

2.3 Radiative Transfer Engines and sRTMnet

The forward model needs \(\{L_a, T_\downarrow T_\uparrow, s\}\) at every wavelength for every plausible atmospheric state. ISOFIT supports MODTRAN 6 (operational JPL reference), LibRadTran (open-source), 6S (open-source, fast), and sRTMnet, a deep neural emulator trained on millions of 6S calls. We use sRTMnet for both EMIT and AVIRIS pipelines.

2.4 The Multicomponent Surface Prior

Without a prior, OE on a 285-channel reflectance spectrum is ill-posed. The multicomponent surface model partitions a global reflectance training set (vegetation, soils, water, mineral surfaces, snow) by k-means and assigns a Gaussian prior to each cluster; per pixel, ISOFIT picks the most likely component from a radiance-domain pre-classification, then uses that component's prior in the OE inversion.

3. The "Standard" Reflectance We Compare Against

We compare to the official EMIT L2A surface reflectance product as distributed by NASA's LP DAAC. Each scene's NetCDF header records its provenance:

title:        EMIT L2A Estimated Surface Reflectance 60 m V001
sensor:       EMIT (Earth Surface Mineral Dust Source Investigation)
platform:     ISS
institution:  NASA Jet Propulsion Laboratory / California Institute of Technology
software_build_version: 010621/010627
product_version: V001

The "standard" is the JPL operational ISOFIT pipeline (MODTRAN-based) running inside the EMIT Science Data System. Our local retrieval uses the open-source ISOFIT 3.7.x release with the sRTMnet neural emulator and a default multicomponent surface configuration:

description = L2A Analytical per-pixel surface retrieval
              (segmentation_size=40, engine=sRTMnet, isofit_version=3.7.x)
samples = 1242, lines = 1280, bands = 285
interleave = bil, no data value = -9999

Both retrievals operate on the same EMIT L1B radiance cube. Differences come from the radiative-transfer engine (full MODTRAN vs. sRTMnet emulator), the surface library configuration, and the segmentation size used to amortize OE across spatially coherent blocks.

4. Scene Comparisons 23 scenes

All 23 EMIT scenes are organized below by QC tier, following the Landsat Collection 2 convention: Tier 1 = best, Tier 4 = worst. Tier 1 (Excellent) and Tier 2 (Mild Cloud) scenes are processed and rendered with their full output set — RGB, spectra, PCA composites, eigenvalues, and the nested 15-map mineral-spectral-index accordion. Tier 3 (High Cloud) and Tier 4 (Missing Data) scenes are excluded from processing; only their RGB render is shown so you can see what was filtered. Click any processed scene to expand its full diagnostics; opening one collapses any other open scene.

SceneTierDead rowsCloud %QC Notes
29 Jan 2024 19:59 UTC — emit20240129t195908T30.0%24.8%cloud+cirrus+dilated = 24.8% (> 15%)
2 Feb 2024 18:24 UTC — emit20240202t182442T495.0%100.0%95.0% dead rows (> 10%)
20 Apr 2024 19:25 UTC — emit20240420t192535T20.0%12.4%cloud+cirrus+dilated = 12.4% (> 10%, ≤ 15%)
20 Apr 2024 19:25 UTC — emit20240420t192547T20.0%11.8%cloud+cirrus+dilated = 11.8% (> 10%, ≤ 15%)
26 Jun 2024 16:52 UTC — emit20240626t165222T30.0%16.2%cloud+cirrus+dilated = 16.2% (> 15%)
2 Aug 2024 18:16 UTC — emit20240802t181618T10.0%5.7%all checks passed (cloud+cirrus+dilated = 5.7%)
6 Aug 2024 16:41 UTC — emit20240806t164107T10.0%3.3%all checks passed (cloud+cirrus+dilated = 3.3%)
26 Aug 2024 16:44 UTC — emit20240826t164408T10.0%6.9%all checks passed (cloud+cirrus+dilated = 6.9%)
29 Sep 2024 19:16 UTC — emit20240929t191631T10.0%4.8%all checks passed (cloud+cirrus+dilated = 4.8%)
2 Dec 2024 18:01 UTC — emit20241202t180154T30.0%37.6%cloud+cirrus+dilated = 37.6% (> 15%)
2 Dec 2024 18:02 UTC — emit20241202t180206T10.0%8.8%all checks passed (cloud+cirrus+dilated = 8.8%)
31 Jan 2025 18:11 UTC — emit20250131t181133T20.0%14.1%cloud+cirrus+dilated = 14.1% (> 10%, ≤ 15%)
31 Jan 2025 18:11 UTC — emit20250131t181145T10.0%1.1%all checks passed (cloud+cirrus+dilated = 1.1%)
6 Apr 2025 16:33 UTC — emit20250406t163321T30.0%22.6%cloud+cirrus+dilated = 22.6% (> 15%)
3 Jun 2025 17:35 UTC — emit20250603t173505T37.5%44.3%cloud+cirrus+dilated = 44.3% (> 15%)
7 Jun 2025 15:58 UTC — emit20250607t155817T420.0%4.8%interior gap(s) totaling 224 rows AND 20.0% dead rows (> 10%)
27 Jun 2025 15:59 UTC — emit20250627t155944T30.0%16.7%cloud+cirrus+dilated = 16.7% (> 15%)
18 Jul 2025 23:39 UTC — emit20250718t233916T30.0%59.1%cloud+cirrus+dilated = 59.1% (> 15%)
26 Jul 2025 20:25 UTC — emit20250726t202545T10.0%0.1%all checks passed (cloud+cirrus+dilated = 0.1%)
11 Aug 2025 22:02 UTC — emit20250811t220237T30.0%19.5%cloud+cirrus+dilated = 19.5% (> 15%)
11 Aug 2025 22:02 UTC — emit20250811t220249T30.0%15.4%cloud+cirrus+dilated = 15.4% (> 15%)
2 Oct 2025 17:35 UTC — emit20251002t173514T10.0%9.2%all checks passed (cloud+cirrus+dilated = 9.2%)
2 Oct 2025 17:35 UTC — emit20251002t173526T10.0%2.0%all checks passed (cloud+cirrus+dilated = 2.0%)

Tier 1 — Excellent Quality Included in Processing 9 scenes

No data-quality issues
Criteria: Passes all QC gates: no missing rows, no interior gaps, cloud fraction at or below the mild threshold.
2 Aug 2024 18:16 UTC — emit20240802t181618 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
2 Aug 2024 18:16 UTC — emit20240802t181618 RGB
2 Aug 2024 18:16 UTC — emit20240802t181618 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
2 Aug 2024 18:16 UTC — emit20240802t181618 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
2 Aug 2024 18:16 UTC — emit20240802t181618 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 2 Aug 2024 18:16 UTC — emit20240802t181618 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20240802t181618
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20240802t181618
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20240802t181618
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20240802t181618
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20240802t181618
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20240802t181618
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20240802t181618
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20240802t181618
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20240802t181618
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20240802t181618
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20240802t181618
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20240802t181618
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20240802t181618
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20240802t181618
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20240802t181618
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
6 Aug 2024 16:41 UTC — emit20240806t164107 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
6 Aug 2024 16:41 UTC — emit20240806t164107 RGB
6 Aug 2024 16:41 UTC — emit20240806t164107 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
6 Aug 2024 16:41 UTC — emit20240806t164107 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
6 Aug 2024 16:41 UTC — emit20240806t164107 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 6 Aug 2024 16:41 UTC — emit20240806t164107 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20240806t164107
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20240806t164107
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20240806t164107
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20240806t164107
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20240806t164107
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20240806t164107
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20240806t164107
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20240806t164107
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20240806t164107
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20240806t164107
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20240806t164107
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20240806t164107
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20240806t164107
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20240806t164107
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20240806t164107
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
26 Aug 2024 16:44 UTC — emit20240826t164408 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
26 Aug 2024 16:44 UTC — emit20240826t164408 RGB
26 Aug 2024 16:44 UTC — emit20240826t164408 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
26 Aug 2024 16:44 UTC — emit20240826t164408 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
26 Aug 2024 16:44 UTC — emit20240826t164408 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 26 Aug 2024 16:44 UTC — emit20240826t164408 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20240826t164408
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20240826t164408
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20240826t164408
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20240826t164408
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20240826t164408
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20240826t164408
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20240826t164408
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20240826t164408
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20240826t164408
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20240826t164408
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20240826t164408
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20240826t164408
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20240826t164408
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20240826t164408
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20240826t164408
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
29 Sep 2024 19:16 UTC — emit20240929t191631 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
29 Sep 2024 19:16 UTC — emit20240929t191631 RGB
29 Sep 2024 19:16 UTC — emit20240929t191631 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
29 Sep 2024 19:16 UTC — emit20240929t191631 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
29 Sep 2024 19:16 UTC — emit20240929t191631 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 29 Sep 2024 19:16 UTC — emit20240929t191631 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20240929t191631
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20240929t191631
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20240929t191631
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20240929t191631
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20240929t191631
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20240929t191631
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20240929t191631
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20240929t191631
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20240929t191631
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20240929t191631
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20240929t191631
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20240929t191631
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20240929t191631
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20240929t191631
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20240929t191631
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
2 Dec 2024 18:02 UTC — emit20241202t180206 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
2 Dec 2024 18:02 UTC — emit20241202t180206 RGB
2 Dec 2024 18:02 UTC — emit20241202t180206 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
2 Dec 2024 18:02 UTC — emit20241202t180206 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
2 Dec 2024 18:02 UTC — emit20241202t180206 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 2 Dec 2024 18:02 UTC — emit20241202t180206 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20241202t180206
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20241202t180206
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20241202t180206
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20241202t180206
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20241202t180206
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20241202t180206
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20241202t180206
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20241202t180206
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20241202t180206
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20241202t180206
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20241202t180206
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20241202t180206
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20241202t180206
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20241202t180206
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20241202t180206
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
31 Jan 2025 18:11 UTC — emit20250131t181145 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
31 Jan 2025 18:11 UTC — emit20250131t181145 RGB
31 Jan 2025 18:11 UTC — emit20250131t181145 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
31 Jan 2025 18:11 UTC — emit20250131t181145 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
31 Jan 2025 18:11 UTC — emit20250131t181145 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 31 Jan 2025 18:11 UTC — emit20250131t181145 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20250131t181145
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20250131t181145
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20250131t181145
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20250131t181145
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20250131t181145
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20250131t181145
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20250131t181145
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20250131t181145
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20250131t181145
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20250131t181145
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20250131t181145
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20250131t181145
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20250131t181145
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20250131t181145
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20250131t181145
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
26 Jul 2025 20:25 UTC — emit20250726t202545 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
26 Jul 2025 20:25 UTC — emit20250726t202545 RGB
26 Jul 2025 20:25 UTC — emit20250726t202545 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
26 Jul 2025 20:25 UTC — emit20250726t202545 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
26 Jul 2025 20:25 UTC — emit20250726t202545 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 26 Jul 2025 20:25 UTC — emit20250726t202545 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20250726t202545
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20250726t202545
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20250726t202545
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20250726t202545
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20250726t202545
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20250726t202545
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20250726t202545
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20250726t202545
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20250726t202545
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20250726t202545
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20250726t202545
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20250726t202545
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20250726t202545
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20250726t202545
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20250726t202545
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
2 Oct 2025 17:35 UTC — emit20251002t173514 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
2 Oct 2025 17:35 UTC — emit20251002t173514 RGB
2 Oct 2025 17:35 UTC — emit20251002t173514 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
2 Oct 2025 17:35 UTC — emit20251002t173514 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
2 Oct 2025 17:35 UTC — emit20251002t173514 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 2 Oct 2025 17:35 UTC — emit20251002t173514 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20251002t173514
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20251002t173514
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20251002t173514
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20251002t173514
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20251002t173514
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20251002t173514
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20251002t173514
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20251002t173514
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20251002t173514
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20251002t173514
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20251002t173514
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20251002t173514
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20251002t173514
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20251002t173514
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20251002t173514
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
2 Oct 2025 17:35 UTC — emit20251002t173526 Click to expand spectra, PCA grid, eigenvalues, and mineral indices
2 Oct 2025 17:35 UTC — emit20251002t173526 RGB
2 Oct 2025 17:35 UTC — emit20251002t173526 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
2 Oct 2025 17:35 UTC — emit20251002t173526 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
2 Oct 2025 17:35 UTC — emit20251002t173526 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 2 Oct 2025 17:35 UTC — emit20251002t173526 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20251002t173526
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20251002t173526
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20251002t173526
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20251002t173526
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20251002t173526
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20251002t173526
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20251002t173526
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20251002t173526
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20251002t173526
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20251002t173526
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20251002t173526
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20251002t173526
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20251002t173526
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20251002t173526
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20251002t173526
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]

Tier 2 — Mild Cloud Fraction Included in Processing 3 scenes

Above the warn threshold but at or below the skip threshold
Criteria: Processed but flagged — cloud + cirrus + dilated-cloud fraction is between the warn and skip thresholds. Mineral indices may be locally compromised; review outputs before drawing conclusions.
20 Apr 2024 19:25 UTC — emit20240420t192535Tier 2 — flagged: 12.4% cloud Click to expand spectra, PCA grid, eigenvalues, and mineral indices
20 Apr 2024 19:25 UTC — emit20240420t192535 RGB
20 Apr 2024 19:25 UTC — emit20240420t192535 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
20 Apr 2024 19:25 UTC — emit20240420t192535 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
20 Apr 2024 19:25 UTC — emit20240420t192535 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 20 Apr 2024 19:25 UTC — emit20240420t192535 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20240420t192535
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20240420t192535
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20240420t192535
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20240420t192535
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20240420t192535
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20240420t192535
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20240420t192535
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20240420t192535
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20240420t192535
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20240420t192535
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20240420t192535
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20240420t192535
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20240420t192535
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20240420t192535
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20240420t192535
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
20 Apr 2024 19:25 UTC — emit20240420t192547Tier 2 — flagged: 11.8% cloud Click to expand spectra, PCA grid, eigenvalues, and mineral indices
20 Apr 2024 19:25 UTC — emit20240420t192547 RGB
20 Apr 2024 19:25 UTC — emit20240420t192547 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
20 Apr 2024 19:25 UTC — emit20240420t192547 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
20 Apr 2024 19:25 UTC — emit20240420t192547 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 20 Apr 2024 19:25 UTC — emit20240420t192547 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20240420t192547
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20240420t192547
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20240420t192547
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20240420t192547
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20240420t192547
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20240420t192547
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20240420t192547
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20240420t192547
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20240420t192547
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20240420t192547
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20240420t192547
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20240420t192547
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20240420t192547
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20240420t192547
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20240420t192547
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]
31 Jan 2025 18:11 UTC — emit20250131t181133Tier 2 — flagged: 14.1% cloud Click to expand spectra, PCA grid, eigenvalues, and mineral indices
31 Jan 2025 18:11 UTC — emit20250131t181133 RGB
31 Jan 2025 18:11 UTC — emit20250131t181133 spectra
Mean (black) and six PC-pure pixel spectra; shaded vertical bands at 1250–1500 nm and 1750–2000 nm mark the masked water regions.
31 Jan 2025 18:11 UTC — emit20250131t181133 PCA
PCA composites — six rows of (R,G,B) = (PCₖ, PCₖ₊₁, PCₖ₊₂) for k = 1, 4, 7, 10, 13, 16.
31 Jan 2025 18:11 UTC — emit20250131t181133 eigenvalues
Eigenvalue spectrum in log scale.
Mineral spectral indices for 31 Jan 2025 18:11 UTC — emit20250131t181133 (15 maps)

FEAI — Ferric iron alteration

FEAI emit20250131t181133
FEAI = R(2.165)/R(0.82) + R(0.56)/R(0.66) [µm]

FEI_simple — Ferrous iron

FEI_simple emit20250131t181133
FEI_simple = R(2.165)/R(1.65) [µm]

CLAY_TM — Generic clay (TM5/TM7 analog)

CLAY_TM emit20250131t181133
CLAY_TM = R(1.65)/R(2.205) [µm]

CLAI — Argillic alteration (alunite/kaolinite)

CLAI emit20250131t181133
CLAI = (R(1.65)+R(2.205))/R(2.165) [µm]

ALI — Alunite (Ninomiya)

ALI emit20250131t181133
ALI = R(2.260)²/(R(2.165)·R(2.330)) [µm]

KAI1 — Kaolinite slope

KAI1 emit20250131t181133
KAI1 = R(2.260)/R(2.165) [µm]

KLI — Kaolinite doublet

KLI emit20250131t181133
KLI = (R(1.65)/R(2.165))·(R(2.330)/R(2.205)) [µm]

KAI3 — Kaolinite (alt 3-band)

KAI3 emit20250131t181133
KAI3 = (R(1.65)+R(2.260))/R(2.205) [µm]

OHI — OH-bearing minerals

OHI emit20250131t181133
OHI = (R(2.260)/R(2.205))·(R(1.65)/R(2.205)) [µm]

OHI3 — OH near 2.17 µm

OHI3 emit20250131t181133
OHI3 = (R(1.65)·R(2.260))/R(2.165)² [µm]

CLI — Calcite

CLI emit20250131t181133
CLI = (R(2.205)/R(2.330))·(R(2.395)/R(2.330)) [µm]

DOLI — Dolomite

DOLI emit20250131t181133
DOLI = (R(2.205)+R(2.330))/R(2.260) [µm]

MGAI — Mg-OH/chlorite/epidote

MGAI emit20250131t181133
MGAI = (R(2.395)+R(2.205))/R(2.330) [µm]

MONI — Montmorillonite

MONI emit20250131t181133
MONI = (R(1.65)+R(2.205))/R(2.260) [µm]

PRAI — Propylitic alteration

PRAI emit20250131t181133
PRAI = (R(2.260)+R(2.395))/R(2.330) [µm]

Tier 3 — High Cloud Fraction Not Included in Processing 9 scenes

Above the skip threshold
Criteria: Cloud + cirrus + dilated-cloud fraction exceeds the skip threshold. Scene excluded from full processing; only the RGB render is produced so reviewers can see what was filtered.
29 Jan 2024 19:59 UTC — emit20240129t195908Tier 3 — Not Included: 24.8% cloud
29 Jan 2024 19:59 UTC — emit20240129t195908 RGB
Reason: cloud+cirrus+dilated = 24.8% (> 15%)
26 Jun 2024 16:52 UTC — emit20240626t165222Tier 3 — Not Included: 16.2% cloud
26 Jun 2024 16:52 UTC — emit20240626t165222 RGB
Reason: cloud+cirrus+dilated = 16.2% (> 15%)
2 Dec 2024 18:01 UTC — emit20241202t180154Tier 3 — Not Included: 37.6% cloud
2 Dec 2024 18:01 UTC — emit20241202t180154 RGB
Reason: cloud+cirrus+dilated = 37.6% (> 15%)
6 Apr 2025 16:33 UTC — emit20250406t163321Tier 3 — Not Included: 22.6% cloud
6 Apr 2025 16:33 UTC — emit20250406t163321 RGB
Reason: cloud+cirrus+dilated = 22.6% (> 15%)
3 Jun 2025 17:35 UTC — emit20250603t173505Tier 3 — Not Included: 44.3% cloud
3 Jun 2025 17:35 UTC — emit20250603t173505 RGB
Reason: cloud+cirrus+dilated = 44.3% (> 15%)
27 Jun 2025 15:59 UTC — emit20250627t155944Tier 3 — Not Included: 16.7% cloud
27 Jun 2025 15:59 UTC — emit20250627t155944 RGB
Reason: cloud+cirrus+dilated = 16.7% (> 15%)
18 Jul 2025 23:39 UTC — emit20250718t233916Tier 3 — Not Included: 59.1% cloud
18 Jul 2025 23:39 UTC — emit20250718t233916 RGB
Reason: cloud+cirrus+dilated = 59.1% (> 15%)
11 Aug 2025 22:02 UTC — emit20250811t220237Tier 3 — Not Included: 19.5% cloud
11 Aug 2025 22:02 UTC — emit20250811t220237 RGB
Reason: cloud+cirrus+dilated = 19.5% (> 15%)
11 Aug 2025 22:02 UTC — emit20250811t220249Tier 3 — Not Included: 15.4% cloud
11 Aug 2025 22:02 UTC — emit20250811t220249 RGB
Reason: cloud+cirrus+dilated = 15.4% (> 15%)

Tier 4 — Missing Data Not Included in Processing 2 scenes

Interior dead rows or excessive total dead rows
Criteria: Image has rows of no-data interior to the image (live rows both before and after) OR more than the configured percentage of its rows are entirely no-data. Excluded from processing.
2 Feb 2024 18:24 UTC — emit20240202t182442Tier 4 — Not Included: 95.0% dead rows
2 Feb 2024 18:24 UTC — emit20240202t182442 RGB
Reason: 95.0% dead rows (> 10%)
7 Jun 2025 15:58 UTC — emit20250607t155817Tier 4 — Not Included: 224 interior dead rows
7 Jun 2025 15:58 UTC — emit20250607t155817 RGB
Reason: interior gap(s) totaling 224 rows AND 20.0% dead rows (> 10%)

5. Discussion

Across all scenes the true-color renders are visually indistinguishable: both retrievals flatten the atmospheric path radiance and recover surface color contrast. The PC-pure spectra agree closely on broad continuum shape but show systematic differences at the edges of the masked water regions — exactly the wavelengths where MODTRAN and the sRTMnet emulator differ most. The eigenvalue spectra are nearly parallel in their leading components but diverge in the tail, where atmospheric residuals live.

That divergence is informative. A perfect atmospheric correction would push residual covariance toward isotropic noise — a flat tail in log-eigenvalue space. Curvature in the tail indicates structured residuals that PCA can latch onto. We use that curvature, together with the higher-order PC composites, as a quick visual diagnostic of atmospheric-correction quality without ever needing ground truth.

What this whitepaper does not claim

Neither retrieval is "ground truth" — both are model-driven inversions of the same radiance with different RT engines and surface configurations. Their agreement is evidence the open-source path is operationally viable; it is not a validation against in-scene spectroradiometer measurements.

6. Reproducibility

All figures here are generated by a single self-contained Python script (digital_whitepaper/build_whitepaper.py) that loads the standard L2A from the LP DAAC NetCDF, the local ISOFIT cube via the spectral ENVI reader, applies the water-band mask, fits PCA on a 80,000-pixel subsample, picks PC-pure pixels, and renders all comparison figures. The local ISOFIT runs are produced by:

# EMIT scene → ISOFIT 3.7.x + sRTMnet
from isofit.utils.apply_oe import apply_oe
apply_oe(
    input_radiance     = "<flight>_rdn",
    input_loc          = "<flight>_loc",
    input_obs          = "<flight>_obs",
    sensor             = "emit",
    surface_path       = "data/surface/emit_surface.mat",
    emulator_base      = ".../sRTMnet_v100.h5",
    segmentation_size  = 40,
    presolve           = True,
    analytical_line    = True,
)

References

[1] Brodrick, P. G., Thompson, D. R., Garay, M. J., Giuliano, J., Green, R. O., et al. (2025). Improved Atmospheric Correction for Remote Imaging Spectroscopy Missions with Accelerated Optimal Estimation. Jet Propulsion Laboratory.

[2] Thompson, D. R., Natraj, V., Green, R. O., Helmlinger, M. C., Gao, B.-C., & Eastwood, M. L. (2018). Optimal Estimation for Imaging Spectrometer Atmospheric Correction. Remote Sensing of Environment, 216, 355–373.

[3] Connelly, D. S., Thompson, D. R., Mahowald, N. M., et al. (2021). The EMIT Mission Information Yield for Mineral Dust Radiative Forcing. Remote Sensing of Environment, 258, 112380.

[4] Berk, A., et al. (1998). MODTRAN cloud and multiple scattering upgrades with application to AVIRIS. Remote Sensing of Environment, 65(3), 367–375.

[5] Vermote, E. F., Tanré, D., Deuzé, J. L., Herman, M., & Morcrette, J. J. (1997). 6S: An Overview. IEEE Trans. Geosci. Remote Sens., 35(3), 675–686.

[6] Brodrick, P. G., Thompson, D. R., & Green, R. O. (2021). sRTMnet: Neural-network emulation of 6S for hyperspectral atmospheric correction. Remote Sensing of Environment.

[7] Adler-Golden, S. M., Berk, A., Bernstein, L. S., et al. (1999). FLAASH. Proc. AVIRIS Workshop.

[8] Basener, W. (2023). Gaussian Process and Deep Learning Atmospheric Correction. Remote Sensing 15(3), 649. mdpi.com/2072-4292/15/3/649

[9] Ninomiya, Y. (2003). A stabilized vegetation index and several mineralogic indices defined for ASTER VNIR and SWIR data. IGARSS 2003.

[10] Rowan, L. C., & Mars, J. C. (2003). Lithologic mapping in the Mountain Pass, California area using ASTER data. Remote Sensing of Environment 84(3), 350–366.

[11] Green, R. O., et al. (2020). The Earth Surface Mineral Dust Source Investigation. IEEE Aerospace Conference.

[12] EMIT L2A Algorithm Theoretical Basis Document, NASA JPL, V001.