Satellite Imagery Analysis
Satellite analysis turns calibrated orbital images into measurements of land, water, and human activity that repeat on every revisit.
Why Does This Exist?
Raw satellite counts mix sun angle, haze, and sensor gain with ground truth. A forest looks different morning versus noon without changing at all. Satellite analysis exists to remove those effects first: calibrate to surface reflectance, mask clouds and shadows, then compute stable indices and maps that compare across revisits. Without it, every weather shift reads as deforestation.
For overhead context see remote sensing and for masks see semantic segmentation.
Think of It Like This
Weighing fruit with the basket removed
You tare the scale for the basket before weighing apples, or every basket change looks like a harvest. Calibration tares sun and haze, cloud masks remove the basket entirely. Indices weigh the fruit. The analogy stops at scales: bands also need co-registration to the meter.
How It Actually Works
Level-1 counts convert to top-of-atmosphere reflectance with gain and sun geometry, then atmospheric correction yields surface reflectance. Cloud and shadow masks from bands plus temporal tests drop contaminated pixels. Indices combine bands: NDVI spans to with healthy vegetation near to and water negative. Thresholds plus learned heads map indices into water, vegetation, and urban layers.
Worked example
A pixel reads NIR and Red . NDVI , sparse vegetation. After rain NIR rises to and Red falls to , giving , dense growth. A neighboring water pixel with NIR and Red gives , cleanly negative. One ratio separates three covers.
Code
This snippet computes NDVI for three covers.
import numpy as np
def ndvi(nir: np.ndarray, red: np.ndarray) -> np.ndarray: return (nir - red) / (nir + red + 1e-8)
nir = np.array([0.50, 0.60, 0.05])red = np.array([0.15, 0.10, 0.08])print(np.round(ndvi(nir, red), 2).tolist()) # -> [0.54, 0.71, -0.23]Positive high means vegetation, negative means water. Thresholds turn numbers into maps.
Watch Out For
Cloud shadows read as water
Shadows darken all bands and push indices toward water-like values, so a passing cloud draws a fake lake. The symptom is water that moves with clouds across revisits. Mask shadows with geometry plus temporal persistence before any water claim, and require repeat detection.
The Quick Version
- Calibrate to surface reflectance before comparing revisits.
- Mask clouds and shadows or they become fake land change.
- NDVI separates vegetation from water with one ratio.
- Thresholds plus learned heads produce stable layers.
- Report per-band quality alongside every map.