Speckle is not noise, and that changes how you remove it
Every radar image arrives covered in grain. Treating it like sensor noise is the most common mistake in the field, and it quietly destroys the thing you were trying to measure.
· 7 minute read · Caelus
Open a raw synthetic aperture radar scene for the first time and the reaction is almost always the same. It looks broken. A blizzard of bright and dark pixels, salt and pepper across everything, with the city or the river or the flood you came to find buried somewhere underneath it.
The reasonable assumption is that the sensor is noisy and you need a better one. The assumption is wrong, and the difference matters enormously for what you do next.
RAW SARDESPECKLEDWhere the grain comes from
SAR is a coherent imaging system. It transmits a pulse with a single well-defined wavelength and phase, and it measures the phase of what returns.
Now consider one pixel. At Sentinel-1 resolution that pixel covers something like a hundred square metres of actual ground, and that ground is not one smooth surface. It is gravel, grass blades, roof tiles, fence posts, puddles. Every one of those scatters the pulse back, and every one sits at a slightly different distance from the satellite, so every return arrives at a slightly different phase.
The instrument records their sum. And summing waves with random relative phases is interference: sometimes they reinforce and the pixel comes back bright, sometimes they cancel and it comes back dark. Two adjacent patches of identical grass can differ by a factor of several, purely because the sub-pixel arrangement of blades happened to add up differently.
Speckle is not the instrument failing to measure the scene. It is the instrument measuring the scene correctly, at a level of detail finer than the pixel that has to hold the answer.
Why that distinction is not academic
Ordinary sensor noise is additive and independent of the signal. You can average it down and the underlying value survives.
Speckle is multiplicative. Its magnitude scales with the brightness of what is underneath it, so a bright urban block carries proportionally more variance than dark open water. Every filter designed for additive noise makes an implicit assumption here that is simply false, and applying one does two things at once: it flattens bright areas it should have left alone, and it smears the boundaries you were trying to find.
That second failure is the expensive one. In flood mapping the entire signal is an edge, the line between dark water and everything else. A Gaussian blur will make a radar scene look dramatically cleaner and will move that line by tens of metres in the process. The image improves and the answer gets worse, which is the most dangerous kind of failure because it is invisible in the output.
What actually works
Three ideas, in roughly the order they matter.
- Multi-temporal despeckling. The sub-pixel arrangement that produced this particular interference pattern is different on the next pass, but the ground is the same. Stack acquisitions over the same area and the speckle decorrelates between them while the real backscatter does not. This is the single highest-return technique available, and it costs nothing but archive access.
- Edge-preserving filters. Where you must work within one scene, the filter has to know the difference between a boundary and a fluctuation. Adaptive filters that estimate local statistics, and non-local approaches that average pixels by similarity rather than by proximity, preserve structure that a fixed-window smoother destroys.
- Working in the right domain. Speckle is multiplicative in intensity and roughly additive in the logarithm of intensity. Moving to log space before filtering makes the problem tractable for a much wider class of methods, and skipping that step is a common and quiet source of bias.
Everything Caelus does downstream, building footprint detection, surface water extraction, change detection between passes, reads the despeckled output. Never the raw scene. A segmentation model trained on unfiltered SAR learns the speckle statistics of its training scenes and falls apart on a different sensor mode, a different incidence angle, or a wetter season.
The part that does not get said enough
Despeckling is lossy. Every filter is a decision about what counts as structure and what counts as fluctuation, and there is no setting that is correct for all downstream questions. A filter tuned for clean building footprints will erase the small dark patches that flood mapping most needs to keep.
Which means the honest way to report a SAR-derived number is to say which filter produced it. Not as a methodological footnote for other researchers, but because a brief that hides its error bars is worse than no brief, and in radar a surprising amount of the error bar is decided in this step, before anyone has looked at a map.
Where this came from.
Credited in plain text, never as logos. Use of open data is not a relationship, and a logo would imply one.
- Sentinel-1 ground range detected products
- ESA. The archive most of this work runs against.
- Kairos
- Caelus's browser-based SAR research tool, free and open to any researcher.
