Define the question
Select a measurable phenomenon, an area of interest, and a period long enough to distinguish trend from noise.
Region + variable + timeframeA transparent, reproducible workflow for separating meaningful environmental change from seasonality, outliers, and ordinary variability.
Iris does not predict the future. It asks whether the past contains a statistically credible signal—and shows every step used to reach that conclusion.
Each stage produces an inspectable output used by the next stage.
Select a measurable phenomenon, an area of interest, and a period long enough to distinguish trend from noise.
Region + variable + timeframeAggregate grid cells by area, identify missing observations, and optionally remove the repeating seasonal cycle.
QC + area weighting + STLApply the Mann–Kendall test to determine whether values consistently move in one direction through time.
Non-parametric significanceUse Sen’s slope to estimate the typical rate of change without letting a few extreme observations dominate.
Robust effect sizeFlag observations beyond ±2 standard deviations and test related variables for a plausible physical explanation.
Z-score + clue engineCompares every observation with those that came before it. A large positive or negative score indicates a consistent pattern unlikely to be random.
Takes the median slope between all observation pairs, producing a robust rate that resists distortion from extreme values.
Environmental records are often skewed, seasonal, and affected by outliers. Mann–Kendall does not assume a normal distribution and tests whether values tend to increase or decrease consistently.
Every regional scan and Case File is assigned a reproducible Evidence Grade based on temporal span, valid monthly coverage, Hamed–Rao significance, and parametric/non-parametric concordance.
>=15-year window, >=90% valid monthly coverage, Hamed-Rao MK p < 0.05 (BH-FDR q < 0.05), Sen's slope and n_eff-adjusted OLS concordant within 35%, and no severe unmitigated structural break.
>=10-year window, >=80% valid monthly coverage, Hamed-Rao MK p < 0.05, directional concordance between Sen's slope and OLS, with documented sensor/reanalysis caveats.
8–14 year window or 70–80% coverage, or marginal significance (0.05 <= p < 0.15) where interannual variability (ENSO/monsoon) approaches trend amplitude.
<8 years of data, <70% valid coverage, p >= 0.15, or conflicting parametric/non-parametric slope signs.
Synthetic test fixtures are strictly isolated to this validation harness and blocked from production discovery, preview, cube, and Case File endpoints.
VAL-01PASSEDMonthly area-averaged anomaly & Sen's slope concordance against NASA GES DISC Giovanni benchmark series
VAL-02PASSEDRed-noise AR(1) synthetic validation fixture (r1 = 0.60, zero true slope) — isolated strictly to test harness
VAL-03PASSEDValidation fixture with +4.5 sigma end-of-record spike (1985–2024)
VAL-04PASSEDGlobal Trend Cube grid-cell false discovery control
Model: gemini-3.5-flash-lite (with deterministic keyword fallback when SI is disabled or offline)
| Upstream Provider | Catalog State | Extraction State | Geometries & Cadence | Authentication & QA Semantics |
|---|---|---|---|---|
| NASA POWER NASA Langley Research Center (LaRC) / GMAO MERRA-2 | extract_verified | extract_verified | Geometries: point, bbox Cadences: Daily, Monthly, Yearly | Auth: Public REST API (No token required) QA: Fill value -999.0 masked prior to resampling and statistical analysis |
| NASA GES DISC NASA Goddard Earth Sciences Data and Information Services Center (Giovanni in the Cloud) | extract_verified | extract_verified | Geometries: point Cadences: Daily, Monthly | Auth: Earthdata Bearer Token (Server-side environment variable) QA: Upstream fill values masked; quality flags preserved in observation rows |
| NASA AppEEARS NASA LP DAAC / Earthdata Cloud | catalog_verified | credential_required | Geometries: point, bbox Cadences: 8-Day, 16-Day, Monthly | Auth: Earthdata Login Basic Auth -> AppEEARS Session Token (`POST /api/login`) QA: Pixel-level MODIS/VIIRS quality bitmask layer (`_QC` / `VI Quality`) decoding |
| NASA CMR NASA Earthdata Common Metadata Repository | catalog_verified | unsupported | Geometries: bbox, point Cadences: Daily, 8-Day, 16-Day, Monthly, Yearly | Auth: Public UMM-JSON Metadata API QA: Collection-level science quality summaries |
| NASA Harmony NASA Earthdata Cloud Subsetting & OGC API-Coverages | catalog_verified | credential_required | Geometries: bbox, point Cadences: Daily, Monthly | Auth: Earthdata Bearer Token + Async Cloud Subsetting Job QA: NetCDF4/Zarr CF-compliant `_FillValue` and `valid_range` attributes |
| NOAA CDO NOAA National Centers for Environmental Information (NCEI) | planned | planned | Geometries: point, bbox Cadences: Daily, Monthly, Yearly | Auth: NOAA NCEI CDO Token Header (`token`) QA: GHCN-Daily / GSOM measurement and quality flags |
| EODAG / Copernicus ECMWF Copernicus Climate Change Service (C3S / CDS) | planned | planned | Geometries: bbox, point Cadences: Monthly, Daily | Auth: Copernicus CDS API Key QA: ERA5 ensemble spread and land-sea mask weighting |