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
uv pip install firecube
uv run 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:
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. 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:
uv run 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
uv run 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.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.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. | |
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. |
|
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.0 | 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.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.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.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. |
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.5
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.5.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| firecube-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.1 MB
Release files / firecube-0.1.5.tar.gz
| Download URL | firecube-0.1.5.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b9f23356ca59ea305e0ef309f44961a97bdd8f8b83284ce3c4a6fe558000517d
|
|
BLAKE2b-256 checksum How to use checksums |
0afd6872f1776ddf64ad12993874dd1fd491bb2a851386b86921378db7d25ad4
|
| 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 3, 2026.
Transparency logRelease files / firecube-0.1.5-py3-none-any.whl
| Download URL | firecube-0.1.5-py3-none-any.whl |
|---|---|
| Size | 591.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78f3d11ddc0b28009baaaecd5f1cd9bea64a55946b34b092e5bba6594eeb91bb
|
|
BLAKE2b-256 checksum How to use checksums |
bb5a3dd98b60d5da1df49e8dc6c713574c950b7eb2ba8fba698e8686fdb378fa
|
| 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 3, 2026.
Transparency log