Global Human Settlement Layer
Raster maps of the whole world: how much is built up and how many people live there, per 100-metre or 1-kilometre cell, for 1975, 1980 and so on up to 2030. Made from satellite images and censuses, the same way for every country.

Population of the Netherlands by type of area: in urban centres is the largest part, 49% in 2020
Breakdown in 2020: in urban centres 49%, in towns and suburbs (urban clusters) 35%, in rural areas 16%. Total: 17.4 million people.
Built-up surface in the Netherlands from satellite imagery: 1,906 square kilometres in 2020, 2 times as much as in 1975
Built-up surface in the Netherlands from satellite imagery, 1975 – 2020, in square kilometres. That is the highest point in the series.
What can you do with it?4 ideas
Fifty years of building in the Netherlands
According to the GHSL country statistics (2024 release), built-up area in the Netherlands grew from 955 km² in 1975 to 1,906 km² in 2020: twice as much. Population grew from 13.7 to 17.4 million over the same period.
More space per resident
Divide built-up area by population. In the Netherlands that was 70 m² of built-up area per resident in 1975 and 109 m² in 2020 (own calculation from the country statistics). Compare with Belgium and Germany.
Where did the Randstad grow?
Overlay the 1975 and 2020 grids and colour the cells that became built up. You will see where new towns and districts appeared, such as Almere (founded in 1976).
Urban or rural, by European rules
The GHSL classifies every cell by the Degree of Urbanisation: urban centre, urban cluster or rural. That lets you compare urbanisation fairly between countries, regardless of municipal borders.
How to process it4 steps
Start with the country statistics
A small zip file (1.5 MB) with an Excel table: area, population and built-up surface per country and class (UC = urban centre, UCL = urban cluster, RUR = rural), for 1975 to 2030. Add up the three classes for the national total.
https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/GHS_COUNTRY_STATS_MT_GLOBE_R2024A/V1-0/GHS_COUNTRY_STATS_MT_GLOBE_R2024A.zip
Choose product, year and resolution
Each folder in the download directory is one product and release, e.g. GHS_POP_GLOBE_R2023A (population) or GHS_BUILT_S_GLOBE_R2023A (built-up surface). Below that, one folder per year (E1975 … E2030) and resolution (54009_100 = 100 metres in Mollweide, 4326_3ss = 3 arc seconds).
https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/GHS_POP_GLOBE_R2023A/
Fetch only the tiles for the Netherlands
The global population file for 2020 at 100 metres is 4.7 GB. The tiles/ folder holds the same map in tiles of a few tens of MB. Use the download page to find which tiles cover the Netherlands.
https://human-settlement.emergency.copernicus.eu/download.php
Convert to your own area
The grids are in Mollweide (EPSG:54009). Reproject to RD (EPSG:28992) or sum cells per municipality with zonal statistics in QGIS or rasterstats (Python).
Interesting combinations


Does the model match the real counts?
Sum GHSL population per municipality and compare it with the CBS population count. Where does the model deviate most?


