๐Ÿ†• Layer 1 Upgrade โ€” SAR Coherence Change Detection

๐Ÿ“ก Seeing the Invisible

How InSAR velocity alone misses sudden events โ€” and how SAR coherence change detection catches what velocity can't.

๐Ÿ” The Problem: Velocity vs. Coherence

Current: InSAR Velocity

How it works:

Measures mm/year creep from groundwater extraction. Needs 20+ satellite passes (months) to compute a reliable rate. Perfect for chronic subsidence โ€” completely blind to a 20cm event that happens in 6 hours.

Failed: Purple Line

20cm road subsidence at Wong Wian Yai โ€” zero signal in velocity data. Would take weeks for InSAR to register.

๐Ÿ†• New: SAR Coherence Change

How it works:

Measures how much the ground surface changed between two satellite passes. Only needs 2 passes (12-24 days). Coherence drops when ground shifts โ€” whether it's 2mm or 20cm. Detects sudden events velocity misses.

Catches: Purple Line

Coherence would drop below 0.3 at Wong Wian Yai within 12 days โ€” clear signal of sudden ground change.

๐Ÿ“ What Is SAR Coherence?

Technical Definition

SAR coherence (ฮณ) measures the phase correlation between two Sentinel-1 images. It ranges from 0 (complete decorrelation โ€” ground changed) to 1 (perfect correlation โ€” ground identical).

// Simplified coherence formula ฮณ = |<sโ‚ยทsโ‚‚*>| / โˆš(<|sโ‚|ยฒ>ยท<|sโ‚‚|ยฒ>)

// where sโ‚, sโ‚‚ are complex SAR values // ฮณ=1: perfect match (stable ground) // ฮณ<0.3: decorrelated (ground moved)

What Changes Coherence

๐ŸŸข Stable groundฮณ > 0.7
๐ŸŸก Vegetation growthฮณ 0.3โ€“0.6
๐ŸŸก Surface water changeฮณ 0.2โ€“0.5
๐Ÿ”ด Construction / excavationฮณ 0.2โ€“0.4
๐Ÿ”ด Ground collapse / landslideฮณ < 0.3
๐Ÿšจ Purple Line leakฮณ < 0.3

โš™๏ธ The Pipeline

๐Ÿ›ฐ๏ธ
Sentinel-1
Every 12 days
โ†’
๐Ÿง 
GEE Script
Coherence pair
โ†’
๐Ÿ“Š
GeoTIFF Export
Bangkok AOI
โ†’
๐Ÿ
Python Cron
Extract per zone
โ†’
๐Ÿ”ฎ
Anomaly Detector
coherence_change_pct
โ†’
๐Ÿ—บ๏ธ
3D Twin
Heatmap overlay

๐Ÿ’ป GEE Coherence Script

Adapted from CHL-UA/SAR-flood-monitoring โ€” same SAR change detection, different target (subsidence, not flood). Runs in Google Earth Engine Code Editor.

// โ”€โ”€โ”€ SinkAlert โ€” SAR Coherence Change Detection โ”€โ”€โ”€ // Detects sudden ground changes between two Sentinel-1 passes // Use: GEE Code Editor โ€” https://code.earthengine.google.com/ var aoi = ee.Geometry.Rectangle([100.3, 13.5, 100.9, 13.95]); // Bangkok metro // โ”€โ”€โ”€ Define before/after date pairs โ”€โ”€โ”€ var beforeStart = '2026-06-20'; var beforeEnd = '2026-07-01'; var afterStart = '2026-07-05'; var afterEnd = '2026-07-12'; // โ”€โ”€โ”€ Load Sentinel-1 VV polarization โ”€โ”€โ”€ var s1 = ee.ImageCollection('COPERNICUS/S1_GRD') .filterBounds(aoi) .filter(ee.Filter.eq('instrumentMode', 'IW')) .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')); // โ”€โ”€โ”€ Select first image from each window โ”€โ”€โ”€ var before = s1.filterDate(beforeStart, beforeEnd).first(); var after = s1.filterDate(afterStart, afterEnd).first(); // โ”€โ”€โ”€ Compute coherence (3ร—3 window) โ”€โ”€โ”€ var coherence = before.addBands(after) .select(['VV', 'VV_1']) .reduceNeighborhood({ reducer: ee.Reducer.pearsonsCorrelation(), kernel: ee.Kernel.square(3, 'pixels') }) .rename('coherence'); // โ”€โ”€โ”€ Mask low coherence (change) areas โ”€โ”€โ”€ var changeMask = coherence.lt(0.3); // ฮณ < 0.3 = ground moved var changeArea = changeMask.selfMask(); // โ”€โ”€โ”€ Export as GeoTIFF โ”€โ”€โ”€ Export.image.toDrive({ image: coherence, description: 'SinkAlert_Coherence_Bangkok', scale: 20, // 20m resolution region: aoi, maxPixels: 1e9 }); // โ”€โ”€โ”€ Add to map for visual check โ”€โ”€โ”€ Map.centerObject(aoi, 10); Map.addLayer(coherence, {min:0, max:1, palette:['red','orange','yellow','green']}, 'Coherence'); Map.addLayer(changeArea, {palette:'red'}, 'Change (ฮณ<0.3)');

