Record
Bhote Koshi–Trishuli cascade
River
Lhende Khola · Bhote Koshi · Trishuli, Nepal
Date
26 Aug 2026
Start
08:37 NPT

How it was done, step by step

Every result on the study page comes out of one chain of steps. This page walks through it in order: what we started from, what we did to it, and how each setting was chosen and checked.

The whole chain at a glance

  1. Sentinel-2 picturesSentinel-1 radarMERIT Hydro terrain
    1Put everything on one 20 m grid

    Before and after pictures from the same season, radar and terrain, square by square.

  2. 2Measure five things in every square

    Lost green, colour change, bareness, radar change, height above the river.

  3. 3Make a first guess at the rule

    Settings picked by hand, without the colour-change test.

    17.7 km², F1 0.61–0.79
  4. Copernicus damage outlineLangtang valley (untouched)
    4Try all 1,008 combinations of settings

    Score each one against the experts' map, and count its false alarms in an untouched valley.

  5. 5Choose the settings fairly

    Drop any that flag more than 2 % of the untouched valley, test on areas held out, keep the best.

    The chosen settings
  6. 6Make the final map

    Run the chosen rule along the whole corridor, tile by tile.

    Footprint 22.0 km²
  7. Copernicus damage outline
    7Check it against Copernicus

    Lay the final map over the experts' map, square by square, and score the match.

    F1 0.83–0.89right 93 %–98 % of the time
  8. Copernicus graded assetsOpen BuildingsOpenStreetMap
    8Count what lay inside

    Lay buildings, roads, bridges and power plants over the footprint.

    92 % of destroyed buildings30 of 30 bridges
  9. Video, gauges, SMS timeMERIT river profile
    9Time the flood front

    Fit a simple flood-travel rule through the few real times, 10,000 times over.

    Syabrubesi 08:4934–41 min with an automatic alert
1

Put everything on one grid

The valley is cut into squares 20 m by 20 m, and every square gets a value from each source: the picture before, the picture after, the radar before and after, and the terrain. From here on, every decision is made square by square.

Before and after are taken from the same season a year apart, late August to late October, so that the change of season itself does not look like damage. Many pictures from each season are combined into one, so that clouds in one picture are filled from another.

2

Measure five things in every square

Nothing is decided yet. Each square just gets five numbers, and the rule in the next steps sets a limit on each.

MeasurementThe question it answersExactly
Loss of greenDid plants disappear?ΔNDVI: NDVI after minus NDVI before (bands B8 and B4)
Colour changeHow far did the ground’s colour move, even where it was bare already?Change-vector magnitude d over bands B2, B3, B4, B8, B11, B12 (equation 1)
Bareness afterIs the ground bare, mud or water now?NDVI of the 2026 picture
Radar changeDid the radar echo jump up or down?|ΔVH| in dB, after a 50 m median against speckle
Height above the riverCould the flood have reached this square?Height above nearest drainage (HAND), MERIT Hydro
Two filters are fixed and not tuned: snow, ice and cloud (NDSI above 0.4 or blue above 0.25 in either picture) are left out, and only the corridor along the main river and the Lhende Khola counts.
3

Make a first guess at the rule

The first rule used settings picked by hand: a lot of green had to disappear, there was no colour-change test, and only ground up to 60 m above the river counted.

It found 17.7 km² and scored F1 0.79, 0.61, 0.79 at Syabrubesi, Timure and Bidur. Timure was worst: much of its debris had buried riverbed and roads that were bare already, and a rule that only looks for lost green cannot see that. Guessing better by hand would only be another guess, so the settings were tested instead.

4

Try every combination of settings

Each of the five limits was given a few sensible values to try. Every combination of them was run: 4 × 7 × 3 × 4 × 3 = 1,008 versions of the rule.

