Open Data Cube: Managing and Analyzing Satellite Time Series at Scale
Quick Answer: The Open Data Cube (ODC) is an open-source framework for managing and analyzing gridded Earth observation data. It indexes satellite imagery (Landsat, Sentinel-2, etc.) into a spatiotemporal database, enabling efficient queries like 'give me all NDVI values for this polygon from 2015-2024.' The data remains as files (COGs on disk or cloud storage); ODC indexes metadata for fast lookup. Built on Python/xarray/PostgreSQL, ODC is deployed by several national agencies including Geoscience Australia (Digital Earth Australia), Swiss Data Cube, and Africa Regional Data Cube. Key advantage over GEE: you own the infrastructure and data, with full algorithmic flexibility. Key disadvantage: requires IT infrastructure setup and maintenance.
The Open Data Cube (ODC) is an open-source framework that indexes satellite imagery into a queryable spatiotemporal database, so a decade of observations over any polygon is one Python call away. Its reason for existing is governance as much as convenience: national governments need satellite monitoring systems they control — systems where the data, the algorithms, and the infrastructure are under their authority, not dependent on a foreign company's goodwill.
While Google Earth Engine democratized planetary-scale analysis for researchers, it doesn't solve the operational needs of government agencies that require guaranteed availability, full data sovereignty, and the ability to customize every aspect of their processing pipeline. The Open Data Cube provides an open-source alternative that agencies can deploy on their own infrastructure.
What the Open Data Cube Does
What problem does it solve?
Satellite time series analysis keeps asking the same shapes of question, and without a management framework each one means hand-searching file catalogs, reconciling naming conventions and projections, and writing bespoke loading code. ODC indexes the data once so queries like these become routine:
- What was the NDVI at this location on every cloud-free date since 2015?
- Show me all Sentinel-2 observations for this watershed in July 2024
- Compute the median surface reflectance for this region for each quarter
ODC provides a structured solution: index the data once, query it efficiently forever.
Architecture
Data storage: Satellite imagery stored as files — typically Cloud Optimized GeoTIFFs (COGs) on disk, NFS, or cloud object storage (what makes a GeoTIFF cloud-optimized). ODC doesn't move or copy the data; it indexes where data files are and what they contain.
Metadata database: PostgreSQL database containing:
- Product definitions (what is Sentinel-2 Level-2A? Which bands? What resolution?)
- Dataset records (this specific Sentinel-2 scene covers this spatial extent, at this time, with these file paths)
- Spatial/temporal indexes for fast queries
Python API: The datacube Python library provides high-level functions:
dc = datacube.Datacube()
data = dc.load(
product='sentinel2_l2a',
x=(lon_min, lon_max),
y=(lat_min, lat_max),
time=('2020-01-01', '2024-12-31'),
measurements=['red', 'green', 'blue', 'nir']
)
This returns an xarray Dataset — a labeled multi-dimensional array that integrates seamlessly with the Python scientific computing ecosystem (NumPy, pandas, scikit-learn, matplotlib).
What You Get
The dc.load() call handles:
- Finding all datasets that intersect the spatial and temporal query
- Reading only the required spatial extent from each file
- Reprojecting to a common CRS if needed
- Resampling to a common pixel grid
- Stacking into a 4D array (time × band × y × x)
This data loading and harmonization is the tedious part of satellite time series analysis. ODC automates it.
Deployments
Digital Earth Australia (DEA)
The flagship ODC deployment:
- Operated by Geoscience Australia
- Indexes the complete Landsat and Sentinel-2 archive over Australia — for Landsat that means tapping what NASA calls "the longest continuous space-based record of Earth's land in existence"
- Produces national-scale products: water observations, fractional cover, coastline monitoring
- Publicly accessible via DEA Sandbox (JupyterHub) and Open Data platform
Digital Earth Africa
Continental-scale deployment for Africa:
- Sentinel-1, Sentinel-2, Landsat data for all of Africa
- Analysis-ready data updated regularly
- Products: water extent, cropland mapping, land cover
- Funded by international development organizations
Swiss Data Cube
National deployment for Switzerland:
- Complete Landsat and Sentinel-2 archive over Switzerland
- Used for environmental monitoring, glacier tracking, snow cover analysis
Other Deployments
Vietnam, Colombia, Mexico, Taiwan, and other countries have deployed or are deploying national-scale ODC instances for various monitoring applications.
How does ODC compare to Google Earth Engine?
GEE minimizes setup and maximizes scale at the cost of control: Google hosts the data, constrains the API, and can change the terms. ODC inverts the trade — full data ownership and any-Python-code flexibility, paid for in infrastructure and maintenance effort. The table summarizes the trade-offs:
| Aspect | Open Data Cube | Google Earth Engine |
|---|---|---|
| Data ownership | You control everything | Google hosts and controls |
| Algorithm flexibility | Full (any Python code) | Constrained by GEE API |
| Infrastructure | You manage (or cloud) | Google manages |
| Cost | Infrastructure costs | Free (research) / Paid (commercial) |
| Setup effort | Significant | Minimal |
| Global data catalog | You build it | Pre-built |
| Scalability | Depends on your infra | Google-scale |
| Sustainability | Self-controlled | Depends on Google |
Key Advantages
Sovereignty: Government agencies control their own data and processing. No dependency on external providers.
Flexibility: Any Python library, any algorithm, any machine learning framework. No API restrictions.
Reproducibility: You control the data versions, the code, and the environment. Results are reproducible years later.
Integration: ODC outputs integrate with standard Python tools (xarray, pandas, scikit-learn) and GIS tools (QGIS, GDAL).
Limitations
Setup complexity: Installing and configuring ODC, populating the index, and managing the data ingestion pipeline requires significant technical effort.
Data management: You're responsible for acquiring, storing, and updating the satellite data. This is a substantial ongoing operational cost.
Scale limitations: Without cloud infrastructure, processing is limited by your hardware. Cloud deployment solves this but adds complexity and cost.
Community size: Smaller user community than GEE means fewer tutorials, examples, and Stack Overflow answers.
The Modern ODC Ecosystem
ODC has evolved significantly:
odc-stac: Direct integration with STAC catalogs — load data from any STAC-compliant archive without local indexing (how STAC works).
odc-geo: Geospatial utilities for working with ODC data.
Datacube Explorer: Web interface for browsing indexed datasets.
odc-stats: Framework for computing temporal statistics (medians, percentiles, geomedians) at continental scale.
The evolution toward STAC integration is particularly significant — it means ODC can work with data in any STAC catalog (Microsoft Planetary Computer, Element 84 Earth Search, AWS Open Data) without needing to download and locally index everything.
When should you choose ODC?
Choose ODC when you need data sovereignty, full algorithmic flexibility, and long-term operational reliability — and you can staff the infrastructure that independence requires. It is a framework for agencies and institutions running monitoring as a mandate, not a tool for a quick one-off analysis. For lighter needs, two alternatives cover most cases:
Choose GEE when: You need rapid exploration, global-scale analysis, minimal infrastructure, and can accept the constraints of GEE's programming model and dependency.
Choose cloud-native (STAC + xarray + Dask) when: You want flexibility without the full ODC framework — direct access to cloud-hosted data with standard Python tools. This is the same standards stack behind modern browser-based WebGIS platforms.
And if the actual requirement is watching a handful of specific sites rather than building national infrastructure, a browser-based satellite area monitoring tool answers the same time series questions with no setup at all.
The Open Data Cube represents a principled approach to Earth observation data management: open-source, community-governed, and designed for the operational needs of government agencies that must maintain long-term, sovereign monitoring capabilities. It's not the easiest path — but for organizations that need independence and full control, it's the most sustainable one.

Remote sensing specialist with 10+ years in satellite data processing. Founder of Off-Nadir Lab. Master's in Satellite Oceanography (Kyushu University). Co-author, Remote Sensing Encyclopedia. More about the author →