System Types classification

istSOS 3 supports various system types classification. Before inserting a new sensor you should analyse which system type best fit your sensor network configuration. As a reference istSOS follows the Guidelines for the use of Observations & Measurements and Sensor Web Enablement-related standards in INSPIRE.

Here we will cover some of the documented O&M Design Patterns:

  • Point TimeSeries Observation
  • Trajectory Observation
  • Profile Observation
  • Specimen TimeSeries Observation

As you si all supported configuration are “insitu”. That suppose that the measurements are stricly connected with the plase where the observation are sampled.

Point TimeSeries Observation

systemType: pointTimeSeriesObservation

An example of such case could be an air quality monitoring station providing ozone concentration measurements. The featureOfInterest represents the direct surrounds of the air intake (i.e. the air bubble surrounding the air intake). The location for the measurements is provided through this featureOfInterest.

InsertSensor example:

<swes:InsertSensor
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:swe="http://www.opengis.net/swe/1.0.1"
    xmlns:sml="http://www.opengis.net/sensorML/1.0.1"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    service="SOS"
    version="2.0.0">
    <swes:procedureDescriptionFormat>http://www.opengis.net/sensorML/1.0.1</swes:procedureDescriptionFormat>
    <swes:procedureDescription>
        <sml:SensorML version="1.0.1">
            <sml:member>
                <sml:System>
                    <sml:identification>
                        <sml:IdentifierList>
                            <sml:identifier name="uniqueID">
                                <sml:Term definition="urn:ogc:def:identifier:OGC:uniqueID">
                                    <sml:value>breganzona</sml:value>
                                </sml:Term>
                            </sml:identifier>
                        </sml:IdentifierList>
                    </sml:identification>
                    <sml:classification>
                        <sml:ClassifierList>
                            <sml:classifier name="systemType">
                                <sml:Term definition="urn:ogc:def:classifier:x-istsos:1.0:systemType">
                                    <sml:value>insitu-fixed-point</sml:value>
                                </sml:Term>
                            </sml:classifier>
                        </sml:ClassifierList>
                    </sml:classification>
                    <sml:capabilities name="offering">
                        <swe:SimpleDataRecord>
                            <swe:field name="offeringID">
                                <swe:Text>
                                    <swe:value>breganzona</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                    <sml:capabilities name="featuresOfInterest">
                        <swe:SimpleDataRecord>
                            <swe:field name="featureOfInterestID">
                                <swe:Text>
                                    <swe:value>breganzona</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                    <sml:location>
                        <gml:Point
                                gml:name="breganzona"
                                srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
                            <gml:coordinates>46.001470,8.919284,510.3</gml:coordinates>
                        </gml:Point>
                    </sml:location>
                </sml:System>
            </sml:member>
        </sml:SensorML>
    </swes:procedureDescription>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:meteo:air:temperature</swes:observableProperty>
    <swes:metadata>
        <sos:SosInsertionMetadata>
            <sos:observationType>
                http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement
            </sos:observationType>
            <sos:featureOfInterestType>
                http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint
            </sos:featureOfInterestType>
        </sos:SosInsertionMetadata>
    </swes:metadata>
</swes:InsertSensor>

InsertObservation example:

<sos:InsertObservation service="SOS" version="2.0.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:swe="http://www.opengis.net/swe/2.0"
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:om="http://www.opengis.net/om/2.0"
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <sos:offering>breganzona</sos:offering>
    <sos:observation>
        <om:OM_Observation id="f1">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime>
                <gml:TimeInstant gml:id="phenomenonTime">
                    <gml:timePosition>2017-05-08T16:50:00.000+00:00</gml:timePosition>
                </gml:TimeInstant>
            </om:phenomenonTime>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="breganzona"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:meteo:air:temperature"/>
            <om:featureOfInterest xlink:href="breganzona"/>
            <om:result xsi:type="gml:MeasureType" uom="°C">22.4</om:result>
        </om:OM_Observation>
    </sos:observation>
    <sos:observation>
        <om:OM_Observation id="f2">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime>
                <gml:TimeInstant gml:id="phenomenonTime">
                    <gml:timePosition>2017-05-08T17:00:00.000+00:00</gml:timePosition>
                </gml:TimeInstant>
            </om:phenomenonTime>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="breganzona"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:meteo:air:temperature"/>
            <om:featureOfInterest xlink:href="breganzona"/>
            <om:result xsi:type="gml:MeasureType" uom="°C">22.1</om:result>
        </om:OM_Observation>
    </sos:observation>
    <sos:observation>
        <om:OM_Observation>
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime>
                <gml:TimeInstant gml:id="phenomenonTime">
                    <gml:timePosition>2017-05-08T17:10:00.000+00:00</gml:timePosition>
                </gml:TimeInstant>
            </om:phenomenonTime>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="breganzona"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:meteo:air:temperature"/>
            <om:featureOfInterest xlink:href="breganzona"/>
            <om:result xsi:type="gml:MeasureType" uom="°C">20.8</om:result>
        </om:OM_Observation>
    </sos:observation>
