303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Climate and environment
Copernicus · European Space Agency
International, relevant to the Netherlands

Sentinel-5P nitrogen dioxide (TROPOMI)

The TROPOMI instrument on the Sentinel-5P satellite measures every day how much nitrogen dioxide (NO₂) hangs over the whole earth, in cells of 3.5 by 5.5 km. TROPOMI was built in the Netherlands, by Airbus Netherlands, TNO and SRON, with KNMI leading the consortium.

Climate and environmentEarth observationHealthAPISatellite imageWorld · 3.5 × 5.5 km
Up to date · updated 3 hours ago · checked 17:23
dataspace.copernicus.eu
Screenshot of dataspace.copernicus.eu

Nitrogen dioxide over the Netherlands on 20 March 2025: dark red from The Hague to beyond Amsterdam, measured by Sentinel-5P

The amount of nitrogen dioxide (NO₂) in the air column above the ground, measured by the TROPOMI instrument on Sentinel-5P during its overpass around midday. According to the legend, the colour runs from light yellow (almost nothing) through orange to dark red (2 × 10¹⁶ molecules per cm² or more). The dark red lies in a band from The Hague via Leiden to beyond Amsterdam; a second dark patch lies between Antwerp and Bergen op Zoom, and at the bottom right the Ruhr area shows red. It is a column, not the air you breathe at street level, and every day the picture looks different.

Source: Sentinel-5P TROPOMI (Copernicus/ESA, KNMI), beeld via NASA GIBS (WMS) · opgehaald 25 oktober 2026Open the table Single block

What can you do with it?4 ideas

Getting started

A map of the pollution

Average a month of passes over the Netherlands and Belgium. Cities, ports and motorways show up as patches.

Getting started

Weekday versus weekend

Compare the average of all Tuesdays with that of all Sundays. The difference says something about traffic and industry.

Advanced

Covid spring 2020

Put April 2020 next to April 2019 and 2021. Mind the weather, because wind and clouds change the numbers too.

Advanced

Satellite versus monitoring station

Compare the column value over a Luchtmeetnet station with the ground measurement. They don't measure the same thing, but the patterns should match.

How to process it4 steps

  1. Find passes over the Netherlands

    The fast version (NRTI) comes in five-minute pieces with their own box: filtering on bbox works well.

    https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti/items?bbox=3.2,50.7,7.3,53.6&sortby=-datetime&limit=3&fields=id,properties.datetime
  2. Use the offline version for analysis

    OFFL is better processed and arrives a few days later. One file is a whole orbit (about 600 MB), so search by date: on 20 September 2026 there were fifteen.

    https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-offl/items?datetime=2026-09-20T00:00:00Z/2026-09-20T23:59:59Z&limit=20&fields=id,properties.datetime
  3. Download with an account

    Each search result has a download link on the Copernicus Data Space. You need a free account and an access token for it.

    https://documentation.dataspace.copernicus.eu/APIs/OData.html
  4. Filter on quality

    Open the NetCDF with xarray (group PRODUCT) and use nitrogendioxide_tropospheric_column, in mol per m². Keep only pixels with qa_value above 0.75.

Interesting combinations

Similar sources

What to watch out for

  • A column, not street-level air quality

    The satellite measures all NO₂ between the ground and the top of the troposphere, in mol per m². That is not the same as micrograms per m³ at breathing height.

  • Clouds and quality

    TROPOMI sees little under clouds. Use only pixels with qa_value above 0.75 and average over weeks or months.

  • Searching by place doesn't work for OFFL

    An OFFL file is a whole orbit with a box around the whole earth. Every bbox search therefore finds every orbit. Filter by date, or use NRTI.

  • Large files

    An OFFL orbit is about 600 MB, a five-minute NRTI piece about 67 MB. You always download the whole file.

  • Account needed to download

    Searching the catalogue works without an account. The download returns a 401 without a token.

APISTAC 1.1.0 · read 16 Oct 2026

StandardSTAC 1.1.0docs
Access no key

Searching is anonymous. The files themselves require s3 (s3) or oidc (openIdConnect) (stated in the collection). from the description

Formats

GeoJSON (zoekresultaten)

Base URL

https://stac.dataspace.copernicus.eu/v1

Endpoints 3

  • GET/collections/sentinel-5p-l2-no2-nrti/itemsscenes in this collection, with bbox, datetime, limit
  • GET/POST/searchsearch across collections, with filter (CQL2), sortby and fields
  • GET/collections/sentinel-5p-l2-no2-nrti/queryablesfilterable fields

Filtering from the description

CQL2 (text or JSON) on the queryables

iddatetimegeometry

Parameters 6

bboxlon/lat box: west,south,east,northplatform
datetimedate or period, e.g. 2026-06-01/2026-08-31platform
limitper page; next via link rel=nextplatform
sortbysorting, e.g. -datetime (newest first)from the description
filterCQL2 filter on the queryables, e.g. eo:cloud_cover < 10from the description
fieldsreturn only these fieldsfrom the description

Limits and pitfalls

  • Filtering is only possible on id, datetime and geometry (queryables); there is no cloud field to search on (15 Oct 2026). tested
  • Three versions as separate collections: -nrti (within 3 hours, 5-minute pieces), -offl (a few days later, whole orbits) and -rpro (reprocessed). The sentinel-5p-l2-no2 collection mixes them. from the description
  • Measured on 15 Oct 2026: the newest NRTI pass over Amsterdam (12:42 UTC) was in the catalogue 45 minutes later; the newest OFFL orbit was from 6 October. tested

Try it HTTP 200 · 403 ms · 16 Oct

https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti/items?bbox=3.2,50.7,7.3,53.6&sortby=-datetime&limit=3&fields=id,properties.datetime
{
  "type": "FeatureCollection",
  "links": [
    {
      "rel": "collection",
      "type": "application/json",
      "href": "https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti"
    },
    {
      "rel": "parent",
      "type": "application/json",
      "href": "https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti"
    }
  ],
  "features": [
    {
      "id": "S5P_NRTI_L2__NO2____20261015T124254_20261015T124754_46664_03_020901_20261015T132437",
      "properties": {
        "datetime": "2026-10-15T12:42:48.000000Z"
      },
      "links": [
        {
          "rel": "collection",
          "type": "application/json",
          "href": "https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti"
        },
        {
          "rel": "parent",
          "type": "application/json",
          "href": "https://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti"
        }
      ]
    },
    {
      "id": "S5P_NRTI_L2__NO2____20261015T110254_20261015T110754_46663_03_020901_20261015T130501",
      "properties": {
        "datetime": "2026-10-15T11:02:49.000000Z"
      },
      "links": [
        {

Shortened response, saved at harvest time. Click the URL for the real, current response.

Read from collection: bands, coverage, licence, access · fields you can filter on · what the search API supports (conformsTo). 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://stac.dataspace.copernicus.eu/v1/collections/sentinel-5p-l2-no2-nrti/items?bbox=4.7,52.2,5.1,52.5&sortby=-datetime&limit=5&fields=id,properties.datetime"

Used by

More in this topic

See how this page is built
bron: sentinel5p-no2
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
  - gebruiktDoor
cache:
  tag: bron:sentinel5p-no2
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: "STAC: nieuwste NRTI-opname boven Amsterdam"
  verwacht: dagelijks

Source: content/bronnen/sentinel5p-no2.yaml · Markdown