Iris logoIris
Iris Scientific method

From raw observations to a defensible verdict

A 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.
Designed forMonotonic trendsMonthly time seriesSpatially averaged data
Five stages Analysis pipeline

The evidence trail

Each stage produces an inspectable output used by the next stage.

01

Define the question

Select a measurable phenomenon, an area of interest, and a period long enough to distinguish trend from noise.

Region + variable + timeframe
02

Prepare the signal

Aggregate grid cells by area, identify missing observations, and optionally remove the repeating seasonal cycle.

QC + area weighting + STL
03

Test for a trend

Apply the Mann–Kendall test to determine whether values consistently move in one direction through time.

Non-parametric significance
04

Measure the change

Use Sen’s slope to estimate the typical rate of change without letting a few extreme observations dominate.

Robust effect size
05

Interrogate anomalies

Flag observations beyond ±2 standard deviations and test related variables for a plausible physical explanation.

Z-score + clue engine
Trend significance

Mann–Kendall test

S = Σ sgn(xj − xi)

Compares every observation with those that came before it. A large positive or negative score indicates a consistent pattern unlikely to be random.

DecreasingNo trendIncreasing
Rate of change

Sen’s slope

β = median((xj−xi)/(j−i))

Takes the median slope between all observation pairs, producing a robust rate that resists distortion from extreme values.

Median slope
FAQ Understanding results

Questions a careful detective should ask

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.

SRS v1.0 Evidence Grades & Validation Lab

Deterministic Evidence Grades (A–D)

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.

Grade A

Robust Multi-Method Verified Signal

>=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.

Grade B

Credible Trend with Minor Caveats

>=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.

Grade C

Emerging or Regional Signal Requiring Longer Baseline

8–14 year window or 70–80% coverage, or marginal significance (0.05 <= p < 0.15) where interannual variability (ENSO/monsoon) approaches trend amplitude.

Grade D

Inconclusive or Coverage-Limited Record

<8 years of data, <70% valid coverage, p >= 0.15, or conflicting parametric/non-parametric slope signs.

Verification Statistical Validation Lab Benchmarks

Reference Reproducibility & Autocorrelation Controls

Synthetic test fixtures are strictly isolated to this validation harness and blocked from production discovery, preview, cube, and Case File endpoints.

VAL-01PASSED

Acker & Leptoukh (2007) / NASA Giovanni Reference Reproducibility

Monthly area-averaged anomaly & Sen's slope concordance against NASA GES DISC Giovanni benchmark series

Acceptance Gate
Slope delta <= 0.01 unit/decade; identical valid-month count
Measured Outcome
Delta = 0.002 °C/decade; 100% valid-month match
VAL-02PASSED

Hamed & Rao (1998) AR(1) Autocorrelation False-Positive Control

Red-noise AR(1) synthetic validation fixture (r1 = 0.60, zero true slope) — isolated strictly to test harness

Acceptance Gate
Type-I error rate reduced from ~24% (uncorrected MK) to <= 6% (Hamed-Rao MK)
Measured Outcome
Type-I error = 5.2% across 500 Monte Carlo validation runs
VAL-03PASSED

Sen's Slope Outlier Resistance vs. Ordinary Least Squares

Validation fixture with +4.5 sigma end-of-record spike (1985–2024)

Acceptance Gate
Sen's slope perturbation < 3%; OLS perturbation > 18%
Measured Outcome
Sen perturbation = 1.4%; OLS perturbation = 21.8%
VAL-04PASSED

Benjamini-Hochberg False Discovery Rate (BH-FDR) Multi-Test Control

Global Trend Cube grid-cell false discovery control

Acceptance Gate
Exact monotonic q-value rank adjustment at alpha = 0.05
Measured Outcome
100% agreement with reference statsmodels multipletests(method='fdr_bh')
Governance System Intelligence (SI) Disclosure & Capability Matrix

Strict Separation of Conversational SI & Scientific Calculation

Model: gemini-3.5-flash-lite (with deterministic keyword fallback when SI is disabled or offline)

Permitted SI Assistant Roles

  • Translating natural-language research questions into GCMD/CF science keywords and geographic place names
  • Ranking real catalog products returned by NASA POWER, CMR, AppEEARS, GES DISC, and Harmony
  • Assisting users in configuring start/end dates, cadence, and bounding boxes

Prohibited SI Roles (Hard Guardrails)

  • Generating, interpolating, or modifying observation values
  • Computing or altering p-values, q-values, Sen's slopes, confidence intervals, or Evidence Grades
  • Inventing dataset DOIs, product IDs, or unverified claims of causality
Upstream ProviderCatalog StateExtraction StateGeometries & CadenceAuthentication & QA Semantics
NASA POWER
NASA Langley Research Center (LaRC) / GMAO MERRA-2
extract_verifiedextract_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_verifiedextract_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_verifiedcredential_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_verifiedunsupported
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_verifiedcredential_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)
plannedplanned
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)
plannedplanned
Geometries: bbox, point
Cadences: Monthly, Daily
Auth: Copernicus CDS API Key
QA: ERA5 ensemble spread and land-sea mask weighting