Climate Impact Atlas (Klimaateffectatlas)
National maps of what climate change does to the Netherlands: perceived temperature, drought, groundwater, subsidence, water depth in a flood and in extreme rain. Often for today and for 2050, 2085 or 2100. There is also a neighbourhood dashboard with figures per neighbourhood. Available as map layers (WMS), vector data (WFS) and download.

Everything that's in it189
All layers from the Climate Impact Atlas WMS and WFS, fetched every night. The service has no folders of its own; the grouping below follows the layer names. A date in the name is the version, and the older version is sometimes still listed.
Modelled feels-like temperature (PET) from the heat map: highest in Schiermonnikoog (47.7 °C), lowest in Zeist (38.8 °C)
Modelled feels-like temperature (PET) from the heat map per municipality, 2022, in degrees Celsius. Netherlands as a whole: 43.5. 342 municipalities with a figure.
Modelled feels-like temperature in Utrecht: mostly extreme heat stress in the built-up city, cooler near greenery and water
The gevoelstemperatuur_2022 layer of the Klimaateffectatlas, for 10 by 10 kilometres around the centre of Utrecht. According to the service's legend, pink to dark red is extreme heat stress (41 to 50 °C), yellow and green strong heat stress (35 to 40 °C) and blue moderate heat stress (up to 34 °C). Railways, business parks and main roads are dark red; green and blue appear mainly in parks, along water and on the eastern edge. Buildings have no value and stay white. It is a modelled map, not a measurement.
What you can build with it1
What can you do with it?4 ideas
The hottest neighbourhoods in your city
The GevoelstemperatuurBuurt_2022 layer gives an average perceived temperature (PET) per neighbourhood. Sort your municipality's neighbourhoods and see which are hottest.
How green is a neighbourhood?
The neighbourhood dashboard has the share of green, stone and water per neighbourhood, and tree canopy cover at three moments (measured with AHN3, AHN4 and AHN5). That shows whether a neighbourhood is getting greener or greyer.
Heat and income
Join perceived temperature per neighbourhood to income and age from the CBS neighbourhood figures. Do vulnerable people live in hot neighbourhoods more often?
How deep would the water get?
The maximum flood depth maps exist for five probabilities, from high to extremely low. Count per municipality how many homes are in areas with more than a metre of water.
How to process it4 steps
Choose a map layer
On 15 October 2026 the WMS had 185 map layers. The names are technical (droogtestress_huidig, kans_grondwateroverlast_2050hoog); the map viewer on the website shows which layer belongs to which map story.
https://cas.cloud.sogelink.com/public/data/org/gws/YWFMLMWERURF/kea_public/wms?service=WMS&request=GetCapabilities
Vector data per neighbourhood via WFS
68 layers are also available as WFS, such as the neighbourhood layers. With propertyName you leave out the geometry; the response stays small.
https://cas.cloud.sogelink.com/public/data/org/gws/YWFMLMWERURF/kea_public/wfs?request=GetFeature&service=WFS&version=2.0.0&typeNames=kea_public:GevoelstemperatuurBuurt_2022&outputFormat=application/json&count=3&propertyName=buurtcode,buurtnaam,gemeentena,PET_gem
Filter by municipality
The server is GeoServer and supports cql_filter. Utrecht returned 111 neighbourhoods.
https://cas.cloud.sogelink.com/public/data/org/gws/YWFMLMWERURF/kea_public/wfs?request=GetFeature&service=WFS&version=2.0.0&typeNames=kea_public:GevoelstemperatuurBuurt_2022&outputFormat=application/json&propertyName=buurtcode,buurtnaam,PET_gem&cql_filter=gemeentena='Utrecht'
Downloading rasters
For the raster files themselves you fill in a form on the site (name, organisation, email, purpose). You then receive a download link by email.
Interesting combinations


Do older people and low-income households live in the hottest neighbourhoods?
Join on neighbourhood code. Check which year the boundaries are from; the neighbourhood dashboard gives codes from 2020 to 2024.


