w3c / sdw-sosa-ssn

Repository of the Spatial Data on the Web Working Group for the SOSA/SSN vocabulary
8 stars 5 forks source link

STA Example #118

Open KathiSchleidt opened 10 months ago

KathiSchleidt commented 10 months ago

@rob-metalinkage An example, to see if we can align SOSA and STA

Taken from the air quality STA at https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1 The @iot.selfLink will resolve to the shown JSON

sosa:Platform ~ STA:Thing:

{
      "@iot.selfLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)),
      "@iot.id": 139,
      "name": "Gaudenzdorf",
      "description": "Air quality station Gaudenzdorf",
      "properties": {
            "owner": ["http://luft.umweltbundesamt.at"](http://luft.umweltbundesamt.at/),
            "mobile": false,
            "localId": "STA.09.GAUD",
            "metadata": ["http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_Station"](http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_Station),
            "beginTime": "1977-04-01",
            "namespace": "AT.0008.20.AQ",
            "countryCode": "AT",
            "mediaMonitored": ["http://inspire.ec.europa.eu/codelist/MediaValue/air"](http://inspire.ec.europa.eu/codelist/MediaValue/air),
            "measurementRegime": ["http://inspire.ec.europa.eu/codelist/MeasurementRegimeValue/continuousDataCollection"](http://inspire.ec.europa.eu/codelist/MeasurementRegimeValue/continuousDataCollection)
      },
      "Locations@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/Locations"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/Locations),
      "HistoricalLocations@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/HistoricalLocations"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/HistoricalLocations),
      "Datastreams@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/Datastreams"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/Datastreams),
      "MultiDatastreams@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/MultiDatastreams"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Things(139)/MultiDatastreams)
}

sosa:HomogeneousObservationCollection ~ STA:Datastream

{
      "@iot.selfLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)),
      "@iot.id": 416,
      "name": "SPO.09.GAUD.5061.5.1",
      "description": "PM10 as Gaudenzdorf",
      "observationType": ["http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"](http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement),
      "unitOfMeasurement": {
            "name": "ug.m-3",
            "symbol": "ug.m-3",
            "definition": ["http://dd.eionet.europa.eu/vocabulary/uom/concentration/ug.m-3"](http://dd.eionet.europa.eu/vocabulary/uom/concentration/ug.m-3)
      },
      "observedArea": {
            "type": "Point",
            "coordinates": [
                  16.339331111,
                  48.187146944
            ]
      },
      "phenomenonTime": "2017-12-31T23:00:00Z/2023-11-16T21:00:00Z",
      "properties": {
            "owner": ["http://luft.umweltbundesamt.at"](http://luft.umweltbundesamt.at/),
            "localId": "SPO.09.GAUD.5061.5.1",
            "metadata": ["http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_SamplingPoint"](http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_SamplingPoint),
            "namespace": "AT.0008.20.AQ",
            "processType": ["http://inspire.ec.europa.eu/codeList/ProcessTypeValue/process"](http://inspire.ec.europa.eu/codeList/ProcessTypeValue/process),
            "resultNature": ["http://inspire.ec.europa.eu/codeList/ResultNatureValue/primary"](http://inspire.ec.europa.eu/codeList/ResultNatureValue/primary),
            "featureOfInterestLocalId": "SAM.09.GAUD.5061.5.1"
      },
      "ObservedProperty@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/ObservedProperty"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/ObservedProperty),
      "Sensor@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/Sensor"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/Sensor),
      "Thing@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/Thing"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/Thing),
      "Observations@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/Observations"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Datastreams(416)/Observations)
}

ObservedProperty

{
      "@iot.selfLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/ObservedProperties(3)"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/ObservedProperties(3)),
      "@iot.id": 3,
      "name": "PM10",
      "definition": ["http://dd.eionet.europa.eu/vocabulary/aq/pollutant/5"](http://dd.eionet.europa.eu/vocabulary/aq/pollutant/5),
      "description": "PM10",
      "properties": {
            "owner": ["http://dd.eionet.europa.eu"](http://dd.eionet.europa.eu/),
            "localId": 5,
            "recommendedUnit": "µg/m3"
      },
      "Datastreams@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/ObservedProperties(3)/Datastreams"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/ObservedProperties(3)/Datastreams),
      "MultiDatastreams@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/ObservedProperties(3)/MultiDatastreams"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/ObservedProperties(3)/MultiDatastreams)
}

Sensor

