Science and engineering
Machine learning for remote sensing
Remote sensing applies machine learning to satellite and aerial imagery: classifying land cover from spectral bands, detecting change such as deforestation or flooding between dates, masking clouds, and estimating crop condition from vegetation indices like NDVI.
How machine learning is used in remote sensing
Classifying land cover
Models assign each pixel or area a class such as forest, cropland, water or built-up, using spectral bands, indices and texture. Frequent satellite revisits allow maps that update as the land changes.
Real exampleDynamic World (Brown et al., Scientific Data, 2022)Produces near real-time 10 m global land use and land cover maps from Sentinel-2 imagery using deep learning.
Mapping floods
Radar satellites see through cloud, which is common during floods. Segmentation models trained on labelled radar scenes map flood water quickly for response teams.
Real exampleSen1Floods11 (Cloud to Street)A georeferenced dataset for training and testing deep learning flood mapping algorithms on Sentinel-1 radar imagery.
Masking clouds
Clouds and shadows corrupt optical images, so most pipelines start by detecting them. Pixel classifiers trained on labelled scenes do this automatically for every image.
Real examples2cloudless (Sentinel Hub)An open-source Python package for automated cloud detection in Sentinel-2 imagery, based on a single-scene, pixel-based machine learning detector.
Extracting buildings and infrastructure
Segmentation networks trace building outlines and roads from high-resolution imagery, producing map layers at national and global scale.
Real exampleGlobal ML building footprints (Microsoft Bing Maps)Bing Maps released open building footprints derived from satellite imagery, reporting 1.4 billion buildings detected from imagery captured between 2014 and 2024.
Can you learn machine learning for remote sensing?
Yes. Remote sensing specialists can add machine learning to their knowledge of sensors and imagery, starting with pixel classifiers and moving to deep learning. Learn Python and raster handling, accuracy assessment, classical classifiers, then segmentation networks.
- PythonScript image processing that you would otherwise do in desktop software.Learn it in Python
- Raster data handlingRead, reproject, tile and mask imagery with rasterio and xarray, or work in Google Earth Engine.
- Accuracy assessmentConfusion matrices, sampling design and area-adjusted accuracy for honest map validation.Learn it in Statistics
- Pixel classificationRandom forests on spectral bands and indices such as NDVI are the classic baseline.Learn it in Machine Learning
- Deep learning for imageryU-nets and transformers for segmentation and change detection.Learn it in Deep Learning
Moving into machine learning for remote sensing
If you already work in the field
Remote sensing specialists know sensors, atmospheric effects and ground truth, which machine learning engineers often underestimate. Add Python and deep learning, then reproduce a land cover or flood map for an area you know and assess it with proper accuracy statistics. Space agencies, environmental agencies, insurers and agriculture technology companies hire for this.
If you come from data science or ML
Machine learning engineers should learn the main sensor types (optical and SAR), spectral bands, projections, cloud and atmospheric effects and accuracy assessment practice. Google Earth Engine or Copernicus data tutorials are a practical start.
Roles that do this workRemote sensing scientistEarth observation data scientistGeospatial machine learning engineerGIS analyst
Tools you will use
| Tool | What you use it for |
|---|---|
| Rasterio | Read, reproject and window multispectral satellite rasters. |
| rioxarray | Work with labelled raster time series in Xarray, including clipping and reprojection. |
| TorchGeo | Load Earth-observation datasets and pretrained models for deep learning on imagery. |
| Google Earth Engine | Query Sentinel and Landsat archives, compute indices and train classifiers in the cloud. |
| scikit-learn | Train pixel-level random forests and baselines on band values and indices. |
Public data to practise on
- EuroSAT: Sentinel-2 image patches labelled into land-use and land-cover classes, in RGB and all-band versions.
- Copernicus Data Space Ecosystem: Full Sentinel-2 and Sentinel-1 archives for your own study area; free registration required.
- USGS EarthExplorer: Landsat scenes and other imagery for long-term change detection; free registration required.
Your first project
Download the multispectral version of EuroSAT, classify land cover with a random forest on per-band means and NDVI, and compare it with a small TorchGeo convolutional network using overall accuracy and per-class recall.
Common questions
Which satellites are used for machine learning in remote sensing?
Free data from Sentinel-1 radar, Sentinel-2 optical and Landsat is the most common starting point, with commercial very high resolution imagery for detailed tasks.
What is NDVI?
NDVI, the normalised difference vegetation index, compares near-infrared and red reflectance to indicate green vegetation. It is a common input feature for crop and vegetation models.
Why is cloud masking important?
Clouds and their shadows hide the surface in optical images and corrupt any model trained or applied on them. Masking them is usually the first processing step.
Is deep learning always better than random forests for satellite imagery?
No. Random forests on spectral features remain strong for pixel classification with limited labels. Deep learning wins when spatial patterns matter, such as buildings, roads or field boundaries, and when enough labels exist.
Courses for these skills
- Deep Learning with PyTorchUnderstand spatial image features.Syllabus available · lessons open as produced
- Practical Machine Learning in PythonCompare classification baselines and feature effects.51 published lessons · more lessons in production
- Data Tools: NumPy, pandas, Matplotlib and scikit-learnKeep reference maps and image coordinates aligned.23 published lessons · all planned lessons open
New to programming or maths? Start with Python, or follow the machine learning path in order. Published lessons are free to read; compare Free and Pro.