Your own map of heat per neighbourhood
Fetch the figures without geometry and attach them to the boundaries of the same year. Much lighter than the geometry from the atlas WFS.
Similar sources
- ALAtlas Leefomgeving not in the index yet
Broader (air, noise, greenery, water), with maps from RIVM. Less depth on climate.
- LBLIWO, basisinformatie overstromingen (Rijkswaterstaat) not in the index yet
Flood scenarios per dike breach instead of one national picture.
ERA5 climate reanalysisRaw climate data (temperature, rainfall) per hour. The atlas shows the effects, ERA5 the causes.
What to watch out for
- Models, not measurements
The maps are calculations for a scenario or a standard day. They show where the risk is higher, not what happened on a given day.
- Maps disappear and return under a new name
The site's log lists the Urban heat island map as removed in August 2026, while the hitteeiland layer was still in the WMS on 15 October 2026. Check the log to see which map is current.
- Download only via a form
Raster files come by email after a form with your details. For scripts, WMS and WFS are the only direct route.
- Attribution required
The data is under CC BY 4.0. The atlas asks you to credit: 'Klimaateffectatlas, 2026'.
APIOGC WFS 2.0.0 · read 16 Oct 2026
No key. Fees: NONE; access constraints: NONE. from the description
features in kea_public:GevoelstemperatuurBuurt_2022 tested
application/gml+xml; version=3.2GML2KMLSHAPE-ZIPapplication/geo+jsonapplication/geopackage+sqlite3application/jsonapplication/vnd.google-earth.kml xmlapplication/vnd.google-earth.kml+xmlapplication/vnd.ogc.fg+jsonapplication/x-gpkgcsvexcelexcel2007geopackagegeopkggml3gml32gpkgjsontext/csvtext/xml; subtype=gml/2.1.2text/xml; subtype=gml/3.1.1text/xml; subtype=gml/3.2
Base URL
https://cas.cloud.sogelink.com/public/data/org/gws/YWFMLMWERURF/kea_public/wfs
Endpoints 8
- GET
?request=GetCapabilitiesservice description - GET
?request=DescribeFeatureTypefields of a layer (XSD) - GET
?request=GetFeaturethe features themselves, with geometry - GET
?request=GetPropertyValueonly the values of one field - GET
?request=ListStoredQueriesstored queries - GET
?request=DescribeStoredQueriesstored query details - GET
?request=CreateStoredQueryCreateStoredQuery - GET
?request=DropStoredQueryDropStoredQuery
Layers and projections
- Afstand_tot_koelte
kea_public:Afstand_tot_koelteEPSG:28992 - BD_buurtdashboard_20260312
kea_public:BD_buurtdashboard_20260312EPSG:28992 - Gebiedsindeling_BRS
kea_public:Gebiedsindeling_BRSEPSG:28992 - GevoelstemperatuurBuurt_2012
kea_public:GevoelstemperatuurBuurt_2012EPSG:28992 - GevoelstemperatuurBuurt_2022
kea_public:GevoelstemperatuurBuurt_2022EPSG:28992 - Oppervlaktewaterverzilting_05m_ZSS_1000m3_Rijn
kea_public:Oppervlaktewaterverzilting_05m_ZSS_1000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_05m_ZSS_2000m3_Rijn
kea_public:Oppervlaktewaterverzilting_05m_ZSS_2000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_05m_ZSS_500m3_Rijn
kea_public:Oppervlaktewaterverzilting_05m_ZSS_500m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_0m_ZSS_1000m3_Rijn
kea_public:Oppervlaktewaterverzilting_0m_ZSS_1000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_0m_ZSS_2000m3_Rijn
kea_public:Oppervlaktewaterverzilting_0m_ZSS_2000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_0m_ZSS_500m3_Rijn
kea_public:Oppervlaktewaterverzilting_0m_ZSS_500m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_1m_ZSS_1000m3_Rijn
kea_public:Oppervlaktewaterverzilting_1m_ZSS_1000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_1m_ZSS_2000m3_Rijn
kea_public:Oppervlaktewaterverzilting_1m_ZSS_2000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_1m_ZSS_500m3_Rijn
kea_public:Oppervlaktewaterverzilting_1m_ZSS_500m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_3mZSS_500m3_Rijn
kea_public:Oppervlaktewaterverzilting_3mZSS_500m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_3m_ZSS_1000m3_Rijn
kea_public:Oppervlaktewaterverzilting_3m_ZSS_1000m3_RijnEPSG:28992 - Oppervlaktewaterverzilting_3m_ZSS_2000m3_Rijn
kea_public:Oppervlaktewaterverzilting_3m_ZSS_2000m3_RijnEPSG:28992 - Provinciegrenzen
kea_public:ProvinciegrenzenEPSG:28992 - RMK_30percBKB_AHN3
kea_public:RMK_30percBKB_AHN3EPSG:28992 - RMK_30percBKB_AHN4
kea_public:RMK_30percBKB_AHN4EPSG:28992 - RMK_30percBKB_AHN5
kea_public:RMK_30percBKB_AHN5EPSG:28992 - RMK_BebouwdeKomGrenzen
kea_public:RMK_BebouwdeKomGrenzenEPSG:28992 - RMK_BuurtAggregaties
kea_public:RMK_BuurtAggregatiesEPSG:28992 - RMK_LVR_AHN3
kea_public:RMK_LVR_AHN3EPSG:28992 - RMK_LVR_AHN4
kea_public:RMK_LVR_AHN4EPSG:28992 - RMK_LVR_AHN5
kea_public:RMK_LVR_AHN5EPSG:28992 - Schaduw op gebouwen
kea_public:Schaduw op gebouwenEPSG:28992 - SchaduwOpGebouwen_VerkoelingBinnen
kea_public:SchaduwOpGebouwen_VerkoelingBinnenEPSG:28992 - Toenamehoogtedijkenenduinenbijnormbij1mzeespiegelstijging
kea_public:Toenamehoogtedijkenenduinenbijnormbij1mzeespiegelstijgingEPSG:28992 - Toenamehoogtedijkenenduinenbijnormbij3mzeespiegelstijging
kea_public:Toenamehoogtedijkenenduinenbijnormbij3mzeespiegelstijgingEPSG:28992 - TotaalkaartKlimaatbuffers
kea_public:totaalkaartklimaatbuffersEPSG:28992 - Verandering_doorspoelwatervraag_05m_ZSS
kea_public:Verandering_doorspoelwatervraag_05m_ZSSEPSG:28992 - Verandering_doorspoelwatervraag_1m_ZSS
kea_public:Verandering_doorspoelwatervraag_1m_ZSSEPSG:28992 - Verandering_doorspoelwatervraag_3m_ZSS
kea_public:Verandering_doorspoelwatervraag_3m_ZSSEPSG:28992 - Veranderingwaterstandbijnormbij1mzeespiegelstijging
kea_public:Veranderingwaterstandbijnormbij1mzeespiegelstijgingEPSG:28992 - Veranderingwaterstandbijnormbij3mzeespiegelstijging
kea_public:Veranderingwaterstandbijnormbij3mzeespiegelstijgingEPSG:28992 - Waterschapsgrenzen
kea_public:WaterschapsgrenzenEPSG:28992 - Werkregio_grenzen
kea_public:werkregiogrenzen14012022EPSG:28992 - Wijktypen_buurten_2023
kea_public:wijktypen_buurtenEPSG:28992 - bkns_subklasse_2023_dreigingen_kansen
kea_public:bkns_subklasse_2023_dreigingen_kansenEPSG:28992 - bknsn_hoofdklasse
kea_public:bknsn_hoofdklasseEPSG:28992 - bknsn_subklasse
kea_public:bknsn_subklasseEPSG:28992 - droge_verdiepingen_extreem_kleine_kans_20251120
kea_public:droge_verdiepingen_extreem_kleine_kans_20251120EPSG:28992 - droogtegevoeligheidgrondwaterafhankelijkenatuur
kea_public:droogtegevoeligheidgrondwaterafhankelijkenatuurEPSG:28992 - kans_grondwateroverlast_2050hoog
kea_public:kans_grondwateroverlast_2050hoogEPSG:28992 - nl_bereikbaarheid_geen_dreiging_v20260813
kea_public:nl_bereikbaarheid_geen_dreiging_v20260813EPSG:28992 - nl_bereikbaarheid_grootschalige_extreme_neerslag_v20260813
kea_public:nl_bereikbaarheid_grootschalige_extreme_neerslag_v20260813EPSG:28992 - nl_bodemdaling_ondiep_v20260623
kea_public:nl_bodemdaling_ondiep_v20260623EPSG:28992 - nl_bodemdaling_totaal_v20260623
kea_public:nl_bodemdaling_totaal_v20260623EPSG:28992 - nl_broze_gezondheid_buurt_v20260722
kea_public:nl_broze_gezondheid_buurt_v20260722EPSG:28992 - nl_fcab_omgevingsscore_wateroverlast_v20260806
kea_public:nl_fcab_omgevingsscore_wateroverlast_v20260806EPSG:28992 - nl_percentage_huurwoningen_buurt_v20260722
kea_public:nl_percentage_huurwoningen_buurt_v20260722EPSG:28992 - nl_sociaal_economische_status_buurt_v20260722
kea_public:nl_sociaal_economische_status_buurt_v20260722EPSG:28992 - nl_sterk_eenzaam_buurt_v20260722
kea_public:nl_sterk_eenzaam_buurt_v20260722EPSG:28992 - nl_stroombanen_70mm_1h_v20260820
kea_public:nl_stroombanen_70mm_1h_v20260820EPSG:28992 - opwarming_oppervlaktewater_2050hoog
kea_public:opwarming_oppervlaktewater_2050hoogEPSG:28992 - opwarming_oppervlaktewater_huidig
kea_public:opwarming_oppervlaktewater_huidigEPSG:28992 - risicopaalrot_2050hoog
kea_public:risicopaalrot_2050hoogEPSG:28992 - risicopaalrot_2050laag
kea_public:risicopaalrot_2050laagEPSG:28992 - risicopaalrot_huidig
kea_public:risicopaalrot_huidigEPSG:28992 - risicoverschilzetting_2050hoog
kea_public:risicoverschilzetting_2050hoogEPSG:28992 - risicoverschilzetting_2050laag
kea_public:risicoverschilzetting_2050laagEPSG:28992 - stijging_waterstanden_2050hoog
kea_public:stijging_waterstanden_2050hoogEPSG:28992 - tekort_opvwater_extreem_2050hoog
kea_public:tekort_opvwater_extreem_2050hoogEPSG:28992 - tekort_opvwater_extreem_huidig
kea_public:tekort_opvwater_extreem_huidigEPSG:28992 - tekort_opvwater_gem_2050hoog
kea_public:tekort_opvwater_gem_2050hoogEPSG:28992 - tekort_opvwater_gem_huidig
kea_public:tekort_opvwater_gem_huidigEPSG:28992 - wijktypen_PC6
kea_public:wijktypen_PC6EPSG:28992
Filtering from the description
OGC Filter Encoding (FES 2.0)
Parameters 6
typeNames | which layer: kea_public:Afstand_tot_koelte, kea_public:BD_buurtdashboard_20260312, kea_public:Gebiedsindeling_BRS, kea_public:GevoelstemperatuurBuurt_2012, kea_public:GevoelstemperatuurBuurt_2022, kea_public:Oppervlaktewaterverzilting_05m_ZSS_1000m3_Rijn, kea_public:Oppervlaktewaterverzilting_05m_ZSS_2000m3_Rijn, kea_public:Oppervlaktewaterverzilting_05m_ZSS_500m3_Rijn, kea_public:Oppervlaktewaterverzilting_0m_ZSS_1000m3_Rijn, kea_public:Oppervlaktewaterverzilting_0m_ZSS_2000m3_Rijn, kea_public:Oppervlaktewaterverzilting_0m_ZSS_500m3_Rijn, kea_public:Oppervlaktewaterverzilting_1m_ZSS_1000m3_Rijn, kea_public:Oppervlaktewaterverzilting_1m_ZSS_2000m3_Rijn, kea_public:Oppervlaktewaterverzilting_1m_ZSS_500m3_Rijn, kea_public:Oppervlaktewaterverzilting_3mZSS_500m3_Rijn, kea_public:Oppervlaktewaterverzilting_3m_ZSS_1000m3_Rijn, kea_public:Oppervlaktewaterverzilting_3m_ZSS_2000m3_Rijn, kea_public:Provinciegrenzen, kea_public:RMK_30percBKB_AHN3, kea_public:RMK_30percBKB_AHN4, kea_public:RMK_30percBKB_AHN5, kea_public:RMK_BebouwdeKomGrenzen, kea_public:RMK_BuurtAggregaties, kea_public:RMK_LVR_AHN3, kea_public:RMK_LVR_AHN4, kea_public:RMK_LVR_AHN5, kea_public:Schaduw op gebouwen, kea_public:SchaduwOpGebouwen_VerkoelingBinnen, kea_public:Toenamehoogtedijkenenduinenbijnormbij1mzeespiegelstijging, kea_public:Toenamehoogtedijkenenduinenbijnormbij3mzeespiegelstijging, kea_public:totaalkaartklimaatbuffers, kea_public:Verandering_doorspoelwatervraag_05m_ZSS, kea_public:Verandering_doorspoelwatervraag_1m_ZSS, kea_public:Verandering_doorspoelwatervraag_3m_ZSS, kea_public:Veranderingwaterstandbijnormbij1mzeespiegelstijging, kea_public:Veranderingwaterstandbijnormbij3mzeespiegelstijging, kea_public:Waterschapsgrenzen, kea_public:werkregiogrenzen14012022, kea_public:wijktypen_buurten, kea_public:bkns_subklasse_2023_dreigingen_kansen, kea_public:bknsn_hoofdklasse, kea_public:bknsn_subklasse, kea_public:droge_verdiepingen_extreem_kleine_kans_20251120, kea_public:droogtegevoeligheidgrondwaterafhankelijkenatuur, kea_public:kans_grondwateroverlast_2050hoog, kea_public:nl_bereikbaarheid_geen_dreiging_v20260813, kea_public:nl_bereikbaarheid_grootschalige_extreme_neerslag_v20260813, kea_public:nl_bodemdaling_ondiep_v20260623, kea_public:nl_bodemdaling_totaal_v20260623, kea_public:nl_broze_gezondheid_buurt_v20260722, kea_public:nl_fcab_omgevingsscore_wateroverlast_v20260806, kea_public:nl_percentage_huurwoningen_buurt_v20260722, kea_public:nl_sociaal_economische_status_buurt_v20260722, kea_public:nl_sterk_eenzaam_buurt_v20260722, kea_public:nl_stroombanen_70mm_1h_v20260820, kea_public:opwarming_oppervlaktewater_2050hoog, kea_public:opwarming_oppervlaktewater_huidig, kea_public:risicopaalrot_2050hoog, kea_public:risicopaalrot_2050laag, kea_public:risicopaalrot_huidig, kea_public:risicoverschilzetting_2050hoog, kea_public:risicoverschilzetting_2050laag, kea_public:stijging_waterstanden_2050hoog, kea_public:tekort_opvwater_extreem_2050hoog, kea_public:tekort_opvwater_extreem_huidig, kea_public:tekort_opvwater_gem_2050hoog, kea_public:tekort_opvwater_gem_huidig, kea_public:wijktypen_PC6 | from the description |
outputFormat | e.g. application/json for GeoJSON | from the description |
srsName | projection, e.g. EPSG:4326 for web maps (default EPSG:28992, RD) | from the description |
count / startIndex | paging | from the description |
filter | FES XML filter on fields or geometry | from the description |
bbox | box in the chosen projection | platform |
Fields 14 · kea_public:GevoelstemperatuurBuurt_2022
| Name | Type | Meaning |
|---|---|---|
fid_1 | double | |
buurtcode | string | |
buurtnaam | string | |
wijkcode | string | |
gemeenteco | string | |
gemeentena | string | |
jrstatcode | string | |
jaar | long | |
_count | double | |
_sum | double | |
_mean | double | |
PET_gem | int |
Show all 14
| Name | Type | Meaning |
|---|---|---|
RIVMClass | int | |
geometry | geometrie |
Limits and pitfalls
- At most 100,000 features per request (CountDefault). from the description
- Paging supported: count and startIndex (ImplementsResultPaging). from the description
- Some layers are rasters converted to polygons and have millions of features (Afstand_tot_koelte: 6,275,235 on 15 Oct 2026). Never request them in one go; count first with resultType=hits. tested
- Layer names with a date (…_v20260813, …_20260128) change on update; old versions sometimes remain next to the new ones. Read GetCapabilities first and pick the newest. tested
- With propertyName without the geometry field, GeoServer leaves out the geometry (geometry: null). Three neighbourhoods are then less than 1 KB. tested
- Field names are truncated (gemeentena, gemeenteco). The layer is called _2022, but the field jaar is 2024 and jrstatcode starts with 2024BU: check which neighbourhood boundaries you join to. tested
Try it HTTP 200 · 284 ms · 16 Oct
https://cas.cloud.sogelink.com/public/data/org/gws/YWFMLMWERURF/kea_public/wfs?request=GetFeature&service=WFS&version=2.0.0&typeNames=kea_public:GevoelstemperatuurBuurt_2022&outputFormat=application/json&count=3&propertyName=buurtcode,buurtnaam,gemeentena,PET_gem
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "GevoelstemperatuurBuurt_2022.fid-5f0527ab_1a1434bea45_-8bb",
"geometry": null,
"properties": {
"buurtcode": "BU00140000",
"buurtnaam": "Binnenstad-Noord",
"gemeentena": "Groningen",
"PET_gem": 44
}
},
{
"type": "Feature",
"id": "GevoelstemperatuurBuurt_2022.fid-5f0527ab_1a1434bea45_-8ba",
"geometry": null,
"properties": {
"buurtcode": "BU00140001",
"buurtnaam": "Binnenstad-Zuid",
"gemeentena": "Groningen",
"PET_gem": 44
}
}
],
"totalFeatures": 14574,
"numberMatched": 14574,
"numberReturned": 3,
"timeStamp": "2026-10-16T06:21:51.300Z",
"crs": null
}Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from GetCapabilities: layers, projections, formats, filters, limit · DescribeFeatureType: fields of kea_public:GevoelstemperatuurBuurt_2022. 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.
How to fetch it
curl "https://cas.cloud.sogelink.com/public/data/org/gws/YWFMLMWERURF/kea_public/wfs?request=GetFeature&service=WFS&version=2.0.0&typeNames=kea_public:GevoelstemperatuurBuurt_2022&outputFormat=application/json&count=3&propertyName=buurtcode,buurtnaam,gemeentena,PET_gem"
More in this topic
See how this page is built
bron: klimaateffectatlas blokken: [] secties: - ideeen - verwerken - koppelingen - vergelijkbaar - beperkingen - code cache: tag: bron:klimaateffectatlas ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: nieuwste datum in de laagnamen van de WMS (GetCapabilities) verwacht: elk kwartaal
Source: content/bronnen/klimaateffectatlas.yaml · Markdown