Run frequency: Every 12 days (Sentinel-1 revisit over Bangkok).
Output: GeoTIFF saved to Google Drive โ†’ downloaded by Python cron โ†’ ingested into SinkAlert.
Processing time: ~2-5 minutes in GEE for Bangkok AOI at 20m resolution.

๐ŸŽฏ How It Catches the Purple Line Leak

๐ŸŸข
June 20โ€“28
Before leak
ฮณ = 0.72
Stable ground
๐Ÿ”ด
July 4โ€“9
Leak occurs
ฮณ = 0.22
Ground shifted 20cm
๐ŸŸก
Alert fires
July 12 (next pass)
ฮ” = -69%
WARN triggered

Timeline: Leak occurs July 9 โ†’ Next Sentinel-1 pass July 12 โ†’ Coherence computed โ†’ Anomaly detector triggers WARN for Wong Wian Yai zone. Detection latency: ~3 days after event. Compare to velocity-based approach: would never detect this at all.

๐Ÿ“Š Layer 1: Before vs After Upgrade

PropertyInSAR Velocity (Current)+ Coherence Change (Upgrade)
What it measuresmm/year creep rateSurface change between 2 passes
Satellite passes needed20+ (months of data)2 passes (12-24 days)
Minimum detectable change~3 mm/year (cumulative)~5-10 cm (sudden)
Detects chronic groundwater subsidenceโœ… Yes โ€” primary function๐ŸŸก Partial โ€” needs velocity too
Detects construction collapse (20cm)โŒ No โ€” too fast, too suddenโœ… Yes โ€” ฮณ drops below 0.3
Detects Purple Line leakโŒ Invisibleโœ… Detected within 12 days
False positive riskLow (averaged over time)Medium (vegetation, water, traffic)
3D Twin visualizationStatic heatmap๐Ÿ†• Animated coherence overlay

๐Ÿ”’ Why It's an Upgrade โ€” Not a Replacement

Velocity (kept)

  • Best for chronic risk โ€” groundwater extraction areas
  • Less noisy โ€” 20+ passes average out false positives
  • Proven โ€” Aobpaet et al. 2013, DGR 2023
  • Predicts where subsidence WILL continue

Coherence (added)

  • Best for acute events โ€” construction collapse, tunnel leaks
  • Only 2 passes needed โ€” detects change within 12-24 days
  • Method from SAR-flood-monitoring (proven in flood domain)
  • Detects where ground ALREADY moved

Together: Velocity predicts where risk accumulates. Coherence detects when ground moves. Neither alone is sufficient โ€” together they cover both chronic and acute subsidence.

๐Ÿ”— Integration with Existing Pages

DashboardRisk scores now include coherence change. GREEN zone becomes YELLOW when coherence drops >40%.
3D Twin๐Ÿ†• Coherence heatmap draped over 3D terrain. Red = recent change, green = stable. Toggle between velocity view and coherence view.
Early WarningNew feature: coherence_change_pct in anomaly detector. Triggers WARN if ฮณ < 0.3.
This pageExplains the pipeline. Links to GEE script. Shows methodology.