{
      "@iot.selfLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Sensors(140)"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Sensors(140)),
      "@iot.id": 140,
      "name": "GRIMM EDM 180",
      "description": "http://dd.eionet.europa.eu/vocabulary/aq/measurementequipment/GRIMM EDM 180",
      "encodingType": "application/pdf",
      "metadata": ["http://www.umweltbundesamt.at/fileadmin/site/umweltthemen/luft/PM_Aequivalenz_Dokumentation.pdf"](http://www.umweltbundesamt.at/fileadmin/site/umweltthemen/luft/PM_Aequivalenz_Dokumentation.pdf),
      "properties": {
            "owner": ["http://luft.umweltbundesamt.at"](http://luft.umweltbundesamt.at/),
            "method": ["http://dd.eionet.europa.eu/vocabulary/aq/measurementmethod/OPC-CMC"](http://dd.eionet.europa.eu/vocabulary/aq/measurementmethod/OPC-CMC),
            "localId": "SPP.09.GAUD.5061.5",
            "metadata": ["http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_SamplingPointProcess"](http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_SamplingPointProcess),
            "namespace": "AT.0008.20.AQ",
            "measurementtype": ["http://dd.eionet.europa.eu/vocabulary/aq/measurementtype/automatic"](http://dd.eionet.europa.eu/vocabulary/aq/measurementtype/automatic),
            "responsibleParty": {
                  "website": ["http://www.umweltbundesamt.at"](http://www.umweltbundesamt.at/),
                  "postCode": "1090",
                  "adminUnit": "Wien",
                  "individualName": "Iris Buxbaum",
                  "telephoneVoice": "+431313045964",
                  "organisationName": "Umweltbundesamt GmbH",
                  "locatorDesignator": "Spittelauer Laende 5",
                  "electronicMailAddress": "iris.buxbaum@umweltbundesamt.at"
            }
      },
      "Datastreams@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Sensors(140)/Datastreams"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Sensors(140)/Datastreams),
      "MultiDatastreams@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Sensors(140)/MultiDatastreams"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Sensors(140)/MultiDatastreams)
}

Observation

{
          "@iot.selfLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Observations(750380444)"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Observations(750380444)),
          "@iot.id": 750380444,
          "phenomenonTime": "2023-11-15T21:00:00Z/2023-11-15T22:00:00Z",
          "resultTime": null,
          "result": 3.3534498215,
          "Datastream@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Observations(750380444)/Datastream"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Observations(750380444)/Datastream),
          "FeatureOfInterest@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Observations(750380444)/FeatureOfInterest"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/Observations(750380444)/FeatureOfInterest)
}

FeatureOfInterest

{
      "@iot.selfLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/FeaturesOfInterest(1259)"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/FeaturesOfInterest(1259)),
      "@iot.id": 1259,
      "name": "FoI for location 139",
      "description": "Generated from location 139",
      "encodingType": "application/geo+json",
      "feature": {
            "type": "Point",
            "coordinates": [
                  16.3393311111111,
                  48.1871469444444
            ]
      },
      "Observations@iot.navigationLink": ["https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/FeaturesOfInterest(1259)/Observations"](https://airquality-frost.k8s.ilt-dmz.iosb.fraunhofer.de/v1.1/FeaturesOfInterest(1259)/Observations)
}

SensorThingsAPI_DatenModel_v1 1-900

From: https://datacoveeu.github.io/API4INSPIRE/sensorthingsapi/requestingData/STA-Data-Model.html

nmtoken commented 10 months ago

Is a feature really metadata, as in:

"metadata": "http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=aqd:AQD_SamplingPointProcess"

Perhaps it should point to a description of the feature like:

"metadata": "http://luft.umweltbundesamt.at/inspire/wfs?service=WFS&version=2.0.0&request=DescribeFeatureType&typeName=aqd:AQD_SamplingPointProcess"
KathiSchleidt commented 10 months ago

@nmtoken this data is originally provided via SOS as part of the Austrian Air Quality Reporting. Within API4INSPIRE, we harvest this and re-provide as STA, keeping the original values.

Not sure why I didn't link to DescribeFeatureType when I set up the original SOS ages ago, probably because the DescribeFeatureType response is strangely unsatisfying:

<xsd:schema elementFormDefault="qualified" targetNamespace="http://dd.eionet.europa.eu/schemaset/id2011850eu-1.0">
    <xsd:include schemaLocation="http://dd.eionet.europa.eu/schemas/id2011850eu-1.0/AirQualityReporting.xsd"/>
</xsd:schema>

Goal here is to see how STA aligns with O&M/OMS