Plugin-driven CLI for turning Earth Observation products into analysis-ready datacubes
Documentation | Quickstart | Create a Plugin | Plugin Tutorial
Installation
Firecube requires Python 3.12+. We recommend using uv for lightning-fast dependency management and isolated environments.
1. Clone the Repository
Clone the core Firecube ingestor repository:
git clone https://github.com/eumetsat/firecube.git
cd firecube
2. Setup Environment
Use uv to install dependencies and prepare the virtual environment:
uv venv --python 3.12
uv sync
3. Verify CLI
Confirm the installation by checking the version:
uv run firecube --version
Use A Plugin
Install an external plugin using the package name or local checkout documented by that plugin:
uv run firecube plugins install <plugin-package>
uv run firecube plugins list
uv run firecube plugins describe <plugin>
Then follow the plugin documentation for its source data and options. Firecube ingest commands always require explicit product flags; storage settings are inferred from the URI scheme by default:
uv run firecube ingest <plugin> \
--input-data file://${PWD}/source-data \
--target "file://${PWD}/my_product.zarr" \
--product-name my_product \
--output-format zarr \
--write-mode direct
# explicit storage override if needed
uv run firecube ingest <plugin> \
--input-data file://${PWD}/source-data \
--target "file://${PWD}/my_product.zarr" \
--product-name my_product \
--storage-type local \
--storage-driver obstore \
--output-format zarr \
--write-mode direct
For the full first-run path, use the Quickstart.
Documentation
Build or serve the docs locally:
uv sync --group docs
uv run mkdocs serve
uv run mkdocs build
Development
Install test extras and run the main local gate:
uv sync --extra test
uv run pytest --strict-deps -m "not slow and not s3"
Software Bill Of Materials
Regenerate the CycloneDX 1.5 SBOM and the dependency-license report locally with:
mkdir -p reports
uv export --format cyclonedx1.5 --all-groups --all-extras --output-file reports/sbom.cdx.json
uv run --isolated --all-groups --all-extras --with hatchling --with pip-licenses pip-licenses --format=json --with-urls > reports/dependency-licenses.json
The SBOM covers all uv dependency groups and extras. Use the dependency license report and package metadata for license review; do not rely on CycloneDX license fields alone.
Included third-party components: none declared.
Direct Runtime And Optional Dependencies
The following dependencies are not included in the package but are required or available as optional runtime extras:
| dependency | version | license | copyright | home_url | comments |
|---|---|---|---|---|---|
duckdb |
1.5.4 | MIT | https://github.com/duckdb/duckdb-python | Direct dependency. | |
pandas |
3.0.3 | BSD-3-Clause | https://pandas.pydata.org | Direct dependency. | |
numpy |
2.5.0 | BSD-3-Clause | https://numpy.org | Direct dependency. | |
pyarrow |
24.0.0 | Apache-2.0 | https://arrow.apache.org/ | Direct dependency. | |
xarray |
2026.4.0 | Apache-2.0 | https://xarray.dev/ | Direct dependency. | |
zarr |
3.2.1 | MIT | https://github.com/zarr-developers/zarr-python | Direct dependency. | |
psutil |
7.2.2 | BSD-3-Clause | https://github.com/giampaolo/psutil | Direct dependency. | |
fsspec |
2026.6.0 | BSD-3-Clause | https://github.com/fsspec/filesystem_spec | Direct dependency. | |
s3fs |
2026.6.0 | BSD-3-Clause | http://github.com/fsspec/s3fs/ | Direct dependency. | |
botocore |
1.43.0 | Apache-2.0 | https://github.com/boto/botocore | Direct dependency. | |
netcdf4 |
1.7.4 | MIT | https://github.com/Unidata/netcdf4-python | Direct dependency. | |
h5netcdf |
1.8.1 | BSD-3-Clause | https://h5netcdf.org | Direct dependency. | |
h5py |
3.16.0 | BSD-3-Clause | https://www.h5py.org/ | Direct dependency. | |
dask |
2026.6.0 | BSD-3-Clause | https://github.com/dask/dask/ | Direct dependency. | |
prometheus-client |
0.25.0 | Apache-2.0 | https://github.com/prometheus/client_python | Direct dependency. | |
opentelemetry-sdk |
1.43.0 | Apache-2.0 | https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-sdk | Direct dependency. | |
opentelemetry-exporter-otlp |
1.43.0 | Apache-2.0 | https://github.com/open-telemetry/opentelemetry-python/tree/main/exporter/opentelemetry-exporter-otlp | Direct dependency. | |
obstore |
0.11.0 | MIT | https://developmentseed.org/obstore | Direct optional obstore extra dependency. |
|
tensogram |
0.22.0 | Apache-2.0 | https://sites.ecmwf.int/docs/tensogram/main | Direct optional tensogram extra dependency. |
|
tensogram-xarray |
0.22.0 | Apache-2.0 | https://sites.ecmwf.int/docs/tensogram/main | Direct optional tensogram extra dependency. |
|
tensogram-zarr |
0.22.0 | Apache-2.0 | https://sites.ecmwf.int/docs/tensogram/main | Direct optional tensogram extra dependency. |
|
healpix-geo |
0.1.2 | Apache-2.0 | https://pypi.org/project/healpix-geo/ | Direct optional healpix extra dependency. |
|
virtualizarr |
2.7.0 | Apache-2.0 | https://github.com/zarr-developers/VirtualiZarr | Direct optional virtualzarr extra dependency. |
Direct Build, Edit, And Test Dependencies
The following dependencies are only required for building, editing, documentation, or testing:
| dependency | version | sw type | license | copyright | home_url | comments |
|---|---|---|---|---|---|---|
hatchling |
1.30.1 | Development tools | MIT | https://hatch.pypa.io/latest/ | Build backend dependency. | |
tensogram |
0.22.0 | Development tools | Apache-2.0 | https://sites.ecmwf.int/docs/tensogram/main | Direct optional test extra dependency. |
|
tensogram-xarray |
0.22.0 | Development tools | Apache-2.0 | https://sites.ecmwf.int/docs/tensogram/main | Direct optional test extra dependency. |
|
tensogram-zarr |
0.22.0 | Development tools | Apache-2.0 | https://sites.ecmwf.int/docs/tensogram/main | Direct optional test extra dependency. |
|
obstore |
0.11.0 | Development tools | MIT | https://developmentseed.org/obstore | Direct optional test extra dependency. |
|
healpix-geo |
0.1.2 | Development tools | Apache-2.0 | https://pypi.org/project/healpix-geo/ | Direct optional test extra dependency. |
|
moto |
5.2.2 | Development tools | Apache-2.0 | https://github.com/getmoto/moto | Direct optional test extra dependency. |
|
pytest |
9.1.1 | Development tools | MIT | https://docs.pytest.org/en/latest/ | Direct dev dependency group entry. |
|
ruff |
0.15.20 | Development tools | MIT | https://docs.astral.sh/ruff | Direct dev dependency group entry. |
|
pytest-cov |
7.1.0 | Development tools | MIT | https://pytest-cov.readthedocs.io/en/latest/changelog.html | Direct dev dependency group entry. |
|
pytest-xdist |
3.8.0 | Development tools | MIT | https://github.com/pytest-dev/pytest-xdist | Direct dev dependency group entry. |
|
pytest-mock |
3.15.1 | Development tools | MIT | https://github.com/pytest-dev/pytest-mock/ | Direct dev dependency group entry. |
|
pytest-asyncio |
1.4.0 | Development tools | Apache-2.0 | https://github.com/pytest-dev/pytest-asyncio | Direct dev dependency group entry. |
|
pyright |
1.1.411 | Development tools | MIT | https://github.com/RobertCraigie/pyright-python | Direct dev dependency group entry. |
|
mkdocs |
1.6.1 | Development tools | BSD-2-Clause | https://github.com/mkdocs/mkdocs | Direct docs dependency group entry. |
|
mkdocs-material |
9.7.6 | Development tools | MIT | https://github.com/squidfunk/mkdocs-material | Direct docs dependency group entry. |
|
mkdocstrings |
1.0.4 | Development tools | ISC | https://mkdocstrings.github.io | Direct docs dependency group entry. |
|
mkdocs-mermaid2-plugin |
1.2.3 | Development tools | MIT | https://github.com/fralau/mkdocs-mermaid2-plugin | Direct docs dependency group entry. |
|
mkdocs-click |
0.9.0 | Development tools | Apache-2.0 | https://github.com/mkdocs/mkdocs-click | Direct docs dependency group entry. |
|
mkdocs-macros-plugin |
1.5.0 | Development tools | MIT | https://github.com/fralau/mkdocs_macros_plugin | Direct docs dependency group entry. |
Copyright and License
Copyright © EUMETSAT 2025-2026
The provided code and instructions are licensed under Apache License, Version 2.0.
Contact EUMETSAT for details on the usage and distribution terms.
Authors
See AUTHORS.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file firecube-0.1.4.post1.tar.gz.
File metadata
- Download URL: firecube-0.1.4.post1.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e10a68c5ccc6da3d36c01ad6abefca469122d79b0295f135f12c1b9da60de73
|
|
| MD5 |
fdc42252a018d0692afae778ed829204
|
|
| BLAKE2b-256 |
423ea6ba7aea113c597d479668deffbad067f3189d8ca81ca1baba2a1b6dc4b7
|
Provenance
The following attestation bundles were made for firecube-0.1.4.post1.tar.gz:
Publisher:
publish.yml on eumetsat/firecube
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
firecube-0.1.4.post1.tar.gz -
Subject digest:
1e10a68c5ccc6da3d36c01ad6abefca469122d79b0295f135f12c1b9da60de73 - Sigstore transparency entry: 2234935064
- Sigstore integration time:
-
Permalink:
eumetsat/firecube@e17960cbb7ed418483587af5632d0effc31a7c16 -
Branch / Tag:
refs/tags/v0.1.4.post1 - Owner: https://github.com/eumetsat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e17960cbb7ed418483587af5632d0effc31a7c16 -
Trigger Event:
release
-
Statement type:
File details
Details for the file firecube-0.1.4.post1-py3-none-any.whl.
File metadata
- Download URL: firecube-0.1.4.post1-py3-none-any.whl
- Upload date:
- Size: 472.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
186c7f8b12008329d6eb583c23b846633c7242223cec80c04967ce182c01f4a4
|
|
| MD5 |
2baeb98fcf4c9e6c88c5492a1b84767a
|
|
| BLAKE2b-256 |
786f2f06dc3bd1c7412bedbd836b6014712006ba8e616baf454c77183cabada1
|
Provenance
The following attestation bundles were made for firecube-0.1.4.post1-py3-none-any.whl:
Publisher:
publish.yml on eumetsat/firecube
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
firecube-0.1.4.post1-py3-none-any.whl -
Subject digest:
186c7f8b12008329d6eb583c23b846633c7242223cec80c04967ce182c01f4a4 - Sigstore transparency entry: 2234935556
- Sigstore integration time:
-
Permalink:
eumetsat/firecube@e17960cbb7ed418483587af5632d0effc31a7c16 -
Branch / Tag:
refs/tags/v0.1.4.post1 - Owner: https://github.com/eumetsat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e17960cbb7ed418483587af5632d0effc31a7c16 -
Trigger Event:
release
-
Statement type: