SkillAgentSearch skills...

Jeo

Jeo: Jax model training lib for Earth Observation

Install / Use

/learn @google-deepmind/Jeo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Jeo - Jax Geo lib

<div style="text-align: left"> <img align="right" src="https://raw.githubusercontent.com/google-deepmind/jeo/main/docs/images/jeo_logo_1.png" width="100" alt="jeo logo"> </div>

Model training and inference for geospatial remote sensing and Earth Observation in JAX.

Jeo provides a framework for training machine learning models for geospatial remote sensing and Earth Observation using JAX and Flax. It leverages tf.data for efficient data pipelines, with a focus on TensorFlow Datasets for scalable and reproducible input. While TensorFlow Datasets are preferred, other dataset loaders are also supported. The codebase is designed to run seamlessly on CPUs, GPUs, or Google Cloud TPU VMs.

This project is open-sourced to share research code and facilitate collaboration in geospatial and sustainability model development. Jeo integrates effectively with the GeeFlow library to construct large-scale geospatial datasets using Google Earth Engine (GEE). An example workflow is outlined below.

<div align="center"> <img src="https://raw.githubusercontent.com/google-deepmind/jeo/main/docs/images/jeo_geeflow_processing.png" width="900"> </div>

Projects and publications

Projects and publications that used this codebase:

Getting started

Installation

The first step is to checkout JEO and install relevant python dependencies in a virtual environment:

git clone https://github.com/google-deepmind/jeo
# Go into the code directory for the examples below.
cd jeo/jeo
# Install and activate a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install JEO.
pip install -e ..

Local demo run

Launching a quick local model training for just a few steps on the CPU:

python -m jeo.train --config configs/tests/tiny_bit.py:runlocal \
--workdir /tmp/jeo/demo_tiny_bit

This will start to train a bit model (which is a modified convolutional neureal net (CNN) model based on ResNet, see jeo/models/bit.py) on CIFAR-10 TFDS dataset. Since we run this on a local CPU just as a demo, we appended the :runlocal config arg above, which specifies within the config to run just for a few training and evaluation steps. For more configuration details, see the config file jeo/configs/tests/tiny_bit.py.

In a standard workflow, the given workdir will be used to save checkpoints and potentially other artifacts, such as final evaluation metrics.

Contributors

Alex Wilson, Anton Raichuk, Burak Ekim, Cristina Nader Vasconcelos, Evelyn Camacho Soberon, Giovanni Ciampi, Keith Anderson, Linus Scheibenreif, Luis Miguel Pazos-Outón, Matt Overlan, Maxim Neumann, Mélanie Rey, Michelangelo Conserva, Petra Poklukar, Vishal Batchu, Yuchang Jiang

Citing JEO

To cite this repository:

@software{jeo2025:github,
  author = {Jeo team},
  title = {{JEO}: Model training and inference for geospatial remote sensing and
  {E}arth {O}bservation in {JAX}},
  url = {https://github.com/google-deepmind/jeo},
  year = {2025}
}

License

Copyright 2024 DeepMind Technologies Limited

This code is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Disclaimer

This is not an official Google product.

Related Skills

View on GitHub
GitHub Stars158
CategoryEducation
Updated1mo ago
Forks20

Languages

Python

Security Score

100/100

Audited on Mar 8, 2026

No findings