Guide to WMO Table Driven Code Forms
Guide to WMO Table Driven Code Forms
Guide to WMO Table Driven Code Forms
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
22 Group splitting method used (see <strong>Code</strong> <strong>Table</strong> 5.4)<br />
23 Missing value management used (see <strong>Code</strong> <strong>Table</strong> 5.5)<br />
24-27 Primary missing value substitute<br />
28-31 Secondary missing value substitute<br />
32-35 NG - Number of groups of data values in<strong>to</strong> which field is split<br />
36 Reference for group widths (see Note 12)<br />
37 Number of bits used for the group widths (after the reference value in octet 36<br />
has been removed)<br />
38-41 Reference for group lengths (see Note 13)<br />
42 Length increment for the group lengths (see Note 14)<br />
43-46 True length of last group<br />
47 Number of bits used for the scaled group lengths (after subtraction of the<br />
reference value given in octets 38-41 and division by the length increment<br />
given in octet 42)<br />
The corresponding Data Template is 7.2. Upon insertion of Template 7.2, the Data Section<br />
becomes:<br />
Octet No. Contents<br />
1-4 Length of section in octets (nn)<br />
5 Number of Section (“7”)<br />
6-xx NG group reference values (XI in the decoding formula), each of which is<br />
encoded using the number of bits specified in octet 20 of Data Representation<br />
Template 5.0. Bits set <strong>to</strong> zero shall be appended as necessary <strong>to</strong> ensure this<br />
sequence of numbers ends on an octet boundary.<br />
[xx+1]-yy NG group widths, each of which is encoded using the number of bits specified<br />
in octet 37 of Data Representation Template 5.2. Bits set <strong>to</strong> zero shall be<br />
appended as necessary <strong>to</strong> ensure this sequence of numbers ends on an octet<br />
boundary.<br />
[yy+1]-zz NG scaled group lengths, each of which is encoded using the number of bits<br />
specified in octet 47 of Data Representation Template 5.2. Bits set <strong>to</strong> zero<br />
shall be appended as necessary <strong>to</strong> ensure this sequence of numbers ends on<br />
an octet boundary. (see Note 14 of Data Representation Template 5.2)<br />
[zz+1]-nn Packed values (X2 in the decoding formula), where each value is a deviation<br />
from its respective group reference value.<br />
Before laying out where the various second order values, sub-parameters, counters, and what<br />
have you, go, it is appropriate <strong>to</strong> describe the complex packing scheme for grid point values in an<br />
algorithmic manner.<br />
In comparison with the description of the simple packing scheme for grid point values in the<br />
previous section, the encoding method for complex packing is the same up <strong>to</strong> part way through the<br />
fifth step, after the scaled values have been rounded <strong>to</strong> scaled integers but before the scaled<br />
integers are actually packed in<strong>to</strong> either pre-selected bit-length “words” or calculated bit-length<br />
“words”. The basic outline of complex packing is <strong>to</strong> scan through the array of scaled integers (one<br />
per grid point, or, possibly less than that if the Bit Map Section has been employed <strong>to</strong> discard<br />
some of the null value points) and seek out sub-sections exhibiting relatively low variability. One<br />
then finds the (local) minimum value in that sub-section and subtracts it from the (“first order”)<br />
integers in that sub-section, which leave a set of “second-order” integers. These numbers are<br />
than scanned <strong>to</strong> find the maximum value, which in turn is used <strong>to</strong> calculate the minimum number<br />
of bits necessary for a “word” <strong>to</strong> contain the sub-section set of second order numbers.<br />
The term “first order” in this context refers <strong>to</strong> the integer variables that result from subtracting the<br />
overall (*global) minimum from the original variables (in Step 3) and then doing all scaling and<br />
rounding; “second order” refers <strong>to</strong> the variables that result from subtracting the local minimum from<br />
the sub-set of first order variables. No further scaling is necessary or appropriate.<br />
40