</sos:InsertObservation>

Mobile TimeSeries Observation

systemType: mobileTimeSeriesObservation

InsertSensor example:

<swes:InsertSensor
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:swe="http://www.opengis.net/swe/1.0.1"
    xmlns:sml="http://www.opengis.net/sensorML/1.0.1"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    service="SOS"
    version="2.0.0">
    <swes:procedureDescriptionFormat>http://www.opengis.net/sensorML/1.0.1</swes:procedureDescriptionFormat>
    <swes:procedureDescription>
        <sml:SensorML version="1.0.1">
            <sml:member>
                <sml:System>
                    <sml:identification>
                        <sml:IdentifierList>
                            <sml:identifier name="uniqueID">
                                <sml:Term definition="urn:ogc:def:identifier:OGC:uniqueID">
                                    <sml:value>taxi_42</sml:value>
                                </sml:Term>
                            </sml:identifier>
                        </sml:IdentifierList>
                    </sml:identification>
                    <sml:classification>
                        <sml:ClassifierList>
                            <sml:classifier name="systemType">
                                <sml:Term definition="urn:ogc:def:classifier:x-istsos:1.0:systemType">
                                    <sml:value>mobileTimeSeriesObservation</sml:value>
                                </sml:Term>
                            </sml:classifier>
                        </sml:ClassifierList>
                    </sml:classification>
                    <sml:capabilities name="offering">
                        <swe:SimpleDataRecord>
                            <swe:field name="offeringID">
                                <swe:Text>
                                    <swe:value>taxi_42</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                    <sml:capabilities name="featuresOfInterest">
                        <swe:SimpleDataRecord>
                            <swe:field name="featureOfInterestID">
                                <swe:Text>
                                    <swe:value>area_123</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                </sml:System>
            </sml:member>
        </sml:SensorML>
    </swes:procedureDescription>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:vehicle:occupied</swes:observableProperty>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:vehicle:location</swes:observableProperty>
    <swes:metadata>
        <sos:SosInsertionMetadata>
            <sos:observationType>
                http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_TruthObservation
            </sos:observationType>
            <sos:observationType>
                http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_GeometryObservation
            </sos:observationType>
            <sos:featureOfInterestType>
                http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint
            </sos:featureOfInterestType>
        </sos:SosInsertionMetadata>
    </swes:metadata>
</swes:InsertSensor>

InsertObservation example:

<sos:InsertObservation service="SOS" version="2.0.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:swe="http://www.opengis.net/swe/2.0"
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:om="http://www.opengis.net/om/2.0"
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <sos:offering>taxi_42</sos:offering>
    <sos:observation>
        <om:OM_Observation id="f1">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime>
                <gml:TimeInstant gml:id="phenomenonTime">
                    <gml:timePosition>2017-05-08T16:50:00.000+00:00</gml:timePosition>
                </gml:TimeInstant>
            </om:phenomenonTime>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="taxi_42"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:vehicle:occupied"/>
            <om:featureOfInterest xlink:href="area_123"/>
            <om:result xsi:type="xs:boolean">true</om:result>
        </om:OM_Observation>
    </sos:observation>
    <sos:observation>
        <om:OM_Observation id="f2">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_GeometryObservation"/>
            <om:phenomenonTime xlink:href="#phenomenonTime"/>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="taxi_42"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:vehicle:location"/>
            <om:featureOfInterest xlink:href="area_123"/>
            <om:result xsi:type="gml:GeometryPropertyType">
                <gml:Point>
                    <gml:pos srsName="http://www.opengis.net/def/crs/EPSG/0/4326">46.00936 8.93369</gml:pos>
                </gml:Point>
            </om:result>
        </om:OM_Observation>
    </sos:observation>
</sos:InsertObservation>

Trajectory Observation

systemType: trajectoryObservation

An example of such case could be a moving ship making sea surface temperature measurements, the featureOfInterest being the trajectory of the ship.

