Skip to content
FELIMON GAYANILO edited this page Jul 29, 2015 · 2 revisions

The Open Geospatial Consortium (OGC) Sensor Observation Services (SOS) is a data exchange standard that defines web service interface to an information system to extract data. GCOOS installed the IOOS customized build of the 52North SOS version (the other designated option of IOOS is ncSOS).

The GCOOS SOS installation is continually updated as the need arise (see below for relevant links) to keep abreast with technology and patches. Although it allows for various types of data request, bindings and operations, the three primary data request types are: GetCapabilities, DescribeSensor and GetObservation.

GetCapabilities

This request returns the service metadata. Due to high number of sensors that GCOOS is serving, it can take around 10 seconds to return results from a GetCapabilities request.

Purpose:	Returns a metadata for this service
Parameters:	request = GetCapabilities
            service = SOS
            version = 1.0.0 || 2.0.0
Example:	http://data.gcoos.org:8080/52nSOS/sos/kvp?service=SOS&request=GetCapabilities&AcceptVersions=1.0.0
Details:	https://wiki.52north.org/bin/view/SensorWeb/GetCapabilities

DescribeSensor

Unlike the GetCapabilities, this request type (i.e. DescribeSensor) extracts only the details about the platform and associated sensors. This is used largely to plot the stations since it returns data faster than GetCapabilities.

Purpose:	Return sensor characteristics
Parameters:	request = DescribeSensor
            outputFormat = text/xml;subtype="sensorML/1.0.0/profiles/ioos_sos/1.0"
            procedure = URN of sensor system (see GetCapabilities output for sensor's URN)
            service = SOS
            version = 1.0.0 {this is in reference to sensorML ver. 1.0.0}
Example:	http://data.gcoos.org:8080/52nSOS/sos/kvp?service=SOS&version=1.0.0&request=DescribeSensor&procedure=urn:ioos:station:nerrs:apaebwq&outputFormat=text/xml; subtype="sensorML/1.0.1/profiles/ioos_sos/1.0"
Details:	https://wiki.52north.org/bin/view/SensorWeb/DescribeSensor

GetObservation

This operation allows the extractionof data according to OGC Observation and Measurement specifications.

Purpose:	Returns observation data for a sensor on a station within a user-defined time frame
Parameters:	request = GetObservation
            service = SOS
            version = 1.0.0
            offering = URI advertized (see getCapabilities output for offerings; e.g. urn:ioos:network:gcoos:all)
            observedproperty={comma separated URIs; see GetCapabilities}
            procedure={URIs for procedures; see GetCapabilities}
            responseformat=text/xml; subtype="om/1.0.0/profiles/ioos_sos/1.0" || application/json || {MIME content type}
            {optional} eventtime=(latest||DateTime || DateTime1/DateTime2)

Example:	To get the latest data: 
            http://data.gcoos.org:8080/52nSOS/sos/kvp?service=SOS&version=1.0.0&request=GetObservation&offering=urn:ioos:network:gcoos:all&observedProperty=http://mmisw.org/ont/cf/parameter/air_temperature&procedure=urn:ioos:station:disl:bsca1&responseFormat=text/xml; subtype="om/1.0.0/profiles/ioos_sos/1.0"&eventtime=latest 

            To get data for a time period (WARNING! Unlike getting the latest data, extracting data for a period can take time (average is 4 minutes):
            http://data.gcoos.org:8080/52nSOS/sos/kvp?service=SOS&version=1.0.0&request=GetObservation&offering=urn:ioos:network:gcoos:all&observedProperty=http://mmisw.org/ont/cf/parameter/air_temperature&procedure=urn:ioos:station:disl:bsca1&responseFormat=text/xml; subtype="om/1.0.0/profiles/ioos_sos/1.0"&eventtime=2014-03-15T00:00:00/2014-03-15T12:00:00

            To get a response in JSON (NOTE: Only version 2.0 supports JSON response format and works only for XML POST. Also, this call can take about a minute to return couple of months of results) as eventtime is not supported:
            http://data.gcoos.org:8080/52nSOS/sos/kvp?service=SOS&version=2.0.0&request=GetObservation&offering=urn:ioos:network:gcoos:all&observedProperty=http://mmisw.org/ont/cf/parameter/air_temperature&procedure=urn:ioos:station:disl:bsca1&responseFormat=application/json

Details:	https://wiki.52north.org/bin/view/SensorWeb/GetObservation for more on this request type.

NOTE: It is important to read through the documentation to get the most out of GetObservation request type.

Other Links of Interest: