Skip to content
Earth observation processing framework for machine learning in Python
Python Other
  1. Python 98.8%
  2. Other 1.2%
Branch: master
Clone or download
AleksMat Merge pull request #190 from sentinel-hub/feat/sh-py-proc-api-update
Use the SentinelHubRequest for issuing Processing API requests
Latest commit 939de78 Feb 17, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
coregistration versions to 0.7.0 Jan 10, 2020
docs Fixed processing api docs Feb 5, 2020
examples Merge pull request #159 from sentinel-hub/feat/improve-spatio-temp-fe… Jan 10, 2020
features Merge pull request #159 from sentinel-hub/feat/improve-spatio-temp-fe… Jan 10, 2020
geometry updated geometry module with new sentinelhub-py version Feb 17, 2020
io Raised version to 0.7.2 Feb 17, 2020
mask added cloud masking models to manifest Jan 10, 2020
ml_tools versions to 0.7.0 Jan 10, 2020
visualization Version 0.7.1 (core, io, visualization update) Feb 5, 2020
.coveragerc build should fail if pylint not successful Jul 24, 2019
.gitignore updates in CONTRIBUTING and README, changed how they are parsed into … Jan 24, 2019
.readthedocs.yml update of docs envirnment and .readthedocs.yml Jun 20, 2019
.travis.yml a few changes in Travis CI Feb 17, 2020 Raised version to 0.7.2 Feb 17, 2020 minor updates of contributing and code of conduct Jan 24, 2019 Added PR corrections from Devis and merge with dev branch. Dec 9, 2019
LICENSE updated setup, CI file, manifest and develop requirements Jan 23, 2019
Makefile added visualization into installation process and readme Jun 20, 2019 update README to include conda forge installation Jan 22, 2020 version 0.5.1 - heavy visualization dependencies are not being instal… Jun 22, 2019
requirements-dev.txt minor updates Dec 2, 2019
requirements-docs.txt Added eo-learn subpackages in requirements-docs.txt as to be installe… Jul 5, 2019 updated geometry module with new sentinelhub-py version Feb 17, 2020

Package version Build Status Docs status License Overall downloads Last month downloads codecov


eo-learn makes extraction of valuable information from satellite imagery easy.

The availability of open Earth observation (EO) data through the Copernicus and Landsat programs represents an unprecedented resource for many EO applications, ranging from ocean and land use and land cover monitoring, disaster control, emergency services and humanitarian relief. Given the large amount of high spatial resolution data at high revisit frequency, techniques able to automatically extract complex patterns in such spatio-temporal data are needed.

eo-learn is a collection of open source Python packages that have been developed to seamlessly access and process spatio-temporal image sequences acquired by any satellite fleet in a timely and automatic manner. eo-learn is easy to use, it's design modular, and encourages collaboration -- sharing and reusing of specific tasks in a typical EO-value-extraction workflows, such as cloud masking, image co-registration, feature extraction, classification, etc. Everyone is free to use any of the available tasks and is encouraged to improve the, develop new ones and share them with the rest of the community.

eo-learn makes extraction of valuable information from satellite imagery as easy as defining a sequence of operations to be performed on satellite imagery. Image below illustrates a processing chain that maps water in satellite imagery by thresholding the Normalised Difference Water Index in user specified region of interest.


eo-learn library acts as a bridge between Earth observation/Remote sensing field and Python ecosystem for data science and machine learning. The library is written in Python and uses NumPy arrays to store and handle remote sensing data. Its aim is to make entry easier for non-experts to the field of remote sensing on one hand and bring the state-of-the-art tools for computer vision, machine learning, and deep learning existing in Python ecosystem to remote sensing experts.

Package Overview

eo-learn is divided into several subpackages according to different functionalities and external package dependencies. Therefore it is not necessary for user to install entire package but only the parts that he needs.

At the moment there are the following subpackages:

  • eo-learn-core - The main subpackage which implements basic building blocks (EOPatch, EOTask and EOWorkflow) and commonly used functionalities.
  • eo-learn-coregistration - The subpackage that deals with image co-registraion.
  • eo-learn-features - A collection of utilities for extracting data properties and feature manipulation.
  • eo-learn-geometry - Geometry subpackage used for geometric transformation and conversion between vector and raster data.
  • eo-learn-io - Input/output subpackage that deals with obtaining data from Sentinel Hub services or saving and loading data locally.
  • eo-learn-mask - The subpackage used for masking of data and calculation of cloud masks.
  • eo-learn-ml-tools - Various tools that can be used before or after the machine learning process.
  • eo-learn-visualization - Visualization tools for core elements of eo-learn.


PyPi distribution

The package requires Python version >=3.5 . It can be installed with:

pip install eo-learn

In order to avoid heavy package dependencies it is possible to install each subpackage separately:

pip install eo-learn-core
pip install eo-learn-coregistration
pip install eo-learn-features
pip install eo-learn-geometry
pip install eo-learn-io
pip install eo-learn-mask
pip install eo-learn-ml-tools
pip install eo-learn-visualization

Before installing eo-learn on Windows it is recommended to install the following packages from Unofficial Windows wheels repository:

cartopy (required by eo-learn-visualization[FULL])

One of dependecies of eo-learn-mask subpackage is lightgbm package. On windows it requires 64 bit Python distribution. If having problems during installation please check LightGBM installation guide.

A part of subpackage eo-learn-visualization requires additional dependencies which don't get installed by default. Those can be installed with

pip install eo-learn-visualization[FULL]

Conda Forge distribution

The package requires a Python environment >=3.5.

Thanks to the maintainers of the conda forge feedstock (@benhuff, @dcunn, @mwilson8, @oblute, @rluria14), eo-learn can be installed using conda-forge as follows:

conda config --add channels conda-forge

conda install eo-learn-core
conda install eo-learn-coregistration
conda install eo-learn-features
conda install eo-learn-geometry
conda install eo-learn-io
conda install eo-learn-mask
conda install eo-learn-ml-tools
conda install eo-learn-visualization


For more information on the package content, visit readthedocs.


If you would like to contribute to eo-learn, check out our contribution guidelines.

Blog posts and papers

Questions and Issues

Feel free to ask questions about the package and its use cases at Sentinel Hub forum or raise an issue on GitHub.

You are welcome to send your feedback to the package authors, EO Research team, through any of Sentinel Hub communication channel.




This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 776115.

You can’t perform that action at this time.