S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
8.2.2 Specialized Aggregates
Specialized aggregates are derived from AbstractDataArray and AbstractDataRecord. These are shown in Figure 8.3.
8.2.2.1 ConditionalValue
A ConditionalValue is a special case of a record whose value is dependent on one or more condition properties. Each condition can take AnyData, including perhaps a
Quantity e.g., an atmospheric pressure measured at a temperature of 25 degrees Celsius, a Text description of the condition e.g., sensitivity based on a given procedure, or a
Time e.g., calibration curve measured at a given time.
8.2.2.2 Curve
A Curve is a special case of an ArrayType that provides an ordered set of coordinate values with respect to one independent axis. The axes of the Curve are defined by the
SimpleDataRecord in the elementType property, with the first field in the SimpleDataRecord being considered as the independent axis, and the other fields
considered to be relative to this axis. As with DataArray, the curve’s coordinate values are provided by the values property whose encoding is described by the encoding
property.
For instance, when used inside of a process, the Curve provides a look-up-table by which one can map input values to output values.
8.2.2.3 NormalizedCurve
A NormalizedCurve allows one to further characterize a curve form using gains and biases. It also allows one to specify the intended extrapolation and interpolations
methods. A NormalizedCurve must not have more than two Coordinates.
A NormalizedCurve takes a Curve as the value of its function property, but adds inputGain, inputBias, outputGain, and outputBias as additional properties. These
properties alter the mapping of input values to output values according to the equation, based on the following algorithm:
normalizedInput = input inputGain + inputBias obtain normalizedOutput from the Curve Look-up-table based on normalizedInput
output = normalizedOutput outputGain + outputBias The interpolationMethod property will define the assumed methodology to be used to
interpolate between discrete values e.g. linear or spline interpolation, while the extrapolationMethod property defines the assumed methodology for extending values
beyond the bounds of the curve.
8.3 Position Data
Positional information is vital to the processing and utilization of sensor observations. Unlike many geospatial application that only require knowledge about location, the
georegistration and processing of sensor data often requires more complete knowledge about the full state of components within the sensor system. Furthermore, the state of
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
44
S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
many components within a sensor system is usually very dynamic, changing location and orientation with time. Thus, in SWE Common, positional information includes not only
location, but can also include orientation, velocity linear, acceleration linear, angular velocity, and angular acceleration, as well as a time tag.
We recognize that positional data is itself the result of observation. Thus, in SWE Common, positional information is treated the same as any other data Furthermore,
positional data can be output by some processes and can serve as input or parameters for others.
Figure 8.4. Conceptual model for Position Data 8.3.1 Position
Position is thus a special case of RecordType consisting of state properties and uses a Vector or SquareMatrix as the value of various state properties. Position can also be
expressed as a single state property which takes a Vector or more likely, a SquareMatrix as its value.
Position requires specification of its spatial-temporal coordinate frame. In addition to geodetic coordinate frames, engineering coordinate frames may be used. Positional data
is used to specify the position of a local coordinate frame to an external reference coordinate frame. These are specified by the localFrame and referenceFrame attributes,
respectively. Thus, the translational properties of a Position i.e. location, velocity, and acceleration describe the relationship of the local frame’s origin to the origin of the
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
45
S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
reference frame. The rotational properties i.e. orientation, angularVelocity, and AngularAcceleration define the relationship of the local frame’s axes to the equivalent
axes of the reference frame. Further discussion of Position, along with examples, will be provided in Section 11.
8.3.2 Envelope, GeoLocationArea
An Envelope specifies a region within a coordinate reference frame by specifying the lowerCorner and upperCorner of the box. A GeoLocationArea can consist of multiple
regions, each defined by its Envelope.
Figure 8.5. Conceptual models for Vectors and Matrices. 8.3.3 Vector
A Vector is a special case of a RecordType that takes a collection of coordinate properties of the type AnyNumerical e.g. Quantity, Count, or Time. In particular, a Vector
provides for optional localFrame and referenceFrame properties. If the coordinate frame definitions are present, the Vector coordinate values specify the relationship of the
localFrame to the referenceFrame, based on the definition property of the coordinates e.g. translation, rotation, velocity, etc.
Note: Vectors are most commonly used to describe location, orientation, velocity, and acceleration within temporal and spatial domains, but can be used to express relationships within any orthogonal frame.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
46
S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
8.3.4 SquareMatrix
A SquareMatrix is a special case of an ArrayType that is considered to be two- dimensional with an equal number of elements in both dimensions. SquareMatrix is
derived from AbstractMatrix and thus provides for optional localFrame and referenceFrame properties. If the coordinate frame definitions are present, the
SquareMatrix coordinate values specify the transformational relationship of the localFrame to the referenceFrame. For a SquareMatrix, the required elementCount must
equal the total number of elements in the matrix.
Example: a 3x3 square matrix would have an elementCount of 9.
The elementType for a SquareMatrix must be of type Quantity. The values can be encoded according to the encoding property.
Note: A SquareMatrix is typically be used to define a transformation matrix.
8.4 Temporal Aggregates