A Python framework for processing spatio-temporal satellite imagery and extracting features for machine learning applications.
eo-learn is an open-source Python framework for processing and analyzing Earth observation satellite imagery. It provides tools to handle spatio-temporal data, extract features, and prepare datasets for machine learning applications, addressing the challenge of automatically deriving insights from large volumes of satellite data.
Remote sensing scientists, geospatial data engineers, and machine learning practitioners working with satellite imagery for applications like land cover monitoring, disaster control, and environmental analysis.
Developers choose eo-learn for its modular, reusable task system that simplifies complex EO workflows, its seamless integration with the Python data science stack, and its active community that shares and improves processing components.
Earth observation processing framework for machine learning in Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
EOTasks and EOWorkflow enable building reusable processing chains, as illustrated in the README for water mapping with NDVI thresholding, fostering collaboration and code reuse.
EOPatch structure manages time-series satellite imagery efficiently, which is essential for handling large datasets from fleets like Copernicus and Landsat.
Leverages NumPy, scikit-learn, and other Python libraries, making it easy to incorporate machine learning and data science tools into remote sensing workflows.
Supports custom task development and community contributions through a structured package system, with extra tasks available in separate repositories for flexibility.
Requires installing system-specific libraries (e.g., GDAL on Windows via unofficial wheels) and managing extra dependencies, which can be error-prone and time-consuming.
Examples are housed in a separate repository (eo-learn-examples) and may not be up-to-date, complicating the learning curve for new users.
Relies on standard Python libraries without built-in distributed computing support; scaling to petabyte-level data requires additional tools like RAY or custom infrastructure.