TerraTorch is a library based on PyTorch Lightning and the TorchGeo domain library for geospatial data.
TerraTorch’s main purpose is to provide a flexible fine-tuning framework for Geospatial Foundation Models, which can be interacted with at different abstraction levels.
The library provides:
- Easy access to open source pre-trained Geospatial Foundation Model backbones (e.g., Prithvi, SatMAE and ScaleMAE, other backbones available in the timm (Pytorch image models) or SMP (Pytorch Segmentation models with pre-training backbones) packages, as well as fine-tuned models such as granite-geospatial-biomass
- Flexible trainers for Image Segmentation, Classification and Pixel Wise Regression fine-tuning tasks
- Launching of fine-tuning tasks through flexible configuration files
In order to use th file pyproject.toml
it is necessary to guarantee pip>=21.8
. If necessary upgrade pip
using python -m pip install --upgrade pip
.
For a stable point-release, use pip install terratorch
.
If you prefer to get the most recent version of the main branch, install the library with pip install git+https://github.com/IBM/terratorch.git
.
Another alternative is to install using pipx via pipx install terratorch
, which creates an isolated environment and allows the user to run the application as
a common CLI tool, with no need of installing dependencies or activating environments.
TerraTorch requires gdal to be installed, which can be quite a complex process. If you don't have GDAL set up on your system, we reccomend using a conda environment and installing it with conda install -c conda-forge gdal
.
To install as a developer (e.g. to extend the library) clone this repo, install dependencies using pip install -r requirements/required.txt -r requirements/dev.txt
and run pip install -e .
To install terratorch with partial (work in development) support for Weather Foundation Models, pip install -e .[wxc]
, which currently works just for Python >= 3.11
.
To get started, check out the quick start guide
Check out the architecture overview.
A simple hint for any contributor. If you want to met the GitHub DCO checks, just do your commits as below:
git commit -s -m <message>
It will sign the commit with your ID and the check will be met.