# Grootschalige concentratiekaarten (GCN)

Berekende jaargemiddelden van stikstofdioxide en fijnstof voor heel Nederland, in vakjes van een kilometer. Waar Luchtmeetnet meet, rekent GCN tussen de meetpunten in.

- Uitgever: Rijksinstituut voor Volksgezondheid en Milieu
- Gebied: Nederland · Laagste detail: 1 × 1 km
- Periode: 2006 – 2025 · Ververst: jaarlijks
- Toegang: Open · Licentie: CC BY 4.0
- Koppelsleutels: coördinaten (RD)
- Status: grijs
- URL: https://www.rivm.nl/gcn-gdn-kaarten

## Wat kun je ermee?
- **Hoe schoon is de lucht op mijn adres?.** Zoek het vakje van een kilometer waarin je adres ligt en lees het jaargemiddelde af.
- **Twintig jaar schonere lucht.** Vergelijk de kaarten van 2006 en nu. Waar daalde stikstofdioxide het hardst?

## Interessante koppelingen
- Wonen mensen met een laag inkomen vaker in vieze lucht? → [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md) via coördinaten → buurt. Middel het raster per buurt en zet het naast het inkomen.

## Vergelijkbare bronnen
- [luchtmeetnet](https://www.opendataindex.nl/bron/luchtmeetnet.md): Echte metingen per uur, maar alleen op meetstations.

## API (OGC WMS 1.3.0 en WCS 2.0.1 (GeoServer) plus een downloadmap met ASCII-grids)

- Basis: https://data.rivm.nl/geo/gcn
- Toegang: Geen sleutel; Fees en AccessConstraints in de capabilities: NONE. (getest)
- Formaten: png, geotiff, json, asc, gml
- Omvang: 56 rasterlagen in WMS en WCS (11 stoffen concentratie, 4 soorten depositie; jaar 2024/2025 en scenario's 2030, 2035, 2040) (getest)
- Filteren: Geen filter: kies een laag (stof en jaar) en een gebied of punt.; 

### Endpoints
- `GET /wms?request=GetMap`: Kaartbeeld van een laag (PNG, JPEG, GeoTIFF, SVG, KML …) in RD, WGS84, Web Mercator en meer.
- `GET /wms?request=GetFeatureInfo&info_format=application/json`: De waarde op één punt als JSON (Amsterdam-centrum, NO2 2025: 19,55 µg/m³).
- `GET /wms?request=GetLegendGraphic&format=application/json`: Klassegrenzen en kleuren van de legenda als JSON (het legendaplaatje heeft geen getallen).
- `GET /wcs?request=GetCoverage&coverageId=gcn__conc_NO2_2025&subset=X(…)&subset=Y(…)`: De rasterwaarden zelf voor een uitsnede, als GeoTIFF, tekst of GML (5 × 5 km als GeoTIFF: 2,4 kB).
- `GET /wcs?request=DescribeCoverage&coverageId=…`: Rasterbeschrijving: RD (EPSG:28992), assen X en Y in meter.
- `GET https://data.rivm.nl/data/gcn/{conc|depo}_{stof}_{jaar}.zip`: Heel Nederland als ESRI ASCII-grid (280 × 320 cellen van 1 km in RD; depositie 280 × 325), met metadata-pdf; 76 tot 900 kB per zip.

### Parameters
- `layers`: conc_<stof>_<jaar> of depo_<soort>_<jaar>; stoffen C6H6, CO, COp98, EC, NH3, NO2, NOx, O3, PM10, PM25, SO2; depositie NHx, NOy, NTOT, POTZ; scenario's als conc_NO2_ERL25_2030_2502. (getest)
- `crs`: EPSG:28992 (RD, de eigen projectie), EPSG:4326, EPSG:3857, EPSG:3035, EPSG:25831 en meer. (uit de beschrijving)
- `bbox, width, height, i, j`: Gebied en pixel voor GetMap en GetFeatureInfo; in RD: minx,miny,maxx,maxy. (getest)
- `info_format`: application/json voor GetFeatureInfo. (getest)
- `subset`: subset=X(minx,maxx)&subset=Y(miny,maxy) in RD-meters; de aslabels zijn hoofdletters. (getest)
- `format`: WCS: image/tiff, image/tiff;application=geotiff, text/plain, application/gml+xml, image/png. (uit de beschrijving)

### Rasters (één waarde per cel van 1 × 1 km) (5)
`conc_NO2` raster, `conc_COp98` raster, `depo_NTOT` raster, `depo_POTZ` raster, `NODATA_VALUE` getal

### Limieten en valkuilen
- Geen sleutel en geen gedocumenteerde limiet. GetFeatureInfo en een kleine GetCoverage kwamen in minder dan 0,1 s terug. (getest)
- De WMS heeft alleen het nieuwste jaar (2025, voor NH3 en depositie ook 2024) en de scenario's. Oudere jaren staan alleen in de downloadmap: 2011–2023 met kleine letters in de naam (conc_no2_2015.zip), 2024 en later met hoofdletters (conc_NO2_2025.zip). (getest)
- De laag conc_NO2_2025 heeft als abstract 'Grootschalige Concentratiekaart NL (2026)': de kaarten heten naar het jaar van uitgave, de lagen naar het jaar van de concentraties. (getest)
- De WCS weigert kleine aslabels: subset=x(…) geeft 404 InvalidAxisLabel, subset=X(…) werkt. (getest)
- Het zijn berekende kaarten (model plus metingen), geen metingen. Scenariolagen (ERL25_2030 …) zijn vooruitberekeningen uit 2025. (ervaring)
- Geen robots.txt op data.rivm.nl (404). De WFS op hetzelfde pad bestaat maar heeft geen lagen. (getest)

### Voorbeeld
```
https://data.rivm.nl/geo/gcn/wms?service=WMS&version=1.3.0&request=GetFeatureInfo&layers=conc_NO2_2025&query_layers=conc_NO2_2025&crs=EPSG:28992&bbox=120000,486000,122000,488000&width=2&height=2&i=1&j=1&info_format=application/json
```

## Wat je ermee kunt bouwen
- [Luchtkwaliteit-alert voor je eigen straat](https://www.opendataindex.nl/bouwen/luchtkwaliteit-alert.md): Een melding op je telefoon als de lucht bij jou thuis slecht is of slecht wordt, op basis van de verwachting van Luchtmeetnet, de meetstations in je stad, sensoren van buren en de RIVM-jaarkaart.


## Wat er allemaal in zit: 56 kaartlagen

Alle kaarten in de WMS van het RIVM: concentraties en deposities per stof, het laatste jaar en scenario's voor later. Elke nacht opgehaald.

- Soorten: kaartlaag 56
- Met een API-aanroep op de datasetpagina: 56
- Zoeken: https://www.opendataindex.nl/api/catalogus/rivm-gcn?q=… of de MCP-functie zoek_datasets met herkomst=rivm-gcn
- Elke rij heeft een eigen pagina: https://www.opendataindex.nl/dataset/rivm-gcn/<sleutel>

### Mappen
- Concentraties (36): C6H6 (1), CO (1), COp98 (1), EC (4), NH3 (5), NO2 (4), NOx (4), O3 (4) …
- Deposities (20): NHx (5), NOy (5), NTOT (5), POTZ (5)

## Voorbeelden met echte cijfers (3)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **Stikstofdioxide in Amsterdam: het hoogst langs de grote wegen, het laagst aan de randen van de stad** (2024). Tabel rivm_nsl_20260401_gm_NO22024. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/recept-rivm-no2-amsterdam)
  - `https://data.rivm.nl/geo/alo/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&LAYERS=rivm_nsl_20260401_gm_NO22024&STYLES=&CRS=EPSG:28992&BBOX=114000,480000,130000,492000&WIDTH=960&HEIGHT=720&FORMAT=image/png`
- **Ammoniak in de lucht in 2025: de hoogste concentraties in de Gelderse Vallei en de Peel, de laagste langs de kust** (2025). Tabel conc_NH3_2025. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rivm-gcn-nh3-nederland)
  - `https://data.rivm.nl/geo/gcn/wms?service=WMS&version=1.3.0&request=GetMap&layers=conc_NH3_2025&styles=&crs=EPSG:28992&bbox=0,300000,280000,620000&width=700&height=800&format=image/png`
- **Stikstofdioxide in 2025: het hoogst in de Randstad en langs de snelwegen, het laagst in het noorden** (2025). Tabel conc_NO2_2025. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rivm-gcn-no2-nederland)
  - `https://data.rivm.nl/geo/gcn/wms?service=WMS&version=1.3.0&request=GetMap&layers=conc_NO2_2025&styles=&crs=EPSG:28992&bbox=0,300000,280000,620000&width=700&height=800&format=image/png`
