WorldCereal
An efficient, agile and robust EO based system for timely global crop monitoring at field scale.
https://github.com/worldcereal/worldcereal-classification
Category: Consumption
Sub Category: Agriculture and Nutrition
Keywords from Contributors
earth-observation openeo ai4food
Last synced: about 18 hours ago
JSON representation
Repository metadata
This repository contains the classification module of the WorldCereal system.
- Host: GitHub
- URL: https://github.com/worldcereal/worldcereal-classification
- Owner: WorldCereal
- License: mit
- Created: 2023-03-30T09:39:38.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-25T09:32:18.000Z (3 days ago)
- Last Synced: 2025-04-25T10:42:21.552Z (3 days ago)
- Language: Python
- Homepage: https://esa-worldcereal.org/
- Size: 194 MB
- Stars: 49
- Watchers: 5
- Forks: 6
- Open Issues: 40
- Releases: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
ESA WorldCereal classification module
Overview
WorldCereal is a Python package designed for generating cropland and crop type maps at a wide range of spatial scales, leveraging satellite and auxiliary data, and state-of-the-art classification workflows. It uses openEO to run classification tasks in the cloud, by default the Copernicus Data Space Ecosystem (CDSE).
Users can leverage the system in a notebook environment through Terrascope or set up the environment locally using the provided installation options.
In order to run classification jobs on CDSE, users can get started with monthly free openEO processing credits by registering on the CDSE platform. Additional credits can be purchased, or users may soon be able to request them through the ESA Network of Resources.
Features
- Scalable: Generate maps at a wide range of spatial scales.
- Cloud-based Processing: Leverages openEO to run classifications in the cloud.
- Powerful classification pipeline: WorldCereal builds upon Presto, a pretrained transformer-based model, leveraging global self-supervised learning of multimodal input timeseries, leading to better accuracies and higher generalizability in space and time of downstream crop classification models. The Presto backbone of WorldCereal classification pipelines is developed here.
- Customizable: Users can pick any region or temporal range and apply either default models or train their own and produce custom maps, interacting with publicly available training data.
- Easy to Use: Integrates into Jupyter notebooks and other Python environments.
Quick Start
One of our demo notebooks can introduce to you quickly how to map crops with the Worldcereal system. There's two options to run these notebooks:
Option 1: Run on Terrascope
You can use a preconfigured environment on Terrascope to run the workflows in a Jupyter notebook environment. Just register as a new user on Terrascope or use one of the supported EGI eduGAIN login methods to get started.
☝️ | Once you are prompted with "Server Options", make sure to select the "Worldcereal" image. Did you choose "Terrascope" by accident? Then go to File > Hub Control Panel > Stop my server, and click the link below once again. |
---|
-
For a cropland map generation demo without any model training:
-
For a crop type map generation demo with model training:
-
For a demo on how to interact with the WorldCereal Reference Data Module (RDM):
Option 2: Install Locally
If you prefer to install the package locally, you can create the environment using Conda or pip.
First clone the repository:
git clone https://github.com/WorldCereal/worldcereal-classification.git
cd worldcereal-classification
Next, install the package locally:
- for Conda:
conda env create -f environment.yml
- for Pip:
pip install .[train,notebooks]
Usage Example
In it's most simple form, a cropland mask can be generated with just few lines of code, triggering an openEO job on CDSE and downloading the result locally:
from openeo_gfmap import BoundingBoxExtent, TemporalContext
from worldcereal.job import generate_map
# Specify the spatial extent
spatial_extent = BoundingBoxExtent(
west=44.432274,
south=51.317362,
east=44.698802,
north=51.428224,
epsg=4326
)
# Specify the temporal extent (this has to be one year)
temporal_extent = TemporalContext('2022-11-01', '2023-10-31')
# Launch processing job (result will automatically be downloaded)
results = generate_map(spatial_extent, temporal_extent, output_dir='.')
Documentation
Comprehensive documentation is available at the following link: https://worldcereal.github.io/worldcereal-documentation/
Support
Questions, suggestions, feedback? Use our forum to get in touch with us and the rest of the community!
License
This project is licensed under the terms of the MIT License. See the LICENSE file for details.
Acknowledgments
The WorldCereal project is funded by the European Space Agency (ESA) under grant no. 4000130569/20/I-NB.
WorldCereal's classification backbone makes use of the Presto model, originally implemented here. Without the groundbreaking work being done by Gabriel Tseng and the rest of the NASA Harvest team, both in the original Presto implementation as well as its adaptation for WorldCereal, this package would simply not exist in its present form 🙏.
The pre-configured Jupyter notebook environment in which users can train custom models and launch WorldCereal jobs is provided by Terrascope, the Belgian Earth observation data space, managed by VITO Remote Sensing on behalf of the Belgian Science Policy Office
How to cite
If you use WorldCereal resources in your work, please cite it as follows:
@article{van_tricht_worldcereal_2023,
title = {{WorldCereal}: a dynamic open-source system for global-scale, seasonal, and reproducible crop and irrigation mapping},
volume = {15},
issn = {1866-3516},
shorttitle = {{WorldCereal}},
url = {https://essd.copernicus.org/articles/15/5491/2023/},
doi = {10.5194/essd-15-5491-2023},
number = {12},
urldate = {2024-03-01},
journal = {Earth System Science Data},
author = {Van Tricht, Kristof and Degerickx, Jeroen and Gilliams, Sven and Zanaga, Daniele and Battude, Marjorie and Grosu, Alex and Brombacher, Joost and Lesiv, Myroslava and Bayas, Juan Carlos Laso and Karanam, Santosh and Fritz, Steffen and Becker-Reshef, Inbal and Franch, Belén and Mollà-Bononad, Bertran and Boogaard, Hendrik and Pratihast, Arun Kumar and Koetz, Benjamin and Szantoi, Zoltan},
month = dec,
year = {2023},
pages = {5491--5515},
}
Owner metadata
- Name: ESA WorldCereal
- Login: WorldCereal
- Email:
- Kind: organization
- Description: The WorldCereal consortium has been funded by ESA (European Space Agency) to perform global crop mapping at field scale
- Website: https://esa-worldcereal.org/
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/66418926?v=4
- Repositories: 2
- Last ynced at: 2023-04-13T00:37:22.074Z
- Profile URL: https://github.com/WorldCereal
GitHub Events
Total
- Create event: 75
- Commit comment event: 1
- Release event: 3
- Issues event: 126
- Watch event: 25
- Delete event: 61
- Issue comment event: 168
- Push event: 370
- Pull request review comment event: 213
- Pull request review event: 235
- Pull request event: 124
- Fork event: 4
Last Year
- Create event: 75
- Commit comment event: 1
- Release event: 3
- Issues event: 126
- Watch event: 25
- Delete event: 61
- Issue comment event: 168
- Push event: 370
- Pull request review comment event: 213
- Pull request review event: 235
- Pull request event: 124
- Fork event: 4
Committers metadata
Last synced: 8 days ago
Total Commits: 1,039
Total Committers: 12
Avg Commits per committer: 86.583
Development Distribution Score (DDS): 0.566
Commits in past year: 990
Committers in past year: 12
Avg Commits per committer in past year: 82.5
Development Distribution Score (DDS) in past year: 0.589
Name | Commits | |
---|---|---|
Kristof Van Tricht | k****t@v****e | 451 |
jdegerickx | j****x@v****e | 310 |
Darius Couchard | d****d@v****e | 108 |
Vincent Verelst | v****t@v****e | 72 |
Butsko Christina | b****c@s****l | 38 |
Christina Butsko | c****o@c****e | 31 |
Hans Vanrompay | h****y@h****m | 11 |
Vincent Verelst | v****t@v****e | 9 |
Butsko Christina | b****c@s****l | 6 |
Stefaan Lippens | s****s@v****e | 1 |
Jeroen Dries | j****s@v****e | 1 |
World Cereal | w****s@c****e | 1 |
Committer domains:
- vito.be: 6
- couchard-wc-extractions.vitovm.rscluster.vito.be: 1
- vverelst.vitovm.rscluster.vito.be: 1
- cbutsko.vitovm.rscloud.vito.be: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 212
Total pull requests: 179
Average time to close issues: about 2 months
Average time to close pull requests: 4 days
Total issue authors: 13
Total pull request authors: 7
Average comments per issue: 1.96
Average comments per pull request: 0.57
Merged pull request: 154
Bot issues: 0
Bot pull requests: 0
Past year issues: 175
Past year pull requests: 168
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 4 days
Past year issue authors: 10
Past year pull request authors: 7
Past year average comments per issue: 1.62
Past year average comments per pull request: 0.49
Past year merged pull request: 147
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- kvantricht (112)
- cbutsko (22)
- VincentVerelst (22)
- jdegerickx (18)
- GriffinBabe (14)
- jdries (13)
- shabarinath4 (5)
- boog-wur (1)
- cyrankate (1)
- emmamusiari (1)
- mal147 (1)
- tomaszps (1)
- MolettoLobos (1)
Top Pull Request Authors
- kvantricht (87)
- jdegerickx (41)
- GriffinBabe (23)
- VincentVerelst (19)
- cbutsko (7)
- soxofaan (1)
- jdries (1)
Top Issue Labels
- enhancement (13)
- bug (11)
- Epic (4)
- Presto (2)
- deliverable (1)
- documentation (1)
Top Pull Request Labels
- bug (2)
- enhancement (2)
Score: 6.9735430195201396