Sensor Observation Service (SOS)
SOS has three requests:
- GetCapabilities
- DescribeSensor
- GetObservation
Unlike WFS, the SOS standard supports: (1) a time parameter, (2) sensor id parameters and (3) observed-properties parameters. This begins to explain why OOSTethys partners (see www.OOSTethys.org) chose SOS over WFS way back in 2006. That is, SOS uses standards that are much better at describing how and when a measurement is made. At the same time, the SOS standard supports some of the common functionality in WFS and WMS, such as the BBOX parameter.
Here is the GoMOOS GetCapabilities Request. No parameters needed.
Scroll down looking for <ows:Operation name="GetObservation"> then <ows:Parameter name="offering"> where the list of available "offerings" is listed e.g.ALL_PLATFORMS
A01
B01
....
These are the values that can be used in the offering=A01 parameter.
Scroll down a bit more to see the list of observedProperties:
<ows:Parameter name="observedProperty">
air_temperature
sea_water_salinity
sea_water_temperature
...
These are values that be used in the observedProperty=air_temperature parameter.
From the GetCapabilities response you can construct all the GetObservation and DesribeSensor URL's. In addition it contains information about the available times for which each sensor has data. Search for: <gml:TimePeriod gml:id="A01_valid_times">.
GetObservation has two parameters: offering and observedProperty
GetObservation latest air temperature for buoy A01.
GetObservation for salinity at A01 at time.
SOS supports a time parameter which can indicate one time or a time range. If the time parameter is missing the SOS will return the most recent observations. (The spec is a little fuzzy on this)time=time1 or time=time1/time2
GetObservation for air temperature at A01 for a time range.
GetObservation supports a bounding box parameter:
BBOX=minLongitude,minLatitude,maxLongitude,maxLatitude
A bounding box may not make no sense when the offering is a single fixed platform, but it can be useful for a moving platform (e.g., a drifter) or when filtering a query of ALL_PLATFORMS (which is a non-standard parameter used by OOSTethys partners).
BBOX query via the ALL_PLATFORMS offering returns buoy B01
Finally the observedProperty parameter can be a comma separated list of properites, e.g. current speed and direction for a sensor:
observedProperty=prop1,prop2
GetObservation latest wind speed and direction at A01.
DescribeSensor takes on parameter: procedure=A01
http://www.gomoos.org/cgi-bin/sos/V1.0/oostethys_sos.cgi?REQUEST=DescribeSensor&procedure=A01
OOSTethys Cookbooks
As of 21 May, OOSTethys Cookbooks use SOS 0.0.3 (www.OOSTethys.org/downloads). The SOS 1.0 Schemas were published in April 2008, and cookbooks should be updated by June 1, 2008. Also, the NOAA IOOS Program Office released their DIF SOS Schemas in early May 2008. These will be supported in the OOSTethys cookbooks. The OOSTethys group has been working on developing SOS 1.0 Cookbooks for PERL, Java and Python with support for data in ASCII files, relational databases and NetCDF. Updated cookbooks are coming soon!SOS Flexibility
As part of ESIP project, GoMOOS wrapped hosted GoMC Gulfwatch Contaminant Data in an SOS and it turned out to be relatively easy.GetCapabilities
http://www.gomoos.org/cgi-bin/sos/gulfwatch_sos.cgi
GetObservation for MABI COPPER 1993 thru 2001
http://www.gomoos.org/cgi-bin/sos/gulfwatch_sos.cgi?REQUEST=GetObservation&offering=MABI&observedProperty=COPPER&time=1993/2001






















