Diepte informatie uit GeoTIFF bestand

Ik wil dmv Python uit een GeoTIFF bestand zinvolle informatie halen. Het bestand gaat over waterdieptes. Ik wil uit het bestand van een bepaalde lokatie weten hoe diep het daar precies is. Tot nu toe werk ik met rasterio. Ik kan het bestand openen, en van een bepaalde locatie de rgb waarde lezen. Maar hoe vertaal ik de rgb waarde naar een diepte?

UPDATE: door het tif bestand te openen in QGis ben ik er achter gekomen dat die informatie er helemaal niet in staat. Elke pixel bevat een ‘getal’ met de naam ‘Band 1’. Het bestand download ik uit een geoserver. Ik weet dat de data in de geoserver die informatie wel bevat, omdat ik een WMS getFeatureInfo request kan uitvoeren. Daarbij krijg ik als antwoord een getal wat de diepte voorsteld onder de naam GRAY_INDEX. De vraag is dus nu op welke manier kan ik een Map uit de geoserver downloaden die die GRAY_INDEX informatie wel bevat?

Je zou op de betreffende WCS service kunnen zoeken naar welke supported formats deze uitlevert.

Stel we nemen als voorbeeld de AHN2 WCS die PDOK serveert.

Dan doen we eerst een GetCapabilities verzoek:
https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=getcapabilities&service=wcs

Daarin zien we dat er een DescribeCoverage operatie beschikbaar is:

<ows:Operation name="DescribeCoverage">

en zien we welke coverage contents er aanwezig zijn:

    <wcs:Contents>
      <wcs:CoverageSummary>
        <wcs:CoverageId>ahn2_05m_int</wcs:CoverageId>
        <wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
      </wcs:CoverageSummary>
      <wcs:CoverageSummary>
        <wcs:CoverageId>ahn2_05m_non</wcs:CoverageId>
        <wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
      </wcs:CoverageSummary>
      <wcs:CoverageSummary>
        <wcs:CoverageId>ahn2_05m_ruw</wcs:CoverageId>
        <wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
      </wcs:CoverageSummary>
      <wcs:CoverageSummary>
        <wcs:CoverageId>ahn2_5m</wcs:CoverageId>
        <wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
      </wcs:CoverageSummary>
    </wcs:Contents>

Vervolgens doen we een DescribeCoverage verzoek op de coverage met de naam ‘ahn2_5m’:
https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=describecoverage&service=wcs&version=1.0.0&coverage=ahn2_5m

Hiermee kunnen we achterhalen welke formaten er ondersteund worden bij deze coverage:

    <supportedFormats nativeFormat="GEOTIFF_BYTE">
      <formats>GEOTIFF_BYTE</formats>
      <formats>GEOTIFF_INT16</formats>
      <formats>GEOTIFF_RGB</formats>
      <formats>GEOTIFF_FLOAT32</formats>
    </supportedFormats>

In het geval van deze service willen we gebruik maken van de GeoTIFF met FLOAT32 waarden, zodat we de hoogte/diepte data in FLOAT32 kunnen uitlezen uit de pixels.

https://geodata.nationaalgeoregister.nl/ahn2/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&FORMAT=GEOTIFF_FLOAT32&COVERAGE=ahn2_5m&BBOX=189823.75,445852,190060.75,446055.25&CRS=EPSG:28992&RESPONSE_CRS=EPSG:28992&WIDTH=8&HEIGHT=6

Hier komt een GeoTIFF uit met FORMAT=GEOTIFF_FLOAT32.

Als je deze dan vervolgens in QGIS sleept zie je het volgende:

Band 1 bevat nu de hoogtewaarde en niet de ‘RGB’ kleuren waarde.

Hoop dat dit je verder helpt.

De AHN GeoTiffs bevatten geen waterdieptes.

Ik heb hier de AHN WCS ter illustratie gebruikt omdat ik ‘aanroep technisch’ gezien een vermoeden had dat men wellicht tegen een WCS GeoTIFF format probleem aanloopt.

Band 1 bevat nu de hoogtewaarde en niet de ‘RGB’ kleuren waarde.

Mijn excuses als ik het vermoeden heb gewekt dat men diepte informatie uit de AHN2 kan halen, maar had zo snel even geen andere WCS tot mijn beschikking om als voorbeeld te dienen.

1 like

Het resultaat van de Describecoverage ziet er als volgt uit:

<wcs:supportedFormats nativeFormat="GeoTIFF">
    <wcs:formats>GeoTIFF</wcs:formats>
    <wcs:formats>GIF</wcs:formats>
    <wcs:formats>JPEG</wcs:formats>
    <wcs:formats>PNG</wcs:formats>
    <wcs:formats>TIFF</wcs:formats>
</wcs:supportedFormats>

Dit betekent vast dat het GEOTIFF_FLOAT32 format gewoon niet beschikbaar gemaakt is. Is het dan een goed idee om de beheerders van deze geoserver te vragen om dit formaat beschikbaar te maken?

Als ik dit lijstje zo bekijk en de documentatie van Geoserver bekijk, zou ik verwachten dat een request met format=geotiff een bestand inclusief diepte data zou moeten uitleveren, aangezien de overige types gedefineerd worden als ‘image’.

Geoserver WCS Outputformats:
https://docs.geoserver.org/latest/en/user/services/wcs/outputformats.html

Je zou ook nog kunnen proberen om een request met format=tiff te doen op de WCS, mocht dat ook niet baten zou ik inderdaad contact opnemen met de beheerders van de WCS dienst.
Ik zou verwachten dat ze juiste geotiffs wel als bron ergens beschikbaar hebben, aangezien je aangeeft dat je met FeatureInfo verzoeken op de WMS (die naar alle waarschijnlijkheid) naar dezefde data kijkt, wel de correcte data teruggeeft.