All posts

Machine Learning for Satellite Imaging: Teaching Models to Read Earth

How ML and deep learning turn multispectral satellite data into maps of land, water, crops, cities, disasters, and change.

A satellite image can look like a photograph of Earth.

But it is more than a photograph.

It can record wavelengths our eyes cannot see. It can show the same place again and again. It can reveal moisture, vegetation health, heat, smoke, ice, flood water, and slow changes across years.

Machine learning helps turn that enormous stream of pixels into information we can use.

This is where space technology, computer vision, geography, and environmental science meet.

What satellite imaging can help us understand

Earth-observation models are used to:

  • map land cover and land use;
  • detect buildings, roads, ships, and vehicles;
  • measure forest loss and urban growth;
  • estimate crop type and health;
  • map floods, fires, and storm damage;
  • monitor coastlines, glaciers, snow, and sea ice;
  • detect changes between two dates;
  • and support disaster response.

The output may be a class for one region, a box around an object, a value for every pixel, or a map showing what changed.

A satellite does not see like a phone camera

An ordinary colour image has red, green, and blue channels.

Many Earth-observation satellites measure more bands. Sentinel-2, for example, uses a multispectral instrument with 13 spectral bands. Its bands cover visible light, near-infrared, red-edge, and shortwave-infrared wavelengths, at spatial resolutions of 10, 20, or 60 metres depending on the band.

Those extra bands matter.

Healthy vegetation reflects near-infrared light differently from stressed vegetation. Water behaves differently from soil. Shortwave infrared can help with moisture, burn scars, and cloud separation.

A machine-learning model can combine signals that look almost identical to the human eye.

Optical imagery

Optical sensors measure reflected sunlight. Their images are intuitive, but clouds, haze, shadows, and night limit what they can observe.

Synthetic aperture radar

SAR sends microwave energy towards Earth and measures the return.

Radar can work through clouds and at night. It responds to surface roughness, geometry, and moisture, but its images contain speckle and are less intuitive than optical photographs.

Thermal imagery

Thermal sensors measure emitted heat. They support studies of surface temperature, fires, cities, water, and volcanic activity.

Elevation and other geospatial layers

Satellite workflows often combine imagery with elevation, slope, weather, boundaries, soil, population, or existing maps.

The model is learning from a geographic system, not only from an image.

The main ML tasks

Pixel classification

A classical model can use each pixel's spectral bands and derived indices as features.

Random forests, gradient boosting, and support vector machines remain useful for land-cover classification, particularly when labelled data is limited.

The weakness is that a single-pixel model knows little about nearby shapes and texture.

Image or patch classification

An area is divided into small patches. A model assigns one label to each patch, such as forest, residential, industrial, or farmland.

CNNs and vision transformers can learn both spectral information and spatial patterns.

Semantic segmentation

Segmentation predicts a class for every pixel.

This is a natural fit for flood extent, roads, buildings, fields, forest, and water. U-Net-style models are common because they combine local detail with larger context.

Object detection

Detection finds individual objects such as ships, aircraft, storage tanks, or buildings.

Satellite objects may be small, crowded, and rotated in any direction, so oriented bounding boxes can be more suitable than ordinary horizontal boxes.

Change detection

Change detection compares imagery from different times.

The task sounds simple, but seasons, sun angle, atmosphere, sensor differences, and image alignment can look like change even when the ground did not change.

Models may compare two images directly, process them with twin encoders, or learn from a longer time series.

Regression

Regression predicts continuous quantities such as biomass, crop yield, canopy cover, water quality, temperature, or building density.

A practical pipeline

1. Define the decision

“Classify satellite images” is not a complete problem.

Ask:

  • Which place and time period?
  • Which sensor?
  • What does each class mean?
  • At what map resolution?
  • How recent must the result be?
  • Who will use it?

The label definition should match a real decision.

2. Choose and understand the data

Common public sources include Sentinel, Landsat, MODIS, and domain-specific datasets.

Record the sensor, product level, band names, resolution, projection, acquisition date, cloud information, and processing steps.

Two rasters can have the same width and height while representing different places. Geospatial metadata is part of the data.

3. Preprocess carefully

Typical work includes:

  • atmospheric or radiometric correction;
  • cloud and shadow masking;
  • reprojection and resampling;
  • co-registration between dates;
  • band scaling and normalisation;
  • temporal compositing;
  • tiling large scenes into chips;
  • and aligning imagery with labels.

