Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yannforget/landsat-sentinel-fusion
Complementarity Between Sentinel-1 and Landsat 8 Imagery for Built-Up Mapping in Sub-Saharan Africa
https://github.com/yannforget/landsat-sentinel-fusion
earth-observation landsat python remote-sensing sentinel
Last synced: 3 months ago
JSON representation
Complementarity Between Sentinel-1 and Landsat 8 Imagery for Built-Up Mapping in Sub-Saharan Africa
- Host: GitHub
- URL: https://github.com/yannforget/landsat-sentinel-fusion
- Owner: yannforget
- License: mit
- Created: 2018-10-07T19:04:27.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-03-06T13:56:51.000Z (over 5 years ago)
- Last Synced: 2024-05-16T01:34:06.931Z (6 months ago)
- Topics: earth-observation, landsat, python, remote-sensing, sentinel
- Language: Jupyter Notebook
- Size: 7.48 MB
- Stars: 21
- Watchers: 3
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-earthobservation-code - landsat and sentinel fusion - Complementarity Between Sentinel-1 and Landsat 8 Imagery for Built-Up Mapping in Sub-Saharan Africa `Python` (`Python` processing of optical imagery (non deep learning) / Processing imagery - post processing)
README
[![DOI](https://zenodo.org/badge/151975445.svg)](https://zenodo.org/badge/latestdoi/151975445)
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](https://zenodo.org/record/1450932).
# Dependencies
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`:
``` bash
# Clone the repository
git clone https://github.com/yannforget/landsat-sentinel-fusion.git
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](https://www.orfeo-toolbox.org/) for the computation of GLCM textures ;
* [SNAP](http://step.esa.int/main/download/) for SAR data preprocessing.# Data
Input and output datasets are available in a [Zenodo deposit](https://zenodo.org/record/1450932).
``` bash
# Download and decompress the data
wget -O data.zip https://zenodo.org/record/1450932/files/data.zip?download=1
unzip data.zip
```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](https://github.com/yannforget/landsatxplore) or [sentinelsat](https://github.com/sentinelsat/sentinelsat).
For Landsat 8 scenes:
``` bash
pip install landsatxplore# Earth Explorer credentials
export LANDSATXPLORE_USERNAME=
export LANDSATXPLORE_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:
``` bash
cd ../sentinel-1# Install and configure sentinelsat
pip install sentinelsat
export DHUS_USER=
export DHUS_PASSWORD=# Download Sentinel-1 products
for id in products.txt; do sentinelsat --download --name $id; done
```# Code
## Running the analysis
``` bash
# Preprocessing of Optical and SAR data
python preprocess_landsat.py
python preprocess_sentinel1.py# Dimensionality reduction (PCA) of SAR data
python dimreduction.py# Random forest classification and validation
python classification.py
```## Modules
* `src/glcm.py` : computing of GLCM textures using Orfeo Toolbox.
* `src/metadata.py` : accessing metadata specific to each case study.
* `src/raster.py` : various raster processing functions.
* `src/utils.py` : helper functions.## Scripts
The following scripts has been used for the study but are not necessary to run the analysis :
* `src/aoi.py` : generates areas of interest for each case study.
* `src/climate.py` : monthly ndvi and precipitations for each case study.
* `src/land_masks.py` : land/water masks using openstreetmap data.
* `src/preprocess_reference.py` : rasterizes reference samples (polygons).