Open Data Cube Core
The 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 and usage of the datacube, and for documentation of the API.
Join our Slack if you need help setting up or using the Open Data Cube.
Please help us to keep the Open Data Cube community open and inclusive by reading and following our Code of Conduct.
- PostgreSQL 9.5+
- Python 3.5+
git clone https://github.com/opendatacube/datacube-core.git
- 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
- Install a develop version of datacube-core.
cd datacube-core pip install --upgrade -e .
- Install the pre-commit hooks to help follow ODC coding conventions when committing with git.
Run unit tests + PyLint
(this script approximates what is run by Travis. You can alternatively run
(or) Run all tests, including integration tests.
- Assumes a password-less Postgres database running on localhost called
- Otherwise copy
~/.datacube_integration.confand edit to customise.
Docker for the 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.
There are a number of environment variables in use that can be used to configure the Open Data Cube. 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 \ opendatacube/datacube-core
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
run odc datacube -v system init or
docker-compose run odc datacube --version.
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