Some code was adapted from github.com/vdplasthijs/PECL/.
To use Google Earth engine (GEE) utilities, you need a GEE API key. To use that key here, create the file content/api_keys.py that contains one line GEE_API = '<your_api_key>'.
Data paths are automatically retrieved from content/data_paths.json. You can add your profile (login name) here, or alternatively the 'default' profile will be used.
Have a look at the Jupyter notebooks in notebooks/ to see how the functions in src/ are used.
The S2BMS coordinates and species occurrence probabilities are stored in content/. All satellite images of the full S2-BMS data set are available on Zenodo.
The directory structure of new project looks like this:
├── .github <- Github Actions workflows
│
├── configs <- Hydra configs
│ ├── callbacks <- Callbacks configs
│ ├── data <- Data configs
│ ├── debug <- Debugging configs
│ ├── experiment <- Experiment configs
│ ├── extras <- Extra utilities configs
│ ├── hparams_search <- Hyperparameter search configs
│ ├── hydra <- Hydra configs
│ ├── local <- Local configs
│ ├── logger <- Logger configs
│ ├── model <- Model configs
│ ├── paths <- Project paths configs
│ ├── trainer <- Trainer configs
│ │
│ ├── eval.yaml <- Main config for evaluation
│ └── train.yaml <- Main config for training
│
├── data <- Project data
│
├── logs <- Logs generated by hydra and lightning loggers
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description,
│ e.g. `1.0-jqp-initial-data-exploration.ipynb`.
│
├── scripts <- Shell scripts
│
├── src <- Source code
│ ├── data <- Data scripts
│ ├── models <- Model scripts
│ ├── utils <- Utility scripts
│ │
│ ├── eval.py <- Run evaluation
│ └── train.py <- Run training
│
├── tests <- Tests of any kind
│
├── .env.example <- Example of file for storing private environment variables
├── .gitignore <- List of files ignored by git
├── .pre-commit-config.yaml <- Configuration of pre-commit hooks for code formatting
├── .project-root <- File for inferring the position of project root directory
├── environment.yaml <- File for installing conda environment
├── Makefile <- Makefile with commands like `make train` or `make test`
├── pyproject.toml <- Configuration options for testing and linting
├── requirements.txt <- File for installing python dependencies
├── setup.py <- File for installing project as a package
└── README.md
First, install dependencies
# clone project
git clone https://github.com/WUR-AI/aether
cd aether
# install conda environment
conda create -n aether python=3.12
conda activate aether
# or venv
python3 -m .venv
source .venv/bin/activate
# install uv manager
pip install uv
# install all Python dependencies
uv sync # reads pyproject.toml + uv.lock
# install project locally (editable)
uv pip install -e .@article
{
YourName,
title = {Your Title},
author = {Your team},
journal = {Location},
year = {Year}
}