5 min read
What free satellite imagery can and cannot see
- satellite
- patterns
Every project I have shipped on free public satellite imagery has a “what it cannot see” section, because every reader assumes the camera in the sky is better than it is. The cumulative version of that section, across ghostwatch, solar-map-ph, and floodwatch-ph, is this post.
Sentinel-2 (10 m optical, 5-day revisit)
The default tool. Cloud-masked composites are good for change detection across weeks or months, which is how ghostwatch verifies that a declared-completed project either is or is not on the ground. Three spectral indices do most of the work: NDBI for built-up, NDVI for vegetation, BSI for bare soil. The deltas between a before composite and an after composite classify into one of five outcomes (CONSTRUCTION_DETECTED, VEGETATION_CLEARED, PARTIAL_CONSTRUCTION, NO_CHANGE, INSUFFICIENT_DATA).
What it sees well: large completed structures. Bridges, road segments, terminals, paved sites. The Panguil Bay Bridge goes from open water to a completed span between 2020 and 2024 in Sentinel-2; the bridge is several pixels long at 10 m resolution, the signal is unambiguous. Large rooftops with the visual signature of solar panels (when paired with a frozen visual encoder like CLIP-ViT-L), as solar-map-ph demonstrates.
What it does not see: small structures. A 30 m footbridge is one pixel. A 100 m² covered court is two by two pixels at best, and the bare-soil-to-construction transition is below the noise floor of the spectral indices. Underground works (drainage rehab, sewer projects) are invisible. Indoor renovation is invisible. Anything completed outside a cloud-free acquisition window for the relevant period is invisible, and the Philippines has long stretches of monsoon season where cloud-free windows are scarce.
What it sees badly: dense urban interiors. A new floor on an existing building does not change the NDBI footprint of the building. Repaved roads with the same alignment do not produce a change signal large enough to be classified CONSTRUCTION_DETECTED. New pedestrian infrastructure on existing paved areas is invisible.
Sentinel-1 (C-band SAR, VH polarization, 10 m, about 6-day revisit)
The tool for flood. SAR penetrates the typhoon cloud that blinds optical sensors exactly when it matters most. floodwatch-ph Track A is the worked example: a dry pre-event VH baseline, Otsu thresholding on the event image, a change gate that requires the pixel to have gotten darker than the dry baseline, permanent-water removal (JRC GSW at 50% occurrence or higher plus MERIT Hydro), slope removal, and a HAND-style flood-plausible-terrain mask.
What it sees well: open standing water in flat plausible terrain. The Carina 2024 demo event peaks at 184 km² of detected flood across 4 real Sentinel-1 acquisition dates. The signal is unambiguous when the conditions cooperate.
What it does not see: water hidden under tree canopy or under built structures. Flash floods that drain before the next Sentinel-1 acquisition (the satellite passes every 6 days, the rainfall window may be hours). Permanent water that did not change between the pre-event and event acquisition (which is why permanent water is masked out, not detected).
What it sees badly: rice agriculture. Wet rice paddy is a classic Sentinel-1 false positive class, especially in the planting and growing windows. The HAND-style flood-plausible-terrain mask suppresses much of this but not all. Calm water of any kind reads like flood; metal roofs of certain orientations sometimes read like flood; smooth wet surfaces sometimes read like flood. The Track A validation against GFD event 4300 reports IoU 0.054 honestly; a single 10 m SAR pass days after onset against a multi-day 250 m optical reference will not score well.
AlphaEarth Satellite Embedding V1 (64-dim, annual, 2017)
The newest tool, and the one whose ceiling is hardest to describe. AlphaEarth is a frozen 64-dimensional per-pixel embedding produced by Google and Google DeepMind, derived from a multi-year multi-sensor stack. It is not imagery. It is a learned representation that captures stable per-pixel features that are useful for downstream classification.
What it sees well: recurrence. floodwatch-ph Track B fits a logistic regression head on AlphaEarth at flood-recurrence-labeled points and gets precision 0.949, recall 0.962, F1 0.955 on an event-disjoint holdout. The model learns what flood-prone terrain looks like in the embedding space and generalizes across whole held-out events.
What it does not see: anything not in the 2017 substrate. AlphaEarth V1 is annual, not event-driven. It cannot tell you what flooded last week. It is the planning instrument, not the response instrument. That is why floodwatch is two tracks: SAR for response, AlphaEarth for planning, reported as separate metrics, never averaged.
What free imagery is not for
It is not for verifying individual properties. The 10 m resolution boundary kills that use case before it starts, and the per-building publication boundary kills it as a matter of policy.
It is not for sub-day monitoring. Sentinel-1 revisit is about 6 days. Sentinel-2 revisit is 5 days. Anything with a faster cycle requires commercial constellations and a budget.
It is not for ground truth. A satellite-derived flag is a statistical indicator that a human should look at the site. The flag narrows a search space from a quarter-million records to a few hundred worth a closer look. That is the job. The judgment is somebody else’s.
When to escalate
There is a real use for higher-resolution commercial imagery (Maxar, Planet, Airbus): single-site verification at scale, post-event damage assessment with sub-meter detail, monitoring of small infrastructure where 10 m is too coarse. The right pattern is to use Sentinel and AlphaEarth to narrow the candidate set, then spend commercial-imagery budget on the candidates that warrant it. The two stacks compose. They are not substitutes.
Repos: ghostwatch, solar-map-ph, floodwatch-ph.