Satellite Image Processing Fundamentals and Applications - From Remote Sensing to Change Detection
Satellite Imagery and Remote Sensing Fundamentals
Satellite image processing analyzes Earth observation data acquired by sensors aboard artificial satellites. It serves agriculture, environmental monitoring, urban planning, disaster management, and climate change research across diverse applications.
Major Earth observation satellites:
- Sentinel-2 (ESA): 13 bands, 10-60m resolution, 5-day revisit. Free and open. Optimal for vegetation and water quality monitoring
- Landsat 8/9 (NASA/USGS): 11 bands, 15-100m resolution, 16-day revisit. Free. 40+ years of time series data
- ALOS-2 (JAXA): SAR (Synthetic Aperture Radar), 1-10m resolution. All-weather observation capability
- WorldView-3 (Maxar): 31cm resolution (panchromatic). Highest commercial resolution
- Planet (PlanetScope): 3m resolution, daily global coverage. Constellation of approximately 200 satellites
Satellite image characteristics:
- Multispectral: Observes multiple wavelength bands simultaneously including visible, near-infrared, shortwave infrared, and thermal infrared
- Wide coverage: Single scene covers 100km × 100km or more
- Periodic: Regular revisits enable time series change tracking
- Large volume: Single Sentinel-2 scene is approximately 800MB (all bands)
Unlike standard RGB images, satellite imagery pixels represent physical quantities (radiance or reflectance) as quantitative data. Leveraging this property is the core of remote sensing analysis.
Preprocessing - Geometric and Atmospheric Correction
Raw satellite data contains sensor geometric distortions, atmospheric effects, and terrain influences. Preprocessing to remove these effects is essential for quantitative analysis.
Geometric Correction: Corrects image distortion from satellite attitude variations, Earth curvature, and terrain relief, accurately aligning to map coordinate systems (UTM etc.):
- Orthorectification: Uses DEM (Digital Elevation Model) to remove terrain effects, converting to nadir-view (orthographic projection)
- GCP (Ground Control Points): Known ground coordinates improve geometric accuracy
- Sentinel-2 Level-1C products are geometrically corrected with approximately 12m positional accuracy (CE95)
Atmospheric Correction: Removes atmospheric scattering and absorption effects to estimate true surface reflectance:
- TOA (Top of Atmosphere) reflectance: Reflectance at atmosphere top, includes atmospheric effects
- BOA (Bottom of Atmosphere) reflectance: Surface reflectance after atmospheric correction
- Sen2Cor: ESA's official Sentinel-2 atmospheric correction tool. Level-1C to Level-2A conversion
- 6S: High-accuracy atmospheric correction based on radiative transfer modeling
Cloud masking: Cloud-covered pixels contain no surface information and must be excluded from analysis. Sentinel-2's SCL (Scene Classification Layer) band automatically classifies clouds, cloud shadows, and snow. Fmask algorithm is also widely used. Scenes exceeding 30% cloud cover are typically discarded.
Vegetation and Water Indices - Information Extraction via Band Math
Combining multispectral bands through arithmetic operations (band math) enables quantitative assessment of vegetation vigor, water distribution, and soil conditions. These indices are fundamental environmental monitoring tools.
NDVI (Normalized Difference Vegetation Index): The most widely used vegetation index, exploiting healthy vegetation's strong near-infrared (NIR) reflection and red light absorption:
NDVI = (NIR - Red) / (NIR + Red)
- Value range: -1 to +1. Bare soil 0.1-0.2, grassland 0.3-0.5, forest 0.6-0.9
- Sentinel-2: Uses Band 8 (NIR, 842nm) and Band 4 (Red, 665nm)
- Applications: Crop growth monitoring, forest health assessment, drought monitoring
NDWI (Normalized Difference Water Index): Used for water body detection:
NDWI = (Green - NIR) / (Green + NIR)
- Water: NDWI > 0, Land: NDWI < 0
- Applied to flood mapping and lake area change tracking
Other important indices:
- EVI (Enhanced Vegetation Index): Improved NDVI reducing atmospheric and soil influences. Less saturation in dense vegetation
- NDBI (Normalized Difference Built-up Index): Urban area detection. (SWIR - NIR) / (SWIR + NIR)
- NBR (Normalized Burn Ratio): Fire scar detection. (NIR - SWIR2) / (NIR + SWIR2)
In Python, use rasterio to load band data and NumPy array operations for index calculation. Guard against division by zero with np.where(denominator != 0, numerator/denominator, 0).
Land Cover Classification - Machine Learning Surface Classification
Land cover classification assigns each satellite image pixel to categories such as forest, cropland, urban, or water. It is essential for urban planning, environmental assessment, and carbon budget estimation.
Supervised classification methods:
- Random Forest: Uses multiple band values and indices (NDVI, NDWI etc.) as features. Implementable with scikit-learn. Typical accuracy 85-90%
- SVM (Support Vector Machine): Strong for high-dimensional feature space classification. Effective with small datasets
- Deep learning (CNN): Learns spatial patterns. U-Net and DeepLab for high-accuracy segmentation. Accuracy 90-95%
Training data creation:
- Reference Google Earth or high-resolution imagery to delineate representative areas per class as polygons
- Collect minimum 100-500 pixel samples per class
- Consider class balance; oversample minority classes
Accuracy assessment: Calculate from confusion matrix:
- Overall Accuracy (OA): Total correct rate. Target 85%+
- Kappa coefficient: Chance-corrected accuracy. Above 0.8 is excellent
- Producer's Accuracy: Per-class recall
- User's Accuracy: Per-class precision
Google Earth Engine (GEE): Cloud-based geospatial analysis platform accessing petabyte-scale satellite data from browsers. Available via JavaScript or Python API, optimal for large-scale time series analysis without local data download.
Change Detection - Extracting Changes from Time Series Imagery
Change detection compares satellite images from different dates to automatically identify surface changes. It is applied to deforestation monitoring, urban expansion tracking, and disaster damage assessment.
Basic change detection methods:
- Image differencing: Compute difference between two-date images or indices, threshold to determine change/no-change. Simplest but threshold selection is challenging
- Ratio method: Compute ratio between two dates. Robust to atmospheric condition differences
- CVA (Change Vector Analysis): Represents multi-band change as vectors, simultaneously evaluating change magnitude and direction
Deep learning change detection:
- Siamese Network: Inputs two-date images to identical encoders, detecting change from feature differences. FC-Siam-diff is representative
- BIT (Bitemporal Image Transformer): Transformer-based capturing long-range spatial dependencies for high-accuracy change detection
- Accuracy: F1 scores 0.85-0.92 (dataset dependent)
Time series analysis: Beyond two-date comparison, multi-year time series analysis distinguishes seasonal variation from actual change. BFAST (Breaks For Additive Season and Trend) separates seasonal and trend components to detect abrupt change points.
Practical example - deforestation detection: Calculate monthly NDVI time series from Sentinel-2, flagging areas with 0.3+ decrease compared to same month previous year as deforestation candidates. Apply cloud masking and seasonal correction to reduce false positives. Global Forest Watch uses this approach for near-real-time global forest monitoring.
Practical Satellite Image Processing - Tools and Workflows
This section covers concrete tools, data acquisition methods, and processing pipelines for applying satellite image processing in practice, focusing on freely available resources.
Data acquisition:
- Copernicus Open Access Hub: Free download of all Sentinel-1/2/3 data. Batch retrieval via API
- USGS EarthExplorer: Free access to entire Landsat archive. MODIS and ASTER also available
- Google Earth Engine: Direct browser-based analysis without download. Large-scale processing capability
- AWS Open Data: Sentinel-2 and Landsat as COG (Cloud Optimized GeoTIFF) directly accessible from S3
Processing tools:
- QGIS: Open-source GIS for satellite image display, band math, and classification. Free
- SNAP (ESA): Official Sentinel processing tool integrating atmospheric correction, geometric correction, and SAR processing
- Python (rasterio + GDAL): Programmatic processing.
rasterio.open()reads GeoTIFF, NumPy for computation - xarray + rioxarray: Efficient multidimensional array satellite data processing. Optimal for time series
Example pipeline:
- Download Sentinel-2 Level-2A (atmospherically corrected)
- Apply cloud mask → extract valid pixels only
- Calculate NDVI → create time series stack
- Change detection or classification → output results as GeoTIFF
- Visualize and map in QGIS
Large-scale processing strategy: National-scale analysis requires processing several TB of data. Google Earth Engine, AWS Lambda + S3, or Dask parallel processing are effective. COG format enables partial reading of only needed regions, dramatically reducing I/O overhead.