← All analysis & tools

OCHA CHD · exploratory analysis · Sentinel-1 · Langtang Lirung, Nepal

The glacier that stopped refreezing at night

On 26 August 2026, a huge chunk of ice and rock broke off a Himalayan peak in Nepal and caused a flood that killed hundreds of people. We went back through six years of free satellite radar images and asked a simple question: did the mountain look different before it failed? It did, starting four months out. The story below reads in plain language, and every step has an expandable panel with the full technical detail.

Collapse
2026-08-26 02:52:10 UTC
Seismic signature
M5.2-eq · us7000tbwb
Published source
28.28532°N 85.52515°E
SAR scar centroid
28.28648°N 85.52284°E · Δ260 m
First: how satellite radar works, in 60 seconds

The Sentinel-1 satellites fly over every spot on Earth every few days, send radar pulses at the ground, and measure how much echo bounces back. That echo strength is one number per ~10 m patch of ground, and it changes when the surface changes. Two properties matter here.

Water kills the echo. Dry snow and ice bounce radar back nicely, while wet, melting snow absorbs it, so a melting glacier face shows up darker to radar.

And radar doesn't care about clouds or darkness. This region was in monsoon, so optical satellites saw mostly cloud for months. Radar saw the mountain the whole time, which is why we used it.

One more thing. The satellite doesn't wander; it repeats a fixed set of ground tracks, each with a number. In the charts below these appear as "orbit 19", "orbit 85" and "orbit 121", the three tracks that see this mountain. Tracks flying north to south ("descending") cross here at about 6 in the morning local time; the track flying south to north ("ascending") crosses at about 6 in the evening. Keep that in mind, because it turns out to be the key to the whole finding.

Orbit 19 · descending
morning · 06:03
Orbit 85 · ascending
evening · 18:06
Orbit 121 · descending
morning · 06:03

Decoder for every chart on this page. Whenever a panel or line is labelled with an orbit number, this is what it means. Each track views the mountain from its own fixed angle, so charts never mix orbits. ("VV" in the axis labels is simply the radar channel used; see the glossary.)

Step 1: prove we're looking at the right mountain face

News reports gave coordinates for where the collapse started. Before trusting them, we checked. We took the first radar image after the collapse and compared it with the images from the weeks before. Where the surface got violently rearranged, the radar echo changed a lot: that's the dark shape below. It sits almost exactly on the published coordinate (260 m away, about three football pitches), and the debris trail is visible heading off down the valley. Everything after this point analyses that face, knowing it's the right one.

Post-event SAR change map showing the detachment scar and runout

Fig 1Darker blue means the radar echo after the collapse is very different from before. The red crosses are the published coordinates; the orange box is the mountain face we study for the rest of this page.

Technical detail: event & scar mapping

Event: ice/rock detachment, north flank of Langtang Lirung, 2026-08-26 02:52:10 UTC; seismic signature equivalent to M5.2 (USGS us7000tbwb), with a second M4.2-equivalent collapse (us7000tc90) about 3 h later. The debris flow ran ~100 km down the Lende Khola into the Trishuli. Published source coordinates: 28.28532°N 85.52515°E (Petley, early) and 28.2765°N 85.5194°E (Petley, Landslide Blog).

Scar map: orbit 85's first post-event scene (2026-08-28, 36 h after) scored against that orbit's own Jun-Aug 2026 stack. Per pixel, z = (post − meanpre) / stdpre, with std floored at 0.5 dB and the max |z| taken over VV/VH. Pixels with |z|≥3 cover 9.4 km² of the 10×10 km scene (scar plus runout), of which 1.06 km² falls inside the 2×3 km source box. The change centroid is 28.28648°N 85.52284°E, 260 m from the published point.

Step 2: compare 2026 to a normal year

For that mountain face, we averaged the radar echo over the box for every single satellite pass since 2020, about 300 passes. The chart below lays every year on top of each other, January to December. Grey lines are 2020 through 2025; blue is 2026, up to the collapse (dashed line).

Every year has the same rhythm: bright in winter (frozen), a dip through summer (melt), bright again in autumn. That dip is normal. What's not normal is when and how deep the blue line dips. In the top and bottom panels, orbits 19 and 121, the two morning tracks, 2026 drops earlier than every grey year (the melt started roughly a month ahead of schedule) and then stays below all of them, all summer. The middle panel, evening orbit 85, already hints at the pattern: there, 2026 looks much more ordinary.

