Skip to content
Complementarity Between Sentinel-1 and Landsat 8 Imagery for Built-Up Mapping in Sub-Saharan Africa
Jupyter Notebook Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Initial commit Oct 6, 2018


This repository contains the Python code supporting the following paper:

  • Forget Y., Shimoni M., Gilbert M., and Linard C. Complementarity Between Sentinel-1 and Landsat 8 Imagery for Built-Up Mapping in Sub-Saharan Africa, In Press, 2018.

Input and output datasets can be downloaded from Zenodo.


Python dependencies are listed in the environment.yml and the requirements.txt files.

A virtual environment containing all the required dependencies can be automatically created using conda:

# Clone the repository
git clone
cd landsat-sentinel-fusion

# Create the virtual environment
conda env create --file environment.yml

# Activate the environment
source activate landsat-sentinel-fusion

The code also depends on:

  • Orfeo Toolbox for the computation of GLCM textures ;
  • SNAP for SAR data preprocessing.


Input and output datasets are available in a Zenodo deposit.

# Download and decompress the data
wget -O

Validation samples can be found in data/raw/reference (as shapefiles) or in data/processed/reference (as rasters).

Classification outputs and performance metrics are located in data/output for each case study.

Due to storage constraints, input satellite imagery is not included in the Zenodo deposit. However, the product identifiers are available in data/raw/landsat/products.txt and data/raw/sentinel-1/products.txt. This means that they can be automatically downloaded using auxiliary software such as landsatxplore or sentinelsat.

For Landsat 8 scenes:

pip install landsatxplore

# Earth Explorer credentials
export LANDSATXPLORE_USERNAME=<your_username>
export LANDSATXPLORE_PASSWORD=<your_password>

cd data/raw/landsat

# Download each product with landsatxplore
for id in products.txt; do landsatxplore download $id; done

# Decompress each product
for product in *.zip; do unzip $product; done

For Sentinel-1 imagery:

cd ../sentinel-1

# Install and configure sentinelsat
pip install sentinelsat
export DHUS_USER=<your_username>
export DHUS_PASSWORD=<your_password>

# Download Sentinel-1 products
for id in products.txt; do sentinelsat --download --name $id; done


Running the analysis

# Preprocessing of Optical and SAR data

# Dimensionality reduction (PCA) of SAR data

# Random forest classification and validation


  • src/ : computing of GLCM textures using Orfeo Toolbox.
  • src/ : accessing metadata specific to each case study.
  • src/ : various raster processing functions.
  • src/ : helper functions.


The following scripts has been used for the study but are not necessary to run the analysis :

  • src/ : generates areas of interest for each case study.
  • src/ : monthly ndvi and precipitations for each case study.
  • src/ : land/water masks using openstreetmap data.
  • src/ : rasterizes reference samples (polygons).
You can’t perform that action at this time.