datacube
An analysis environment for satellite and other earth observation data
What it is and what it does
Datacube is a Python framework for managing and analyzing large time-series collections of earth observation satellite data. It provides a unified interface to index, query, and process gridded geospatial data from multiple sources, handling the complexity of coordinate systems, temporal alignment, and multi-dimensional arrays. The package integrates with PostgreSQL for metadata storage and uses xarray, dask, and rasterio to enable scalable analysis workflows across decades of satellite imagery.
Typical use involves indexing satellite datasets into a PostgreSQL-backed datacube, then querying and analyzing specific regions and time periods using a high-level Python API. It abstracts away low-level file I/O and coordinate transformations, allowing researchers and analysts to focus on scientific questions rather than data plumbing. The 24 runtime dependencies—including dask for distributed computing, xarray for multi-dimensional arrays, and GeoAlchemy2 for spatial queries—reflect its role as a comprehensive geospatial data platform.
Use it for:
- Index and query multi-year satellite imagery archives to analyze land-use change or vegetation trends over time.
- Perform distributed analysis of large earth observation datasets using dask-backed computation across multiple machines.
- Build automated pipelines to ingest, index, and serve analysis-ready satellite data to downstream applications.
- Analyze time-series of gridded climate or environmental data aligned to specific geographic regions.
- Integrate satellite data with geospatial databases for spatial queries and cross-dataset analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Datacube provides an integrated gridded data analysis environment for managing and analyzing decades of analysis-ready earth observation satellite data from multiple acquisition systems.
Yes, if you work with earth observation or gridded geospatial time-series data at scale. Datacube is actively maintained, has no known vulnerabilities, and is designed specifically for this use case. The PostgreSQL and system library requirements are substantial but expected for this class of tool. Not suitable if you need a lightweight, dependency-minimal solution or lack access to a PostgreSQL database.
Install
datacube on PyPI
pip
pip install datacubeuv
uv add datacubepoetry
poetry add datacubeInstalling datacube
Before you install
Low friction installation with a pure Python wheel. Active maintenance with a release 64 days ago and ongoing commits. Requires PostgreSQL 15+ and Python 3.10+ as system dependencies, which are non-trivial prerequisites but well-documented.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for both open and proprietary projects.
Quickstart
pip install datacube
import datacube
dc = datacube.Datacube()
# Query and analyze earth observation data
Requires PostgreSQL 15+ running and accessible; Python 3.10+ required; system libraries for geospatial dependencies (GDAL, PROJ, etc.) may need compilation.
Verify before relying
- Whether datacube can be used without a local PostgreSQL instance (e.g., remote database connection setup).
- Performance characteristics and scalability limits for typical earth observation datasets.
- Integration patterns with common cloud storage backends (S3, GCS, etc.).
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 24 — affine, alembic, antimeridian, cachetools, click, dask, deprecat, distributed, GeoAlchemy2, jsonschema, lark, numpy, odc-geo, odc-loader, odc-stac, pandas, pyproj, python-dateutil, pyyaml, rasterio, shapely, sqlalchemy, toolz, xarray |
| Maintenance | actively maintained — 64 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 124,192/month — #11,882 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: datacube-1.9.21-py3-none-any.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
earthengine-apiPython client library for Google Earth Engine,…
permissive · top 15,000 on PyPI
xeeXee is an Xarray backend that lets you open…
permissive · top 15,000 on PyPI
earthaccessearthaccess searches, downloads, and streams…
permissive · top 15,000 on PyPI
python-cmrProvides a Python wrapper around NASA's Common…
permissive · top 15,000 on PyPI
torchgeoTorchGeo provides PyTorch datasets, samplers,…
permissive · top 15,000 on PyPI
geemapGeemap provides interactive geospatial analysis…
permissive · top 15,000 on PyPI
pystac-ext-datacubeExtends PySTAC to support the Datacube…
permissive · top 5,000 on PyPI
sentinelhubsentinelhub provides a Python interface to…
permissive · top 15,000 on PyPI
magiccubeMagicCube implements NxNxN Rubik cubes with…
permissive · top 15,000 on PyPI
geocifGenerates climatic impact drivers from Earth…
permissive · top 15,000 on PyPI