Raw VV backscatter by day of year, 2026 vs 2020-2025, three orbits

Fig 2Radar echo strength ("VV backscatter", in decibels) over the face, by day of year. One panel per orbit: 19 and 121 are the 6 am tracks, 85 the 6 pm one. They view the mountain from different angles, so their absolute levels differ and are never mixed. Blue is 2026, grey the six previous years.

Technical detail: AOIs & extraction

Source AOI: a 2×3 km lon/lat box (85.512-85.533°E, 28.269-28.293°N) covering both published coordinates. Controls: two boxes on the same massif matched on GLO30 terrain. The source box sits at 4,973 m with 40.0° mean slope; control W at 4,990 m / 39.5°; control E at 4,908 m / 36.8°. Series: S1 GRD IW VV+VH mean per acquisition per AOI, 2020-01 to the event, per relative orbit (19↓/85↑/121↓), with acquisitions covering less than 80% of the box dropped. GRD values are dB; box means are log-domain means, used only for relative change within one orbit.

Step 3: rule out "maybe 2026 was just a warm year"

Fair objection: an early melt could just mean a warm spring everywhere, not a sick glacier. So we picked two control patches, slopes on the same mountain at the same altitude and steepness, a few kilometres left and right of the face that failed. If the whole region was simply warm, the controls should look just as unusual as the source face.

They don't. To compare fairly, each 2026 measurement is turned into a z-score: how many standard deviations is this from the same week in previous years? A z of 0 means typical; −2 means unusual (roughly a 1-in-40 event); −5 essentially never happens by chance. Summer 2026 on the control patches averaged about −1, which reads as mildly warm and nothing more. The face that failed averaged −2.3, with dips to −5.6. The anomaly belongs to that face specifically.

Climatological z-scores for source and control boxes, three orbits

Fig 3How unusual each 2026 measurement is (its z-score) versus the same season in 2020-25, one panel per orbit. Top and bottom are the 6 am tracks, the middle is the 6 pm one. Blue is the face that collapsed, orange and green the two control patches. The grey band (±2) is the "nothing remarkable" zone. The face separates from its controls mainly in the two morning panels.

Technical detail: climatology numbers

z per acquisition is the departure from prior-year (2020-25) acquisitions of the same orbit within ±12 days of the same day-of-year. Last five pre-event acquisitions over the source box, VV:

Orbit (local)Last five pre-event z
19 (06:03)07-07 −3.1 · 07-19 −1.5 · 07-31 −2.0 · 08-12 −3.7 · 08-24 −2.1
85 (18:06)06-29 −1.5 · 07-11 +0.3 · 07-23 −1.2 · 08-04 −0.8 · 08-16 −0.8
121 (06:03)07-02 −5.4 · 07-14 −2.0 · 07-26 −5.6 · 08-07 −3.5 · 08-19 −3.1

Jun-Aug 2026 means (VV z): source −2.33 (min −5.64), control W −1.00 (min −3.58), control E −0.77 (min −2.96).

Step 4: the morning/evening clue

Now the detail that turns "the face looked odd" into a physical story. Remember the pass times: two of the satellite tracks image this mountain at 6 am, one at 6 pm. We subtracted the controls from the source face, which cancels out weather that affects the whole valley, and tracked what was left.

At 6 am, a healthy high glacier face has refrozen overnight and looks radar-bright. This face didn't. A signal that appears only in the morning data means the surface was staying wet through the night: the face had absorbed so much heat and meltwater that it could no longer refreeze. A hanging glacier soaked in meltwater is exactly the kind that collapses.

Source-minus-controls divergence z by orbit and local time

Fig 4The face compared against its own controls. Blue lines: the two 6 am tracks (orbits 19 and 121, descending), out of the grey "normal" band from July. Green line: the 6 pm track (orbit 85, ascending), normal right up to the collapse.

Technical detail: divergence statistic

d = source VV − mean(controls VV) per acquisition; zd scores d against the prior-year distribution of the same difference at the same day-of-year (±12 d). Orbit 121 sustains zd ≤ −2 from 2026-07-02 (6 of 18 pre-event acquisitions at or below −2, deepest −6.8); orbit 19 is intermittently at or below −2 from late June (5 of 20); orbit 85 never leaves its envelope pre-event (1 of 20). Removing the controls this way cancels valley-wide weather, and what remains is specific to the face.

Step 5: what the radar could not see