The actual locations of individual measurements along the trajectory are provided with the results. All measurements are located within the trajectory with either relative position (from start of the trajectory) or absolute position (i.e. coordinates). Each measurement is made at a separate point along the trajectory and at a separate time. The result is therefore a set of time, location, value triples.

InsertSensor example:

<swes:InsertSensor
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:swe="http://www.opengis.net/swe/1.0.1"
    xmlns:sml="http://www.opengis.net/sensorML/1.0.1"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    service="SOS"
    version="2.0.0">
    <swes:procedureDescriptionFormat>http://www.opengis.net/sensorML/1.0.1</swes:procedureDescriptionFormat>
    <swes:procedureDescription>
        <sml:SensorML version="1.0.1">
            <sml:member>
                <sml:System>
                    <sml:identification>
                        <sml:IdentifierList>
                            <sml:identifier name="uniqueID">
                                <sml:Term definition="urn:ogc:def:identifier:OGC:uniqueID">
                                    <sml:value>rally_car</sml:value>
                                </sml:Term>
                            </sml:identifier>
                        </sml:IdentifierList>
                    </sml:identification>
                    <sml:classification>
                        <sml:ClassifierList>
                            <sml:classifier name="systemType">
                                <sml:Term definition="urn:ogc:def:classifier:x-istsos:1.0:systemType">
                                    <sml:value>pointTimeSeriesObservation</sml:value>
                                </sml:Term>
                            </sml:classifier>
                        </sml:ClassifierList>
                    </sml:classification>
                    <sml:capabilities name="offering">
                        <swe:SimpleDataRecord>
                            <swe:field name="offeringID">
                                <swe:Text>
                                    <swe:value>rally_car</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                </sml:System>
            </sml:member>
        </sml:SensorML>
    </swes:procedureDescription>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:vehicle:speed</swes:observableProperty>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:track:linear:reference</swes:observableProperty>
    <swes:metadata>
        <sos:SosInsertionMetadata>
            <sos:observationType>
                http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement
            </sos:observationType>
            <sos:featureOfInterestType>
                http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingCurve
            </sos:featureOfInterestType>
        </sos:SosInsertionMetadata>
    </swes:metadata>
</swes:InsertSensor>

InsertObservation example:

<sos:InsertObservation service="SOS" version="2.0.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:swe="http://www.opengis.net/swe/2.0"
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:om="http://www.opengis.net/om/2.0"
    xmlns:sams="http://www.opengis.net/samplingSpatial/2.0"
    xmlns:sam="http://www.opengis.net/sampling/2.0"
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <sos:offering>rally_car</sos:offering>
    <sos:observation>
        <om:OM_Observation id="f1">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_SWEArrayObservation"/>
            <om:phenomenonTime>
                <gml:TimePeriod gml:id="phenomenonTime">
                    <gml:beginPosition>2017-05-08T17:20:00.000+00:00</gml:beginPosition>
                    <gml:endPosition>2017-05-08T17:52:00.000+00:00</gml:endPosition>
                </gml:TimePeriod>
            </om:phenomenonTime>
            <om:resultTime>
                <gml:TimeInstant gml:id="resultTime">
                    <gml:timePosition>2017-05-08T18:00:00.000+00:00</gml:timePosition>
                </gml:TimeInstant>
            </om:resultTime>
            <om:procedure
                xlink:href="rally_car"/>
            <om:observedProperty xsi:nil='true'/>
            <om:featureOfInterest>
                <sams:SF_SpatialSamplingFeature>
                    <gml:identifier codeSpace="">valcolla</gml:identifier>
                    <sam:type xlink:href="http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingCurve"/>
                    <sam:sampledFeature xlink:href="http://www.opengis.net/def/nil/OGC/0/unknown"/>
                    <sams:shape>
                        <gml:LineString srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
                            <gml:posList>
                                46.059635780296801 8.994412092552219 46.060223825774337 8.997433745462159 46.061954461930128 9.000778955031786 46.06495448547475 9.005033244195106 46.066509521680928 9.008050796801951 46.065846643737828 9.010422990575318 46.065912236333581 9.012169847132256 46.06592614850306 9.012784218735879 46.066923672693697 9.008999831286239 46.067917033510746 9.008737565812728 46.068673414212633 9.007725212298796 46.070999153792634 9.010312802428976 46.072772201831029 9.012205991986022 46.074170109016421 9.015187329520275 46.074700400369935 9.019080982349889 46.076601642069143 9.023046826918122 46.077825485555252 9.027187168534967 46.07929559015394 9.031399530717648 46.079326028609522 9.034018529337294 46.078700654662896 9.035293130598477 46.078959935115314 9.036044124675852 46.078540561804964 9.037066152953063 46.077856870654962 9.037692562337673 46.077980771506844 9.038471910437849 46.077860094099819 9.039050161054439 46.07779309353549 9.040599628752972 46.078389159353407 9.039809076068785 46.078906753937488 9.039791937317942 46.079274302086354 9.039253238709604 46.079697371159966 9.039556548771477 46.080512766293474 9.039160264513486
                            </gml:posList>
                        </gml:LineString>
                    </sams:shape>
                </sams:SF_SpatialSamplingFeature>
            </om:featureOfInterest>
            <om:result
                xsi:type="swe:DataArrayPropertyType">
                <swe:DataArray>
                    <swe:elementCount>
                        <swe:Count>
                            <swe:value>10</swe:value>
                        </swe:Count>
                    </swe:elementCount>
                    <swe:elementType name="defs">
                        <swe:DataRecord>
                            <swe:field name="phenomenonTime">
                                <swe:Time definition="http://www.opengis.net/def/property/OGC/0/PhenomenonTime">
                                    <swe:uom xlink:href="http://www.opengis.net/def/uom/ISO-8601/0/Gregorian"/>
                                </swe:Time>
                            </swe:field>
                            <swe:field>
                                <swe:Quantity definition="urn:ogc:def:parameter:x-istsos:1.0:track:linear:reference">
                                    <swe:uom code="m"/>
                                </swe:Quantity>
                            </swe:field>
                            <swe:field>
                                <swe:Quantity definition="urn:ogc:def:parameter:x-istsos:1.0:vehicle:speed">
                                    <swe:uom code="km/h"/>
                                </swe:Quantity>
                            </swe:field>
                        </swe:DataRecord>
                    </swe:elementType>
                    <swe:encoding>
                        <swe:TextEncoding
                            decimalSeparator="."
                            tokenSeparator=","
                            blockSeparator="@"/>
                    </swe:encoding>
                    <swe:values>
                        2017-05-08T17:23:46.146+00:00,500,154.2@
                        2017-05-08T17:28:10.234+00:00,1000,84.1@
                        2017-05-08T17:30:23.765+00:00,1500,184.15@
                        2017-05-08T17:34:11.432+00:00,2000,123.4@
                        2017-05-08T17:36:43.534+00:00,2500,40.3@
                        2017-05-08T17:39:23.653+00:00,3000,80.23@
                        2017-05-08T17:45:43.853+00:00,3500,75.21@
                        2017-05-08T17:46:25.833+00:00,4000,98.2@
                        2017-05-08T17:49:35.734+00:00,4500,140.4@
                        2017-05-08T17:52:12.657+00:00,5629.4,189.8
                    </swe:values>
                </swe:DataArray>
            </om:result>
        </om:OM_Observation>
    </sos:observation>
</sos:InsertObservation>

Profile Observation

systemType: profileObservation

An example of such case could be a ship measuring the salinity at varying depths along a water column, the featureOfInterest being a vertical water column at one given ship location. The actual locations of individual measurements along the water column are provided with the result. All measurements are located within the water column with either relative position (from start of water column) or absolute position (i.e. coordinates including the depth).

Specimen Observation

systemType: specimenObservation

An example of such case would be a sample or specimen taken from the sampled feature and analysed once ex situ in an external laboratory.

InsertSensor example:

<swes:InsertSensor
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:swe="http://www.opengis.net/swe/1.0.1"
    xmlns:sml="http://www.opengis.net/sensorML/1.0.1"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    service="SOS"
    version="2.0.0">
    <swes:procedureDescriptionFormat>http://www.opengis.net/sensorML/1.0.1</swes:procedureDescriptionFormat>
    <swes:procedureDescription>
        <sml:SensorML version="1.0.1">
            <sml:member>
                <sml:System>
                    <sml:identification>
                        <sml:IdentifierList>
                            <sml:identifier name="uniqueID">
                                <sml:Term definition="urn:ogc:def:identifier:OGC:uniqueID">
                                    <sml:value>chemical_analisys</sml:value>
                                </sml:Term>
                            </sml:identifier>
                        </sml:IdentifierList>
                    </sml:identification>
                    <sml:capabilities name="offering">
                        <swe:SimpleDataRecord>
                            <swe:field name="offeringID">
                                <swe:Text definition="urn:ogc:def:identifier:OGC:offeringID">
                                    <swe:value>chemical_analisys</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                    <sml:capabilities name="featuresOfInterest">
                        <swe:SimpleDataRecord>
                            <swe:field name="featureOfInterestID">
                                <swe:Text>
                                    <swe:value>lugano_lake_buoy_1</swe:value>
                                </swe:Text>
                            </swe:field>
                        </swe:SimpleDataRecord>
                    </sml:capabilities>
                    <sml:location>
                        <gml:Point
                                gml:name="lugano_lake_buoy_1"
                                srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
                            <gml:coordinates>46.00138,8.96231,270.5</gml:coordinates>
                        </gml:Point>
                    </sml:location>
                </sml:System>
            </sml:member>
        </sml:SensorML>
    </swes:procedureDescription>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:water:analysis</swes:observableProperty>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:water:analysis:ph</swes:observableProperty>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:water:analysis:as</swes:observableProperty>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:water:analysis:conductibility</swes:observableProperty>
    <swes:observableProperty>urn:ogc:def:parameter:x-istsos:1.0:water:analysis:nh4</swes:observableProperty>
    <swes:metadata>
        <sos:SosInsertionMetadata>
            <sos:observationType>http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement</sos:observationType>
            <sos:observationType>http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_ComplexObservation</sos:observationType>
            <sos:featureOfInterestType>http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_Specimen</sos:featureOfInterestType>
        </sos:SosInsertionMetadata>
    </swes:metadata>
</swes:InsertSensor>

InsertObservation example:

<sos:InsertObservation service="SOS" version="2.0.0"
    xmlns:sos="http://www.opengis.net/sos/2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:swe="http://www.opengis.net/swe/2.0"
    xmlns:swes="http://www.opengis.net/swes/2.0"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:om="http://www.opengis.net/om/2.0"
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <sos:offering>chemical_analisys</sos:offering>
    <sos:observation>
        <om:OM_Observation id="f1">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime>
                <gml:TimeInstant gml:id="phenomenonTime">
                    <gml:timePosition>2017-05-08T16:50:00.000+00:00</gml:timePosition>
                </gml:TimeInstant>
            </om:phenomenonTime>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="chemical_analisys"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:water:analysis:ph"/>
            <om:featureOfInterest xlink:href="sampling-256"/>
            <om:result xsi:type="gml:MeasureType" uom="pH">7.9</om:result>
        </om:OM_Observation>
    </sos:observation>
    <sos:observation>
        <om:OM_Observation id="f2">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime xlink:href="#phenomenonTime"/>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="chemical_analisys"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:water:analysis:as"/>
            <om:featureOfInterest xlink:href="sampling-256"/>
            <om:result xsi:type="gml:MeasureType" uom="µg/l">1.2</om:result>
        </om:OM_Observation>
    </sos:observation>
    <sos:observation>
        <om:OM_Observation id="f3">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime xlink:href="#phenomenonTime"/>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="chemical_analisys"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:water:analysis:conductibility"/>
            <om:featureOfInterest xlink:href="sampling-256"/>
            <om:result xsi:type="gml:MeasureType" uom="µS/cm">376</om:result>
        </om:OM_Observation>
    </sos:observation>
    <sos:observation>
        <om:OM_Observation id="f4">
            <om:type
                xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
            <om:phenomenonTime xlink:href="#phenomenonTime"/>
            <om:resultTime xlink:href="#phenomenonTime"/>
            <om:procedure xlink:href="chemical_analisys"/>
            <om:observedProperty
                xlink:href="urn:ogc:def:parameter:x-istsos:1.0:water:analysis:nh4"/>
            <om:featureOfInterest xlink:href="sampling-256"/>
            <om:result xsi:type="gml:MeasureType" uom="µg/l">3.29</om:result>
        </om:OM_Observation>
    </sos:observation>
</sos:InsertObservation>

Specimen TimeSeries Observation

systemType: specimenTimeSeriesObservation

An example of such case would be a sample or specimen taken from the sampled feature and re-analysed at regular intervals ex situ in an external laboratory. This could apply to the measurement of the biochemical oxygen demand (BOD) in waste water treatment plants; it is measured by taking one sample and studying BOD evolution over time in a laboratory. While the usual result requested is BOD 5 (5 difference of O 2 consumption by micro-organisms after 5 days) or BOD 21, in some cases you may require the entire time series.