Skip to content

Sinergise releases eo-learn: open-source software to bridge the gap between Earth Observation and Machine Learning

Sinergise has recently released eo-learn, an open-source framework to quickly and easily build Earth Observation (EO) applications. The framework allows to prototype and automate the processing of entire EO pipelines for large areas in few lines of Python code. Given the availability of large amounts of open data, machine learning (ML) algorithms can be seamlessly embedded into the processing pipeline to extract actionable information. The aim of eo-learn is to facilitate entry to the EO field for small and medium-size enterprises and research centres through exploitation of open-access satellite data.

Source: @peter_neff on Twitter
The availability of open EO data through the Copernicus and Landsat programs represents an unprecedented resource for many EO applications, ranging from land use and land cover (LULC) monitoring, crop monitoring and yield prediction, to disaster control, emergency services and humanitarian relief.

Given the large amount of high spatial resolution data at high revisit frequency, frameworks able to automatically extract complex patterns in such spatio-temporal data are required. In order to fully exploit the intrinsic information available in remote sensing data, Sinergise has built a set of tools to make prototyping of complex EO workflows as easy, fast, and accessible as possible. This set of tools is called eo-learn, an open-source Python framework which has been recently released and presented at the International Conference on Knowledge Discovery and Data Mining.

eo-learn acts as a bridge between Earth Observation/Remote Sensing and Python ecosystem for data science and ML. On one hand, its aim is to make entry to the field of remote sensing for non-experts easier. On the other, to bring the state-of-the-art tools for computer vision, ML, and deep learning existing in Python ecosystem to remote sensing experts.

Example of eo-learn pipeline of a global monitoring system for water-level of dams, reservoirs and lakes. Python code to build and run such pipeline has been open-sourced by Sinergise.

eo-learn is easy to use, its design modular, and encourages collaboration — sharing and reusing of specific tasks in a typical EO-value-extraction workflow, 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 upon them, develop new ones and share them with the rest of the community. The library is shared under MIT license so it can be used for research and commercial purposes. Sinergise believes that there is so much of untapped potential in remote sensing, and tools to fully exploit such potential should be made available to anyone. Who knows, perhaps someone will save the Planet with it. Everyone wins. That being said, as an open-source project, contributions from the community are essential to its success, as well as the success of remote sensing and EO applications.

In a nutshell
eo-learn is available on the Python package manager and on Sentinel -Hub’s GitHub repository. The main advantage of eo-learn is the possibility of dealing with areas-of-interest (AOI) of any given size, e.g. at a country or continental level. The framework allows splitting the AOI into smaller patches that can be processed with limited computational resources and allows automation of the processing pipeline. eo-learn handles multi-temporal and multi-source remote sensing data, both in raster and vector format. A pipeline in eo-learn is defined as a connected acyclic graph of well-specified tasks to be performed on the data. Example tasks include data retrieval and rasterization, cloud and snow masking, co-registration, interpolation, feature manipulation, and geometric sampling. Tasks are modular and allow users to easily implement their own. The Python environment allows to use the many available packages for data analysis and ML, and quickly prototype and test EO applications. eo-learn supports parallelization of operations, such that the same workflow (e.g. data preparation for land cover classification) can be run in parallel for the smaller patches constituting the AOI. Logging and reporting allow to monitor and debug the execution of the processing pipeline.

Example applications
eo-learn was designed to provide the most common operations to process spatio-temporal data that would allow building of complete remote sensing applications. Examples of such applications developed by Sinergise include land use and land cover classification at a country level using ML, and the creation of a complete service for automatic global water-level monitoring, both using eo-learn and the Copernicus data. These examples are also available as open-source to inspire the development of new applications.

Example of a land cover classification pipeline using ML and deep learning algorithms using eo-learn. Python code to build and run such pipeline has been open-sourced by Sinergise.

A key resource for the success of eo-learn is, of course, the community, both of remote sensing and ML experts. Anyone with interests in developing large-scale remote sensing applications using spatio-temporal satellite imagery is therefore warmly invited to test eo-learn, provide feedback, and possibly, contribute to it. Users all over the world have already contributed to the project with custom processing tasks and valuable feedback. The future of EO is looking as bright as ever.

“The development of eo-learn was funded by the Perceptive Sentinel European project. The project has received funding from European Union’s Horizon 2020 Research and Innovation Programme under the Grant Agreement 776115.”