geopython/pygeometa

support spatial extent as description

pvgenuchten opened this issue · 4 comments

In iso19139 there are 2 options to indicate spatial extent, either spatial (box or geometry) or as label

See for example

<extent> 
  <EX_Extent> 
    <geographicElement>
      <EX_GeographicDescription>
        <geographicIdentifier>
          <MD_Identifier>
            <code>
              <CharaterString>Ameland<CharaterString>
            <code>
          <MD_Identifier>
        <geographicIdentifier>
      <EX_GeographicDescription>
    <geographicElement>   
  <EX_Extent>
<extent>

Suggestion would be to support this secnario also in pygeometa, instead of

 extents:
        spatial:
            - bbox: [-141,42,-52,84]
              crs: 4326

also support

 extents:
        spatial:
            - description: Ameland

see also: http://www.datypic.com/sc/niem21/e-gmd_EX_GeographicDescription.html

@pvgenuchten the pygeometa MCF schema makes identification.extents.spatial.bbox a required property.

To make sure, do you have use cases that only contain a spatial description, or is the spatial description in addition to spatial bbox for example (a missing / optional bbox would warrant the metadata difficult to apply spatial predicates to, unless a catalogue has a geocoding engine as part of a spatial search (which seems a bit esoteric?).

To summarize, is the spatial description in support of a query predicate or documentation/presentation? We could add description as an optional spatial property, which would be a low barrier change, but not sure if that helps your use case(s).

The spatial description as string or uri is quite common in dcat and datacite, and also allowed in iso19115.

Indeed the catalogue engine would need to have a geolocation api to capture the extent of the geolocation to be able to facilitate coordinate queries.

Unfortunately I haven't found online examples, however I face the challenge quite a lot when creating mcf's from excel sheets providing a limited subset of metadata properties, in that scenario providing a location by name is more easy then providing a bbox. However I could also implement the geolocation lookup as part of the mcf generation.

Implemented in #214