The Cities Indicator Framework (CIF) is a set of Python tools to make it easier to calculate zonal statistics for cities by providing a standardized set of data layers for inputs and a common framework for using those layers to calculate indicators.
- If all you want to do is use the CIF, the quickest way to get started is to use our WRI Cities Indicator Framework Colab Notebook
pip install git+https://github.com/wri/cities-cif/releases/latest
gives you the latest stable release.pip install git+https://github.com/wri/cities-cif
gives you the main branch with is not stable.
- Prerequisites
- Git * On Windows I recommend WSL https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-git
- https://cli.github.com/ * On MacOS I recommend the Homebrew option * If you don't have an ssh key, it will install one for you
- Conda (or Mamba) to install dependencies
* If you have Homebrew
brew install --cask miniconda
conda env create -f environment.yml
To run the module, you need access to Google Earth Engine.
For most people working in a notebook or IDE the script should walk you thourgh an interactive authentication process. You will just need to be logged in to your Google account that has access to GEE in your browser.
If you have issues with this or need to run the script as part of an automated workflow we have a GEE-enabled GCP service account that can be used. Get in touch with Saif or Chris to ask about getting the credetials.
Set the following environment variables:
- GOOGLE_APPLICATION_CREDENTIALS: The path of GCP credentials JSON file containing your private key.
- GOOGLE_APPLICATION_USER: The email for your GCP user.
- GCS_BUCKET: The GCS bucket to read and write data from.
For example, you could set the following in your ~/.zshrc
file:
export GCS_BUCKET=gee-exports
export GOOGLE_APPLICATION_USER=developers@citiesindicators.iam.gserviceaccount.com
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials/file
All are welcome to contribute by creating a Pull Request. We try to follow the Github Flow workflow.
See the developer docs to learn more about how to add data layers and indicators.