Der Sensor Observation Service ist einer der Web-Dienste, die vom Open Geospatial Consortium (OGC) zur Realisierung des Sensor Web Enablement entwickelt wurde. Über den SOS können Echtzeitdaten sowie historische Zeitreihen eines Sensors standardisiert über das Internet abgerufen werden.
Desweiteren werden vom SOS Informationen über den Dienst selber und über die angeschlossene Sensorik bereit gestellt. Diese Informationen werden in der Regel nur einmal benötigt und auch nur dann, wenn es sich um einen "fremden" Dienst handelt - also wenn man Daten von einer unbekannten Quelle abrufen möchte und keinerlei Wissen über die angeschlossenen Sensoren und deren Messwerte hat.
Die Anfragen an den Dienst sind in der Regel XML-basiert, beruhen auf einem standardiesierten Schema und werden per Post-Request an den Dienst geschickt. Für einige Operationen sind allerdings auch GET-Requests zulässig, in denen die Parameter per Key-Value-Pair übermittelt werden.
Um die Daten eines Dienstes strukturieren zu können, wurde folgende Unterteilung festgelegt:
Der Datenbestand des Dienstes ist in einem oder mehreren Offerings unterteilt. In einem Offering werden Daten zusammengestellt, die einen räumlichen oder logischen Zusammenhang haben. Diesem Offering ist im optimalen Fall ein Feature zugeordnet. Das Feature repräsentiert das bemessene Objekt und enthält die Geo-Informationen für das Offering. Dem Feature (oder Offering) sind eindeutig Sensoren (Procedures) zugeordnet, die bestimmte Messgrößen liefern (Phenomena).
Die Operationen, die ein SOS zur Verfügung stellt, gliedern sich in 3 Bereiche:
- Core Profile - Das sind die Operationen, die ein SOS zwingend zur Verfügung stellen muss
- Transactional Profile - Hier finden sich Operationen, um das SOS dynamisch zu erweitern
- Enhanced Profile - Hier finden sich einerseits Operationen, um mehr Informationen über die bemessenen Objekte und die Bemessungsmethode zu erfahren, aber auch Operationen, um die Anfragen an den Dienst zu erweitern bzw. zu verfeinern
Core Profile:
- GetCapabilities - Liefert eine XML-Basierte, ausführliche Beschreibung des Dienstes. Dabei unterteilt sich das Dokument in 5 Sektionen:
- Eine Sektion mit dem Namen des SOS, einem kurzen Abstract, einigen KeyWords und einigen Regeln zu dem Umgang mit dem Dienst
- Eine Sektion mit der Beschreibung des Dienstes, in der im Wesentlichen steht, wer diesen Dienst betreibt und seine Kontaktdaten.
- Eine Sektion mit den Metadaten. Dort steht, welche Operationen von diesem Dienst zur Verfügung gestellt werden und welche Parameter für die einzelnen Operationen erlaubt sind. Desweiteren stehen dort auch die Adressen der einzelnen Operationen ( in der Regel ist es die selbe Adresse wie der Dienst selbst ) und welche Formate (GET / POST) von diesem Dienst unterstützt werden.
- Eine Filter-Sektion. Hier wird definiert, welche Filter ( räumlich, numerisch und logisch ) von dem Dienst zur Verfügung gestellt werden und welche Operatoren für die einzelnen Filter erlaubt sind.
- Die Content-Sektion. Hier sind dann die Offerings aufgelistet - das heißt, hier steht dann, welche Sensoren vorhanden sind, welche Phenomena gemessen werden und welchen Features diese zugeordnet sind.
- GetObservation - Mit dieser Anfrage bekommt man die Messdaten sowie die zu den abgefragten Sensoren gehörenden Metadaten wie zum Beispiel die Maßeinheit; Beide werden in dem Observations&Measurements-Format (O&M) zurückgeliefert.
- DescribeSensor - Mit dieser Abfrage bekommt man ein XML-Dokument im SensorML-Format geliefert, wo die Metadaten des Sensors aufgeführt sind. Dazu gehören unter Anderem der ( letzte ) Standort und die Messgrößen ( Phenomena ), die er liefert.
Transactional Profile:
- RegisterSensor - Mit dieser Operation kann man zur Laufzeit neue Sensoren in dem SOS-Dienst registrieren.
- InsertObservation - Mit dieser Operation kann man für registrierte Sensoren neue Messwerte über den SOS hinzufügen.
Enhanced Profile:
- GetResult - Ist eine Vereinfachung der GetObservation-Abfrage. Bei GetObservation werden außer den Messwerten noch die Zugehörigen metadaten übermittelt. Wenn sich diese jedoch in einem festen System nie ändern, ist das ein unnötiger Overhead und kostet nur Bandbreite. Für diesen Fall wurde GetResult entwickelt, denn auf diese Anfrage hin liefert der SOS lediglich die Messwerte der gewünschten Sensoren.
- GetFeatureOfInterest - liefert das Informationen über das Geoobjekt, dessen Eigenschaften von Sensoren überwacht werden, in der Geography Markup Language (GML) kodiert zurück
- GetFeatureOfInterestTime - liefert Zeitperioden, in denen Messwerte für ein bemessenes Objekt im SOS vorhanden sind.
- DescribeFeatureType - liefert den Typ des beobachteten Geoobjekts zurück (XML-Schema)
- DescribeObservationType - liefert den Typ der Beobachtung zurück (XMLSchema, z. B. om:Measurement)
- GetObservationById - ermöglicht die Abfrage einer Beobachtung per ID
- DescribeResultModel - liefert das XML-Schema des Messwertes; dies ist vor allem bei komplexen Messwerten, wie z. B. multispektralen Daten, von Bedeutung.
Add comment