SettingValues triedChosen
How much green must disappearΔNDVI below−0.05−0.10−0.15−0.20−0.10
How strongly the colour must changechange-vector magnitude d abovenot used0.020.030.040.060.080.100.08
How bare the ground must look afterwardsNDVI after below0.350.450.550.35
How much the radar echo must change|ΔVH| above (dB)34564 dB
How high above the river a change may beheight above nearest drainage below (m)60100150150 m
  •   chosen in step 5
  •   the first guess of step 3

How each version was scored

In the three areas Copernicus mapped, every square has two yes-or-no answers: ours and the experts’. A square both mark is an agreement; one only we mark is a false alarm; one only they mark is a miss.

  • PPrecision: of the squares we marked, the share they marked too. Agreements ÷ (agreements + false alarms).
  • RRecall: of the squares they marked, the share we found. Agreements ÷ (agreements + misses).
  • F1F1: both in one number, high only when both are high. 2 × P × R ÷ (P + R).

Each version was also run on the Langtang Khola valley, next door and untouched in 2026. Every square it marks there is a false alarm, so the share it marks is a direct measure of how easily the rule cries wolf.

OUR FOOTPRINTCOPERNICUSfalsealarmAGREEmiss
Scores were computed on the same 20 m grid, inside each area’s analysed region, against the Copernicus EMSR927 observed-event polygons. While sweeping, the speck filter was skipped to save time; the final check in step 6 uses the exact map.
5

Choose the settings fairly

The settings were not picked by eye. Three fixed rules chose them, and the computer applied them to all 1,008 versions.

  1. aNo crying wolf. Any version that marked more than 2 % of the untouched Langtang valley floor was thrown out.The best version without this rule (ΔNDVI below −0.05, d above 0.03) scored well against Copernicus but marked 5.3 % of the untouched valley, so it was rejected.
  2. bTest on an area it never saw. Settings were chosen on two areas and scored on the third, three times over, so each area was once the unseen test.Leave-one-area-out cross-validation. If the method only memorised the answers, the score on the unseen area would drop. It did not.
  3. cKeep the best of what is left. Among the survivors, the version with the highest average F1 over all three areas became the final rule.Final: ΔNDVI below −0.10, d above 0.08, NDVI after below 0.35, |ΔVH| above 4 dB, HAND below 150 m; it marks 1.5 % of the control valley.
  4. dCheck that it holds. The three tests chose nearly the same settings, and the unseen-area scores (0.90, 0.84, 0.84) match the normal ones. The rule works on ground it was not tuned on.Two of the three folds chose exactly the final settings; the Bidur fold differed only in ΔNDVI and NDVI after.
The three tests (leave one area out)
Area held outSettings chosen on the other twoF1 on the other twoF1 on the unseen areaControl valley marked
Syabrubesithe final settings0.840.901.5 %
Timurethe final settings0.870.841.5 %
BidurΔNDVI below −0.15; NDVI after below 0.45; the rest as final0.870.842.0 %
6

Make the final map

The chosen rule was run along the whole corridor, tile by tile, and specks smaller than 0.8 ha were removed. The result is the footprint: 22.0 km².

The tuning in steps 4 and 5 used a quick version of the map. This is the exact one, and it is the map every later step uses: it is checked against Copernicus in step 7 and laid over buildings and roads in step 8.

7

Check it against Copernicus

In three areas, experts at the Copernicus Emergency Management Service drew the damage by hand from very sharp images. We laid our final map over theirs and compared the two, square by square. Their map is the answer key; ours is the exam.

Three pieces

Put the two maps on top of each other and the ground falls into three pieces: ground both maps call damaged, ground only ours does (a false alarm), and ground only Copernicus does (a miss). Every score below is just a different way of dividing these pieces.

  • Only ours (false alarm)
  • Both
  • Only Copernicus (miss)
Syabrubesi
Only ours: 0.02 km²Both: 0.90 km²Only Copernicus: 0.21 km²

Only ours 0.02 · both 0.90 · only Copernicus 0.21 km². Both is 80 % of the bar (IoU 0.80).

Timure
Only ours: 0.02 km²Both: 0.94 km²Only Copernicus: 0.35 km²

Only ours 0.02 · both 0.94 · only Copernicus 0.35 km². Both is 72 % of the bar (IoU 0.72).

Bidur
Only ours: 0.41 km²Both: 5.31 km²Only Copernicus: 1.70 km²

Only ours 0.41 · both 5.31 · only Copernicus 1.70 km². Both is 72 % of the bar (IoU 0.72).

Four scores, one picture

  1. PPrecision: right when we say damaged. Both ÷ ours. At Syabrubesi: 0.90 ÷ 0.92 = 0.98.Of the ground we marked, the share the experts marked too. Low precision would mean false alarms.
  2. RRecall: how much of their damage we found. Both ÷ Copernicus. At Syabrubesi: 0.90 ÷ 1.11 = 0.81.Of the ground the experts marked, the share we found. Low recall means misses.
  3. F1F1: the overall match. Both ÷ the average size of the two maps. At Syabrubesi: 0.90 ÷ 1.02 = 0.89.2 × P × R ÷ (P + R). High only when precision and recall are both high, so marking the whole valley, which finds everything, would not fool it.
  4. IoUIoU: the strict overlap. Both ÷ everything either map marked. At Syabrubesi: 0.90 ÷ 1.13 = 0.80.Intersection over union. Every false alarm and every miss counts against it in full, so it is always lower than F1 (IoU = F1 ÷ (2 − F1)).
Agreement with Copernicus EMS EMSR927 · whole footprint
AreaPrecisionRecallF1IoUOurs, km²Copernicus, km²
Syabrubesi (AOI01)0.980.810.890.800.921.11
Timure (AOI02)0.980.730.840.720.951.29
Bidur (AOI03)0.930.760.830.725.717.01
The resultsAll three areas, on all four scores. The buttons score parts of our map separately: switch to Radar and its precision stays near 0.99, but it finds only 3 % and 4 % of the damage in the Syabrubesi and Timure gorges, where steep walls block its sideways view, and 27 % at Bidur, where the valley opens. The pictures carry the map; radar adds a small, reliable extra.

Did it hold up on ground it had never seen?

  • First rule, no change vector
  • Chosen rule
  • Held out (leave one area out)
0.50.60.70.80.91.0SYABRUBESI0.790.89TIMURE0.610.84BIDUR0.790.83
F1, by areaThe axis starts at 0.5, so the gaps look larger than on a full scale.
  1. White circle: the first guess of step 3. F1 0.79, 0.61, 0.79.
  2. Red dot: the final rule. Every area improved; Timure most, because its debris covered riverbed and roads that were bare already, which only the colour-change test can see.
  3. Blue line: the score that area got when its answer key was hidden while the settings were chosen (step 5). It is the surprise-exam score.Held-out F1 0.90, 0.84, 0.84. Each sits on its red dot: the rule works on ground it was not tuned on, which is why it can be trusted along the rest of the 80 km corridor, where no answer key exists.

What the check says

  1. 1Careful. When our map says damaged, the experts agree 93 % to 98 % of the time. False alarms are rare, and the untouched control valley stays 1.5 % marked.
  2. 2A little small. It finds 73 % to 81 % of what the experts drew. The misses lie mostly at the edges, most likely strips thinner than our 20 m squares, ground that changed only faintly, and gorges radar cannot see into.
  3. 3Not tuned to the answers. Areas hidden while choosing the settings score as well as the rest, so the result is not an artefact of fitting.
  4. 4Checked only where Copernicus looked. Three areas and one control valley. Copernicus is a human drawing too, so a few “misses” or “extras” may be theirs rather than ours.

In short: from free satellite data alone, within nine weeks of the event, we drew a map of the damage that is rarely wrong and finds roughly three-quarters to four-fifths of what experts traced by hand, along the whole corridor rather than three small areas.

8

Count what lay inside

