2021_orthoHR luchtfoto vanuit PDOK API niet identiek aan download opendata.beeldmateriaal.nl

Op twee verschillende manieren heb ik de landsdekkende luchtfoto gedownload:

  1. Via PDOK API: https://service.pdok.nl/hwh/luchtfotorgb/wms/v1_0
  2. Via Beeldmateriaal Nederland

getmap() API parameters:

{
 "layers": ['2021_orthoHR']
 "srs": "EPSG:28992"
 "bbox": (191000, 329000, 191200, 329200),
 "size": (2500, 2500),
 "format"="image/jpeg",
}

Door de gekozen bbox (200 bij 200 meter) en de gekozen size (2500 bij 2500 pixels) zou ik verwachten dat de resolutie hetzelfde is als de via Beeldmateriaal Nederland gedownloade afbeelding (die tegels zijn 1km bij 1km en 12500 bij 12500 pixels). Dit is inderdaad het geval.

Echter, de pixelwaardes komen niet exact overeen, zoals duidelijk te zien in het screenshot hieronder. Links is de afbeelding gedownload via de API en rechts is de afbeelding gedownload via Beeldmateriaal Nederland. In de twee roodomrande vierkantjes zie je duidelijk verschillende kleuren. De discrepantie heb ik geverifieerd door met Python naar de pixelwaardes te kijken.

Waarom komen de pixelwaardes van deze twee versies van dezelfde afbeelding niet overeen?

Hallo @Jorrit1, wij gaan het verschil onderzoeken en zal ik daarna terug koppelen.

Dank! Overigens zie ik dat in mijn screenshot de twee kleinere rode vierkanten (midden-boven) niet goed opgelijnd zijn, maar het punt blijft staan dat de afbeeldingen niet identiek zijn.

Is het verschil niet de WMS server een extra slag compressie (lossy, want image/jpeg) toepast (tov. het direct openen van de data van Beeldmateriaal)?

Dat is ook door mijn hoofd gegaan. Ik ben geen expert op het gebied van compressie, maar ik vraag me af hoe (en waarom) de pixelwaardes zouden veranderen als je de resolutie niet verandert.

Kun je me daar meer over vertellen @geotiles?

En als de lossy compressie inderdaad het probleem is: hoe kan ik dit voorkomen? Voor zover ik begrijp ondersteunt de WMS server geen GeoTIFF formaat (zoals Beeldmateriaal doet)

Probeer misschien eerst eens image/png, dat is lossless compressie en zou, als alleen compressie het probleem is, geen verschil moeten laten zien.

Omdat een deel van de compressie ook in het aantal gebruikte kleuren en het onderscheid tussen kleuren van aangrenzende pixels kan zitten. En GeoTIFF is een flexibel formaat dat ook vormen van compressie ondersteunt.

Praktisch probleem, de WMS ondersteunt alleen maar JPEG uitvoer. Lang verhaal kort: daarmee gaan ze nooit precies hetzelfde zijn. Specifiek de JPEG compressie verandert ook nog eens de manier waarop de kleuren zijn opgeslagen (YCbCr), zoals @raymondnijssen al noemt, als weet ik niet zeker hoe dit in de onderliggende GeoTiff/ECW van Beeldmateriaal is geregeld (mogelijk lossy compressie over lossy compressie).

Zie hier in één screenshot dezelfde maximaal ingezoomde pixelregio. Het bovenste plaatje is het resultaat van de API met "format" = "image/jpeg", het middelste plaatje is het resultaat van de API met "format = "image/png" en het onderste plaatje is het resultaat van de GeoTIFF download van Beeldmateriaal.

Zoals je ziet zijn de resultaten van JPEG en PNG hetzelfde. Dit heb ik wederom geverifieerd door de pixelwaardes te vergelijken.

We waren tegelijk aan het typen. Vraag is even of je echt een PNG hebt teruggekregen, of dat het ook een JPEG is terwijl je om een PNG vroeg. Dat ze verschillend gecomprimeerd en toch identiek zijn, lijkt mij sterk.

Ik heb intern afgestemd en wil onderstaande verschillen kenbaar maken:

image

• Via de pagina ‘Beeldmateriaal krijg je de GeoTIFF, dit zijn alle originele pixels. Deze service valt onder verantwoordelijkheid van Het Waterschapshuis (HWH), die de bestanden van ons ontvangt.
• Via de PDOK webservice krijg je een JPEG, die door MapServer wordt aangemaakt.
JPEG is van zichzelf al gecomprimeerd met verlies aan details, wat leidt tot de zgn JPEG-artefacten.
Dit zou het verschil kunnen veroorzaken.
Downloaden van de originele bestanden via de PDOK webservice is niet mogelijk.

Ik denk dat vergelijken tussen die twee typen bestanden niet zinvol is @Jorrit1.
En ja @geotiles heeft gelijk. Via de PDOK webservice wordt altijd een JPEG ‘gereplied’ ook al bevraag je een PNG. Dit om opslagtechnische redenen.

Ik hoop dat het duidelijk is.

2 likes

Dank @rbhailal. Helemaal duidelijk.

Je antwoord verklaart ook waarom de formaten image/png en image/jpeg hetzelfde resultaat teruggeven.

1 like