AHN3 Hoogte opvragen in PyQGIS

Ik zou graag willen weten hoe ik programmatisch in python de hoogte kan opvragen voor een specifieke coordinaat of eventueel de max hoogte binnen een bepaalde bounding box uit de AHN3 dataset. Ik heb eerder de WMS ingeladen in QGIS, maar krijg daar alleen een legenda te zien met colorcoded hoogtes. Heef er iemand een idee hoe ik dit kan aanpakken?

Je kunt waarden opvragen uit de WMS bron:

https://geodata.nationaalgeoregister.nl/ahn3/ows?service=wms&version=1.3.0&request=GetFeatureInfo&bbox=149999,449999,150001,450001&crs=EPSG:28992&width=3&height=3&layers=ahn3_05m_dtm&styles=&format=image/png&query_layers=ahn3_05m_dtm&info_format=text/xml&i=1&j=1

Dit levert een XML op met een GRAY_INDEX. Dat is de hoogte van het gevraagde vlak.

In de URL zie je dat ik een bounding box opvraag van 3 pixels breed en hoog, en dit ook toepas op de coƶrdinaten. wil je zuiverder dan kun je natuurlijk de pixels verrekenen met centimeters i.p.v. meters. Ik kan me herinneren dat je meer dan 1 pixel moest opgeven, vandaar 3.

Maar misschien zijn er makkelijker manieren.

Voor python heb ik geen directe oplossing voor je. Gebruik je R? dan wel. Met deze tool kun je precies bereiken wat je wilt:

1 like

Even nog een paar vragen hierover, is de hoogte die je opvraagt voor dat 3 bij 3 vlak een gemiddelde hoogte of een maximum hoogte? En kun je in een enkele WMS request meerdere hoogtereslutaten krijgen of is dat niet mogelijk? (Dus eigenlijk een puntenwolk van maximum hoogtes)

Als je een puntenwolk wilt opvragen dan kun je beter een WCS aanroepen en daar waarden uit halen, denk ik.

De hoogte die je via WMS opvraagt is het gemiddelde maar als je die binnen de nauwkeurigheidsgrenzen (50cm) opvraagt dan krijg je geen andere waarde dan de werkelijke hoogte uit de databron.

ik heb hier een WCS request:

http://geodata.nationaalgeoregister.nl/ahn3/wcs?
service=WCS&
version=1.0.0&
request=GetCoverage&
coverage=ahn3_5m_dsm&
crs=EPSG:3857&
response_crs=EPSG:3857&
bbox=645731,6771674,659631,6777245&
width=250&
height=250&
format=image/png

Kun je bij WCS ook een xml krijgen als output met hoogtewaarden of hoe zit dat precies?

@Eddy het capabilities document van de AHN3 WCS adverteert de ondersteunde output formaten:

<wcs:formatSupported>image/tiff</wcs:formatSupported>
<wcs:formatSupported>image/png</wcs:formatSupported>
<wcs:formatSupported>image/jpeg</wcs:formatSupported>
<wcs:formatSupported>image/png; mode=8bit</wcs:formatSupported>
<wcs:formatSupported>image/vnd.jpeg-png</wcs:formatSupported>
<wcs:formatSupported>image/vnd.jpeg-png8</wcs:formatSupported>

Van deze lijst bevat alleen image/tiff (GeoTiff) daadwerkelijk hoogtewaardes. De overige formaten zijn voor een visuele representatie, maar eigenlijk is hier de WMS service veel geschikter voor (we moeten als PDOK nog een keer de WCS outputformaten onder handen nemen).

Als je in je WCS request het outputformaat verandert in image/tiff dan krijg je een GeoTiff bestand terug met de hoogtewaardes:

service=WCS&
version=1.0.0&
request=GetCoverage&
coverage=ahn3_5m_dsm&
crs=EPSG:3857&
response_crs=EPSG:3857&
bbox=645731,6771674,659631,6777245&
width=250&
height=250&
format=image/png

Wat in QGIS te openen is:

Om ook nog je oorspronkelijk vraag te beantwoorden; ik heb een QGIS Processing Tool geschreven (in Python) die voor elk punt in de input laag de hoogte opvraagt in de AHN3 WCS. Ik heb de code niet heel uitvoerig gedocumenteerd, dus als je vragen hebt over de code stel ze gerust.