Skip to main content

An analysis environment for satellite and other earth observation data

Project description

Open Data Cube Core

Build Status Coverage Status Documentation Status


Open Data Cube Core provides an integrated gridded data analysis environment for decades of analysis ready earth observation satellite and related data from multiple satellite and other acquisition systems.


See the user guide for installation & usage of the datacube, and for documentation of the API.

Join our Slack if you need help setting up or using Data Cube Core.



  • PostgreSQL 9.5+
  • Python 3.5+

Developer setup

  1. Clone:
    • git clone
  2. Create a Python environment to use ODC within, we recommend conda as the easiest way to handle Python dependencies.
conda create -n odc -c conda-forge python=3.7 datacube pre_commit
conda activate odc
  1. Install a develop version of datacube-core.
cd datacube-core
pip install --upgrade -e .
  1. Install the pre-commit hooks to help follow ODC coding conventions when committing with git.
pre-commit install
  1. Run unit tests + PyLint


    (this script approximates what is run by Travis. You can alternatively run pytest yourself)

  2. (or) Run all tests, including integration tests.

    ./ integration_tests

    • Assumes a password-less Postgres database running on localhost called


    • Otherwise copy integration_tests/agdcintegration.conf to ~/.datacube_integration.conf and edit to customise.


Docker for Open Data Cube is in the early stages of development, and more documentation and examples of how to use it will be forthcoming soon. For now, you can build and run this Docker image from this repository as documented below.

Example Usage

There are a number of environment variables in use that can be used to configure the OpenDataCube. Some of these are built into the application itself, and others are specific to Docker, and will be used to create a configuration file when the container is launched.

You can build the image with a command like this:

docker build --tag opendatacube:local .

And it can then be run with this command:

docker run --rm opendatacube:local

If you don’t need to build (and you shouldn’t) then you can run it from a pre-built image with:

docker run --rm opendatacube/datacube-core

An example of starting a container with environment variables is as follows:

docker run \
   --rm \
   -e DATACUBE_CONFIG_PATH=/opt/custom-config.conf \
   -e DB_DATABASE=mycube \
   -e DB_HOSTNAME=localhost \
   -e DB_USERNAME=postgres \
   -e DB_PASSWORD=secretpassword \
   -e DB_PORT=5432 \

Additionally, you can run an Open Data Cube Docker container along with Postgres using the Docker Compose file. For example, you can run docker-compose up and it will start up the Postgres server and Open Data Cube next to it. To run commands in ODC, you can use docker-compose run odc datacube -v system init or docker-compose run odc datacube --version.

Environment Variables

Most of the below environment variables should be self explanatory, and none are required (although it is recommended that you set them).

  • DATACUBE_CONFIG_PATH - the path for the config file for writing (also used by ODC for reading)
  • DB_DATABASE - the name of the postgres database
  • DB_HOSTNAME - the hostname of the postgres database
  • DB_USERNAME - the username of the postgres database
  • DB_PASSWORD - the password to used for the postgres database
  • DB_PORT - the port that the postgres database is exposed on

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for datacube, version 1.7
Filename, size & hash File type Python version Upload date
datacube-1.7-py2.py3-none-any.whl (268.9 kB) View hashes Wheel py2.py3
datacube-1.7.tar.gz (231.6 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page