Hoogte bepalen dmv GetFeatureInfo (liefst in bulk)

Hoi!

Ik probeer voor een vraagstuk de hoogte te bepalen dmv een GetFeatureInfo op een WMS. Zelf heb ik hier absoluut geen kennis van dus ben flink op zoek geweest op o.a. dit forum, maar helaas kom ik niet tot het gewenste succes en zou dus wel een beetje hulp kunnen gebruiken.

De eerste uitdaging voor mij is om voor één x/y-coördinaat de hoogte te bepalen.
De tweede is #1 toepassen op een kleine 157.000 records :slight_smile:

Wie zou mij hier mee kunnen helpen?

Alvast bedankt,
Roderick

Hoi @Rvdw93, de QGIS PDOK services plugin bevat een AHN3 processing tool waarmee je eenvoudig hoogte kan ophalen voor een collectie punten/xy-coordinaten.

Zie de broncode (Python) hier ter inspiratie als je zelf een eigen implementatie wil bouwen. De PDOK services plugin maakt gebruik van de WCS (Web Coverage Service) en haalt hoogtewaardes op door middel van Geotiff bestanden. In plaats van raster bestand van 1x1 pixel, haalt de tool een raster bestand van 2x2 pixels, aangezien het niet mogelijk is een raster bestand van 1x1 pixel op te halen in de WCS door een bug in MapServer.

Hoi @antonbakker
Helaas heb ik geen QGIS tot mijn beschikking, maar ArcGis Pro. Verder heb ik ook FME tot mijn beschikking om een dergelijk vraagstuk te benaderen.

Ik heb geen oplossing voor FME en/of ArcGIS Pro, want ik heb daar zelf geen beschikking over.

Een alternatieve oplossingsrichting is om de AHN3 volledig te downloaden en met de bronbestanden zelf aan de slag te gaan. Zie PDOK - AHN3 downloads. Kan misschien uit gezien je de hoogte wil ophalen voor 157.000 records.

  • Het DTM in 0,5 meter resolutie gaat om 1371 bestanden a ~300MB per stuk is ~400GB
  • Het DTM in 5 meter resolutie gaat om 1371 bestanden a ~4MB per stuk is ~5GB

In FME heb je de pointsonrastervalue extractor die dit voor je kan doen als je eerst met een featurereader via de WCS het AHN binnenhaalt. Laat maar weten als je er hiermee niet uit komt.

1 like

Hoi @Hashtaggeodata
Ik denk dat dit wel een mogelijke oplossing biedt, maar als ik het AHN laad in FME krijg ik slechts één record - klopt dit? Als ik dan een enkel punt-object laadt en hier d.m.v. een PointOnRasterValueExtractor (hele mond vol) de hoogte uit probeer te halen krijg ik deze niet terug.

Ik heb een volle dag, ik kan je later wat uitgebreider beantwoorden, maar misschien helpt dit je voldoende op weg, uit mijn hoofd:

  • punten inladen (zorg dat de punten een uniek ID hebben, desnoods met de uuid-generator)
  • buffertje rondom de punten
  • boundingboxreplacer > die als input voor je featurereader gebruiken om de het AHN per punt binnen te halen. Zorg dat de unieke ID van de punten meekomt bij de attributehandling)
  • Pointonraster value extractor (group by op het unieke ID)
  • Met een attributecreator of -manager kan je vervolgens de z toevoegen aan de punten.

Als je iets hebt om een scriptje mee te maken kun je de gezochte data ook ophalen middels een WFS request.

Hierbij een voorbeeld (voor aan andere service), om middels een locatie en een zoekstraal gegevens op te halen uit een WFS service:

<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd" outputFormat="application/json" service="WFS" version="1.0.0">
    <wfs:Query xmlns:freshem="http://www.deegree.org/app" typeName="freshem:profielen">
        <ogc:Filter>
            <ogc:DWithin>
                <ogc:PropertyName>wkb_geometry</ogc:PropertyName>
                <gml:Point gml:id="P1" srsName="urn:ogc:def:crs:EPSG::28992">
                    <gml:coordinates>54597.93582969889,392316.9337169053</gml:coordinates>
                </gml:Point>
                <ogc:Distance units="m">35.36</ogc:Distance>
            </ogc:DWithin>
        </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>