qin3·advanced

Is a glacial lake above my valley growing toward an outburst flood?

cryospherehazardswater-resources Datasets: 5 15–40 min
Find the data for your area

Draw a rectangle to pick your area of interest, then see what NASA data covers it (live, here in your browser) or download a ready-to-run notebook with your AOI pre-filled. The notebook runs in any Python environment — it needs a free Earthdata Login to fetch the data.

Current AOI: 78.5, 30.3 → 80.5, 31.3 (Uttarakhand Himalaya)
On this page

Is a glacial lake above my valley growing toward an outburst flood?

What you can answer

  • Year-over-year glacial-lake surface area for any high-mountain AOI
  • Growth trend and acceleration — the primary GLOF precursor signal
  • Which lake in a basin is expanding fastest (multi-lake screening)
  • Moraine / dam geometry context from Copernicus GLO-30 DEM and ICESat-2 elevation
  • Downstream exposure framing — channel slope and relief below the lake

What you can NOT answer with these alone

  • Whether a breach is imminent — area growth is a precursor, not a deterministic trigger; ice/rock avalanche, seepage, and moraine internal structure are not observable from optical area alone.
  • Sub-canopy or sub-debris water — debris-covered lakes and supraglacial ponds under debris are easily missed by a water index.
  • Monsoon-season change — persistent cloud blanks out optical sensors for months; SAR (e.g. Sentinel-1) is needed to see through cloud.
  • An engineering hazard rating — dam-break modelling, geotechnical breach analysis, and inundation hydraulics require field survey and physical models.

Code template

import earthaccess
import xarray as xr
import numpy as np

earthaccess.login(strategy="netrc")

# AOI: Uttarakhand Himalaya
aoi = (78.5, 30.3, 80.5, 31.3)
years = range(2016, 2026)

# 1. Harmonized Landsat-Sentinel (HLS) — clear late-ablation scenes per year
results = {}
for yr in years:
    # post-monsoon window: minimal cloud, low fresh snow
    granules = earthaccess.search_data(
        short_name="HLSS30",
        bounding_box=aoi,
        temporal=(f"{yr}-10-01", f"{yr}-11-15"),
    )
    results[yr] = granules

# 2. For the clearest scene each year, compute NDWI = (green - NIR) / (green + NIR)
#    (HLSS30 bands: B03 green, B08 NIR, B11 SWIR for MNDWI alternative)
#    files = earthaccess.open(results[yr])
#    ds = xr.open_dataset(...)  # stack B03, B08
#    ndwi = (ds.B03 - ds.B08) / (ds.B03 + ds.B08)
#    lake_mask = ndwi > 0.2          # threshold — tune & QA visually per scene
#    pixel_area_m2 = 30 * 30
#    lake_area_km2 = lake_mask.sum() * pixel_area_m2 / 1e6

# 3. Build per-year area series → detect growth / acceleration
# 4. Moraine/dam context: Copernicus GLO-30 DEM + ICESat-2 ATL06 along-track
#    dem = earthaccess.search_data(short_name="...", bounding_box=aoi)
#    Use DEM to extract downstream channel slope below the lake outlet

# 5. Flag: lakes whose area trend is positive AND accelerating

Expected output

  • Per-lake area time series: km² per year with a fitted growth trend
  • Growth-flag table: lakes ranked by rate and acceleration of area increase
  • Lake-outline overlays on the clearest scene each year (visual QA of the masks)
  • DEM cross-section through the moraine dam + downstream channel slope profile
  • Exposure note: relief and slope between the lake and the nearest settlement

Caveats

  • NDWI/MNDWI false positives: cloud shadow, terrain shadow, and fresh snow can mimic water; turbid or partly frozen lakes can be missed. Always QA masks visually.
  • Threshold is scene-dependent: a single NDWI cutoff (commonly near 0 to 0.2) is a starting point only — verify against the imagery; do not treat it as a fixed standard.
  • Monsoon optical gap: June–September cloud cover blanks Himalayan scenes; combine with Landsat history and, for all-weather monitoring, Sentinel-1 SAR.
  • Screening, not assessment: area growth flags candidates for expert review. It is not a substitute for a GLOF hazard study, dam-break modelling, or field survey.
  • Geolocation & co-registration: multi-sensor area comparison requires consistent reprojection; small misregistration inflates apparent change.

Cross-DAAC composition

LP DAAC (HLS), USGS (Landsat C2 L2), ESA/Copernicus (Sentinel-2, GLO-30 DEM), and NSIDC DAAC (ICESat-2) — multiple providers and auth contexts; HLS via earthaccess gives the fastest single-auth start.

Sources

How a scientist answers this
Parameters
Glacial-lake surface area mapped from optical reflectance using a water index — NDWI (green vs NIR) or MNDWI (green vs SWIR) — on cloud-free Sentinel-2 (10 m), HLS (30 m), or Landsat (30 m) scenes. Lake outlines are thresholded from the index, and the per-pixel area is summed per year to build an area time series. Dam and moraine context comes from a DEM (Copernicus GLO-30) and ICESat-2 along-track elevation; downstream slope and relief from the same DEM define who is exposed.
Method
For each year, pick the clearest late-ablation-season scene (post-monsoon, minimal snow/cloud), compute the water index, threshold to a lake mask, and total the wetted area. Plot area vs year and flag rapid or accelerating growth as the primary GLOF precursor. Overlay the DEM-derived moraine geometry and downstream channel slope to gauge breach and inundation exposure. A single threshold is approximate — review masks visually and tune per scene.
Validation
Compare flagged lakes against published GLOF and glacial-lake inventories (e.g. ICIMOD, regional databases) rather than treating the index alone as truth. NDWI/MNDWI confuse lake water with cloud shadow, mountain shadow, turbid/sediment-laden or frozen water, and fresh snow, so masks need visual QA. Optical coverage has large monsoon gaps; pair with Landsat for the long record. This is a screening proxy, not an engineering hazard assessment.
In plain EnglishSatellites see the lake as a bright patch of water against rock and ice. Measure that patch's size every year — if it is steadily getting bigger, especially fast, the dam holding it back may be under growing strain, which is the main early warning sign of a sudden flood downstream.

Make it yours → Set your valley's bounding box and the years to scan; the notebook builds the per-year lake-area series and flags growth. Swap Sentinel-2 (10 m, 2015+) for finer detail or Landsat (30 m, 1984+) for the longer history, and change the water-index threshold to match local turbidity and snow conditions.

Run the core method · no login

The thresholding a measurement into classes at the heart of this question — runnable on synthetic data, right here. The full earthaccess code template further down does it on real NASA data (needs an Earthdata login).

editable · runs in your browser

Datasets used