TLDR;
http://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCoverage&service=WCS&version=1.0.0&coverage=ahn1_100m&crs=EPSG:4326&response_crs=EPSG:4326&bbox=4.2929383,51.986261,4.4177553,52.04231&width=500&height=500&FORMAT=image/tiff
We nemen bijvoorbeeld de GPS coordinaten van de omgeving van Delft.
Deze plaatsen we in de bbox parameter (het CRS is long (Lentegraad) lat (Breedtegraad), dus deze coordinaten even omdraaien in het request).
51.986261,4.2929383 (links onder Delft)
52.04231,4.4177553 (rechts boven Delft)
Hoe je de WIDTH en HEIGHT moet uitrekenen zou ik zo snel niet weten.
Het handigste is om een ‘vierkante’ boundingbox te nemen, zodat de afbeelding in verhouding is.
WCS, de Web Coverage Service standaard staat gedocumenteerd op de site van opengeospatial.
Pagina met alle specificatie documenten: Web Coverage Service - Open Geospatial Consortium
De meest gebruikte versie van de standaard is de 1.0.0 variant.
PDF: https://portal.opengeospatial.org/files/05-076
Je zou in principe ook GPS coordinaten kunnen gebruiken.
De meeste GPS ontvangers gebruiken het WGS84 coordinaten systeem.
Dit systeem is ook bekend onder de noemer EPSG:4326.
https://spatialreference.org/ref/epsg/4326/
Hieronder een tutorial over het gebruik van een WCS:
Stap 1 is een GetCapabilities verzoek doen:
http://geodata.nationaalgeoregister.nl/ahn1/wcs?request=getcapabilities&service=WCS
Parameters:
- request=GetCapabilities (Operation)
- service=WCS (op de service WCS)
In dit document zien we welk service type en welke versies deze service ondersteund:
<ows:ServiceType codeSpace="OGC">OGC WCS</ows:ServiceType>
<ows:ServiceTypeVersion>2.0.1</ows:ServiceTypeVersion>
<ows:ServiceTypeVersion>1.1.1</ows:ServiceTypeVersion>
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
Welke operations er gebruikt kunnen worden:
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
...
</ows:Operation>
<ows:Operation name="DescribeCoverage">
...
</ows:Operation>
<ows:Operation name="GetCoverage">
...
</ows:Operation>
</ows:OperationsMetadata>
En welke coverages er worden aangeboden:
<wcs:Contents>
<wcs:CoverageSummary>
<wcs:CoverageId>ahn1_100m</wcs:CoverageId>
<wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
</wcs:CoverageSummary>
<wcs:CoverageSummary>
<wcs:CoverageId>ahn1_25m</wcs:CoverageId>
<wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
</wcs:CoverageSummary>
<wcs:CoverageSummary>
<wcs:CoverageId>ahn1_5m</wcs:CoverageId>
<wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
</wcs:CoverageSummary>
</wcs:Contents>
Daarnaast is er ook te vinden welke projecties er beschikbaar zijn:
<crs:CrsMetadata>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/28992</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/25831</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/25832</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/3034</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/3035</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/3857</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/4258</crs:crsSupported>
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/4326</crs:crsSupported>
</crs:CrsMetadata>
Hierin zien we dus dat de EPSG:4326 ook ondersteund word:
<crs:crsSupported>http://www.opengis.net/def/crs/EPSG/0/4326</crs:crsSupported>
Stap 2 (optioneel) is een DescribeCoverage verzoek doen:
Hiermee kan je een omschrijving opvragen van een coverage die aangeboden word in de service.
http://geodata.nationaalgeoregister.nl/ahn1/wcs?request=describecoverage&service=WCS&version=1.0.0&coverageid=ahn1_100m
Parameters:
- request=DescribeCoverage (Operation)
- service=WCS (op de service WCS)
- version=1.0.0 (met versie 1.0.0, ondersteunde versies in Capabilities)
- coverageid=ahn1_100m (op coverage ahn1_100m, een van de Coverage Summaries in Capabilities)
Hierin zie je bijvoorbeeld in welk gebied er data te vinden is:
Coordinaten in CRS84
<lonLatEnvelope srsName="urn:ogc:def:crs:OGC:1.3:CRS84">
<gml:pos>3.19986718092473 50.6726082021021</gml:pos>
<gml:pos>7.27382008181814 53.5644946394505</gml:pos>
</lonLatEnvelope>
of in andere coordinaten systemen o.a. RD (EPSG:28992)
<gml:Envelope srsName="EPSG:28992">
<gml:pos>10000 300000</gml:pos>
<gml:pos>280000 619700</gml:pos>
</gml:Envelope>
En de specifieke formaten die je kan bevragen:
<supportedFormats nativeFormat="GEOTIFF_BYTE">
<formats>GEOTIFF_BYTE</formats>
<formats>GEOTIFF_INT16</formats>
<formats>GEOTIFF_RGB</formats>
<formats>GEOTIFF_FLOAT32</formats>
</supportedFormats>
En in welke band er data te lezen is:
(Waardes gaan van -3.4028e+38 tot 3.4028e+38)
<gmlcov:rangeType>
<swe:DataRecord>
<swe:field name="band1">
<swe:Quantity>
<swe:nilValues/>
<swe:uom code="W.m-2.Sr-1"/>
<swe:constraint>
<swe:AllowedValues>
<swe:interval>-3.4028e+38 3.4028e+38</swe:interval>
<swe:significantFigures>12</swe:significantFigures>
</swe:AllowedValues>
</swe:constraint>
</swe:Quantity>
</swe:field>
</swe:DataRecord>
</gmlcov:rangeType>
Stap 3 is een GetCoverage verzoek doen:
http://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCoverage&service=WCS&version=1.0.0&coverage=ahn1_100m&crs=EPSG:4326&response_crs=EPSG:4326&bbox=4.2929383,51.986261,4.4177553,52.04231&width=500&height=500&FORMAT=image/tiff
We nemen bijvoorbeeld de GPS coordinaten van de omgeving van Delft.
Deze plaatsen we in de bbox parameter (het CRS is long (Lentegraad) lat (Breedtegraad), dus deze coordinaten even omdraaien in het request).
51.986261,4.2929383 (links onder Delft)
52.04231,4.4177553 (rechts boven Delft)
Hoe je de WIDTH en HEIGHT moet uitrekenen zou ik zo snel niet weten.
Het handigste is om een ‘vierkante’ boundingbox te nemen, zodat de afbeelding in verhouding is.
Parameters:
- request=GetCoverage (Operation)
- service=WCS (op de service WCS)
- version=1.0.0 (met versie 1.0.0, ondersteunde versies in Capabilities)
- coverage=ahn1_100m (op coverage ahn1_100m, een van de Coverage Summaries in Capabilities)
- crs=EPSG:4326 (de CRS van de coordinaten, CRS staat voor Coordinate Reference System)
- bbox=4.2929383,51.986261,4.4177553,52.04231 (de boundingbox van het verzoek met de coordinaten minx, miny, maxx, maxy)
- width=500 (breedte van het plaatje in pixels)
- height=500 (hoogte van het plaatje in pixels)
- format=image/tiff (image/tiff gerenderd uit GEOTIFF_BYTE formaat, je kan ook andere formaten (png, etc) laten renderen op het native format zoals ze benoemd zijn in de Capabilies. Daarnaast kan je ook een ander type pakken zoals benoemd in de DescribeCoverage, bijv GEOTIFF_FLOAT32, etc.)
Hoop dat dit je verder helpt.