The short answer
An environmental baseline is a quantified, reproducible snapshot of conditions before a project or disturbance, built so that later change can be attributed rather than guessed at. Remote sensing makes baselines possible at scale: the Landsat archive reaches back to the 1980s, and Sentinel-2 adds 10 m detail since 2015. The hard part is not computing NDVI — it is designing the baseline so it captures natural variability (seasons, wet and dry years), harmonising data across sensors and dates, and expressing change against that variability instead of against a single lucky scene. A baseline that ignores those steps will flag drought as impact and rain as recovery.
What a baseline has to represent
A defensible baseline answers: what was normal here, and how much did "normal" itself vary? That means it is rarely one image. Vegetation greens and senesces seasonally; rivers and wetlands expand and contract; bare ground shifts with agriculture. If your baseline is a single June 2018 scene, every future comparison inherits that scene's particular tide, rainfall and phenology.
So a baseline is built from time series and summarised statistically — typically a per-pixel mean and standard deviation (or a trend) of each indicator over several years and matched seasons. Later observations are then judged in units of that variability ("NDVI fell 2.3 standard deviations below the dry-season baseline"), which is far more defensible to a regulator than a raw difference.
Choosing data and indicators
Landsat (5/7/8/9, 30 m, ~16-day revisit, archive to 1984) is the backbone for retrospective baselines — you can reconstruct conditions years before a project was conceived. Sentinel-2 (10-20 m, 5-day revisit since 2015) gives finer spatial detail and denser time series going forward. Many programmes use a harmonised product (e.g. NASA's HLS, Harmonized Landsat Sentinel-2) so both sensors sit on a common grid and reflectance scale.
Indicators map to the receptors you must protect:
- NDVI
(NIR − Red)/(NIR + Red)— vegetation vigour and extent. - NDMI / NDWI (vegetation)
(NIR − SWIR1)/(NIR + SWIR1)— canopy water content / drought stress. - MNDWI
(Green − SWIR1)/(Green + SWIR1)— open surface water extent. - NBR
(NIR − SWIR2)/(NIR + SWIR2)— fire and disturbance; dNBR for severity. - Bare-soil / tasselled-cap components — exposed ground, a proxy for erosion or clearing.
Pick the minimum set that covers the impact pathways; resist adding indices you cannot interpret.
Building the baseline: a worked workflow
Assume a mine or infrastructure site, baseline period 2016-2020, using Google Earth Engine or a local Sentinel-2 + Landsat stack.
1. Define the period and area. Fix the baseline window before any disturbance, and a buffered AOI plus an unaffected reference (control) area with similar land cover — control areas let you separate site-specific change from regional climate signals.
2. Cloud and shadow masking. Apply the Sentinel-2 SCL band (and s2cloudless) or Landsat QA_PIXEL; drop snow, cloud, cirrus and shadow per pixel. This is the single biggest driver of false trends if skipped.
3. Surface reflectance and harmonisation. Use atmospherically corrected surface reflectance (Sentinel-2 L2A, Landsat Collection 2 L2). If mixing sensors, apply published cross-sensor coefficients so OLI and MSI NDVI are comparable.
4. Seasonal composites. Build per-season median composites (e.g. wet-season and dry-season medians per year). Medians reject residual cloud and outliers better than means.
5. Per-pixel statistics. Compute baseline mean and standard deviation, and a linear trend (slope) for each indicator across the period. The trend matters: a "stable" baseline and a "already-declining" baseline demand different interpretations later.
# Earth Engine sketch: dry-season NDVI baseline mean & stdDev, 2016-2020
baseline = (s2_l2a
.filterDate('2016-01-01','2020-12-31')
.filter(ee.Filter.calendarRange(6,9,'month')) # dry season
.map(mask_scl)
.map(lambda im: im.normalizedDifference(['B8','B4']).rename('ndvi')))
ndvi_mean = baseline.select('ndvi').mean()
ndvi_sd = baseline.select('ndvi').reduce(ee.Reducer.stdDev())
6. Document everything. Record scene IDs, processing level, masking rules, index formulas, CRS (e.g. EPSG:32630) and the baseline period so the study is reproducible years later — auditors will ask.
Detecting change against the baseline
Once a baseline exists, monitoring is comparison done honestly:
- Z-score / anomaly maps —
(observation − baseline_mean) / baseline_sd, phenologically matched, so change is in variability units. - Trend tests — Mann-Kendall plus Theil-Sen slope on the continuing time series resists outliers and gives a defensible significance statement.
- Breakpoint methods — algorithms like LandTrendr or BFAST detect the timing of abrupt change in long records, separating gradual drift from a step.
- Control-area differencing — subtract the reference area's signal to remove regional climate, isolating project-attributable change.
Common pitfalls and why they happen
- The single-date baseline. One scene cannot represent variability, so every later comparison confounds seasonality with impact.
- Mismatched phenology. Comparing a spring scene to an autumn scene shows leaf-off as "vegetation loss." Always match season or use seasonal composites.
- Sensor switch mid-record. Landsat 7 SLC-off gaps, or an un-harmonised jump from Landsat to Sentinel-2, create artefacts that look like real trends.
- No control area. A regional drought then reads as project impact because nothing isolates the local signal.
- Cloud/shadow leakage. Unmasked thin cloud lowers NDVI and fakes degradation; residual shadow does the same. The QA band is mandatory.
- Raw differencing. A two-date difference with no variability context cannot say whether change is significant.
QA and validation
Cross-check the baseline against field vegetation surveys, water-level or flow gauges, and existing land-cover maps; verify masks by inspecting cloudy edges and water bodies; report per-index uncertainty (baseline SD, trend confidence intervals); and confirm the control area genuinely tracks the site under shared climate. Archive intermediate composites so any anomaly can be traced to its scenes.
Bathyl perspective
A baseline's value is measured years later, when someone has to prove what changed and what did not. We build baselines as documented, multi-year, variability-aware datasets with a control area and a clear processing trail, so that subsequent change detection is an attribution exercise a regulator will accept — not a two-image guess.
Related reading
- NDVI and Geology: What It Can and Cannot Show
- Change Detection for Terrain Projects
- Remote Sensing Ground Truth Checklist
- Remote Sensing for Coastal Terrain
- Remote sensing and Earth data