Harmonized global land cover maps at 10 m (2020) and 30 m (annual, 2020 to 2024) resolutions were generated using a deterministic, rule-based ensemble framework that integrates primary spatial backbones with specialized thematic and contextual layers. Using ESA WorldCover, GLAD GLCLUC, and GLC_FCS30D as baseline inputs, the workflow sequentially applies prioritized conditional rules to refine generic categories into up to 44 detailed hierarchical classes. The classification incorporates specialized crop, grassland, forest, and coastal datasets alongside topographic, spectral, and coastal-distance variables to account for landscape contexts.
Data: Source Cooperative
This repository contains the processing and analysis workflow used to produce the Global Harmonized Land Cover (GHLC) dataset (Moreno et al., 2026). GHLC integrates multiple global and regional Earth observation products using a deterministic, rule-based ensemble approach to produce harmonized land cover maps at 10 m and 30 m spatial resolution. The product combines baseline land cover data inputs with specialized crop, grassland, forest, wetland, coastal, terrain, and other contextual layers to derive up to 44 detailed hierarchical land cover classes (see GHLC legend), and includes:
The examples below compare the published 30 m and 10 m maps in 2020:
The classification rules are ordered. Where multiple rules match a pixel, the first matching rule determines the final class. What you can find in this repository:
The repository contains the code and method (explained in detail in Moreno et al., 2026). The published GHLC raster data are distributed separately through Source Cooperative.
Classes absent in the GHLC 30 m: Other grassland (3.3), Other shrubland (5.2), Moss and lichen (6.6), Wetland - other (7.4).
The public GHLC data are distributed through Source Cooperative. Use the repository page to browse and download available files.
Individual files can be accessed directly over HTTPS or anonymous S3:
Download with the AWS CLI (no credentials needed):
Since the files are Cloud-Optimized GeoTIFFs, GDAL, QGIS, and Rasterio can also stream directly over HTTPS without downloading the full global raster.
STAC access: S3 links are in each item's assets.
Interactive access: explore and summarize the data for an area of interest, without downloading the dataset available at LandMetric.
The snippet below reads a small window from a GHLC Cloud-Optimized GeoTIFF (no full-file download needed), applies the official legend, and plots the result with a matching color legend. Edit the config block at the top to change the product, resolution, legend level, area, or title.
The repository documents the scientific processing workflow, but the production scripts are currently configured for the OpenGeoHub production environment. Some scripts reference internal storage paths, network endpoints, tile lists, and object-storage aliases. These settings need to be adapted before running full global production on another system.
The workflow primarily uses Python and GDAL-based geospatial tooling. Some preprocessing components additionally use Bash, GNU Parallel, Julia, and S3-compatible object storage tools.
The paper is currently in review. To cite this work, use:
For any questions or contributions, feel free to open an issue or reach out to author mateo.moreno@opengeohub.org.
Development of GHLC was supported by the Capitalizing on Earth Observation (CAPEO) project funded by the International Fund for Agricultural Development (IFAD) under project / grant number 2000005091.
This work was also supported by the Open-Earth-Monitor Cyberinfrastructure (OEMC) project, funded by the European Union's Horizon Europe research and innovation programme under grant agreement No. 101059548.
The GHLC data and processing workflow are research products. OpenGeoHub Foundation makes no warranty, expressed or implied, regarding the accuracy, reliability, completeness, or fitness of these data for a particular purpose. Users are responsible for determining whether the data are suitable for their intended application and for the results of any use of the data.
Errors and artifacts may occur in the maps, source data, or processing workflow. If you identify an issue in the data or code, please report it through the repository issue. If an attribution or contributor has been unintentionally omitted, please contact OpenGeoHub Foundation so that it can be corrected in a future update.
This dataset is released under fully open license CC BY 4.0.
| Legend for the 10 m proproduct at level 1. |
lc_10m_lv2.qml | Legend for the 10 m proproduct at level 2. |
lc_30m_lv1.qml | Legend for the 30 m proproduct at level 1. |
lc_30m_lv2.qml | Legend for the 30 m proproduct at level 2. |
preprocessing/02-bare-soil-fraction/ | Bare soil fraction preprocessing from Landsat ARD inputs. |
preprocessing/02-bare-soil-fraction/ | Bare soil fraction preprocessing from Landsat ARD inputs. |
|
Description: Annual cropland under maize, assigned from the ESA WorldCereal main-season maize layer, which integrates Sentinel-1, Sentinel-2 and Landsat time series with agroecological zone stratification. Treated as authoritative within its domain and evaluated early in the chain rather than gated by the backbone cropland class. Key examples: Maize fields in the US Corn Belt and the North China Plain. Data inputs: Raster value: 3 (10 m & 30 m) |
|
Description: Rice paddies, assigned where a regional rice product coincides with backbone cropland; the products exploit the distinctive flooded-field backscatter of Sentinel-1 time series. Separate layers cover East Asia and India, each tailored to local cropping calendars. Outside these regions rice is not identified and defaults to other annual crops (2.4). Key examples: Mekong and Ganges-Brahmaputra deltas, Indonesian rice beds. Data inputs:
Raster value: 4 (10 m & 30 m) |
|
Description: Generic annual cropland: backbone cropland not claimed by the soybean, maize or rice rules. Serves as the fall-through class for annual crops without a dedicated mapping layer, such as wheat and other cereals. Its composition therefore varies regionally with the coverage of the crop-specific products. Key examples: Wheat fields in Europe and North America, mixed annual smallholdings. Data inputs:
Raster value: 5 (10 m & 30 m) |
|
Description: Perennial cropland under coffee, identified where the Forest Data Partnership coffee probability exceeds 28%. Perennial crops are carved out of tree-cover areas and evaluated before the general forest rules, correcting the common aggregation of tree plantations into generic forest classes. Key examples: Coffee plantations in the Colombian and Ethiopian coffee belt. Data inputs: Raster value: 6 (10 m & 30 m) |
|
Description: Perennial cropland under cocoa, identified where the Forest Data Partnership cocoa probability exceeds 50%. Perennial crops are carved out of tree-cover areas and evaluated before the general forest rules, correcting the common aggregation of tree plantations into generic forest classes. Key examples: Cocoa plantations in Ghana and Cote d'Ivoire. Data inputs: Raster value: 7 (10 m & 30 m) |
|
Description: Perennial cropland under rubber, identified where the Forest Data Partnership rubber probability exceeds 44%. Perennial crops are carved out of tree-cover areas and evaluated before the general forest rules, correcting the common aggregation of tree plantations into generic forest classes. Key examples: Rubber plantations in Thailand and Malaysia. Data inputs: Raster value: 8 (10 m & 30 m) |
|
Description: Perennial cropland under oil palm, identified where the Forest Data Partnership oil palm probability exceeds 22%. Perennial crops are carved out of tree-cover areas and evaluated before the general forest rules, correcting the common aggregation of tree plantations into generic forest classes. Key examples: Oil-palm plantations in Sumatra, Borneo and Malaysia. Data inputs: Raster value: 9 (10 m & 30 m) |
| 3. Grassland |
|
Description: Grassland under active management (sown or improved pasture), distinguished from natural grassland with the Global Pasture Watch probability layers. Assigned where the cultivated-grassland probability exceeds the natural one, provided either passes its minimum threshold (>=32% cultivated, >=40% natural) and the mean bare-soil fraction stays low (<90%); pixels with a high bare-soil fraction are instead redirected to semi-arid shrubland (6.3). Key examples: Dairy pastures in the Netherlands, planted pastures in New Zealand. Data inputs:
Raster value: 10 (10 m & 30 m) |
|
Description: Grassland dominated by natural or semi-natural herbaceous vegetation, assigned where the GPW natural-grassland probability exceeds the cultivated one (same >=32%/40% thresholds and low bare-soil fraction). GPW probabilities derive from a random forest trained on harmonized reference data, separating management types that most products map as a single grassland class. Key examples: North American prairies, Eurasian steppe, Southern African grasslands. Data inputs:
Raster value: 11 (10 m & 30 m) |
|
Description: Herbaceous grassland mapped by the backbone that the GPW probability layers leave unclaimed, such as grasslands below both probability thresholds or outside their coverage. Acts as the residual herbaceous class of the 10 m product; it has no GLAD GLCLUC equivalent and is therefore absent at 30 m. Key examples: Tussock and highland grasslands outside the GPW probability coverage. Data inputs:
Raster value: 12 (10 m only) |
| 4. Forest, forest plantations and woodland |
|
Description: Open-canopy (15-40% cover) evergreen broadleaved forest. Assigned when backbone tree cover is refined by GLC_FCS30D; forest receives the most detailed treatment of any class, subdivided by leaf type, phenology and canopy closure, distinctions that most global products aggregate into a single tree-cover class. Flooded forest is labeled separately (4.11-4.13). Key examples: Open evergreen woodland in the Guiana Shield. Data inputs:
Raster value: 13 (10 m) and 12 (30 m) |
|
Description: Closed-canopy (>40% cover) evergreen broadleaved forest, the structurally most developed formation of the humid tropics. Assigned when backbone tree cover is refined by GLC_FCS30D, separating dense rainforest from the open woodland mapped as 4.1. Key examples: Closed rainforest in the Amazon and Congo basins. Data inputs:
Raster value: 14 (10 m) and 13 (30 m) |
|
Description: Broadleaved deciduous forest, closed to open (>15% cover), where trees shed leaves seasonally in response to drought or winter cold. Assigned when backbone tree cover is refined by GLC_FCS30D, distinguishing the phenology of tropical dry forests and temperate woodlands. Key examples: Deciduous woodland in the Cerrado and Indian teak forests. Data inputs:
Raster value: 15 (10 m) and 14 (30 m) |
|
Description: Closed-canopy (>40% cover) broadleaved deciduous forest, the fully stocked form of the seasonal forests. Assigned when backbone tree cover is refined by GLC_FCS30D, separating closed stands from the more open formations mapped as 4.3. Key examples: Closed temperate deciduous forest (beech, oak) in Europe and eastern North America. Data inputs:
Raster value: 16 (10 m) and 15 (30 m) |
|
Description: Open-canopy (15-40% cover) needleleaved evergreen forest, dominated by conifers retaining foliage year-round. Assigned when backbone tree cover is refined by GLC_FCS30D, a distinction relevant to boreal and montane conifer woodlands. Key examples: Open Scots pine woodland. Data inputs:
Raster value: 17 (10 m) and 16 (30 m) |
|
Description: Closed-canopy (>40% cover) needleleaved evergreen forest, the dense conifer formations that dominate the northern high latitudes. Assigned when backbone tree cover is refined by GLC_FCS30D. Key examples: Boreal spruce and fir closed forest. Data inputs:
Raster value: 18 (10 m) and 17 (30 m) |
|
Description: Open-canopy (15-40% cover) needleleaved deciduous forest, dominated by larches and other conifers that shed needles in winter. Assigned when backbone tree cover is refined by GLC_FCS30D, separating the open larch woodlands of central Siberia from closed stands. Key examples: Open larch woodland in central Siberia. Data inputs:
Raster value: 19 (10 m) and 18 (30 m) |
|
Description: Closed-canopy (>40% cover) needleleaved deciduous forest, the closed larch formations of north-eastern Siberia. Assigned when backbone tree cover is refined by GLC_FCS30D, the deciduous counterpart of 4.6. Key examples: Closed larch forest in north-eastern Siberia. Data inputs:
Raster value: 20 (10 m) and 19 (30 m) |
|
Description: Open-canopy (15-40% cover) forest of mixed leaf type, where broadleaved and needleleaved trees co-dominate. Assigned when backbone tree cover is refined by GLC_FCS30D, capturing boreal-temperate transition woodland. Key examples: Mixed woodland in boreal-temperate transition zones. Data inputs:
Raster value: 21 (10 m) and 20 (30 m) |
|
Description: Closed-canopy (>40% cover) forest of mixed leaf type, where broadleaved and needleleaved trees co-dominate. Assigned when backbone tree cover is refined by GLC_FCS30D, the closed counterpart of 4.9. Key examples: Mixed closed forest in southern Finland and the north-eastern USA. Data inputs:
Raster value: 22 (10 m) and 21 (30 m) |
|
Description: Flooded tree cover with open canopy, identified by cross-referencing GLAD GLCLUC wetland codes with open-canopy GLC_FCS30D forest subtypes. Separating flooded forest keeps these inundation-driven ecosystems out of the inland wetland classes. Key examples: Open varzea and igapo floodplain forest in the Amazon. Data inputs:
Raster value: 23 (10 m) and 22 (30 m) |
|
Description: Flooded tree cover with closed canopy, identified by cross-referencing GLAD GLCLUC wetland codes with closed-canopy GLC_FCS30D forest subtypes. Represents the densest swamp-forest formations, where prolonged flooding shapes structure and composition. Key examples: Closed swamp forest in the Congo basin. Data inputs:
Raster value: 24 (10 m) and 23 (30 m) |
|
Description: Flooded tree cover not resolved into an open or closed subtype, acting as the residual flooded-forest class where GLC_FCS30D provides no canopy-closure information. Mapped from GLAD GLCLUC flooded-forest codes alone. Key examples: Peat swamp forest in Borneo. Data inputs:
Raster value: 25 (10 m) and 24 (30 m) |
|
Description: Tree cover not resolved into any specific leaf-type, phenology or canopy-closure subtype. It also receives pixels reclaimed from backbone built-up that retain >=30% tree cover with no recent forest loss (the urban-tree correction, based on GFC), as well as tree cover mapped over wetland backbone classes. This keeps urban forests and poorly characterized woodland from being labeled built-up or wetland. Key examples: Urban parks and street trees, open woodland. Data inputs:
Raster value: 26 (10 m) and 25 (30 m) |
| 5. Shrubland and heathland |
|
Description: Land dominated by woody shrubs, including heathland. Assigned from GLAD GLCLUC shrubland codes (19-27) or from sparsely vegetated ground (codes 0-24) carrying GPW grassland or open-shrubland probabilities. Covers clearly defined shrub vegetation; less well-characterized formations fall to other shrubland (5.2). Key examples: Mediterranean maquis, South African fynbos. Data inputs: Raster value: 27 (10 m) and 26 (30 m) |
|
Description: Shrubland mapped by ESA WorldCover but not claimed by class 5.1, comprising less clearly defined shrub and dwarf-shrub vegetation. Available only in the 10 m product, as the underlying WorldCover class has no GLAD GLCLUC equivalent. Key examples: Sparse dwarf-shrub communities at tundra margins, montane scrub. Data inputs:
Raster value: 28 (10 m only) |
| 6. Sparsely vegetated ecosystems |
|
Description: Virtually unvegetated land in the driest GLAD GLCLUC classes (codes 0-1): hyper-arid desert, active dune fields and bare rock plains. Marks the unvegetated end of the gradient used to subdivide sparsely vegetated ecosystems, from true desert through semi-arid and shrubland to rocks and snow and ice. Key examples: Sahara, Arabian Empty Quarter. Data inputs:
Raster value: 29 (10 m) and 27 (30 m) |
|
Description: Arid land with sparse vegetation cover (GLAD GLCLUC codes 2-18), occupying the transitional drylands that fringe true deserts. Distinguished from semi-arid shrubland (6.3), which requires a grassland-probability signal redirected by a high bare-soil fraction. Key examples: Karoo, Sonoran Desert, thorn scrub. Data inputs:
Raster value: 30 (10 m) and 28 (30 m) |
|
Description: Semi-arid shrubland, assigned where pixels carrying GPW grassland probabilities show a high multi-year mean bare-soil fraction (>=90%, averaged over 2020-2023 from GLAD Landsat ARD). A cross-cutting rule that illustrates how a continuous auxiliary variable redirects assignments away from the categorical backbone classes in transitional environments. Key examples: Sahel shrub steppes, Australian rangelands. Data inputs:
Raster value: 31 (10 m) and 29 (30 m) |
|
Description: Bare rock, including mountain summits, cliffs and steep debris, identified with a topographic-position layer derived from the GEDTM30 ensemble terrain model (value >=10000). Terrain position separates rocky peaks from the sparsely vegetated land surrounding them. Key examples: High Andes and Himalayan summits. Data inputs: Raster value: 33 (10 m) and 30 (30 m) |
|
Description: Permanent snow and ice, snowfields, glaciers and ice caps, assigned from the backbone snow and ice class (ESA WorldCover at 10 m, GLAD GLCLUC at 30 m). Key examples: Greenland ice sheet, Alpine glaciers. Data inputs:
Raster value: 32 (10 m) and 31 (30 m) |
|
Description: Land dominated by mosses and lichens, typical of arctic and alpine lichen barrens, assigned from the ESA WorldCover moss and lichen class. Available only in the 10 m product, as this class has no GLAD GLCLUC equivalent. Key examples: Arctic tundra lichen barrens. Data inputs:
Raster value: 34 (10 m only) |
| 7. Inland wetlands |
|
Description: Inland wetland with sparse herbaceous vegetation (GLAD GLCLUC codes 102-118). Inland wetlands are subdivided by dominant vegetation structure - sparse vegetation, grassland, shrubland - capturing the ecological gradient from open marsh to shrub swamp. Wetland within the coastal zone is instead labeled coastal wetlands (9.2). Key examples: Bogs, fens, herbaceous swamps. Data inputs:
Raster value: 35 (10 m) and 32 (30 m) |
|
Description: Inland wetland dominated by grassland vegetation (GLAD GLCLUC wetland codes 102-124 confirmed by GPW grassland probability), covering floodplain meadows and seasonally flooded grasslands. The grass-dominated member of the wetland vegetation-structure gradient. Key examples: Floodplain wet grasslands at the Pantanal margins, Rhine meadows. Data inputs: Raster value: 36 (10 m) and 33 (30 m) |
|
Description: Inland wetland dominated by shrubs (GLAD GLCLUC codes 119-127), including shrub swamps and willow carr. The shrub-dominated end of the wetland vegetation-structure gradient. Key examples: Shrub swamps, willow-dominated wetlands. Data inputs:
Raster value: 37 (10 m) and 34 (30 m) |
|
Description: Herbaceous wetland not resolved into the sparse-vegetation, grassland or shrubland subtypes, assigned from the ESA WorldCover wetland class. Available only in the 10 m product, as it relies on a backbone class absent from GLAD GLCLUC. Key examples: Peatlands and reed beds. Data inputs:
Raster value: 38 (10 m only) |
| 8. Water bodies |
|
Description: Permanent inland water bodies - lakes, reservoirs and perennial rivers - assigned from the backbone water class. Ocean extent is harmonized across both products by a shared land mask, so water differences between resolutions reflect inland definitions only. Key examples: Lakes, reservoirs, large rivers. Data inputs:
Raster value: 39 (10 m) and 35 (30 m) |
|
Description: Seasonally flooded open water, assigned from GLAD GLCLUC seasonal-water codes (200-206), distinguishing ephemeral lakes, ponding basins and intermittent river reaches from permanent water (8.1). Water bodies are subdivided purely by seasonality. Key examples: Ephemeral lakes (Lake Chad fringe), seasonal riverbeds. Data inputs: Raster value: 40 (10 m) and 36 (30 m) |
| 9. Coastal ecosystems |
|
Description: Tidal mangrove forest, assigned from the Global Mangrove Watch 2020 extent (and, in the 10 m product, the ESA WorldCover mangrove class), which combines radar backscatter with optical vegetation indices. Mangroves are evaluated first in the entire rule chain, overriding the backbone where it confuses mangroves with other flooded or coastal classes. Key examples: Mangroves in Indonesia, the Sundarbans, Everglades. Data inputs:
Raster value: 41 (10 m) and 37 (30 m) |
|
Description: Wetlands within the coastal zone: GLAD GLCLUC wetland codes lying within 10 coastal-buffer units of the sea or at low elevation (<=300 m), combining distance-to-coast buffers with GEDTM30 elevation. Separates tidal and estuarine wetlands from the inland wetland classes (7.1-7.4). Key examples: Salt marshes, tidal flats. Data inputs: Raster value: 42 (10 m) and 38 (30 m) |
|
Description: Bare sandy coastal landforms - beaches, dunes and sand flats - assigned where sparsely vegetated pixels lie within 15 km of the coast or the backbone maps beach and dune codes. Coastal proximity is delineated with distance-to-coast buffers derived from the ESA WorldCover land mask. Key examples: Coastal dune fields on the Dutch and Namibian coasts. Data inputs: Raster value: 43 (10 m) and 39 (30 m) |
| 10. Aquaculture |
|
Description: Coastal land-based aquaculture ponds, assigned from the CLAP 2020 layer, validated at over 0.90 overall accuracy in coastal East Asia. Evaluated near the end of the chain, so aquaculture claims only pixels left unclaimed by every other class; because CLAP is held constant across years, mapped interannual variation reflects that shrinking pool alone. Key examples: Shrimp and fish ponds along the Chinese and Vietnamese coast. Data inputs: Raster value: 44 (10 m) and 40 (30 m) |