An obvious hope: maybe the exact patch that broke off looked different from the rest of the face, which would let you point at a spot on the map in advance. We tested it. Inside the source box, we compared pixels that ended up inside the collapse scar with pixels just outside it, week by week. The two groups track each other on every date. The warning was face-wide. The radar told us this face was in trouble, not which exact block would fail, and there was no last-minute change in the final pass 39 hours before the collapse.

Anomalous pixel share inside vs outside the future scar

Fig 5Share of "unusual" pixels inside the future collapse zone (blue) versus the rest of the face (grey). The lines never separate, so there was no pixel-level early warning. Both drift down from June to July for a boring technical reason: the comparison baseline is a summer average, so early-summer images naturally look a bit more "unusual".

Wait, can't radar just see the block moving?

Sometimes, but probably not here, and the reasons are worth understanding. Radar interferometry (InSAR) compares the phase of the radar wave between two passes and can measure millimetres of ground motion, but it needs the surface to stay put between passes at the centimetre scale. A melting monsoon glacier face reshuffles completely between visits, so the phase turns to noise (the technical term is "loss of coherence") exactly where and when we'd want to look. It also needs a rawer data product (SLC) than the archive used here provides, and it can only track slow, small motion; a block creeping metres per day is too fast for it.

The coarser cousin, offset tracking, follows recognisable speckle patterns between images and handles fast motion, but at Sentinel-1's ~10 m resolution it only registers a shift once the block has moved several metres between passes. For most collapses that means days of warning, not weeks. So this study measures the cause (a face soaked in meltwater) rather than the symptom (the block starting to slide), because the cause shows up earlier and in easier data. Ideally you'd chain them: the cheap wetness watch flags a face, then motion techniques and high-resolution tasking zoom in.

And we did check. We ran offset tracking on the final image pairs, the last one ending just 39 hours before the collapse, using earlier pairs from the same summer to establish how noisy the method is on this terrain. The face's apparent motion in those final weeks was indistinguishable from the noise: roughly a metre or two, the same as ground that didn't fail. The tracking itself worked fine, since the surface stayed recognisable, so this is a real "it wasn't sliding" rather than a "we couldn't tell". The block did not creep metres-scale before it went. It let go suddenly, which is exactly why the early wetness warning matters more than motion for this kind of failure.

Speckle offset tracking displacement maps, final pre-event pairs vs reference pairs, no motion patch in the source box

Fig 6Offset-tracking displacement magnitude per 640 m window (blue scale; pink means decorrelated). Top row: the final pre-event pairs. Bottom row: earlier reference pairs. The source box (orange) shows no coherent motion patch in any pair.

Technical detail: offset tracking numbers

Windowed phase cross-correlation on linear-power amplitude: 640 m windows, 160 m step, 1/10-pixel subpixel. Final pairs: orbit 19 08-12→08-24 (ends 39 h pre-collapse) and orbit 121 08-07→08-19, with reference pairs one cycle earlier. Whole chips carry a 2-6 m common co-registration offset between GRD products; the reference pairs are worse than the final ones, which confirms the offset is systematic rather than motion. After removing the surround's median shift vector, the face's differential displacement in the final pairs is median 1.4 m / p90 4.1 m, at or below the reference pairs' own noise (2.0 / 4.2 m). 220 to 221 of 221 face windows stayed correlated, so this is a measured null (no sliding above ~2 m per 12 days at this scale), not a failure to measure.

Step 6: the fire-alarm test, or how often this would cry wolf

Everything so far had a big asterisk: we knew where to look. We analysed this face because it had already collapsed. A smoke detector that goes off during a fire is only useful if it doesn't also go off every time you make toast. So we ran the test. We took 45 other glacier faces like this one, every glacier in the surrounding 130×90 km that is similarly steep, high, and hangs the same way, and replayed the exact same alarm rule on each of them for five summers (2022-2026), always hiding the tested year from its own "normal" baseline. The alarm rule: the face must look unusually dark to the morning radar three passes in a row, after subtracting whatever the whole neighbourhood is doing that day.

The result, one dot per face per summer:

Detector replay over 45 faces and 5 seasons: one dot per face-season, alarm threshold marked, collapse face highlighted

Fig 7Each dot is one glacier face in one summer; lower means more anomalous. Grey dots are the 45 comparison faces; blue is the face that collapsed. Dots below the dashed line would have triggered the alarm.

The collapse is caught: the failing face crosses the alarm line in 2026, and in no earlier year. False alarms are rare, about 1 in 75. Across 226 face-summers with no collapse, the alarm fired 3 times (1.3%), and tightening the threshold a notch brings that to 1 in 200 while still catching the collapse.

One of those "false" alarms might not be false. The strongest 2026 signal in the whole test isn't the face that collapsed. It's an uncollapsed face about 32 km north, on the Tibet side of the same river system, currently far more anomalous than the collapse face ever was. Either the same warm conditions hit it harder, or it's a face somebody should be watching right now.

There's also a catch: zoom out too far and the signal disappears. Averaged over the whole 10 km² glacier instead of the 6 km² face, the collapsing glacier stays under the alarm line. A real monitoring system would have to watch face-sized patches, which means more patches and somewhat more false alarms than the 1-in-75 measured here.

So far this rested on one region, five summers, and exactly one collapse to test against. The natural next question is what happens when the same rule is replayed on the other big glacier failures of the satellite era. We did that too, and the answer is humbling; it's the next section.

Technical detail: detector spec & sweep

Fleet: GLIMS 20230607 boundaries in 84.9-86.3°E / 27.9-28.7°N, deduped per glac_id, 0.5-15 km², mean elevation ≥ 4,800 m, GLO30 mean slope ≥ 25°; 45 faces. Detector, per face × descending orbit: leave-one-out climatology z (±12 d day-of-year window, tested year excluded from its own baseline), minus the same-date fleet-median z; an alarm is 3 consecutive Jun-Aug acquisitions at or below −2σ. The detachment box, run through identical machinery, is the positive control: statistic −3.05, alarming only in 2026.

ThresholdFleet false-alarm rate (226 face-seasons)Detachment box 2026
−1.5σ2.2%caught
−2.0σ1.3% (3 alarms)caught
−2.5σ0.4% (1 alarm)caught

The three fleet alarms: G085489E28568N in 2024 (−2.14) and 2026 (−7.46, the Tibet-side face above), and Lanong Glacier in 2024 (−2.41). At whole-glacier scale the source glacier's own polygon scores −1.5 and is missed, so face-scale tiling is required, making 1.3% a lower bound on an operational tile-level rate.

Step 7: the history test, where the method meets its limits

We replayed the detector on every comparable glacier failure of the Sentinel-1 era, locating each source from post-event radar change where the archive allows and testing the 90 days before each collapse. The honest scorecard:

EventDateStatVerdict
Aru-1, TibetJul 2016·not testable: S1 barely imaged western Tibet before 2017
Aru-2, TibetSep 2016·not testable, same archive gap
Sedongpu, SE TibetOct 2018−1.92 / −2.51missed by one big box; caught at the tile scale (see below)
Chamoli, IndiaFeb 2021+0.81missed, as predicted: winter failure, no melt signature
Marmolada, AlpsJul 2022+0.31missed: a serac fall thousands of times smaller than Langtang

Before running this we wrote down a pass condition: catch at least two of the three melt-driven events, or say plainly that the method isn't ready. At the original one-box-per-event scale it caught zero of the two that were testable, and that record stands. Then we tested whether the misses were the detector or the experiment. Chamoli failing to register is the prediction working, since a winter rock-and-ice failure has no melt story for radar to see. Marmolada turns out to be a scope error in our test design: a 64,000 m³ serac is three to four orders of magnitude smaller than Langtang, and re-measuring with a 400 m box on the exact serac still shows nothing (−0.4, like any other year), so it is out of reach on mechanism and size, not mis-measured.

Sedongpu is the interesting one. Its 2018 score of −1.92 came from a single 2.4 km box laid over a detachment about 4 km long, the same dilution mistake we had already documented on Langtang's glacier polygon. Re-run the way a real system would watch the basin, as 65 tiles of ~1.3 km, and two tiles over the detachment cross the alarm line before the collapse (worst −2.51). The catch that keeps this honest: watching 65 tiles gives 65 chances per year to fire by luck, so we computed the same worst-tile statistic for all six non-event years, and none of them reaches −2 (worst −1.8). Quiet years stay quiet; the collapse year doesn't.

So the scorecard at the scale a real system would operate: both testable giant melt-season detachments are caught (Langtang at −3.05 by the hand box and −2.07 by the automatically enumerated facet; Sedongpu at −2.51 by tile), the winter failure is missed exactly as predicted, and the serac fall is out of scope. The honest limits are unchanged: two positives cannot demonstrate skill, the satellite archive holds no more testable events of this class, and watching future seasons is the only real test left. The monitoring unit, at least, no longer needs a human: automatic enumeration of steep-ice faces (580 facets for this region from inventory, slope, elevation and aspect alone) carries both catches, at a facet-level false-alarm rate of 2.4% per facet-season.

