getObservation(..) can be used to retrieve data from a SOS instance by sending a GetObservation request to the given SOS.

getObservationById(..) can be used to retrieve data from a SOS instance by sending a GetObservationById request to the given SOS.

These methods take a variety of inputs (see slot definitions), of which only offering is mandatory for GetObservation operation, and the observationId for GetObservationById operation.

This document also describes classes (and their construction functions) for the operations.

SosGetObservation(service, version, offering, observedProperty, responseFormat,
                  srsName = as.character(NA), eventTime = list(),
                  procedure = as.character(NA), featureOfInterest = NULL,
                  result = NULL, resultModel = as.character(NA),
                  responseMode = as.character(NA), BBOX = as.character(NA),
                  valueReferenceTemporalFilter = as.character(NA))
SosGetObservationById(service, version, observationId, responseFormat,
                      srsName = as.character(NA), resultModel = as.character(NA),
                      responseMode = as.character(NA))

Arguments

service

The service attribute of the request, e.g. SOS.

version

The version attribute of the request, e.g. 1.0.0.

observationId

The value of the ObservationId element in the request, e.g. o_12345, which is to be obtained. This could have been obtained by the client via a URL in a feed, alert, or some other notification.

offering

The offering element value in the request, e.g. "temperatures". All other parameters are depending on the selected offering. This must be a character string for an object of class SosObservationOffering-class obtained by sosOfferings(..); can be a list for SOS 2.0.0 with both character strings and objects.

observedProperty

A list of values for observedProperty elements in the request, e.g. "urn:property:AirTemperature". IDs of phenomena are advertised in capabilities document.

responseFormat

The responseFormat element value in the request, e.g. text/xml;subtype="om/1.0.0". ID of the output format to be used for the requested data. The supported output formats are listed in the selected offering capabilities.

srsName

The srsName attribute of the request, e.g. urn:ogc:def:crs:EPSG:4326.

eventTime

A list of objects of class SosEventTime-class which are added as eventTime elements to the request. Allows a client to request observations from a specific instant, multiple instances or periods of time in the past, present and future. The supported range is listed in the selected offering capabilities.

procedure

A list of procedure identifiers added to the request as procedure elements.

featureOfInterest

An object of class SosFeatureOfInterest added to the request as the featureOfInterest element, or NULL. Specifies target feature for which observations are requested.

result

An object of class OgcComparisonOps-class added to the request as result element, or NULL, or any element that can be encoded using encodeXML(...) and then be added to an XML document with addChildren(...). Filtering: Only report observations where the result matches this expression.

resultModel

The resultModel element of the request, e.g. om:Measurement, which is an identifier of the result model to be used for the requested data. The resultModel values supported by a service are listed in the contents section of the service metadata, identified as QName values.

responseMode

The responseMode element of the request, e.g. inline, which allows the client to request the form of the response.

BBOX

A bounding box to be used only with KVP encoding in request via HTTP GET, in the format minlon,minlat,maxlon,maxlat,srsURI?, with the spatial reference system being optional. This element is ignored for POST requests, use the parameter featureOfInterest instead, see SosBindings.

valueReferenceTemporalFilter

The property name used in a temporal filter for SOS 2.0 KVP requests, ignore for SOS 1.0.0.

Methods

signature(sos = "SOS", offering = "SosObservationOffering") or signature(sos = "SOS", offering = "character")

Request observation data from the given SOS for the given offering (either character identifier or an object of class SosObservationOffering).

signature(sos = "SOS", observationId = "character")

Request observation data from the given SOS for the given observation identifier.

Objects from the Class

Objects can be created by calls to the construction functions of the form SosGetObservationById(...) or SosGetObservationById(...).

Slots

BBOX:

Object of class "character", specifies a bounding box for spatial filtering to be applied in GET requests (only), see SosBindings

eventTime:

Object of class "list", specifies the time period(s) for which observations are requested.

featureOfInterest:

Object of class "SosFeatureOfInterestOrNULL", specifies the feature for which observations are requested. This can either be represented by a reference to a feature ID advertised in the capabilities document or can be a spatial constraint

observationId:

Object of class "character", the Id of the requested observation.

observedProperty:

Object of class "list", specifies the phenomenon or phenomena for which observations are requested.

offering:

For SOS 1.0.0: object of class "character" for SOS 2.0.0 a list, specifies the offering advertised in the GetCapabilities document.

procedure:

Object of class "list", procedure parameter specifies the sensor system(s) for which observations are requested.

request:

Object of class "character", the name of the request.

responseFormat:

Object of class "character", specifies the desired resultFormat MIME content type for transport of the results.

responseMode:

Object of class "character", specifies whether results are requested in-line, out-of-band, as an attachment, or if this is a request for an observation template that will be used for subsequent calls to GetResult.

resultModel:

Object of class "character", specifies the QName of the root element of an O&M Observation or element in the appropriate substitution group.

result:

Object of class "ANY", provides a place to put in OGC filter expressions based on property values. This instructs the SOS to only return observations where the result matches this expression.

service:

Object of class "character", service type identifier.

srsName:

Object of class "character", defines the spatial reference system that should be used for any geometries that are returned in the response. This must be one of the advertised values in the offering specified in gml:srsName elements.

valueReferenceTemporalFilter:

Object of class "character", the property name used in a temporal filter for SOS 2.0 KVP requests.

version:

Object of class "character", specification version for operation.

Extends

SosGetObservation: Class "OwsServiceOperation", directly.

SosGetObservationById: Class "OwsServiceOperation", directly.

Details

Please consult the specification for details on possible contents of the request.

Value

Constructor functions: An object of class SosGetObservation-class or SosGetObservationById-class respectively.

Request functions: A list of or an object of class OmObservationCollection-class or OmObservation-class depending on the returned content.

References

See OGC 06-009r6 section 8.4, or the XSD schema file at http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd.

See OGC 06-009r6 section 10.1, or the XSD schema file at http://schemas.opengis.net/sos/1.0.0/sosGetObservationById.xsd.

See also

SosGetObservation-class, SosGetObservationById-class

Examples

if (FALSE) { # request observations mySOSpox <- SOS(url = "http://sensorweb.demo.52north.org/sensorwebtestbed/service/pox", binding = "POX", useDCPs = FALSE) myOffering <- sosOfferings(mySOS)[["ws2500"]] period <- sosCreateTimePeriod(sos = mySOS, begin = as.POSIXct("2015/11/01"), end = as.POSIXct("2015/11/02")) eventTime <- sosCreateEventTimeList(period) nov2015 <- getObservation(sos = mySOSpox, offering = myOffering, eventTime = eventTime) # request observation by identifier and get the data obsId <- getObservationById(sos = mySOSpox, observationId = "http://www.52north.org/test/observation/1") sosResult(obsId, coordinates = TRUE) } showClass("SosGetObservation")
#> Class "SosGetObservation" [package "sos4R"] #> #> Slots: #> #> Name: offering observedProperty #> Class: character list #> #> Name: responseFormat srsName #> Class: character character #> #> Name: eventTime procedure #> Class: list character #> #> Name: featureOfInterest result #> Class: SosFeatureOfInterestOrNULL OgcComparisonOpsOrXMLOrNULL #> #> Name: resultModel responseMode #> Class: character character #> #> Name: BBOX valueReferenceTemporalFilter #> Class: character character #> #> Name: service request #> Class: character character #> #> Name: version #> Class: character #> #> Extends: "OwsServiceOperation"
showClass("SosGetObservationById")
#> Class "SosGetObservationById" [package "sos4R"] #> #> Slots: #> #> Name: observationId responseFormat srsName resultModel #> Class: character character character character #> #> Name: responseMode service request version #> Class: character character character character #> #> Extends: "OwsServiceOperation"
responseFormat <- "text/xml;subtype=&quot;om/1.0.0&quot;" obsReq <- SosGetObservation(service = "SOS", version = "1.0.0", offering = "temperatures", observedProperty = list("urn:property:AirTemperature"), responseFormat = responseFormat) print(obsReq)
#> Object of class SosGetObservation: service: SOS , version: 1.0.0 , offering: temperatures #> observered property: urn:property:AirTemperature #> responseFormat(s): text/xml;subtype=&quot;om/1.0.0&quot; , responseMode(s): NA #> procedure(s) NA #> feature(s) of interest #> event time: #> result: NULL #> srsName: NA #> resultModel(s): NA #> temporal value reference: NA #>
obsByIdReq <- SosGetObservationById(service = "SOS", version = "1.0.0", observationId = "o_12345", responseFormat = responseFormat) print(obsByIdReq)
#> Object of class SosGetObservationById: service: SOS , version: 1.0.0 #> Obsvervation ID: o_12345 #> ResponseFormat(s): text/xml;subtype=&quot;om/1.0.0&quot; , responseMode(s): NA , srsName: NA , resultModel(s): NA
if (FALSE) { sos <- SOS("http://mysos.net/sos") encodeXML(obsByIdReq, sos = sos) }