With the footprint fixed, the lists of buildings, roads, bridges and power plants are laid over it and counted. Nothing is tuned here.

  1. BBuildings count as inside when the 20 m square under them is marked.Copernicus graded building points (3,922) and Google Open Buildings centroids with confidence 0.75 or more.
  2. RRoads are measured by the length that runs through marked squares.Each line is sampled every 5 m; Copernicus roads graded destroyed and OpenStreetMap roads by type.
  3. BrBridges count when they are within 40 m of the footprint, since they cross the river at its edge.Copernicus bridges graded destroyed; OpenStreetMap road and foot bridges.
  4. HHydropower sites count when they are within 100 m of the footprint.OpenStreetMap power plants, generators, dams and weirs.
9

Time the flood front

The flood hit a string of places along the river, but for most of them nobody recorded when it arrived. To say how much warning each place could have had, we need those times.

What we do know

The debris was filmed reaching the border 7 minutes after the collapse. Further down, two towns had river gauges that kept sending readings until the flood knocked them out: Syabrubesi’s went silent by 08:50 and Betrawati’s around 09:20. So the flood took about half an hour to get from one town to the other.

Filling in the places in between

Think of a bus seen leaving one stop at 08:49 and arriving at a later stop at 09:20: you can work out roughly when it passed each stop in between. We do the same for the flood, with one twist: water runs faster where the river is steeper. Elevation data tell us how steep every stretch is, so instead of spreading the half hour evenly, the front goes faster on the steep parts and slower on the flat ones.

That gives times for places no gauge recorded, such as the hydropower plants.

The morning of 26 August
NPTWhat happenedHow we know
08:37The mountainside collapsesknown its seismic signal
08:44The front reaches the borderknown video at Gyirong Port
08:49Syabrubesiknown its gauge, silent by 08:50
09:13Upper Trishuli 3Aworked out
09:15The SMS warning goes outknown Flood Forecasting Division
09:17Upper Trishuli 3Bworked out
09:20Betrawatiknown its gauge, silent around 09:20

What “10,000 times” means

The gauge times are not exact. A gauge going silent at 09:20 does not prove the flood arrived at exactly 09:20; it might have been 09:15 or 09:25. So instead of trusting one guess, the computer tries many:

  1. 1Say Betrawati was hit at 09:22. Work out every other time.
  2. 2Say it was 09:17. Work them all out again.
  3. 3Say 09:24, and so on.

It does this 10,000 times, so each place ends up with 10,000 possible arrival times. We report the typical one, the middle value, and the range most tries fall in. Upper Trishuli 3A, for example: most likely 09:13, and in nine tries out of ten between 09:09 and 09:16.

How k is found

Speed is k × √steepness, and k is the one number nobody measured. Run the river once with k = 1 and the trip from Syabrubesi to Betrawati would take 218,517 seconds, about 61 hours. Doubling k halves the time, so each try divides that by the trip it picked. With k known, Upper Trishuli 3A comes 165,537 ÷ k seconds after Syabrubesi.

k = 218,517 ÷ trip in seconds
TrySyabrubesiBetrawatiTripkUpper Trishuli 3A
112.543.731.2 min11709:13
212.047.635.6 min10209:16
311.745.734.0 min10709:14
411.746.334.6 min10509:15
512.843.730.9 min11809:13

Five tries are not enough to pin it down. Over all 10,000, k is typically 118, and in nine tries out of ten between 104 and 139.

Why it matters

At the hydropower plants and Betrawati, the SMS went out almost exactly as the water arrived, so in practice there was no warning. Yet the collapse came at 08:37: an automatic alarm set off by it could have given those places 34 to 41 minutes to get out.

Upstream it was already too late: the front passed Syabrubesi at 08:49, 26 minutes before the SMS. Warning time is arrival minus the 09:15 SMS, or minus an automatic alert two minutes after the collapse. Every place is in the lead-time results.

python -m rasuwa export      # 1, 6  the footprint, tile by tile
python -m rasuwa tune        # 4, 5  the 1,008-version sweep and the fair choice
python -m rasuwa validate    # 7     the check against Copernicus
python -m rasuwa buildings   # 8
python -m rasuwa infrastructure
python -m rasuwa leadtime    # 9