Hierarchical Procedure

The hierarchical procedure functionality offers the possibility to register and query not just individual single sensors but sensor networks.


With the hierarchical procedure functionality sensor networks can be stored in the SOS, observations can be inserted for individual sensors of the sensor network and it is possible to request all observations for a sensor network. The following operations are effected by this functionality:
  • RegisterSensor
  • DescribeSensor
  • GetObservation


In this section the effected operations are described.


With the RegisterSensor operations it is possible to create sensor networks and add new sensors to existing sensor networks by defining the parent and/or child sensors in the sensor description. Parent sensors should be registered before they a linked in a child sensor description. Child sensors should be defined in the components section of the sensor system description. The SOS parses the information from the sensor description and inserts the data and the mapping into the database.

Definition of parent sensors in a SensorML-System document

To define the parent sensors, add a capabilities element to the sensor description with the attribute name="parentProcedures", a child element of type swe:SimpleDataRecord. Add gml:metaDataProperty elements for each parent sensor and set the parent sensor identifier as value of xlink:title.
Here is an example:

<sml:capabilities name="parentProcedures">
    <swe:SimpleDataRecord definition="urn:ogc:def:property:capabilities">
        <gml:metaDataProperty xlink:title="urn:ogc:object:feature:Station:52N:52n-station-1" />
        <gml:metaDataProperty xlink:title="urn:ogc:object:feature:Network:52N:52n-network-1" />

Definition of child sensors in a SensorML-System document

Child sensors should be defined in the components section of the sensor system description. This sections contains a sml:ComponentsList one or many sml:component where the contained element can be a sml:Component or sml:System.
Here is an example:
      <sml:component name="gaugeSensor">
                     <sml:Term definition="urn:ogc:def:identifier:OGC:uniqueID">
                  <sml:input name="gaugeHeight">
                     <swe:ObservableProperty definition="urn:ogc:def:phenomenon:OGC:1.0.30:waterlevel"/>
                  <sml:output name="gaugeHeight">
                     <swe:Quantity definition="urn:ogc:def:phenomenon:OGC:1.0.30:waterlevel">
                        <swe:uom code="cm"/>


When sending a DescribeSensor request, the SOS adds the parent and child sensors to the sensor description document. The parent sensors are added as described before and the child sensors could be added as described before as full descriptions or as referenced link. This depends on a configuration parameter that can be set in the SOS configuration file. The link is a KVP DescribeSensor request URL.
Here is an example:
        <sml:component name="component1" xlink:href="http:\\HOSTNAME:PORT\SOS_NAME\sos&request=DescribeSensor&service=SOS&version=1.0.0&procedure=SENSOR_IDENTIFIER&outputFormat=text/xml;subtype="sensorML/1.0.1"" />


The Hierarchical Procedure functionality allows users to send a GetObservation request with a parent sensor identifier. In this case the SOS returns the observations for the requested sensor (if available) and all of its child sensors.

Example requests

SOS 1.0.0

SOS 2.0


Topic revision: r5 - 09 Apr 2015, CarstenHollmann
Legal Notice | Privacy Statement

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback