Plugin-driven CLI for turning Earth Observation products into analysis-ready datacubes
Documentation | Quickstart | Plugin Development
Firecube requires Python 3.12+. Install the released package from PyPI in an isolated environment:
mkdir firecube-quickstart
cd firecube-quickstart
uv venv --python 3.12
source .venv/bin/activate
uv pip install firecube
firecube --versionSee the Installation guide for the user quickstart. To change Firecube itself, use the setup in Contributing to Firecube.
Install an external plugin using the package name or local checkout documented by that plugin:
firecube plugins install <plugin-package>
firecube plugins list
firecube plugins describe <plugin>Then follow the plugin documentation for its source data and options. Ingestion requires a target and write mode, plus a product name from the command or plugin class. This example also spells out the storage and output choices:
firecube ingest <plugin> \
--input-data ./source-data \
--target "file://${PWD}/my_product.zarr" \
--product-name my_product \
--storage-type local \
--storage-driver fsspec \
--output-format zarr \
--write-mode direct# use another supported storage driver explicitly
firecube ingest <plugin> \
--input-data ./source-data \
--target "file://${PWD}/my_product.zarr" \
--product-name my_product \
--storage-type local \
--storage-driver obstore \
--output-format zarr \
--write-mode directFor the full first-run path, use the Quickstart.
- Installation
- Create the example plugin
- Prepare source data
- Run ingestion
- Configure S3 access
- Create an Intake catalog
- CLI reference
Build or serve the docs locally:
uv sync --group docs
uv run mkdocs serve
uv run mkdocs buildInstall test extras and run the main local gate:
uv sync --extra test
uv run pytest --strict-deps -m "not slow and not s3"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.jsonThe 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.
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.5 | MIT | https://github.com/duckdb/duckdb-python | Direct dependency. | |
pandas |
3.0.5 | BSD-3-Clause | https://pandas.pydata.org | Direct dependency. | |
numpy |
2.5.0 | BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 | https://numpy.org | Direct dependency; the additional licences cover components bundled in the numpy distribution. | |
pyarrow |
25.0.1 | Apache-2.0 | https://arrow.apache.org/ | Direct dependency. | |
xarray |
2026.7.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.26.0 | Apache-2.0 AND BSD-2-Clause | https://github.com/prometheus/client_python | Direct dependency. | |
opentelemetry-sdk |
1.44.0 | Apache-2.0 | https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-sdk | Direct dependency. | |
opentelemetry-exporter-otlp |
1.44.0 | Apache-2.0 | https://github.com/open-telemetry/opentelemetry-python/tree/main/exporter/opentelemetry-exporter-otlp | Direct dependency. | |
click |
8.4.2 | BSD-3-Clause | https://github.com/pallets/click | Direct dependency. | |
packaging |
26.2 | Apache-2.0 OR BSD-2-Clause | https://github.com/pypa/packaging | Direct dependency; dual-licensed, either licence may be used. | |
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.2.1 | Apache-2.0 | https://pypi.org/project/healpix-geo/ | Direct optional healpix extra dependency. |
|
trollsift |
1.0.1 | Apache-2.0 | https://pypi.org/project/trollsift/ | Direct optional patterns extra dependency. |
|
virtualizarr |
2.7.1 | Apache-2.0 | https://github.com/zarr-developers/VirtualiZarr | Direct optional virtualzarr extra dependency. |
The following dependencies are only required for building, editing, documentation, or testing:
| dependency | version | sw type | license | copyright | home_url | comments |
|---|---|---|---|---|---|---|
hatchling |
1.32.0 | Development tools | MIT | https://hatch.pypa.io/latest/ | Build backend dependency. | |
trollsift |
1.0.1 | Development tools | Apache-2.0 | https://pypi.org/project/trollsift/ | Direct optional test extra 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.2.1 | 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. |
|
griffelib |
2.1.0 | Development tools | ISC | https://pypi.org/project/griffelib/ | Direct optional test extra dependency; static docstring inspection for the API docs coverage test. |
|
pytest |
9.1.1 | Development tools | MIT | https://docs.pytest.org/en/latest/ | Direct dev dependency group entry. |
|
ruff |
0.16.5 | 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.7 | 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. |
|
mkdocstrings-python |
2.0.5 | Development tools | ISC | https://mkdocstrings.github.io/python | 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. |
|
mike |
2.2.0 | Development tools | BSD-3-Clause | https://github.com/jimporter/mike | Direct docs dependency group entry. |
|
mkdocs-jupyter |
0.26.3 | Development tools | Apache-2.0 | https://github.com/danielfrg/mkdocs-jupyter | Direct docs dependency group entry. |
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.
See AUTHORS.md.