Resampling a categorical mask with a smooth interpolation method can invent class values that never existed. Small geospatial mistakes can corrupt an entire training set quietly.

4. Build features or representations

Classical ML may use spectral bands, texture, elevation, and indices such as NDVI.

Deep models can learn features from image patches. Multispectral models should accept the useful bands directly instead of reducing every satellite product to RGB without a reason.

5. Split by geography and time

Randomly splitting nearby pixels is dangerous.

Neighbouring locations are often highly similar. A random split may place almost the same field or neighbourhood in training and testing, producing an optimistic score.

Better evaluation may hold out entire regions, seasons, or years.

The hardest and most useful question is often: will this model work somewhere or sometime it has not seen?

6. Train a baseline first

Start with a simple rule, logistic regression, or random forest.

Then compare it with a CNN, U-Net, transformer, or pretrained geospatial model. A deep model is useful only if it improves the result enough to justify its data, compute, and deployment cost.

7. Evaluate the map, not only the metric

Use task metrics such as precision, recall, F1, IoU, Dice, or MAE—but inspect the predicted map.

Check errors across:

  • different regions;
  • seasons and years;
  • cloudy and clear scenes;
  • urban and rural areas;
  • rare classes;
  • boundaries;
  • and different sensors.

A high average score can hide a serious failure in the place that matters.

Libraries and tools

Rasterio and GDAL

Rasterio reads and writes geospatial rasters with Python. GDAL is a foundational toolkit for raster and vector formats, projections, and conversion.

These tools preserve the spatial meaning that ordinary image libraries may ignore.

GeoPandas and Shapely

GeoPandas works with vector data such as points, polygons, roads, and administrative boundaries. Shapely provides geometric operations.

They are useful when labels come from mapped polygons rather than raster masks.

Google Earth Engine

Earth Engine provides a large catalogue of Earth-observation data and cloud processing.

Its built-in APIs support classical supervised and unsupervised classification and regression. Deep neural networks are generally trained externally using frameworks such as PyTorch or TensorFlow, with data exported or predictions integrated back into a geospatial workflow.

PyTorch, torchvision, and TorchGeo

PyTorch handles model training.

TorchGeo adds geospatial datasets, coordinate-aware sampling, multispectral transforms, and pretrained weights for satellite and aerial imagery. It helps prevent the loss of CRS, bounds, bands, and acquisition metadata when building a deep-learning pipeline.

xarray and Dask

xarray represents labelled multidimensional arrays, which fits data organised by time, band, latitude, and longitude.

Dask helps process arrays and tables that are too large for memory.

Challenges that make satellite ML different

Labels are expensive and imperfect

Ground truth may come from surveys, field visits, older maps, volunteers, or another model.

Labels can be outdated, misaligned, incomplete, or based on a different definition from the one the project needs.

The world changes across space

A roof, field, river, or forest does not look the same everywhere.

A model trained in one country may fail in another because building materials, climate, vegetation, and land-use patterns differ.

The world changes across time

Seasons, farming cycles, disasters, construction, and sensor upgrades shift the data distribution.

Temporal information is not noise to remove. Often it is the point of the task.

Resolution changes meaning

At 10 metres per pixel, one pixel may contain road, soil, vegetation, and roof together.

A class label is therefore partly a decision about scale. A model cannot recover detail the sensor never captured.

Clouds and missing observations are normal

A robust pipeline must expect gaps.

It may use cloud masks, temporal composites, radar, multiple sensors, or models that handle missing data explicitly.

Where deep learning is heading

Geospatial foundation models are pretrained on large collections of Earth-observation data. They aim to learn representations that can transfer to new regions and tasks with fewer labels.

This is promising, but “foundation” does not mean universal.

Always verify the expected sensor, bands, resolution, preprocessing, geography, and licence. A pretrained model can still fail when the new data differs from its training world.

Earth seen as data

Satellite machine learning is technically exciting because it operates at a scale no person can inspect alone.

But every output map is still an interpretation.

The pixels came from a sensor. The labels came from a definition. The model optimised a chosen objective. The final map contains uncertainty.

The strongest projects make that chain visible.

Space can feel distant, but Earth observation makes it immediate. Machines orbiting hundreds of kilometres above us can help show where a river moved, where a forest disappeared, where a city grew, or where people may need help.

And while satellites let us study our own planet, the oldest light in the sky reminds us how much remains beyond any image. I explored that other boundary in The Light Before Everything Went Dark.

Sources and further reading