Skip to content

extents not easily extensible as the connections to the reference systems are not clear #168

Description

@m-mohr

I am struggling a bit with the extent in WFS collections. Currently, it has basically fours fields:

  • temporal
  • spatial
  • crs
  • trs

To me this looks a bit dirty as the crs and trs are not closely bound to the corresponding fields. For example, one could think about adding more extents, for example temperature or another temporal extent, which (I think) happens in Meteorology. How would that work?

Example:

{
      "extent": {
        "spatial": [
          180,
          -56,
          -180,
          83
        ],
        "temporal": [
          "2015-06-23T00:00:00Z",
          "2015-06-24T00:00:00Z",
        ],
        "temporal2": [
          "2015-06-24T00:00:00Z",
          "2015-06-25T00:00:00Z",
        ],
        "temperature": [0, 273.15],
        "crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
        "trs": "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian",
        "trs2": "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian",
        "temperature_rs": "http://www.opengis.net/def/uom/SI/kelvin"
      }
}

In this case one could argue that the temporal ref system is just the same, but you probably get the point here. It is also not easy to map the fields of the ref systems to the actual fields for the values.

Also, you can't easily go through all extents because crs and trs are no extents. You can separate them by data types (array/string), but that doesn't feel right.

So I'd think there should be a consistent way to add the reference systems to the actual extents and it should be considered that there are more extents to be added to the object of extents. I think that's why the extents are actually combined and not just a separate spatial_extent and temporal extent field, right?

This could be resolved like this:

{
      "extent": {
        "spatial": [
          180,
          -56,
          -180,
          83
        ],
        "temporal": [
          "2015-06-23T00:00:00Z",
          "2015-06-24T00:00:00Z",
        ],
        "temporal2": [
          "2015-06-24T00:00:00Z",
          "2015-06-25T00:00:00Z",
        ],
        "temperature": [0, 273.15]
      },
      "refsys": {
        "spatial": "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
        "temporal": "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian",
        "temporal2": "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian",
        "temperature": "http://www.opengis.net/def/uom/SI/kelvin"
      }
}

There are other ways to structure that and I am not saying that we should do exactly what the example shows, but it's should be more an inspiration.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions