pycsw icon indicating copy to clipboard operation
pycsw copied to clipboard

how to transform a WMS/WFS iso19139 transferoption to record.geojson?

Open pvgenuchten opened this issue 2 years ago • 1 comments

Description

Following the discussion at https://github.com/opengeospatial/ogcapi-records/issues/95, to capture enough detail on a association in record.geojson so a client is able to bind to the service advertised, we need some mapping from for example the iso19139 transfer-options model to a template+variables structure as suggested in record.geojson.

iso

<gmd:MD_DigitalTransferOptions>
          <gmd:onLine>
            <gmd:CI_OnlineResource>
              <gmd:linkage>
                <gmd:URL>https://service.pdok.nl/hwh/wsdiensteninspire/wms/v1_0?service=wms&amp;request=getcapabilities</gmd:URL>
              </gmd:linkage>
              <gmd:protocol>
                <gmx:Anchor xlink:href="http://www.opengis.net/def/serviceType/ogc/wms">OGC:WMS</gmx:Anchor>
              </gmd:protocol>
              <gmd:name>
                <gco:CharacterString>kabel</gco:CharacterString>
              </gmd:name>
              <gmd:description>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/OnLineDescriptionCode/accessPoint">accessPoint</gmx:Anchor>
              </gmd:description>
            </gmd:CI_OnlineResource>
          </gmd:onLine>

record geojson

{
   "rel": "map",
   "type": "image/png",
   "title": "Ozone map",
   "href": "https://geo.woudc.org/ows?service=WMS&version=1.3.0&request=GetMap&crs={crs}&bbox={bbox}&layers=totalozone&width={width}&height={height}&format=image/png",
   "templated": true,
   "variables": {
      "crs": {
         "description": "...",
         "type": "string",
         "enum": [ "EPSG:4326", "EPSG:3857" ]
      },
      "bbox": {
         "description": "...",
         "type": "array",
         "items": {
            "type": "number",
            "format": "double"
         },
         "minItems": 4,
         "maxItems": 4
      },
      "width": {
         "description": "...",
         "type": "number",
         "format": "integer",
         "minimum": 600,
         "maximum": 5000
      },
      "height": {
         "description": "...",
         "type": "number",
         "format": "integer",
         "minimum": 600,
         "maximum": 5000
      }
   }
}

In general clients like qgis/openlayers will know how to interact with a wms, so i'm a bit reluctant to capture the full structure of a wms getmap into the record. A minimal requirement though is to capture the fact that the endpoint is a WMS and the relevant layer(s) at that endpoint. For which the current spec does not provide guidance. what do people think?

pvgenuchten avatar Nov 11 '22 21:11 pvgenuchten