Skip to main content

Package version Supported Python versions Build Status Docs status License Overall downloads Last month downloads Code coverage

eo-grow

Earth observation framework for scaled-up processing in Python.

Analyzing Earth Observation (EO) data is complex and solutions often require custom tailored algorithms. In the EO domain most problems come with an additional challenge: How do we apply the solution on a larger scale?

Working with EO data is made easy by the eo-learn package, while the eo-grow package takes care of running the solutions at a large scale. In eo-grow an EOWorkflow based solution is wrapped in a pipeline object, which takes care of parametrization, logging, storage, multi-processing, EOPatch management and more. However, pipelines are not necessarily bound to EOWorkflow execution and can be used for other tasks such as training ML models.

Features of eo-grow include:

  • Direct use of EOWorkflow procedures.
  • Parametrizing workflows by using validated configuration files, making executions easy to reproduce and adjust.
  • Easy use of both local and AWS S3 storage with no required code adaptation.
  • Splitting large areas of interest into grids and defining collections of EOPatches.
  • Workflows can be run either single-process, multi-process, or even on multiple machines (by using ray clusters).
  • Execution reports and customizable logging.
  • Options for skipping already processed data when re-running a pipeline.
  • Offers a CLI interface for running pipelines, validating configuration files, and generating templates.
  • A collection of basic pipelines, with methods that can be overridden to tailor to a large amount of use-cases.

General Structure Overview

The core object of eo-grow is the Pipeline. Each pipeline has a run_procedure method, which is executed after the pipeline is set up. By default, the run_procedure executes an EOWorkflow which is built by the (user-defined) build_workflow method.

Each pipeline is linked to so called managers:

  • StorageManager handles loading and saving of files,
  • AreaManager defines the area of interest and how it should be split into EOPatches,
  • LoggingManager provides control over logging.

eo-grow-structure

Managers and pipelines usually require a large amount of parameters (setting storage paths, configuring log parameters, etc.), which are provided in .json configuration files. Each eo-grow object contains a special Schema class, which is a pydantic model describing the parameters of the object. Config files are then validated before execution to catch issues early. Templates for config files can be generated with the eogrow-template CLI command.

To make config files easier to write eo-grow uses a simple config language that supports importing other configs, variables, and more.

Install

PyPi distribution

The eo-grow package requires Python version >= 3.8 and can be installed with

pip install eo-grow

Command Line Interface

Running pipelines is easiest by using the CLI provided by eo-grow. For all options use the --help flag with each command.

  • eogrow <config> executes the pipeline defined in the <config> file.
  • eogrow-validate <config> only performs validation of the <config> file.
  • eogrow-test <config> initializes the pipeline/object but does not run it. Useful for testing if managers are set correctly or for generating area-split grids.
  • eogrow-ray <cluster> <config> executes the pipeline defined in <config> on the active Ray cluster defined by the <cluster> file.
  • eogrow-template <import path> <template> generates a template config for the object specified by the <import path> and saves it to the <template> file (or outputs it directly if <template> is not provided).

Documentation

For more information on the package visit readthedocs.

Explanatory examples can be found here.

More details on the config language used by eo-grow can be found here.

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.

License

See LICENSE.

Acknowledgements

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under Grant Agreement No. 101004112. The project is co-funded also by the European Union’s Horizon 2020 research and innovation programme under Grant Agreement No. 101086461.

Metadata

Release files for eo-grow 1.7.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eo-grow 1.7.15
File Size Uploaded
eo_grow-1.7.15.tar.gz 85.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eo-grow 1.7.15
File Interpreter ABI Platform
eo_grow-1.7.15-py3-none-any.whl Python 3 none any Details

Total release size: 200.4 kB

Release files / eo_grow-1.7.15.tar.gz

Download URL eo_grow-1.7.15.tar.gz
Size 85.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7efb463b1a6010237c3fac56ecd796c76b646cb24a5b27f91fcf369eac3e4a04
BLAKE2b-256 checksum
How to use checksums
7b1baf33987c24e2d4ff3795c800d6abc6319579df4490294e0980b7f80c0ed4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / eo_grow-1.7.15-py3-none-any.whl

Download URL eo_grow-1.7.15-py3-none-any.whl
Size 115.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0672b89e920575a0ab082dddd5507003a346b7b82dcb91e4d103d7cda99e6280
BLAKE2b-256 checksum
How to use checksums
2ad75bd21203fab7decb64eb53be389903e534cf8ca7a9db0067552f2b8083f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

1.7.15 This release

2 release files

1.7.12

2 release files

1.7.11

2 release files

1.7.10

2 release files

1.7.9

2 release files

1.7.8

2 release files

1.7.7

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page