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.5 Encoding
Data aggregate values can be provided in various encodings, such as a text block encoded in ASCII, a binary block base 64 or true binary, or as a standard format defined by a
MIME-type e.g., jpeg image. The conceptual model for encoding is provided in Fig. 8.7.
8.5.1 TextBlock
The TextBlock encoding type is used to describe a list or stream of text values separated by specific characters, and encoded in ASCII, given in the order specified in the
dataComponents section. It is possible to define a tokenSeparator which should be used between values in the data structure, as well as a blockSeparator which should be used to
separate consecutive block of values each block corresponds to one instance of the data structure specified in the dataComponents section. Both tokenSeparator and
blockSeparator can be identical, but different values are useful if the transmission is error prone and needs frequent resynchronizations. The decimalSeparator property defines the
character that separates the integer part of the decimal number from the fractional part.
Figure 8.7. Encoding model.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
49
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.5.2 BinaryBlock
The BinaryBlock encoding type is used to describe a binary data stream containing values of quantities listed in the dataComponents section. The byteEncoding attribute specifies
the stream’s byte encoding method, which can be raw binary if data is available in an “out of band” fashion, but also base64 or base16 hex in order to allow the data to be
encapsulated in an XML document. The byteOrder attribute specifies if multiple bytes data types are written with the Most Significant Byte first bigEndian or Least
Significant Byte first littleEndian. The BinaryBlock object then takes a list of members that can be either Component or Block and which further define the parameters for the
encoding of each scalar value or block of data in the data structure..
Using Component, each scalar value can be attributed a dataType i.e., byte, short, int, long, float, double, ASCII-string, UTF-string, etc., a number of significantBits, a number
of paddingBits before and after the value, as well as encryption method used. Using Block, encoding parameters for a block of data such as an array or group can similarly
be specified, including byteLength, paddingBytes before and after the block as well as encryption and compression. This allows for defining the compression or encryption
scheme used for a block of data e.g. specifying JPEG compression for an image. In both Component and Block classes, the ref attribute is used to point to the corresponding data
component in the data structure defined previously.
8.5.3 StandardFormat
The StandardFormat encoding type allows one to encapsulate data presented in “well- known” formats such as jpeg or gif. This is done by specifying the mimeType of the
corresponding format. Note that in this case, the MIME type applies to the whole data structure.
8.5.4 MultiplexedStreamFormat
MultiplexedStreamFormat specifies any format that supports the transmittal of disparate data clusters within an IO stream. The format of the streaming data must be specified by
the type property.
Examples of multiplexed data stream formats include Transducer Model Language TML data streams or Advanced Streaming Format ASF.
8.5.5 XMLBlock
The set of encodings is completed by XMLBlock. The xmlElement attribute indicates the XML element that carries the data, designated using the standard xs:QName identifier.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
50
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.6 Phenomenon