The module reads the current computational region to determine the centre coordinates and download extent. Both latlong and projected locations are supported. Each year or date is imported as an individual raster map; optional STRDS creation and collection-specific color tables are supported.
Example: landcover_2021_map for ESA WorldCover 2021.
| Collection ID | Product | Resolution | Period | Backend |
|---|---|---|---|---|
| esa-worldcover | ESA WorldCover | 10 m | 2020-2021 | Planetary Computer |
| io-lulc-annual-v02 | Esri Annual LULC 9-class V2 | 10 m | 2017-2023 | Planetary Computer |
| io-lulc-9-class | Esri Annual LULC 9-class V1 | 10 m | 2017-2022 | Planetary Computer |
| io-lulc | Esri Land Cover 10-class | 10 m | 2017-2021 | Planetary Computer |
| nrcan-landcover | Land Cover of Canada | 30 m | 2015-2020 | Planetary Computer |
| drcog-lulc | Denver Regional LULC | 1 m | 2018-2020 | Planetary Computer |
| cop-lc | Copernicus Global Land Cover (CGLS-LC100) | 100 m | 2015-2019 | Planetary Computer |
| modis-mcd12q1-061 | MODIS MCD12Q1 Land Cover Type | 500 m | 2001-present | Planetary Computer |
| dynamicworld | Google Dynamic World | 10 m | 2015-present | GEE only (-g) |
The r.timestamp metadata on each map is set to the year start (01 Jan YYYY 00:00:00).
| Value | Class |
|---|---|
| 10 | Tree cover |
| 20 | Shrubland |
| 30 | Grassland |
| 40 | Cropland |
| 50 | Built-up |
| 60 | Bare / sparse vegetation |
| 70 | Snow and ice |
| 80 | Permanent water bodies |
| 90 | Herbaceous wetland |
| 95 | Mangroves |
| 100 | Moss and lichen |
| Value | Class |
|---|---|
| 0 | Unknown |
| 20 | Shrubs |
| 30 | Herbaceous vegetation |
| 40 | Cultivated / agriculture |
| 50 | Urban / built up |
| 60 | Bare / sparse vegetation |
| 70 | Snow and ice |
| 80 | Permanent water bodies |
| 90 | Herbaceous wetland |
| 100 | Moss and lichen |
| 111-116 | Closed forest (subtypes) |
| 121-126 | Open forest (subtypes) |
| 200 | Open sea |
Note: unlike every other supported collection, class 0 ("Unknown") is a real, meaningful category here -- the module uses a nodata sentinel that can't collide with any supported collection's own category values (rather than 0) so these pixels round-trip correctly instead of being masked out as missing data.
Additional Copernicus LC bands (specify with bands=): forest_type, bare-coverfraction, urban-coverfraction, crops-coverfraction, grass-coverfraction, shrubs-coverfraction, water-permanent-coverfraction, water-seasonal-coverfraction, snow-coverfraction, moss-coverfraction, discrete_classification-proba.
| Value | Class |
|---|---|
| 1 | Evergreen needleleaf forests |
| 2 | Evergreen broadleaf forests |
| 3 | Deciduous needleleaf forests |
| 4 | Deciduous broadleaf forests |
| 5 | Mixed forests |
| 6 | Closed shrublands |
| 7 | Open shrublands |
| 8 | Woody savannas |
| 9 | Savannas |
| 10 | Grasslands |
| 11 | Permanent wetlands |
| 12 | Croplands |
| 13 | Urban and built-up lands |
| 14 | Cropland / natural vegetation mosaics |
| 15 | Snow and ice |
| 16 | Barren |
| 17 | Water bodies |
| 255 | Unclassified |
Other MODIS MCD12Q1 classification schemes available via bands=: LC_Type2 (UMD), LC_Type3 (LAI/FPAR), LC_Type4 (BGC), LC_Type5 (Plant Functional Types), LW (land/water mask).
| Value | Class |
|---|---|
| 0 | Water |
| 1 | Trees |
| 2 | Grass |
| 3 | Flooded vegetation |
| 4 | Crops |
| 5 | Shrub and scrub |
| 6 | Built |
| 7 | Bare |
| 8 | Snow and ice |
Dynamic World also provides per-class probability bands (0-1 float): water, trees, grass, flooded_vegetation, crops, shrub_and_scrub, built, bare, snow_and_ice.
| Value | Class |
|---|---|
| 1 | Water |
| 2 | Trees |
| 4 | Flooded vegetation |
| 5 | Crops |
| 7 | Built area |
| 8 | Bare ground |
| 9 | Snow / ice |
| 10 | Clouds |
| 11 | Rangeland |
t.rast.list input=lc_ts_map t.rast.series input=lc_ts_map output=lc_mode method=mode
pip install cubo rasterio rioxarray
pip install earthengine-api earthengine authenticate
proj --version python3 -c "import pyproj; print(pyproj.proj_version_str)"
g.region n=47.73 s=47.68 e=-2.85 w=-2.93
r.in.landcover collection=esa-worldcover \
start=2020 end=2021 \
output=lc flags=c
# Creates: lc_2020_map, lc_2021_map with official color table
r.in.landcover collection=io-lulc-annual-v02 \
start=2017 end=2023 \
output=lc_esri strds=lc_esri_ts flags=c
t.rast.list input=lc_esri_ts_data
r.in.landcover collection=io-lulc-annual-v02 \
start=2017 end=2023 output=dummy flags=l
g.region n=51.1 s=50.9 e=-114.0 w=-114.2
r.in.landcover collection=nrcan-landcover \
start=2015 end=2020 resolution=30 \
output=lc_canada flags=c
r.in.landcover collection=esa-worldcover \
start=2020 end=2021 \
output=lc_meta strds=lc_meta_ts flags=cj
g.region n=47.73 s=47.68 e=-2.85 w=-2.93
r.in.landcover collection=cop-lc \
start=2015 end=2019 \
output=lc_cop strds=lc_cop_ts flags=c
# Also download fractional cover layers
r.in.landcover collection=cop-lc \
start=2019 end=2019 \
bands=bare-coverfraction,urban-coverfraction,crops-coverfraction \
output=lc_cop_frac
r.in.landcover collection=modis-mcd12q1-061 \
start=2001 end=2023 \
output=lc_modis strds=lc_modis_ts flags=c
# UMD classification instead of default IGBP (LC_Type1)
r.in.landcover collection=modis-mcd12q1-061 \
start=2020 end=2020 \
bands=LC_Type2 output=lc_modis_umd
# Requires: earthengine authenticate
r.in.landcover collection=dynamicworld \
start=2023-06-01 end=2023-08-31 \
output=lc_dw strds=lc_dw_ts flags=gc
# Download probability bands
r.in.landcover collection=dynamicworld \
start=2023-07-01 end=2023-07-31 \
bands=trees,crops,built \
output=lc_dw_proba flags=g
r.in.landcover collection=ESA/WorldCover/v200 \
start=2021 end=2021 output=lc_gee flags=g
Available at: r.in.landcover source code (history)
Accessed: Monday Jul 27 12:29:35 2026
Main index | Raster index | Topics index | Keywords index | Graphical index | Full index
© 2003-2026 GRASS Development Team, GRASS 8.5.1dev Reference Manual