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.6+
- Clone:
git clone https://github.com/opendatacube/datacube-core.git
- Create a Python environment for using the ODC. We recommend conda as the easiest way to handle Python dependencies.
conda create -n odc -c conda-forge python=3.6 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.
pre-commit install
Run unit tests + PyLint
./check-code.sh
(this script approximates what is run by Travis. You can alternatively run
pytest
yourself). Some test dependencies may need to be installed, attempt to install these using:pip install --upgrade -e '.[test]'
If install for these fails please lodge them as issues.
(or) Run all tests, including integration tests.
./check-code.sh integration_tests
- Assumes a password-less Postgres database running on localhost called
agdcintegration
- Otherwise copy
integration_tests/agdcintegration.conf
to~/.datacube_integration.conf
and edit to customise.
Alternatively one can use the opendatacube/datacube-tests
docker image to run tests. This docker includes database server pre-configured for running integration tests. Add --with-docker
command line option as a first argument to ./check-code.sh
script.
./check-code.sh --with-docker integration_tests
Building a Python virtual environment on Ubuntu suitable for development work.
Install dependencies:
sudo apt-get update
sudo apt-get install -y \
autoconf automake build-essential make cmake \
graphviz \
python3-venv \
python3-dev \
libpq-dev \
libyaml-dev \
libnetcdf-dev \
libudunits2-dev
Build the python virtual environment:
pyenv="${HOME}/.envs/odc" # Change to suit your needs
mkdir -p "${pyenv}"
python3 -m venv "${pyenv}"
source "${pyenv}/bin/activate"
pip install -U pip wheel cython numpy
pip install -e '.[dev]'
pip install flake8 mypy pylint autoflake black
The following script allows reproducing the datacube
library on Google Colaboratory, since this is currently working on a conda environment, individual libraries and correspondent dependencies must be installed independently. For reproducibility on Colab, execute the following commands on a single cell.
import os
!git clone https://github.com/opendatacube/datacube-core.git
% cd datacube-core
! pip install --upgrade -e .
os.system('/content/datacube-core/check-code.sh')
!pip install --upgrade -e '.[test]'
os.system("./check-code.sh integration_tests")
!sudo apt-get install -y \
autoconf automake build-essential make cmake \
graphviz \
python3-venv \
python3-dev \
libpq-dev \
libyaml-dev \
libnetcdf-dev \
libudunits2-dev
!pip install --extra-index-url="https://packages.dea.ga.gov.au" \
odc-ui \
odc-index \
odc-geom \
odc-algo \
odc-io \
odc-aws \
odc-aio \
odc-dscache \
odc-dtools
!git clone https://github.com/ceos-seo/odc-gee.git
!pip install -e odc-gee
!wget -nc https://raw.githubusercontent.com/ceos-seo/odc-colab/master/odc_colab.py
from odc_colab import odc_colab_init
odc_colab_init(install_odc_gee=True)
from datacube import Datacube