Plugin-driven CLI for turning Earth Observation products into analysis-ready datacubes
Documentation | Quickstart | Plugin Development
Installation
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 --version
See the Installation guide for the user quickstart. To change Firecube itself, use the setup in Contributing to Firecube.
Use A Plugin
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 direct
For the full first-run path, use the Quickstart.
Documentation
- 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 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.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. |
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.32.3 | 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 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.
Metadata
Release files for firecube 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| firecube-0.1.7.tar.gz | 2.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| firecube-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.2 MB
Release files / firecube-0.1.7.tar.gz
| Download URL | firecube-0.1.7.tar.gz |
|---|---|
| Size | 2.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
98b7ce141ffa1759586936ac7a15e3903d3de3bf5eeeb913ced0545758486fc1
|
|
BLAKE2b-256 checksum How to use checksums |
d2f13c544d75039850058aa86b0e352317ae9616f8e41d32ebe0abef43ce5ffb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / firecube-0.1.7-py3-none-any.whl
| Download URL | firecube-0.1.7-py3-none-any.whl |
|---|---|
| Size | 675.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
292b22c9e20caddbaaf41907c3e7bb3d228e161debdefdc96992beaa24d78c75
|
|
BLAKE2b-256 checksum How to use checksums |
f1ee4a1d19e814481916ad077f9cc854ed1a0a678a5a7cc2031be2ff9db92d10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log