Vector Class Requirements Class: Record Components Package Requirements Class

OGC 08-094r1 SWE Common Data Model Requirement http:www.opengis.netspecSWE2.0requml-record-componentsvector-coord-name-unique Req 40. Each “coordinate” attribute in a given instance of the “Vector” class shall be identified by a name that is unique to this instance. This class contains a mandatory “referenceFrame” attribute that identifies the frame of reference with respect to which the vector quantity is expressed. The coordinates of the vector correspond to values projected on the axes of this frame. The “referenceFrame” attribute is inherited by all components of the “Vector”, so that it shall not be redefined for each coordinate. However the “axisID” attribute shall be specified for each coordinate, in order to unambiguously indicate what axis of the reference frame it corresponds to. Requirement http:www.opengis.netspecSWE2.0requml-record-componentsvector-component-no-ref-frame Req 41. The “referenceFrame” attribute shall be ommited from all data components used to define coordinates of a “Vector” instance. Requirement http:www.opengis.netspecSWE2.0requml-record-componentsvector-component-axis-defined Req 42. The “axisID” attribute shall be specified on all data components used as children of a “Vector” instance. The optional “localFrame” attribute allows identifying the frame of interest, that is to say the frame we are positioning with the coordinate values associated to this component by opposition to the “referenceFrame” that specifies the frame with respect to which the values of the coordinates are expressed. Requirement http:www.opengis.netspecSWE2.0requml-record-componentsvector-local-frame-valid Req 43. The “localFrame” attribute of an instance of the “Vector” class shall have a different value than the “referenceFrame” attribute. Correctly identifying the local and reference frame is an important feature that allows chaining several relative positions, something that is essential to correctly compute accurate position of sensor data especially remote sensing data. 46 Copyright © 2011 Open Geospatial Consortium SWE Common Data Model OGC 08-094r1 Note: “Vector” aggregates are most commonly used to describe location, orientation, velocity, and acceleration within temporal and spatial domains, but can also be used to express relationships between any two coordinate frames. Example 1 A location vector is used to locate the origin of a frame of interest the local frame relative to the origin of a frame of reference the reference frame through a linear translation. It is composed of three coordinates of type “Quantity”, each with a definition indicating that the coordinate represents a length expressed in the desired unit. The definition of the “Vector” itself should also indicate that it is a “location vector”. In the case of a 3D location vector, each coordinate u 1 , u 2 , u 3 represents a distance along the x, y, z axes respectively. Frame of Reference Local Frame x y z u 1 u 2 u 3 Example 2 An orientation vector is used to indicate the rotation of the axes of a frame of interest the local frame relative to a frame of reference the reference frame. It is composed of three coordinates of type “Quantity” with a definition indicating an angular property. The “Vector” definition should indicate the type of orientation vector such as “Euler Angles” or “Quaternion”. Depending on the exact definition, the order in which the coordinates are listed in the vector may matter. Copyright © 2011 Open Geospatial Consortium 47 OGC 08-094r1 SWE Common Data Model

7.4 Requirements Class: Choice Components Package Requirements Class

http:www.opengis.netspecSWE2.0requml-choice-components Target Type Software Implementation or Encoding of the Conceptual Models Dependency http:www.opengis.netspecSWE2.0requml-simple-components As detailed in the following clauses, this package defines a class modeling a disjoint union component type. This aggregate type can be nested with other aggregate components to build complex structures. Requirement http:www.opengis.netspecSWE2.0requml-choice-componentsdependency-simple-components Req 44. An encoding or software passing the “Choice Components UML Package” conformance test class shall first pass the “Basic Types and Simple Components UML Packages” conformance test class. Requirement http:www.opengis.netspecSWE2.0requml-choice-componentspackage-fully-implemented Req 45. The encoding or software shall correctly implement all UML classes defined in the “Choice Components” package.

7.4.1 DataChoice Class

The “DataChoice” class also called Disjoint Union is modeled on the definition of ‘Choice’ from ISO 11404. It is a composite component that allows for a choice of child components. By opposition to records that carry all their fields simultaneously, only one item at a time can be present in the data when wrapped in a “DataChoice”. The following diagram shows the “DataChoice” class as implemented in the SWE Common Data Model: AbstractDataComponent «Type» DataChoice «property» + choiceValue: Category [0..1] + item: AbstractDataComponent [2..] Figure 7.27 – DataChoice Class 48 Copyright © 2011 Open Geospatial Consortium SWE Common Data Model OGC 08-094r1 This class implements a full composite pattern, so that each “item” can be any data component, including simple and aggregate types. The “choiceValue” attribute is used to represent the token value that would be present in the data stream and that indicates the actual choice selection before the corresponding data can be given i.e. knowing what choice item was selected ahead of time is necessary for proper decoding of encoded data streams. Each “item” attribute can thus take an instance of any concrete sub-class of “AbstractDataComponent”, which is the superset of all data component types defined in this standard. The name of each item shall be unique within a given “DataChoice” instance so that it can be used as a key to uniquely identify andor index each one of the choice components. Requirement http:www.opengis.netspecSWE2.0requml-choice-componentschoice-item-name-unique Req 46. Each “item” attribute in a given instance of the “DataChoice” class shall be identified by a name that is unique to this instance. The “DataChoice” component is used to describe a data structure or a part of the structure that can alternatively contain different types of objects. It can also be used to define the input of a service or process that allows a choice of structures as its input. Examples NMEA 0183 compatible devices can output several types of sentences in the same data stream. Some sentences include GPS location, while some others contain heading or status data. This can be described by a “DataChoice” which items represent all the possible types of sentences output by the device. A Sensor Planning Service SPS can define a choice in the tasking messages that the service can accept, thus leaving more possibilities to the users. Copyright © 2011 Open Geospatial Consortium 49