Overview
Global land cover map for the year 2021 at 10 m, classifying every land pixel between 60 degrees south and 84 degrees north into 11 classes from Sentinel-1 radar and Sentinel-2 optical time series. Produced by the ESA WorldCover consortium for the European Space Agency (ESA), with a validated global overall accuracy of 76.7%. Used for land cover stratification and masking, cropland and built-up extent baselines, and habitat and exposure mapping. AWS Open Data serves the map as 2,651 cloud-optimized GeoTIFF tiles of 3x3 degrees, and the Hub publishes a GDAL virtual raster (VRT) that opens them as one global mosaic.
Important note
Pixels are 1/12000 degree, so their ground area shrinks with latitude; weight by pixel area or reproject to an equal-area grid before computing area statistics. The VRT references the tiles over HTTPS with /vsicurl, so open it with GDAL-based tools (rasterio, terra, stars) and read a window at a time. Avoid reading the full map at once, as the whole map is about 117 GB.
Quick start
import rioxarray
url = "https://ai4edataeuwest.blob.core.windows.net/esa-worldcover/v200/2021/map/"
da = rioxarray.open_rasterio(url, masked=True)library(terra)
url <- "/vsicurl/https://ai4edataeuwest.blob.core.windows.net/esa-worldcover/v200/2021/map/"
r <- rast(url)Intended uses
- land cover masks and strata for sampling, zonal statistics and model inputs
- cropland, built-up and tree cover extent baselines and their share of administrative units
- habitat, wetland and mangrove extent for exposure and conservation assessment
Not recommended for
Why: the 2020 (v100) and 2021 (v200) maps use different algorithms, so differences mix real and methodological change.
Why: cropland is annual herbaceous crops only; plantations fall under tree cover and pasture under grassland.
Use instead: ESA WorldCereal for temporary crop extent and type, or a land use product.
Access & use
Files, endpoints, and worked examples for each distribution.
Data
2,651 tiles named ESA_WorldCover_10m_2021_v200_<N|S>yy<E|W>xxx_Map.tif by their lower-left corner.
Format: Cloud-Optimized GeoTIFF — best for single-file downloads, visualisation, and traditional GIS tools
File indexes
GDAL VRThttps://digital-atlas.s3.amazonaws.com/cdh/data/esa-worldcover-2021-v200/map.vrt
Global mosaic; tile paths are HTTPS
Usage examples
import rioxarray
# The VRT opens as one raster; its tiles are read on demand
da = rioxarray.open_rasterio("https://digital-atlas.s3.amazonaws.com/cdh/data/esa-worldcover-2021-v200/map.vrt", masked=True)library(terra)
# The VRT opens as one raster; its tiles are read on demand
r <- rast("/vsicurl/https://digital-atlas.s3.amazonaws.com/cdh/data/esa-worldcover-2021-v200/map.vrt")# The VRT opens as one raster; its tiles are read on demand
gdalinfo /vsicurl/https://digital-atlas.s3.amazonaws.com/cdh/data/esa-worldcover-2021-v200/map.vrtOther access methods
Image collection with one image for 2021, band Map. Needs an Earth Engine account.
Access the data
https://earthengine.googleapis.com/v1/projects/earthengine-public/assets/ESA/WorldCover/v200
Other access methods
The same tiles on Azure, in the esa-worldcover STAC collection alongside the 2020 map (filter esa_worldcover:product_version to 2.0.0). Reads need a short-lived SAS token from the Planetary Computer signing API. The sibling input_quality prefix holds the full quality layer; AWS has only one of its 2,651 tiles.
Format: Cloud-Optimized GeoTIFF — best for single-file downloads, visualisation, and traditional GIS tools
Access the data
https://ai4edataeuwest.blob.core.windows.net/esa-worldcover/v200/2021/map/
Usage examples
import rioxarray
url = "https://ai4edataeuwest.blob.core.windows.net/esa-worldcover/v200/2021/map/"
da = rioxarray.open_rasterio(url, masked=True)
# Clip a window (East Africa)
window = da.rio.clip_box(
minx=28, miny=-12, maxx=52, maxy=18
)
# ...or sample a single point
point = da.sel(x=36.8, y=-1.3, method="nearest")library(terra)
url <- "/vsicurl/https://ai4edataeuwest.blob.core.windows.net/esa-worldcover/v200/2021/map/"
r <- rast(url)
# Clip a window (East Africa)
window <- crop(r, ext(28, 52, -12, 18))
# ...or sample a single point
point <- extract(r, cbind(36.8, -1.3))Additional assets
Class code to name and hex colour, read from the tiles' legend and colour table.
Format: application/json
Access the dataOpen
https://digital-atlas.s3.amazonaws.com/cdh/data/esa-worldcover-2021-v200/class-codes.json
Other access methods
Footprints of the 2,651 tiles with their ll_tile name, from the producer.
Format: application/flatgeobuf
Product User Manual v2.0, with class definitions and the algorithm description.
Format: application/pdf
Product Validation Report v2.0, with the global and regional accuracy figures.
Format: application/pdf
Data dictionary
What each file holds. A layout describes how the data is stored in a file: its variables, the dimensions they vary over, and any keys.
File layouts
| Files | Format | Variables | Dimensions | No data |
|---|---|---|---|---|
| WorldCover COGs, earth-engine, planetary-computer | Cloud-Optimized GeoTIFF, | map | cell | 0 |
Variables
| Variable | Type | Description |
|---|---|---|
| map | uint8 | Land cover class of the pixel. Cropland (40) is annual herbaceous crops only; tree crops and plantations are tree cover (10) and pasture is grassland (30).
|
Dimensions
1/12000 degree (~10 m at the equator), on a 3x3 degree tile grid.
Grid spacing: 0.0000833333 degree
Technical metadata
The full spatial, temporal, and modeling detail behind the summaries elsewhere on this page.
Spatial
- CRS
- EPSG:4326
- Extent (W S E N)
- [-180, -60, 180, 84]
- Coverage
- World
- Grid spacing
- 0.3 arc-seconds (~9.3 m at the equator)
Temporal
- Reference date
- 2021
Provenance
Ordered processing steps, from source to publication.
- source
Sentinel-1 GRD and Sentinel-2 L2A observations from 2021 classified with the WorldCover v2 algorithm (CatBoost gradient-boosted decision trees) by the ESA WorldCover consortium, and distributed by VITO as 3x3 degree cloud-optimized GeoTIFF tiles on Terrascope, Zenodo and AWS Open Data.
- index2026-10-15
VRT mosaic over the tiles, laid out from the producer's tile grid, with the class legend and colour table exported to class-codes.json. No data is copied.
How to cite
Please cite the dataset and any associated peer-reviewed publications.
Daniele Zanaga, Ruben Van De Kerchove, Dirk Daems, Wanda De Keersmaecker, Carsten Brockmann, Grit Kirches, Jan Wevers, Oliver Cartus, Maurizio Santoro, Steffen Fritz, Myroslava Lesiv, Martin Herold, Nandin-Erdene Tsendbazar, Panpan Xu, Fabrizio Ramoino, Olivier Arino (2022-10-28) ESA WorldCover 10 m 2021 v200. Version v200. Zenodo. https://doi.org/10.5281/zenodo.7254221. Accessed through the CGIAR Climate Action Data Hub, https://cgiar-climate-data-hub.github.io/catalog/esa-worldcover-2021_v200/.
BibTeX
@misc{esa_worldcover_2021_2022,
title = {ESA WorldCover 10 m 2021 v200},
author = {Zanaga, Daniele and Van De Kerchove, Ruben and Daems, Dirk and De Keersmaecker, Wanda and Brockmann, Carsten and Kirches, Grit and Wevers, Jan and Cartus, Oliver and Santoro, Maurizio and Fritz, Steffen and Lesiv, Myroslava and Herold, Martin and Tsendbazar, Nandin-Erdene and Xu, Panpan and Ramoino, Fabrizio and Arino, Olivier},
year = {2022},
version = {v200},
publisher = {Zenodo},
doi = {10.5281/zenodo.7254221},
note = {Accessed through the CGIAR Climate Action Data Hub, https://cgiar-climate-data-hub.github.io/catalog/esa-worldcover-2021_v200/}
}Attribution
Reproduce this credit line wherever you reuse the data.
© ESA WorldCover project 2021 / Contains modified Copernicus Sentinel data (2021) processed by ESA WorldCover consortium
Contacts
Who produced this dataset, and who to reach about it.