One last piece of honesty about the numbers themselves. The −2 alarm line used throughout was calibrated by eye on the Langtang case, so "caught at −2" is partly circular. The cleaner statement drops thresholds entirely and asks where the collapse seasons rank among all the quiet ones: Langtang's facet ranks 5th most anomalous of 217 unit-seasons (about a 2% chance by luck), Sedongpu's year ranks 1st of 7 (the strongest result six comparison years can express), and the two together have roughly a 1-in-45 probability of ranking this extreme if the method saw nothing real. Promising odds for two case studies; not remotely a validated system.

Technical detail: threshold-free skill numbers

Each positive is placed in its own dataset's null distribution of unit-season statistics (worst 3-consecutive adjusted z), as a rank and a one-sided empirical p-value with Laplace correction. Langtang 2026 auto-facet: −2.07, rank 5/217, p = 0.023. Sedongpu 2018, min-over-65-tiles vs the same statistic in other years: −2.51, rank 1/7, p = 0.143 (the floor for six null years). Fisher combination: χ²(4) = 11.4, p ≈ 0.022, flattered somewhat by window, run-length and unit-scale choices shaped on the Langtang case. Pooled 988-unit-season null across the five study regions: false-alarm rate 5.2% at −1.25, 1.3% at −2.0, 0.4% at −3.0; the loosest threshold catching both positives (−2.07) implies 1.11% per unit-season, and the null's own extreme is −3.19 (a Chamoli-region winter window), so no threshold separates cleanly. Script: skill_analysis.py.

Mini-glossary

backscatter / VV / dB
Backscatter is the strength of the radar echo that returns to the satellite, measured in decibels (dB); a few dB is a big change, and wet surfaces return a weaker echo, reading as "darker". "VV" names the radar channel (polarisation) used in every chart here: the pulse is sent and received vertically polarised. Sentinel-1 also records a VH channel, which tells the same story, so the charts show VV.
orbit / pass / ascending / descending
One satellite flyover. The satellite repeats the same numbered ground tracks; each views the mountain from a fixed angle at a fixed time of day, so a track is only ever compared with itself. Here, orbits 19 and 121 are descending (flying north to south, crossing at about 06:03 local, the morning passes) and orbit 85 is ascending (south to north, 18:06, the evening pass).
z-score
How many standard deviations from normal, where "normal" is the same face, the same track, the same weeks of the year, in 2020-2025. Beyond ±2 starts being noteworthy; −5 is extreme.
control patch
A nearby similar slope used as a fair comparison, so region-wide weather can be subtracted out.
Sentinel-1
The European Space Agency's free radar satellite family. Its full archive is openly available; we used it via Google Earth Engine.

Where this went next: the facet watch

The method now runs as two interactive status maps. Every steep glacier face is enumerated automatically (no hand-drawn boxes), colored by how anomalous it currently looks against its own region's 2020-25 history, and ranked for human attention by combining that anomaly with three fixed consequence factors: how far a failure could fall, whether standing water sits below the face, and how many people live in the valleys within 50 km. Anomaly sets the color; consequence only sets the queue. The Langtang watch (580 faces, the validated per-pass statistic) and the central-Himalaya watch (2,576 faces across 82-89°E, a cheaper season-mean screening statistic with the validated detector applied to the worst-ranked faces) are both snapshot dashboards, rebuilt on demand, and both carry the same caveat as this page: ranks against history from a method with two case studies behind it, not warnings.

Method & code. Everything on this page regenerates from exploratory/0005-nepal-glof-sar-precursor/ in the ds-geospatial-impact-estimates repository: extract.py and analysis.py (single-face study), falsealarms_extract.py and falsealarms_analysis.py (45-face replay), offset_tracking.py (speckle tracking), historical_replay.py (the history test), facets_prototype.py (computed monitoring units), miss_retest.py (tile-scale retest of the misses), and reports/build_reports.py (this page). Sentinel-1 GRD IW VV/VH via Google Earth Engine; full caveats in findings.md. This is an exploratory lab-notebook analysis, not an operational OCHA product or warning.

Event sources: Petley, The Landslide Blog (Eos) · USGS Landslide Hazards · EarthSky · Nature news