SAR & InSAR

Synthetic aperture radar with Sentinel-1: speckle filtering, flood and ship detection, crop monitoring, and InSAR ground and volcano deformation.

Time series of line-of-sight uplift at the SENG GNSS station at Svartsengi in Iceland from 2024 to 2026: red InSAR points and a grey GNSS line rise in a sawtooth of six inflation phases separated by eruptions, and agree closely once each phase is restarted at zero.

Tutorial Python Part 3 of 3

InSAR time series in Python: Svartsengi inflation cycles validated with GNSS

Build an SBAS InSAR time series in Python from 364 COMET LiCSAR Sentinel-1 interferograms of the Svartsengi volcano in Iceland. Check unwrapping with phase closure, invert pixel by pixel with weighted least squares, project GNSS east, north and up into the line of sight, and validate six inflation–eruption cycles against the SENG station.

Advanced 21 min read

A map of vertical uplift at Svartsengi in Iceland with the best-fitting Mogi point source, an Okada sill outline and the published source location plotted near the centre of the uplift.

Tutorial Python Part 2 of 3

Mogi model inversion in Python: magma depth and volume from InSAR at Svartsengi, Iceland

Invert Sentinel-1 InSAR for a volcanic source in Python: write Mogi point-source and Okada (1985) sill forward models in NumPy, downsample ascending and descending LOS maps with a quadtree, fit depth and volume change by weighted least squares with scipy.optimize, and estimate uncertainties with a Monte Carlo of correlated noise, compared with published results.

Advanced 17 min read

A Sentinel-1 interferogram of the Reykjanes Peninsula in Iceland with a bullseye of concentric colour fringes centred just west of the Svartsengi GNSS station, beside the unwrapped displacement and coherence maps.

Tutorial Python Part 1 of 3

InSAR volcano deformation in Python: mapping magma inflation at Svartsengi, Iceland, with Sentinel-1

Map volcano deformation with Sentinel-1 InSAR in Python: stream free COMET LiCSAR interferograms of the Svartsengi volcanic system in Iceland, read wrapped and unwrapped phase and coherence, count fringes, convert phase to line-of-sight millimetres, and combine ascending and descending tracks into vertical and east–west motion, checked against GNSS.

Advanced 19 min read

Tutorial Python

InSAR ground subsidence in Python: one year of Mexico City sinking, from Sentinel-1

Map ground subsidence with Sentinel-1 InSAR in Python: stream 170 real interferograms of Mexico City, convert unwrapped phase to millimetres of line-of-sight motion, mask low coherence, invert a small-baseline network into a time series, and cross-check the velocity with MintPy.

Advanced 17 min read

Tutorial Python

Sentinel-1 crop monitoring in Python: SAR time series for wheat and oilseed rape

Monitor crops through cloud with free Sentinel-1 radar. Build VV, VH and VH/VV ratio time series for 247 fields in Cambridgeshire, beat speckle by field-averaging, read the growth signatures of winter wheat and oilseed rape, and compare with the gaps that cloud leaves in Sentinel-2 NDVI.

Intermediate 15 min read

Tutorial Python

Sentinel-1 ship detection in Python: a CA-CFAR detector off the Port of Rotterdam

Detect ships in free Sentinel-1 SAR imagery with a cell-averaging CFAR detector written in NumPy and SciPy: mask the land, set a threshold from a speckle model, cluster detections into targets, reject wind turbines, sidelobes and ambiguities, compare VV with VH and export the vessels as GeoJSON.

Intermediate 16 min read

Tutorial Python

Sentinel-1 SAR flood mapping in Python: the 2022 Pakistan floods

Map the 2022 Sindh floods with free Sentinel-1 radar from the Microsoft Planetary Computer: convert backscatter to decibels, remove speckle with a Lee filter, pick a water threshold with Otsu's method, and measure the flood extent and how it receded over seven months.

Intermediate 10 min read