Procedure Descriptions
Introduction
Since version 4.0, the
SensorObservationService contains a feature to generate a generic but valid and usable procedure description and to enrich procedure descriptions with information used for sensor discovery.
Back to main SOS page
Description Generation
The generic generation happens if a description is not available in the webapp folder or database for the requested procedure. Spatial and non-spatial procedures are supported and result in different SensorML documents (sml:System for spatial and sml:Process for non-spatial procedures).
For using this feature with an legacy database with non-spatial features, you only have to check the according settings in the administrator procedure description tab (e.g.
YOUR_SOS_WEBAPP/admin/settings#procedure_description
). Each setting should be clearly describe there (
If some settings are unclear to you, get in touch with the
community and help us to improve the documentation!). If using with spatial procedures, you need to activate the according entries in the procedure mapping files located in
YOUR_SOS_WEBAPP/WEB-INF/classes/mapping/core/Procedure.hbm.xml
.
25 <!-- optional properties, used for automatic sensor description creation if available -->
26 <!-- remove the comments around the property "geom" if the procedures have a geometry column -->
27 <!--
28 <property name="geom" type="org.hibernate.spatial.GeometryType">
29 <column name="geom" unique="true" />
30 </property>
31 -->
32 <!-- supports types bigDecimal and string -->
33 <!-- remove the comments around the next properties as need (leave altitude if only 2d coordinates are required) -->
34 <!--
35 <property name="longitude" type="bigDecimal">
36 <column name="longitude" unique="true" />
37 </property>
38 <property name="latitude" type="bigDecimal">
39 <column name="latitude" unique="true" />
40 </property>
41 <property name="srid" type="integer">
42 <column name="srid" unique="true" />
43 </property>
44 -->
45 <!--
46 <property name="altitude" type="bigDecimal">
47 <column name="altitude" unique="true" />
48 </property>
49 -->
Now, we are supporting additional columns in the procedure table with three different scenarios:
- A: one additional column with type
org.hibernate.spatial.GeometryType
- B: three additional column for 2D coordinates (the coordinates as
bigDecimal
and the SRS id as integer
): lat, lon, srid
- C: four additional columns for 3D coordinates (the coordinates as
bigDecimal
and the SRS id as integer
: lat, lon, alt, srid
: The names of the columns are not fixed but must match the settings in the mapping file.
Back to main SOS page
Enrichment of Procedure Descriptions
Since version 4.0, three different enrichment options are available:
- With offering information
- With feature information
- With discovery information
All there options can be combined with each other. They are applied to all typs of procedure descriptions (e.g. generated, file based, or form database). The idea behind these feature is to support clients with better procedure descriptions and support better procedure discovery.
When enabling the
With offering information option, the services adds an sml:capabilities element with all offerings, the procedure is related to. For each offering, an additional swe:field will be added to the swe:SimpleDataRecord.
1 <sml:capabilities name="offerings">
2 <swe:SimpleDataRecord>
3 <swe:field name="Offering 1 name">
4 <swe:Text definition="http://www.opengis.net/def/offering/identifier">
5 <swe:value>http://www.52north.org/test/offering/1</swe:value>
6 </swe:Text>
7 </swe:field>
8 </swe:SimpleDataRecord>
9 </sml:capabilities>
When enabling the
With feature information option, the service adds an sml:capabilities element with all features, the procedure has performed observations on.
1 <sml:capabilities name="featuresOfInterest">
2 <swe:SimpleDataRecord>
3 <swe:field name="featureOfInterestID">
4 <swe:Text definition="http://www.opengis.net/def/featureOfInterest/identifier">
5 <swe:value>http://www.52north.org/test/featureOfInterest/1</swe:value>
6 </swe:Text>
7 </swe:field>
8 </swe:SimpleDataRecord>
9 </sml:capabilities>
When enabling the
With discovery option, the service adds several elements like keywords, additional identifications and classifications, an optional procedure contact and the observed spatial bounding box for the procedure (not only of one offering but of all). The type of information and its encoding is implemented according to
OGC#09-033 'SensorML Profile for Discovery' (
: Now, it is an engineering report.).
1 <sml:keywords>
2 <sml:KeywordList>
3 <sml:keyword>http://www.52north.org/test/offering/1</sml:keyword>
4 <sml:keyword>http://www.52north.org/test/featureOfInterest/1</sml:keyword>
5 <sml:keyword>SHORT_NAME_EXAMPLE</sml:keyword>
6 <sml:keyword>LONG_NAME_EXAMPLE</sml:keyword>
7 <sml:keyword>Optional: PROCEDURE_TYPE</sml:keyword>
8 <sml:keyword>Optional: weather</sml:keyword>
9 <sml:keyword>http://www.52north.org/test/procedure/1</sml:keyword>
10 <sml:keyword>http://www.52north.org/test/observableProperty/1</sml:keyword>
11 </sml:KeywordList>
12 </sml:keywords>
13 <sml:identification>
14 <sml:IdentifierList>
15 [...]
16 <sml:identifier name="longName">
17 <sml:Term definition="urn:ogc:def:identifier:OGC:1.0:longName">
18 <sml:value>LONG_NAME_EXAMPLE</sml:value>
19 </sml:Term>
20 </sml:identifier>
21 <sml:identifier name="shortName">
22 <sml:Term definition="urn:ogc:def:identifier:OGC:1.0:shortName">
23 <sml:value>SHORT_NAME_EXAMPLE</sml:value>
24 </sml:Term>
25 </sml:identifier>
26 </sml:IdentifierList>
27 </sml:identification>
28 <sml:classification>
29 <sml:ClassifierList>
30 <sml:classifier name="intendedApplication">
31 <sml:Term definition="urn:ogc:def:classifier:OGC:1.0:application">
32 <sml:value>weather</sml:value>
33 </sml:Term>
34 </sml:classifier>
35 <sml:classifier name="procedureType">
36 <sml:Term definition="urn:ogc:def:classifier:OGC:1.0:procedureType">
37 <sml:value>PROCEDURE_TYPE</sml:value>
38 </sml:Term>
39 </sml:classifier>
40 </sml:ClassifierList>
41 </sml:classification>
42 [...]
43 <sml:capabilities name="observedBBOX">
44 <swe:DataRecord>
45 <swe:field name="observedBBOX">
46 <swe:Envelope referenceFrame="4326">
47 <swe:lowerCorner>
48 <swe:Vector>
49 <swe:coordinate name="easting">
50 <swe:Quantity axisID="x">
51 <swe:value>51.883906</swe:value>
52 <swe:uom code="degree"/>
53 </swe:Quantity>
54 </swe:coordinate>
55 <swe:coordinate name="northing">
56 <swe:Quantity axisID="y">
57 <swe:value>7.727958</swe:value>
58 <swe:uom code="degree"/>
59 </swe:Quantity>
60 </swe:coordinate>
61 </swe:Vector>
62 </swe:lowerCorner>
63 <swe:upperCorner>
64 <swe:Vector>
65 <swe:coordinate name="easting">
66 <swe:Quantity>
67 <swe:value>51.883906</swe:value>
68 <swe:uom code="degree"/>
69 </swe:Quantity>
70 </swe:coordinate>
71 <swe:coordinate name="northing">
72 <swe:Quantity axisID="y">
73 <swe:value>7.727958</swe:value>
74 <swe:uom code="degree"/>
75 </swe:Quantity>
76 </swe:coordinate>
77 </swe:Vector>
78 </swe:upperCorner>
79 </swe:Envelope>
80 </swe:field>
81 </swe:DataRecord>
82 </sml:capabilities>
83 [...]
84 <sml:contact>
85 <sml:ContactList>
86 <sml:member>
87 <sml:ResponsibleParty>
88 <sml:individualName>TBA</sml:individualName>
89 <sml:organizationName>52North</sml:organizationName>
90 <sml:positionName>TBA</sml:positionName>
91 <sml:contactInfo>
92 <sml:phone>
93 <sml:voice>+49(0)251/396 371-0</sml:voice>
94 </sml:phone>
95 <sml:address>
96 <sml:deliveryPoint>Martin-Luther-King-Weg 24</sml:deliveryPoint>
97 <sml:city>Münster</sml:city>
98 <sml:postalCode>48155</sml:postalCode>
99 <sml:country>Germany</sml:country>
100 </sml:address>
101 <sml:onlineResource xlink:href="http://52north.org/swe"/>
102 </sml:contactInfo>
103 </sml:ResponsibleParty>
104 </sml:member>
105 </sml:ContactList>
106 </sml:contact>
The contact information is generated from the service provider information and can be en- or disabled. In addition, the classification element in general and the both entries
intendedApplication
and
procedureType
can be en- or disabled.
Back to main SOS page