Does the satellite see what was built?
Compare GHSL growth between 2000 and 2020 with the buildings that the BAG says were built in those years.
Similar sources
- ESA WorldCover
Land cover at 10 metres for 2020 and 2021, without population and without a series back in time.
- VVierkantstatistieken (CBS) not in the index yet
Actual counts per 100 metres, only for the Netherlands. Since 2015 only squares with at least 5 residents or 5 dwellings.
- WWorldPop not in the index yet
Also population per grid cell worldwide, with a different model. Useful to put two estimates side by side.
What to watch out for
- A model, not a count
Population per cell is estimated from satellite images and censuses. For the Netherlands itself, CBS grid statistics are more precise.
- 2025 and 2030 are projections
The R2023A release (and the R2024A country statistics) was made in 2023 and 2024. The years 2025 and 2030 are therefore projections, not observations.
- Do not mix releases
Each release (R2019A, R2022A, R2023A …) recalculates the whole series. Only compare years within one release.
- Large files, unusual projection
Global files run to gigabytes and use Mollweide. Work with tiles and reproject before joining with Dutch maps.
APIBestanden (open downloadmap met HTTP-index; GeoTIFF in zip, Excel in zip) · read 16 Oct 2026
No key or account needed tested
folders in the download directory (product releases plus test and archive folders), 16 Oct 2026 tested
zipgeotiffxlsx
Base URL
https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL
Endpoints 6
- GET
/?C=M;O=DAll product folders, newest first (Apache index; also C=N name and C=S size). Newest on 16 Oct 2026: open_urban_typologies, COG_test, EMC_BUILT_GLOBE_R2025A. - GET
/{PRODUCT}_GLOBE_{uitgave}/Per product and release one folder per year and resolution, e.g. GHS_POP_E2020_GLOBE_R2023A_54009_100 (population 2020, Mollweide, 100 m). - GET
/{…}/V1-0/{naam}_V1_0.zipThe global file as a zip with a GeoTIFF (population 2020 at 100 m: 4.7 GB). - GET
/{…}/V1-0/tiles/{naam}_V1_0_R{rij}_C{kolom}.zipThe same map in 376 tiles (population 2020, 100 m), from 1 to ~90 MB per tile. - GET
/GHS_COUNTRY_STATS_MT_GLOBE_R2024A/V1-0/GHS_COUNTRY_STATS_MT_GLOBE_R2024A.zipCountry statistics 1975–2030 per country and DegUrba class (UC, UCL, RUR) as Excel in a zip: 1.5 MB, Last-Modified 12 Nov 2024. - GET
/GHS_WUP_COUNTRY_STATS_GLOBE_R2025A/V1-0/GHS_WUP_COUNTRY_STATS_GLOBE_R2025A_V1_0.zipNewer country statistics from the WUP series R2025A (5.9 MB, 4 Dec 2025); not opened by us.
Filtering tested
No query language: you pick product, release, year and resolution in the path, and a tile for your area. You do the computation (zonal statistics) yourself.
Parameters 4
product | GHS_POP (population), GHS_BUILT_S (built-up surface), GHS_BUILT_V (volume), GHS_BUILT_H (height), GHS_SMOD (urban/rural, DegUrba), GHS_UCDB (urban centre database), GHS_DUC, GHS_LAND, GHS_AGE, GHS_OBAT … | tested |
uitgave | R2022A, R2023A, R2024A, R2025A …: each release recalculates the whole series. | experience |
jaar | Every 5 years; 2025 and 2030 are projections. | tested |
resolutie | 54009_100 and 54009_1000 (Mollweide, 100 m and 1 km), 4326_3ss and 4326_30ss (WGS84, 3 and 30 arc seconds). | tested |
What the files contain (selection) 4
| Name | Type | Meaning |
|---|---|---|
GHS_POP | raster float · personen per cel | Geschatte bevolking per cel |
GHS_BUILT_S | raster · m² per cel | Bebouwd oppervlak per cel |
GHS_SMOD | raster klasse | Degree of Urbanisation: stedelijk centrum, cluster, landelijk (met subklassen) |
AREA_KM2_L1, POP_L1, BU_S_km2_L1, BUCAP_m2_L1 | werkblad | Werkbladen in de landcijfers: oppervlak, bevolking, bebouwing, m² bebouwing per inwoner; per land drie rijen (UC, UCL, RUR) |
Limits and pitfalls
- No key and no documented limit. The server supports Range requests (accept-ranges: bytes), useful to resume a download. tested
- The COG_test folder holds a trial with a 20 GB Cloud-Optimized GeoTIFF (Oct 2026); the regular products are still zips with a GeoTIFF. So you can only inspect a raster after downloading and unzipping. tested
- The country statistics zip is an xlsx inside a zip; readable without an Excel package via the zip's central directory and the sheet XML (sharedStrings for t='s'). experience
- No robots.txt on jeodpp.jrc.ec.europa.eu and human-settlement.emergency.copernicus.eu (404). tested
Try it HTTP 200 · 471 ms · 16 Oct
https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/GHS_COUNTRY_STATS_MT_GLOBE_R2024A/V1-0/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Index of /ftp/jrc-opendata/GHSL/GHS_COUNTRY_STATS_MT_GLOBE_R2024A/V1-0</title> </head> <body> <h1>Index of /ftp/jrc-opendata/GHSL/GHS_COUNTRY_STATS_MT_GLOBE_R2024A/V1-0</h1> <table> <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr> <tr><th colspan="5"><hr></th></tr> <tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/ftp/jrc-opendata/GHSL/GHS_COUNTRY_STATS_MT_GLOBE_R2024A/">Parent Directory</a></td><td> </td><td align="right"> - </td><td> </td></tr> <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="GHS_COUNTRY_STATS_MT_GLOBE_R2024A.zip">GHS_COUNTRY_STATS_MT_GLOBE_R2024A.zip</a></td><td align="right">2024-11-12 15:12 </td><td align="right">1.5M</td><td> </td></tr> <tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="copyright.txt">copyright.txt</a></td><td align="right">2026
Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from The download directory itself: one folder per product and release, with date and size per file · Licence (CC BY 4.0, Decision 2011/833/EU); present in every folder · Download page with explanation per product and a map to choose tiles. Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.
More in this topic
See how this page is built
bron: ghsl blokken: [] secties: - ideeen - verwerken - koppelingen - vergelijkbaar - beperkingen cache: tag: bron:ghsl ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: datum van de nieuwste productmap in de downloadmap verwacht: jaarlijks
Source: content/bronnen/ghsl.yaml · Markdown



