mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
3898 lines
161 KiB
HTML
Executable File
3898 lines
161 KiB
HTML
Executable File
|
|
<!-- saved from url=(0064)http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html -->
|
|
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
|
|
<title>Guide to GRIB</title>
|
|
<meta name="Template" content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
|
|
</head>
|
|
|
|
<body link="#0000ff" vlink="#800080">
|
|
<b><font face="Univers">
|
|
|
|
</font><p align="CENTER"><font face="Univers"></font>PART II</p>
|
|
|
|
<p align="CENTER">A GUIDE TO THE CODE FORM FM 92-IX Ext. GRIB</p>
|
|
|
|
<p align="CENTER">Edition 1</p>
|
|
</b>
|
|
|
|
<p align="CENTER">TABLE OF CONTENTS</p>
|
|
|
|
<p><a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Introduction">Introduction</a><br>
|
|
<a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#GRIB">GRIB Code Form</a><br>
|
|
<a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Section0">Section 0: The indicator section</a><br>
|
|
<a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Section1">Section 1: The product definition section</a><br>
|
|
<a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Section2">Section 2: Grid description section <br>
|
|
</a><a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Section3">Section 3: Bit map section</a><br>
|
|
<a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Section4">Section 4: Binary data section</a><br>
|
|
<a href="http://www.wmo.int/pages/prog/www/WDM/Guides/Guide-binary-2.html#Section5">Section 5: End section</a></p>
|
|
|
|
<p align="JUSTIFY"> <b><a name="Introduction">INTRODUCTION</a></b></p><b>
|
|
</b>
|
|
|
|
<p align="JUSTIFY">The World Meteorological Organization (WMO) Commission for Basic
|
|
Systems (CBS) Extraordinary Meeting Number VIII (1985) approved a general purpose,
|
|
bit-oriented data exchange format, designated FM 92-VIII Ext. GRIB (GRIdded Binary). It is
|
|
an efficient vehicle for transmitting large volumes of gridded data to automated centers
|
|
over high-speed telecommunication lines using modern protocols. By packing information
|
|
into the GRIB code, messages (or records - the terms are synonymous in this context) can
|
|
be made more compact than character oriented bulletins, which will produce faster
|
|
computer-to-computer transmissions. GRIB can equally well serve as a data storage format,
|
|
generating the same efficiencies relative to information storage and retrieval devices.</p>
|
|
|
|
<p align="JUSTIFY">Changes and extensions to GRIB were approved at the regular meeting of
|
|
the WMO/CBS in February 1988; additional changes were introduced at the CBS/WGDM/Sub-Group
|
|
on Data Representation (SGDR) meetings in May 1989 and in October 1990. The 1990 changes
|
|
were of such structural magnitude as to require a new Edition of GRIB, Edition 1, which
|
|
this document describes. The Sub-Group made further augmentations and interpretations on
|
|
Data Representation and Codes (SGDRC) in September 1993, with approval by the WGDM in
|
|
February 1994. These changes did not result in a new Edition to GRIB, but did change some
|
|
of the Tables, resulting a new Version number for them. This brings us now to Table
|
|
Version 2. The changes from Version 1 were mainly additions of new parameters or more
|
|
precise definition of existing ones.</p>
|
|
|
|
<p align="JUSTIFY">It is not anticipated that there will be any large-scale structural
|
|
changes to GRIB for at least four to five years, or more. The SGDRC is undertaking a
|
|
thorough review of the present and future requirements that GRIB is supposed to satisfy.
|
|
The plan is to design a major revision of GRIB capable of accommodating these requirements
|
|
and more, without "straining" the structure of the data representation form.
|
|
Some things are getting a little strained even now. See below. </p>
|
|
|
|
<p align="JUSTIFY">Note: the Edition number is placed in the same location, relative to
|
|
the start of the GRIB message, for all Editions. Thus, decoding programs can detect which
|
|
Edition was used to construct a particular GRIB message and behave accordingly. This is
|
|
useful for archives of messages encoded in earlier Editions or during transition periods.
|
|
Of course, this requires that data centers retain copies of older editions of the code,
|
|
and older versions of the parameter tables.</p>
|
|
|
|
<p align="JUSTIFY">Each GRIB record intended for either transmission or storage contains a
|
|
single parameter with values located at an array of grid points, or represented as a set
|
|
of spectral coefficients, for a single level (or layer), encoded as a continuous bit
|
|
stream. Logical divisions of the record are designated as "sections", each of
|
|
which provides control information and/or data. A GRIB record consists of six sections,
|
|
two of which are optional:</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<p>(0) Indicator Section<br>
|
|
(1) Product Definition Section (PDS)<br>
|
|
(2) Grid Description Section (GDS) - optional<br>
|
|
(3) Bit Map Section (BMS) - optional<br>
|
|
(4) Binary Data Section (BDS)<br>
|
|
(5) '7777' (ASCII Characters)</p>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="JUSTIFY">Although the Grid Description Section is indicated as optional, it is
|
|
highly desirable that it be included in all messages. That way there will be no question
|
|
about just what is the "correct" geographical grid for a particular field.</p>
|
|
|
|
<p align="JUSTIFY">Most centers require bulletin headers to enable them to receive,
|
|
identify, and switch messages. The standard WMO abbreviated heading for GRIB is described
|
|
in Appendix A.</p>
|
|
|
|
<p align="JUSTIFY">In this documentation, certain symbols are used to clarify the contents
|
|
of octets (groups of eight consecutive binary bits). If unadorned letters are used, they
|
|
are symbolic and their meanings are described in the text; a decimal number is simply
|
|
printed as is; a character or string of characters is represented inside single quote
|
|
marks. International Alphabet No. 5, which is identical in its essential elements to the
|
|
U.S. National Standard 7-bit ASCII, is used for character representation in the GRIB code.
|
|
</p>
|
|
|
|
<p align="JUSTIFY">Octets are numbered consecutively from the start of each section; bits
|
|
within an octet are also numbered from left (the most significant bit) to right (the least
|
|
significant bit). Thus an octet with bit 8 set to the value 1 would have the integer value
|
|
1; bit 7 set to one would have a value of 2, etc.</p>
|
|
|
|
<p align="JUSTIFY">The numbering of Tables in the following text corresponds to the
|
|
description of GRIB in the WMO Manual on Codes. Some additional tables not found in the
|
|
WMO Manual are indicated by letters. These, generally, contain information unique to a
|
|
particular processing center.</p>
|
|
|
|
<p align="JUSTIFY">A caveat: The Official International Documentation for GRIB is the just
|
|
referenced Manual on Codes. This document is, in part, intended to be a guide to the use
|
|
of GRIB and may not include all of the features currently found in the Manual. The
|
|
features described here are intended to be a completely consistent sub-set of the full WMO
|
|
documentation; if there are any discrepancies the Manual on Codes is the final authority.</p>
|
|
<b>
|
|
|
|
<p align="JUSTIFY">DATA PACKING METHODS</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY">The code form represents numeric data as a series of binary digits
|
|
(bits). Such data representation is independent of any particular machine representation;
|
|
by convention data lengths are measured in octets. Data are coded as binary integers using
|
|
the minimum number of bits required for the desired precision. Numeric values, with units
|
|
as shown in Table 2, may first be scaled by a power of ten to achieve an appropriate
|
|
decimal precision, a reference value is subtracted from them to reduce redundancy and
|
|
eliminate negative values, and they may then be further scaled by a power of two to pack
|
|
them into a pre-selected word length. The two scaling operations are independent; which,
|
|
or both, are used in any given case depends upon choices made as to the method of packing.
|
|
See below.</p>
|
|
|
|
<p align="JUSTIFY">The representation of a single value is such that:</p>
|
|
|
|
<p align="CENTER">Y x 10<sup>D</sup> = R + (X x 2<sup>E</sup>)</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<p>Where</p>
|
|
<p>Y = original or unpacked value; units as in Table 2;<br>
|
|
D = decimal scale factor, to achieve desired precision<br>
|
|
(sign bit, followed by a 15-bit integer);<br>
|
|
R = reference value (32 bits);<br>
|
|
X = internal value (No. of bits varies for each record);<br>
|
|
E = binary scale factor for variable bit word length packing<br>
|
|
(sign bit, followed by a 15-bit integer). </p>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="JUSTIFY">The reference value (R) is the minimum value of the (possibly)
|
|
decimally scaled data that is being encoded. </p>
|
|
|
|
<p align="JUSTIFY">R is placed in the Binary Data Section in four octets as a single
|
|
precision floating-point number:</p>
|
|
|
|
<p align="JUSTIFY">sAAAAAAA BBBBBBBB BBBBBBBB BBBBBBBB</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<p>where s = sign bit, encoded as 0 => positive, 1 => negative<br>
|
|
A = 7-bit binary integer, the characteristic<br>
|
|
B = 24-bit binary integer, the mantissa.</p>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p>The appropriate formula to recover the value of R is:</p>
|
|
|
|
<p align="CENTER">R = (-1)<sup>s</sup> x 2<sup>(-24)</sup> x B x 16<sup>(A-64)</sup></p>
|
|
|
|
|
|
<p align="JUSTIFY">This formula is the standard IBM representation for a single precision
|
|
(real) floating point number. (Consideration is being given to using the IEEE floating
|
|
point representation in the future, in a later Edition of GRIB.)</p>
|
|
|
|
<p align="JUSTIFY">If second order (or "complex") packing is used (see the
|
|
description of that later on) the internal value, X, will be made up of two values, a
|
|
"local minimum value", Xi, and a "second order packed value", Xj.
|
|
There will be one Xj for each grid point and a variable number of Xi values. This will all
|
|
become clear later on when we get to the description of second-order packing.</p>
|
|
|
|
<p align="JUSTIFY">What follows is a description, slightly simplified, of the process that
|
|
one would go through to pack a (meteorological) field into a GRIB message, using
|
|
"simple packing". It includes some explanations of why certain steps are taken,
|
|
some of the consequences, and what choices have to be made. Some of the choices are
|
|
interrelated; the relationships should be clear when the explanation is done. The
|
|
additional features of complex or "second order" packing will be dealt with in a
|
|
later section.</p>
|
|
|
|
<p align="JUSTIFY">Give that a full field is available, the first step, if necessary, is
|
|
to convert the units of the parameter into those shown in Table 2, the SI standard units,
|
|
also known as the mks system. Some of the units may seem a little peculiar (kg/m<sup>2</sup>,
|
|
for example, for precipitation - 1 kg/m<sup>2 </sup>is equivalent to a water depth of 1
|
|
mm); others may seem inappropriate (Pa for pressure, for example, implies substantially
|
|
greater precision than is typical in meteorological usage; inverse seconds are not nearly
|
|
precise enough for divergence and vorticity) but they are all self consistent. The
|
|
precision of the parameters, as actually packed in a message, can be set to any desired
|
|
degree through the appropriate use of the power-of-10 ("D") scaling and the
|
|
power-of-2 ("E") scaling. Just how this comes about will be described
|
|
momentarily.</p>
|
|
|
|
<p align="JUSTIFY">At this point there is a choice to be made. If it is desired to use a
|
|
pre-selected bit word length for the packed variables, then just proceed on to the next
|
|
step. However, if a variable bit word length is to be used, where the word length is
|
|
adjusted to accommodate the data values, then it is necessary to undertake the
|
|
power-of-ten scaling. The D value should be selected such that, when the original data, in
|
|
the SI units of Table 2, is multiplied by 10<sup>D</sup>, the integer part of the result
|
|
will have enough precision to contain all the appropriate information of the variable.
|
|
Anticipating things a little bit, the (scaled) value will be rounded to an integer as a
|
|
part of the packing process; thus the "significant part" of the value of the
|
|
variable has to be moved to the left of the decimal point prior to the rounding.
|
|
Temperature might be scaled with D=1, thus changing the units to deci-degrees; pressure,
|
|
on the other hand, might be scaled with D=-2, thus actually reducing the precision to
|
|
hectoPascals (mb), a more reasonable meteorological precision; vorticity would be scaled
|
|
up by D=8, and so on.</p>
|
|
|
|
<p align="JUSTIFY">The second step in the packing operation is to scan through the field,
|
|
which may or may not have been "D-scaled" at this point, find the minimum value
|
|
of the parameter, and subtract that minimum - the reference value, R - from all the data
|
|
points, leaving a residual of non-negative numbers. This step has two benefits. The first
|
|
of these is convenience - making all the data points non-negative bypasses problems with
|
|
different computer hardware that represent negatives in various ways: 1's complement, 2's
|
|
complement, signed positive integers, whatever. The GRIB message is rendered just that
|
|
much more machine independent by being non-negative throughout.</p>
|
|
|
|
<p align="JUSTIFY">The second benefit is more consequential: it can result in a
|
|
substantial compression of the bulletin size without any loss of information content. If a
|
|
field has an appreciable bias away from zero, the residuals formed by the minimum removal
|
|
operation will all be much smaller numbers than otherwise. Thus they will need fewer bits
|
|
to contain them when they are, eventually, packed as integers.</p>
|
|
|
|
<p align="JUSTIFY">The third step is simply to scan through the field of residuals and
|
|
find the maximum value. </p>
|
|
|
|
<p align="JUSTIFY">At this point another choice must be made, similar to the one made
|
|
previously. This time, if a variable bit word length is to be used, then it is necessary
|
|
to calculate how many bits (per word or per data grid point) are going to be needed to
|
|
contain that largest data value, when the latter has been rounded to an integer. Recall
|
|
that at the previous decision point, the variables were power-of-ten ("D")
|
|
scaled such that a rounding operation will preserve all the significant part of the
|
|
information. Discovering how many bits are needed is a simple scan through a table of
|
|
powers of two, of course. The power-of-two-scaling is not employed and E is set equal to
|
|
0. Then go on to the fourth step.</p>
|
|
|
|
<p align="JUSTIFY">If, alternatively, it is desired to use a pre-selected bit word length
|
|
for the packed variables, the data must now be scaled, this time by a power of two (the
|
|
"E" scaling), sufficient to either reduce the maximum value down to just fit
|
|
into the available number of bits, or enlarge the value to just fit. This latter step
|
|
takes care of the problem of small numbers where the precision is all in the fractional
|
|
part of the number. How much precision is retained, for the eventual rounding, is a
|
|
function of the pre-selected bit word length and the "typical" range, or maximum
|
|
value with the minimum removed, of the particular variable. The choice of bit word length,
|
|
which is made ahead of time, must be made with full knowledge of the characteristics of
|
|
the particular variable that is to be packed and a prior assumption of how much precision
|
|
needs to be retained for the largest likely value.</p>
|
|
|
|
<p align="JUSTIFY">The fourth step is to round all the values to integers, now that they
|
|
have all been scaled to appropriate units, and pack them in the specified bit length
|
|
words. </p>
|
|
|
|
<p align="JUSTIFY">The last step is then to set up the various identification fields and
|
|
put the GRIB bulletin in proper form. We shall turn to this "proper form" in the
|
|
next section.</p>
|
|
|
|
<p align="JUSTIFY">We have ended up with two alternate ways to construct a GRIB messages:
|
|
a fixed bit word length method and a variable bit word length method. What are the
|
|
relative advantages or disadvantages, or at least the differences, of one with respect to
|
|
the other? </p>
|
|
|
|
<p align="JUSTIFY">Message length: the fixed word length bulletins are always the same
|
|
length, for a given parameter; the variable word length bulletins are, naturally,
|
|
variable. The variation is driven by the range of the value of the parameter over the
|
|
field (or the maximum value) which can change from day to day. Whether variations in
|
|
message length is a problem or not depends on the computer systems used to work with the
|
|
GRIB records.</p>
|
|
|
|
<p align="JUSTIFY">Precision: The variable word length bulletins have a fixed and
|
|
unchanging precision, determined by the "D" scaling. This assures that the same
|
|
information content is available day after day. It is straightforward to change the
|
|
precision in a familiar manner, that is, simply by orders of magnitude, just by altering
|
|
the D value. This comes at a cost, of course; increasing the precision by a power of 10
|
|
adds about 3.3 bits (average) to each data point in the message.</p>
|
|
|
|
<p align="JUSTIFY">The fixed word length bulletins show a variable precision which is case
|
|
by case data driven and is determined by the "E" (power-of-two) scaling that was
|
|
used to fit the numbers into the available space. This can happen even with the same data,
|
|
on the same date, but at adjacent grid areas. If one area shows a low variability and the
|
|
neighboring one a high variability such that a different power-of-two scaling is needed in
|
|
the two areas, then, unfortunately, the values on a common boundary will not be exactly
|
|
equal after they are unpacked. This can be disconcerting and a cause for confusion. It
|
|
will not happen if D-scaling (only) is employed. On the other hand, the variable precision
|
|
can be viewed as a strength: a data field with a low variability will be encoded at a
|
|
higher precision, thus preserving the character of the field; a high variability field
|
|
will be represented with less precision, but that is not a problem as the small, and
|
|
possibly lost, variations will not matter in the presence of the large ones. The precision
|
|
of the encoded field can be increased by adding bits to the fixed word length, but the
|
|
degree of change (a power of 2 for each bit) may not be as easy to deal with (or explain
|
|
to people) as the simple order of magnitude change afforded by the "D" scaling
|
|
method.</p>
|
|
|
|
<p align="JUSTIFY">No matter which packing method was employed, a proper GRIB decoding
|
|
program, that took account of the transmitted values of both "D" and
|
|
"E", would return the correct unpacked numbers, regardless of which packing
|
|
method was employed. It would be transparent to the user except for the questions of
|
|
precision outlined above.</p>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="GRIB">GRIB CODE </a>FORM</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY">With the exception of the first four octets of the Indicator Section,
|
|
and the End Section, all octets contain binary values. All sections contain an even number
|
|
of octets; the variable length sections are padded with zero values as necessary. These
|
|
extra bits must be accounted for in finding one's way through the sections; their content
|
|
should be ignored.</p>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="Section0">SECTION 0</a>: THE INDICATOR SECTION (IS)</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY">The indicator section serves to: identify the start of the record in a
|
|
human readable form, indicate the total length of the message, and indicate the Edition
|
|
number of GRIB used to construct or encode the message. The section is always eight octets
|
|
long. </p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="571">
|
|
<tbody><tr>
|
|
<td width="13%" valign="TOP"><p align="JUSTIFY">Octet no.</p></td>
|
|
<td width="87%" valign="TOP"><p align="JUSTIFY">IS Content</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="TOP"><p align="JUSTIFY">1-4</p></td>
|
|
<td width="87%" valign="TOP"><p align="JUSTIFY">'GRIB' (Coded CCITT-ITA No. 5) (ASCII);</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="TOP"><p align="JUSTIFY">5-7</p></td>
|
|
<td width="87%" valign="TOP"><p align="JUSTIFY">Total length, in octets, of GRIB
|
|
message(including Sections 0 & 5);</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="TOP"><p align="JUSTIFY">8</p></td>
|
|
<td width="87%" valign="TOP"><p align="JUSTIFY">Edition number - currently 1</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="Section1">SECTION 1</a>: THE PRODUCT DEFINITION SECTION (PDS).</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY">The PDS contains indicators for the Parameter table Version, the
|
|
originating center, the numerical model (or "generating process") that created
|
|
the data, the geographical area covered by the data, the parameter itself, the values for
|
|
the appropriate vertical level or layer where the data reside, the decimal scale factor,
|
|
and date/time information. The PDS is normally 28 octets long but it may be longer if an
|
|
originating center chooses to make it so. Users of GRIB messages are strongly urged to use
|
|
the length-of-section portion of the PDS to determine where the next section begins. Never
|
|
assume a fixed octet length in this, or any other, section.</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="608">
|
|
<tbody><tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">Octet no.</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">PDS Content</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">1 - 3</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Length in octets of the
|
|
Product Definition Section</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">4</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Parameter Table Version
|
|
number.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Currently Version 2 for
|
|
international exchange.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Parameter table version
|
|
numbers 128-254 are reserved for local use.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">5</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Identification of center
|
|
(Table 0 - Part 1)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">6</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Generating process ID number </p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">(allocated by the originating
|
|
center; See Table A)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">7</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Grid Identification
|
|
(geographical location and area; See Table B)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">8</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Flag specifying the presence
|
|
or absence of a GDS or a BMS</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">(See Table 1)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">9</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Indicator of parameter and
|
|
units (Table 2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">10</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Indicator of type of level or
|
|
layer (See Tables 3 & 3a)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">11-12</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Height, pressure, etc. of the
|
|
level or layer (See Table 3)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">13<br>
|
|
14<br>
|
|
<br>
|
|
15<br>
|
|
<br>
|
|
16<br>
|
|
17</td>
|
|
<td width="29%" valign="TOP">Year of century<br>
|
|
Month of year <br>
|
|
<br>
|
|
Day of month <br>
|
|
<br>
|
|
Hour of day <br>
|
|
Minute of hour </td>
|
|
<td width="57%" valign="TOP">\ Initial (or Reference)<br>
|
|
| time of forecast - UTC<br>
|
|
| <br>
|
|
| > or<br>
|
|
|<br>
|
|
| for averaging or <br>
|
|
| accumulation of<br>
|
|
/ analyses</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">18</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Forecast time unit (see Table
|
|
4)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">19</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">P1 - Period of time (Number of
|
|
time units)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">(0 for analysis or initialized
|
|
analysis.)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Units of time given by content
|
|
of octet 18.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP" height="68"><p align="JUSTIFY">20</p></td>
|
|
<td width="86%" valign="TOP" colspan="2" height="68"><p align="JUSTIFY">P2 - Period of
|
|
time (Number of time units) or</p>
|
|
<p align="JUSTIFY">Time interval between successive analyses, successive initialized
|
|
analyses, or forecasts, undergoing averaging or accumulation. Units given by octet 18.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">21</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Time range indicator (See
|
|
Table 5)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">22-23</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Number included in average,
|
|
when octet 21 (Table 5) indicates an average or accumulation; otherwise set to zero.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">24</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Number Missing from averages
|
|
or accumulations.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">25</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Century of Initial (Reference)
|
|
time (=20 until Jan. 1, 2001)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">26</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Identification of sub-center
|
|
(Table 0 - Part 2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">27-28</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">The decimal scale factor D. A
|
|
negative value is indicated by setting the high order bit (bit No. 1) in octet 27 to 1
|
|
(on).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">29-40</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Reserved (need not be present)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">41-...</p></td>
|
|
<td width="86%" valign="TOP" colspan="2"><p align="JUSTIFY">Reserved for originating
|
|
center use.</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> Note: Octet 8 may indicate the presence of the Grid Description
|
|
Section (GDS) even though octet 7 specifies a predefined grid. In this case the GDS must
|
|
describe that grid -this device serves as a mechanism for transmitting new
|
|
"predefined" grids to users prior to their formal publication in this or the
|
|
official WMO documentation. It is, however, the desired practice to always include the GDS
|
|
in GRIB bulletins.</p>
|
|
|
|
<p align="JUSTIFY">Another Note: The use of octet 26 to indicate a "sub-center"
|
|
is not (yet) an officially sanctioned WMO practice. The Manual indicates the octet is to
|
|
be "reserved", and set to 0. The use arises out of an upcoming change in the
|
|
Manual in which the "originating centers" for both GRIB and BUFR (FM 94) will
|
|
reference a single common table. The difficulty is that BUFR has two octets available for
|
|
an originating center number while GRIB has only one. The compromise solution is to allow
|
|
the use of octet 26 as the "second" octet for GRIB, but only in a national
|
|
context. The WMO will coordinate the assignment of the numbers for octet 5 for national
|
|
and international centers (for both GRIB and BUFR), while each national center will then
|
|
be free to assign sub-center numbers at will to be placed in the octet 26. A zero value in
|
|
octet 26 will serve as the default indicating that there is no sub-center associated with
|
|
a particular center. Table 0, in this document, shows, in Part 1, a selection of the WMO
|
|
recognized originating centers (those that are currently active) as would be found in
|
|
octet 5.</p>
|
|
|
|
<p align="JUSTIFY"> </p>
|
|
<b>
|
|
|
|
<p align="CENTER">TABLES FOR THE PDS</p>
|
|
</b>
|
|
|
|
<p align="CENTER">TABLE 0 - Part 1</p>
|
|
|
|
<p align="CENTER">NATIONAL/INTERNATIONAL</p>
|
|
|
|
<p align="CENTER">ORIGINATING CENTERS</p>
|
|
|
|
<p align="CENTER">(Assigned By The WMO)</p>
|
|
|
|
<p align="CENTER">(PDS Octet 5)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="505">
|
|
<tbody><tr>
|
|
<td width="14%" valign="TOP">Value</td>
|
|
<td width="86%" valign="TOP">Contents</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">07</td>
|
|
<td width="86%" valign="TOP">US Weather Service - National Met. Center</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">08</td>
|
|
<td width="86%" valign="TOP">US Weather Service - NWS Telecomms Gateway</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">09</td>
|
|
<td width="86%" valign="TOP">US Weather Service - Field Stations</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">34</td>
|
|
<td width="86%" valign="TOP">Japanese Meteorological Agency - Tokyo</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">52</td>
|
|
<td width="86%" valign="TOP">National Hurricane Center, Miami</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">54</td>
|
|
<td width="86%" valign="TOP">Canadian Meteorological Service - Montreal</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">57</td>
|
|
<td width="86%" valign="TOP">U.S. Air Force - Global Weather Center</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">58</td>
|
|
<td width="86%" valign="TOP">US Navy - Fleet Numerical Oceanography Center</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">59</td>
|
|
<td width="86%" valign="TOP">NOAA Forecast Systems Lab, Boulder CO</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">74</td>
|
|
<td width="86%" valign="TOP">U.K. Met Office - Bracknell</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">85</td>
|
|
<td width="86%" valign="TOP">French Weather Service - Toulouse</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">97</td>
|
|
<td width="86%" valign="TOP">European Space Agency (ESA)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">98</td>
|
|
<td width="86%" valign="TOP">European Center for Medium-Range Weather Forecasts - Reading</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP">99</td>
|
|
<td width="86%" valign="TOP">DeBilt, Netherlands</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE 0 - Part 2</p>
|
|
|
|
<p align="CENTER">NATIONAL SUB-CENTERS</p>
|
|
|
|
<p align="CENTER">(Assigned By The Nation)</p>
|
|
|
|
<p align="CENTER">(PDS Octet 26)</p>
|
|
|
|
<p align="CENTER">National sub-centers, if any, would be found here.</p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE A.Generating Process or Model</p>
|
|
|
|
<p align="CENTER">(PDS Octet 6)</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p>VALUE MODEL</p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p>These values and model ("generating process") numbers would be supplied by
|
|
the individual centers.</p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE B. GRID IDENTIFICATION</p>
|
|
|
|
<p align="CENTER">(PDS Octet 7)</p>
|
|
|
|
<p align="CENTER">Various National Grids would be identified here by the Center
|
|
International exchange grids are included here. </p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="619">
|
|
<tbody><tr>
|
|
<td width="15%" valign="TOP">VALUE</td>
|
|
<td width="85%" valign="TOP">GRID</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">21-26</td>
|
|
<td width="85%" valign="TOP">International Exchange grids - see below</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">37-44</td>
|
|
<td width="85%" valign="TOP">Eight lat-long 1.25 x 1.25 "thinned" grids,
|
|
covering the globe by octants of 3447 points. Full GRIB specifications below. For WAFC,
|
|
ICAO, and International exchange.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">61-64</td>
|
|
<td width="85%" valign="TOP">International Exchange grids - see below.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">255</td>
|
|
<td width="85%" valign="TOP">(non-defined grid - specified in the GDS)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p> </p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">INTERNATIONAL EXCHANGE GRIDS</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="691">
|
|
<tbody><tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">VALUE</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">RESOLUTION</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">AREA</p></td>
|
|
<td width="36%" valign="TOP" colspan="2"><p align="CENTER">GRID</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">GRID</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">(degrees)</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">COVERAGE</p></td>
|
|
<td width="36%" valign="TOP" colspan="2"><p align="CENTER">SHAPE</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">POINTS</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">lon x lat</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">(degrees)</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">cols</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">rows</p></td>
|
|
<td width="15%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">21</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">5.0 x 2.5</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">0-180E, 0-90N</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">37</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">36 + pole</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">1333</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">22</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">5.0 x 2.5</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">180W-0, 0-90N</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">37</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">36 + pole</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">1333</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">23</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">5.0 x 2.5</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">0-180E, 90S-0</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">pole + 37</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">36</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">1333</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">24</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">5.0 x 2.5</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">180W-0, 90S-0</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">pole + 37</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">36</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">1333</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">25</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">5.0 x 5.0</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">0-355E, 0-90N</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">72</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">18 + pole</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">1297</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">26</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">5.0 x 5.0</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">0-355E, 90S-0</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">pole + 72</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">18</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">1297</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">61</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">2.0 x 2.0</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">0-180E, 0-90N</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">91</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">45 + pole</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">4096</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">62</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">2.0 x 2.0</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">180W-0, 0-90N</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">91</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">45 + pole</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">4096</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">63</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">2.0 x 2.0</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">0-180E, 90S-0</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">pole + 91</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">45</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">4096</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">64</p></td>
|
|
<td width="16%" valign="TOP"><p align="CENTER">2.0 x 2.0</p></td>
|
|
<td width="22%" valign="TOP"><p align="CENTER">180W-0, 90S-0</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">pole + 91</p></td>
|
|
<td width="18%" valign="TOP"><p align="CENTER">45</p></td>
|
|
<td width="15%" valign="TOP"><p align="CENTER">4096</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="CENTER">255</p></td>
|
|
<td width="89%" valign="TOP" colspan="5">(non-standard grid - defined in the GDS)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> NOTES ON INTERNATIONAL EXCHANGE/FOS GRIDS:</p>
|
|
|
|
<p align="JUSTIFY"> (i) The grid points are laid out in a linear array such that the
|
|
longitude index (the columns) is the most rapidly varying. For the northern hemisphere
|
|
grids the first point in the record is at the intersection of the western-most meridian
|
|
and southern-most circle of latitude; the last point is the single polar value (see note
|
|
iii, below). For the southern hemisphere grids the first point in the record is the single
|
|
polar value (see note iii, below); the last point is at the intersection of the
|
|
eastern-most meridian and northern-most circle of latitude. For those familiar with
|
|
FORTRAN subscripting conventions, longitude is the first subscript, latitude the second.</p>
|
|
|
|
<p align="JUSTIFY">(ii) In grids 21 through 26, and 61 through 64, the values on the
|
|
shared boundaries are included in each area.</p>
|
|
|
|
<p align="JUSTIFY">(iii) The datum for the pole point is given only once in each grid. The
|
|
user must expand, if desired, the single pole point value to all the pole
|
|
"points" at the pole row of a latitude-longitude grid. Scalar quantity values
|
|
are the same for all pole points on a the grid. Wind components at the poles are given by
|
|
the formulae:</p>
|
|
|
|
<p align="CENTER">u = -speed x sin(dd) & v = -speed x cos(dd)</p>
|
|
|
|
<p> where dd is the direction of the wind as reported according to the specification
|
|
of wind direction at the poles (refer to WMO Manual on Codes <1>, code table 878).</p>
|
|
|
|
<p> The WMO convention can be given this operational definition: At the North Pole,
|
|
face into the wind and report the value of the west longitude meridian along which the
|
|
wind is coming at you; at the South Pole do likewise but report the east longitude
|
|
meridian value. This is equivalent to placing the origin of a right-handed Cartesian
|
|
coordinate system on the North Pole with the y-axis pointing to the prime (0 degree)
|
|
meridian and the x-axis pointing to the 90 degrees west meridian, and then resolving any
|
|
vector wind at the pole point into components along those axes. At the South Pole the
|
|
coordinate axes are oriented such that the y-axis points toward 180 degrees west. Those
|
|
components are the u- and v-values given as the single pair of pole point winds in the
|
|
GRIB format.</p>
|
|
|
|
<p align="JUSTIFY">In terms of a longitude/latitude grid these are the wind components for
|
|
the pole point at the 180 degree meridian. For example, on a 2.5 x 2.5 degree northern
|
|
hemisphere grid (145 x 37 points), with the abscissa along the equator and the ordinate
|
|
along the prime meridian, the transmitted north pole wind components are those that belong
|
|
at the grid point (73,37). The wind components at the other grid points along the pole row
|
|
may be obtained through suitable rotation of the coordinate system. All the components at
|
|
the pole row are, of course, simply representations of the same vector wind viewed from
|
|
differing (rotated) coordinate systems. In the southern hemisphere the analogous situation
|
|
holds; the single set of transmitted pole point wind components belong at the grid point
|
|
(73,1). </p>
|
|
|
|
<p align="CENTER">WAFS/ICAO/INTERNATIONAL EXCHANGE/FOS GRIDS</p>
|
|
|
|
<p align="CENTER">(Grids 37 - 44)</p>
|
|
|
|
<p align="CENTER"><img src="./GuidetoGRIB_files/Guide-GRIB-1.gif" width="525" height="244">1</p>
|
|
|
|
<p align="CENTER">Global Coverage of Grids</p>
|
|
|
|
<p align="CENTER">Octants of the Globe</p>
|
|
|
|
<p align="JUSTIFY">In the figure the boxes indicate the location of the octants of the
|
|
globe, the numbers are the corresponding grid identification numbers (PDS Octet 7), and
|
|
the letters are the grid identification used in the WMO heading (see Appendix A). The left
|
|
and right meridional columns of each octant/grid are shared with the neighbors.</p>
|
|
|
|
<p align="JUSTIFY">The basic grid point separation is 1.25x1.25 deg. on a
|
|
latitude/longitude array, but the grid is "thinned" by reducing the number of
|
|
points in each row as one goes northward (or southward) away from the equator. In GRIB
|
|
terms, this is referred to as a "quasi-regular" grid.</p>
|
|
|
|
<p align="JUSTIFY">The latitudinal increment is always 1.25 deg.; this results in 73 rows
|
|
where the pole is included as a "row", not a single grid point. </p>
|
|
|
|
<p align="JUSTIFY">The longitudinal spacing at the equator is also 1.25 deg.; thus there
|
|
will be 73 grid points at the equator in each octant.</p>
|
|
|
|
<p align="JUSTIFY">The number of points on each latitudinal row, other than the equator,
|
|
is given by (using FORTRAN notation):</p>
|
|
|
|
<p align="CENTER">NPOINTS = IFIX(2.0 + (90.0/1.25) x COS(LATITUDE))</p>
|
|
|
|
<p> Thus at the pole there will be two grid points, one each at the meridians that
|
|
delineate the edges of the octant. The formula was worked out so that there is
|
|
(approximately) equal geographic separation between the grid points uniformly across the
|
|
globe.</p>
|
|
|
|
<p align="JUSTIFY"> Because of variations in precision and round off error in
|
|
different computers, the value of NPOINTS may vary by 1 at "critical" latitudes
|
|
when calculated on various hardware platforms. Here is a table of the exact values of
|
|
NPOINTS as a function of latitude as used in the internationally exchanged grids. These
|
|
numbers will, of course, be found in the Grid Description Section of each GRIB bulletin.</p>
|
|
|
|
<p align="JUSTIFY"> </p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="552">
|
|
<tbody><tr>
|
|
<td width="31%" valign="TOP" height="64">Latitude Range<br>
|
|
inclusive<br>
|
|
(north or south)</td>
|
|
<td width="23%" valign="TOP" height="64">NPOINTS </td>
|
|
<td width="29%" valign="TOP" height="64">Latitude Range<br>
|
|
Inclusive<br>
|
|
(north or south)</td>
|
|
<td width="17%" valign="TOP" height="64">NPOINTS </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">0.00 - 8.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">73</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">55.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">43</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">10.00 - 12.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">72</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">56.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">42</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">13.75 - 16.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">71</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">57.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">40</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">17.50 - 18.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">70</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">58.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">39</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">20.00 - 21.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">69</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">60.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">38</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">22.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">68</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">61.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">36</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">23.75 - 25.00</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">65</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">62.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">35</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">30.00</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">64</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">63.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">33</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">31.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">63</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">65.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">32</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">32.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">62</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">66.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">30</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">33.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">61</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">67.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">29</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">35.00 - 36.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">60</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">68.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">28</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">37.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">59</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">70.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">26</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">38.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">58</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">71.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">25</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">40.00</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">57</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">72.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">23</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">41.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">56</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">73.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">22</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">42.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">55</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">75.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">20</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">43.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">54</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">76.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">19</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">45.00</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">52</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">77.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">17</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">46.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">51</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">78.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">16</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">47.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">50</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">80.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">14</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">48.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">49</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">81.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">12</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">50.00</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">48</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">82.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">11</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">51.25</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">47</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">83.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">9</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">52.50</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">45</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">85.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">8</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"><p align="JUSTIFY">53.75</p></td>
|
|
<td width="23%" valign="TOP"><p align="JUSTIFY">44</p></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">86.25</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">6</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"></td>
|
|
<td width="23%" valign="TOP"></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">87.50</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">5</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"></td>
|
|
<td width="23%" valign="TOP"></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">88.75</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">3</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"></td>
|
|
<td width="23%" valign="TOP"></td>
|
|
<td width="29%" valign="TOP"><p align="JUSTIFY">90.00</p></td>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">2</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> When all this is put together the result is that there are 3447
|
|
points of data actually transmitted in any individual GRIB bulletin containing one octant
|
|
of the globe.</p>
|
|
|
|
<p align="JUSTIFY">In the GRIB bulletins all of this information will be included in the
|
|
Grid Description Section (GDS); the GDS must be included in order to describe the thinned
|
|
or "quasi-regular" grid structure. See Section 2 and Table C for the general
|
|
description of the GDS; what follows are the specific values of the variables in the GDS
|
|
that describe these eight grids.</p>
|
|
|
|
<p align="CENTER">GDS Contents</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="472">
|
|
<tbody><tr>
|
|
<td width="30%" valign="TOP">Octets</td>
|
|
<td width="70%" valign="TOP">Value or variable</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP"></td>
|
|
<td width="70%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP">1-3</td>
|
|
<td width="70%" valign="TOP">178 (length of GDS)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP">4</td>
|
|
<td width="70%" valign="TOP">0 (or 255, either indicating no PV)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP">5</td>
|
|
<td width="70%" valign="TOP">33 (pointer to start of PL list)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP">6</td>
|
|
<td width="70%" valign="TOP">0</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP">7-32</td>
|
|
<td width="70%" valign="TOP">Grid description - see below</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP">33-178</td>
|
|
<td width="70%" valign="TOP">Number of points in each of 73 rows</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP"></td>
|
|
<td width="70%" valign="TOP">(2 octets per point)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30%" valign="TOP"></td>
|
|
<td width="70%" valign="TOP"></td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">Details of Octets 7-32 - Grid Description</p>
|
|
<div align="center"><center>
|
|
|
|
<table border="1" cellspacing="2" cellpadding="7" width="636">
|
|
<tbody><tr>
|
|
<td width="23%" valign="TOP" colspan="5"> </td>
|
|
<td width="77%" valign="TOP" colspan="15"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP" colspan="5">Octets</td>
|
|
<td width="77%" valign="TOP" colspan="15">Variable & Value</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP" colspan="5"> </td>
|
|
<td width="77%" valign="TOP" colspan="15"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP" colspan="5">7-8</td>
|
|
<td width="77%" valign="TOP" colspan="15">Ni = all bits set to 1 (missing)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP" colspan="5">9-10</td>
|
|
<td width="77%" valign="TOP" colspan="15">Nj = 73</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP" colspan="2"> </td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">GRID:</p></td>
|
|
<td width="10%" valign="TOP" colspan="3"><p align="CENTER">37</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">38</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">39</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">40</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">41</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">42</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">43</p></td>
|
|
<td width="10%" valign="TOP"><p align="CENTER">44</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP" colspan="2">11-13</td>
|
|
<td width="10%" valign="TOP" colspan="2">La1 =</td>
|
|
<td width="10%" valign="TOP" colspan="3"><p align="CENTER">0</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">90S</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">90S</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">90S</p></td>
|
|
<td width="10%" valign="TOP"><p align="CENTER">90S</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP" colspan="2">14-16</td>
|
|
<td width="10%" valign="TOP" colspan="2">Lo1 =</td>
|
|
<td width="10%" valign="TOP" colspan="3"><p align="CENTER">330</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">60</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">150</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">240</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">330</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">60</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">150</p></td>
|
|
<td width="10%" valign="TOP"><p align="CENTER">240</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP" colspan="2">17</td>
|
|
<td width="10%" valign="TOP" colspan="2"> </td>
|
|
<td width="80%" valign="TOP" colspan="16">Resolution & Component Flag = [10000000]
|
|
(binary)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP"> </td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">GRID:</p></td>
|
|
<td width="10%" valign="TOP" colspan="3"><p align="CENTER">37</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">38</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">39</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">40</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">41</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">42</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">43</p></td>
|
|
<td width="11%" valign="TOP" colspan="2"><p align="CENTER">44</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">18-20</td>
|
|
<td width="10%" valign="TOP" colspan="2">La2 =</td>
|
|
<td width="10%" valign="TOP" colspan="3"><p align="CENTER">90N</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">90N</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">90N</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">90N</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
<td width="11%" valign="TOP" colspan="2"><p align="CENTER">0</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">21-23</td>
|
|
<td width="10%" valign="TOP" colspan="2">Lo2 =</td>
|
|
<td width="10%" valign="TOP" colspan="3"><p align="CENTER">60</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">150</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">240</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">330</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">60</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">150</p></td>
|
|
<td width="10%" valign="TOP" colspan="2"><p align="CENTER">240</p></td>
|
|
<td width="11%" valign="TOP" colspan="2"><p align="CENTER">330</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">24-25</td>
|
|
<td width="10%" valign="TOP" colspan="2"> </td>
|
|
<td width="80%" valign="TOP" colspan="17">Di = all bits set to 1 (missing)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">26-27</td>
|
|
<td width="10%" valign="TOP" colspan="2"> </td>
|
|
<td width="80%" valign="TOP" colspan="17">Dj = 1.25 deg</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">28</td>
|
|
<td width="10%" valign="TOP" colspan="2"> </td>
|
|
<td width="80%" valign="TOP" colspan="17">Scan Mode = [01000000] (binary)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">29-32</td>
|
|
<td width="10%" valign="TOP" colspan="2"> </td>
|
|
<td width="80%" valign="TOP" colspan="17">Set to 0 (unused)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p> Note that the scanning direction is from the bottom (south edge) to the top of
|
|
the octant grids, regardless of the hemisphere. Thus in the northern hemisphere the first
|
|
73 data points (in the BDS) will be the equatorial values and the last two will be the
|
|
polar values. The PL counts in the GDS octets 33-178 will, of course, indicate contain
|
|
these numbers. </p>
|
|
|
|
<p align="JUSTIFY">In the southern hemisphere, the first two data points will be the south
|
|
pole values, and the last 73 points will be the equatorial values. Octets 33-34 in the GDS
|
|
will contain "2", octets 35-36 will contain a "3", and so on to octets
|
|
177-178 which will contain "73".</p>
|
|
|
|
<p align="CENTER">TABLE 1. FLAG FOR GDS OR BMS</p>
|
|
|
|
<p align="CENTER">(PDS Octet 8)</p>
|
|
|
|
<p align="CENTER">The bit flag indicates the omission or inclusion of the Grid Description
|
|
and/or Bit Map Sections.</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="428">
|
|
<tbody><tr>
|
|
<td width="23%" valign="TOP">BIT</td>
|
|
<td width="23%" valign="TOP">VALUE</td>
|
|
<td width="54%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP">1</td>
|
|
<td width="23%" valign="TOP">0</td>
|
|
<td width="54%" valign="TOP">GDS Omitted</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP"></td>
|
|
<td width="23%" valign="TOP">1</td>
|
|
<td width="54%" valign="TOP">GDS Included</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP">2</td>
|
|
<td width="23%" valign="TOP">0</td>
|
|
<td width="54%" valign="TOP">BMS Omitted</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP"></td>
|
|
<td width="23%" valign="TOP">1</td>
|
|
<td width="54%" valign="TOP">BMS Included</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="23%" valign="TOP">3-8</td>
|
|
<td width="23%" valign="TOP">0</td>
|
|
<td width="54%" valign="TOP">reserved</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE 2. PARAMETERS & UNITS</p>
|
|
|
|
<p align="CENTER">Version 2</p>
|
|
|
|
<p align="CENTER">(PDS Octet 9)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="601">
|
|
<tbody><tr>
|
|
<td width="26%" valign="TOP">VALUE</td>
|
|
<td width="58%" valign="TOP">PARAMETER</td>
|
|
<td width="16%" valign="TOP">UNITS</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">000</td>
|
|
<td width="58%" valign="TOP">Reserved</td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">001</td>
|
|
<td width="58%" valign="TOP">Pressure</td>
|
|
<td width="16%" valign="TOP">Pa</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">002</td>
|
|
<td width="58%" valign="TOP">Pressure reduced to MSL</td>
|
|
<td width="16%" valign="TOP">Pa</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">003</td>
|
|
<td width="58%" valign="TOP">Pressure tendency </td>
|
|
<td width="16%" valign="TOP">Pa/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">004</td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">005</td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">006</td>
|
|
<td width="58%" valign="TOP">Geopotential</td>
|
|
<td width="16%" valign="TOP">m<sup>2</sup>/s<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">007</td>
|
|
<td width="58%" valign="TOP">Geopotential height </td>
|
|
<td width="16%" valign="TOP">Gpm</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">008</td>
|
|
<td width="58%" valign="TOP">Geometric height</td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">009</td>
|
|
<td width="58%" valign="TOP">Standard deviation of height</td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">010</td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">011</td>
|
|
<td width="58%" valign="TOP">Temperature </td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">012</td>
|
|
<td width="58%" valign="TOP">Virtual temperature </td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">013</td>
|
|
<td width="58%" valign="TOP">Potential temperature</td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">014</td>
|
|
<td width="58%" valign="TOP">Pseudo-adiabatic potential temperature </td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">015</td>
|
|
<td width="58%" valign="TOP">Maximum temperature</td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">016</td>
|
|
<td width="58%" valign="TOP">Minimum temperature </td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">017</td>
|
|
<td width="58%" valign="TOP">Dew point temperature</td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">018</td>
|
|
<td width="58%" valign="TOP">Dew point depression (or deficit)</td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">019</td>
|
|
<td width="58%" valign="TOP">Lapse rate</td>
|
|
<td width="16%" valign="TOP">K/m</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">020</td>
|
|
<td width="58%" valign="TOP">Visibility </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">021</td>
|
|
<td width="58%" valign="TOP">Radar Spectra (1) </td>
|
|
<td width="16%" valign="TOP">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">022</td>
|
|
<td width="58%" valign="TOP">Radar Spectra (2) </td>
|
|
<td width="16%" valign="TOP">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">023</td>
|
|
<td width="58%" valign="TOP">Radar Spectra (3) </td>
|
|
<td width="16%" valign="TOP">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">024 </td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">025</td>
|
|
<td width="58%" valign="TOP">Temperature anomaly </td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">026</td>
|
|
<td width="58%" valign="TOP">Pressure anomaly </td>
|
|
<td width="16%" valign="TOP">Pa</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">027</td>
|
|
<td width="58%" valign="TOP">Geopotential height anomaly </td>
|
|
<td width="16%" valign="TOP">Gpm</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">028</td>
|
|
<td width="58%" valign="TOP">Wave Spectra (1)</td>
|
|
<td width="16%" valign="TOP">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">029</td>
|
|
<td width="58%" valign="TOP">Wave Spectra (2)</td>
|
|
<td width="16%" valign="TOP">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">030</td>
|
|
<td width="58%" valign="TOP">Wave Spectra (3)</td>
|
|
<td width="16%" valign="TOP">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">031</td>
|
|
<td width="58%" valign="TOP">Wind direction</td>
|
|
<td width="16%" valign="TOP">Deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">032</td>
|
|
<td width="58%" valign="TOP">Wind speed </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">033</td>
|
|
<td width="58%" valign="TOP">u-component of wind</td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">034</td>
|
|
<td width="58%" valign="TOP">v-component of wind </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">035</td>
|
|
<td width="58%" valign="TOP">Stream function </td>
|
|
<td width="16%" valign="TOP">m<sup>2</sup>/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">036</td>
|
|
<td width="58%" valign="TOP">Velocity potential</td>
|
|
<td width="16%" valign="TOP">m<sup>2</sup>/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">037</td>
|
|
<td width="58%" valign="TOP">Montgomery stream function </td>
|
|
<td width="16%" valign="TOP">m<sup>2</sup>/s<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">038</td>
|
|
<td width="58%" valign="TOP">Sigma coord. vertical velocity </td>
|
|
<td width="16%" valign="TOP">s /s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">039</td>
|
|
<td width="58%" valign="TOP">Pressure Vertical velocity </td>
|
|
<td width="16%" valign="TOP">Pa/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">040</td>
|
|
<td width="58%" valign="TOP">Geometric Vertical velocity </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">041</td>
|
|
<td width="58%" valign="TOP">Absolute vorticity </td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">042</td>
|
|
<td width="58%" valign="TOP">Absolute divergence </td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">043</td>
|
|
<td width="58%" valign="TOP">Relative vorticity </td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">044</td>
|
|
<td width="58%" valign="TOP">Relative divergence </td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">045</td>
|
|
<td width="58%" valign="TOP">Vertical u-component shear</td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">046</td>
|
|
<td width="58%" valign="TOP">Vertical v-component shear</td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">047</td>
|
|
<td width="58%" valign="TOP">Direction of current </td>
|
|
<td width="16%" valign="TOP">Deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">048</td>
|
|
<td width="58%" valign="TOP">Speed of current</td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">049</td>
|
|
<td width="58%" valign="TOP">u-component of current</td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">050</td>
|
|
<td width="58%" valign="TOP">v-component of current</td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">051</td>
|
|
<td width="58%" valign="TOP">Specific humidity </td>
|
|
<td width="16%" valign="TOP">kg/kg</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">052</td>
|
|
<td width="58%" valign="TOP">Relative humidity</td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">053</td>
|
|
<td width="58%" valign="TOP">Humidity mixing ratio</td>
|
|
<td width="16%" valign="TOP">kg/kg</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">054</td>
|
|
<td width="58%" valign="TOP">Precipitable water </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">055</td>
|
|
<td width="58%" valign="TOP">Vapor pressure </td>
|
|
<td width="16%" valign="TOP">Pa</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">056</td>
|
|
<td width="58%" valign="TOP">Saturation deficit </td>
|
|
<td width="16%" valign="TOP">Pa</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">057</td>
|
|
<td width="58%" valign="TOP">Evaporation</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">058</td>
|
|
<td width="58%" valign="TOP">Cloud Ice</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">059</td>
|
|
<td width="58%" valign="TOP">Precipitation rate</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup>/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">060</td>
|
|
<td width="58%" valign="TOP">Thunderstorm probability</td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">061</td>
|
|
<td width="58%" valign="TOP">Total precipitation</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">062</td>
|
|
<td width="58%" valign="TOP">Large scale precipitation </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">063</td>
|
|
<td width="58%" valign="TOP">Convective precipitation </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">064</td>
|
|
<td width="58%" valign="TOP">Snowfall rate water equivalent</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup>s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">065</td>
|
|
<td width="58%" valign="TOP">Water equiv. of accum. snow depth </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">066</td>
|
|
<td width="58%" valign="TOP">Snow depth </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">067</td>
|
|
<td width="58%" valign="TOP">Mixed layer depth</td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">068</td>
|
|
<td width="58%" valign="TOP">Transient thermocline depth </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">069</td>
|
|
<td width="58%" valign="TOP">Main thermocline depth </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">070</td>
|
|
<td width="58%" valign="TOP">Main thermocline anomaly </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">071</td>
|
|
<td width="58%" valign="TOP">Total cloud cover</td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">072</td>
|
|
<td width="58%" valign="TOP">Convective cloud cover </td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">073</td>
|
|
<td width="58%" valign="TOP">Low cloud cover</td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">074</td>
|
|
<td width="58%" valign="TOP">Medium cloud cover </td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">075</td>
|
|
<td width="58%" valign="TOP">High cloud cover </td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">076</td>
|
|
<td width="58%" valign="TOP">Cloud water</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">077</td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">078</td>
|
|
<td width="58%" valign="TOP">Convective snow</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">079</td>
|
|
<td width="58%" valign="TOP">Large scale snow</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">080</td>
|
|
<td width="58%" valign="TOP">Water Temperature </td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">081</td>
|
|
<td width="58%" valign="TOP">Land-sea mask</td>
|
|
<td width="16%" valign="TOP">Fraction</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP"></td>
|
|
<td width="58%" valign="TOP">(1=land;0=sea) (see note)</td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">082</td>
|
|
<td width="58%" valign="TOP">Deviation of sea level from mean </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">083</td>
|
|
<td width="58%" valign="TOP">Surface roughness </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">084</td>
|
|
<td width="58%" valign="TOP">Albedo</td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">085</td>
|
|
<td width="58%" valign="TOP">Soil temperature</td>
|
|
<td width="16%" valign="TOP">K</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">086</td>
|
|
<td width="58%" valign="TOP">Soil moisture content </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">087</td>
|
|
<td width="58%" valign="TOP">Vegetation </td>
|
|
<td width="16%" valign="TOP">%</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">088</td>
|
|
<td width="58%" valign="TOP">Salinity</td>
|
|
<td width="16%" valign="TOP">kg/kg</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">089</td>
|
|
<td width="58%" valign="TOP">Density</td>
|
|
<td width="16%" valign="TOP">kg/m<sup>3</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">090</td>
|
|
<td width="58%" valign="TOP">Water run off </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">091</td>
|
|
<td width="58%" valign="TOP">Ice concentration </td>
|
|
<td width="16%" valign="TOP">Fraction</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP"></td>
|
|
<td width="58%" valign="TOP">(ice=1;no ice=0)(see note)</td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">092</td>
|
|
<td width="58%" valign="TOP">Ice thickness </td>
|
|
<td width="16%" valign="TOP">M</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">093</td>
|
|
<td width="58%" valign="TOP">Direction of ice drift </td>
|
|
<td width="16%" valign="TOP">deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">094</td>
|
|
<td width="58%" valign="TOP">Speed of ice drift </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">095</td>
|
|
<td width="58%" valign="TOP">u-component of ice drift </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">096</td>
|
|
<td width="58%" valign="TOP">v-component of ice drift </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">097</td>
|
|
<td width="58%" valign="TOP">Ice growth rate </td>
|
|
<td width="16%" valign="TOP">m/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">098</td>
|
|
<td width="58%" valign="TOP">Ice divergence</td>
|
|
<td width="16%" valign="TOP">/s</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">099</td>
|
|
<td width="58%" valign="TOP">Snow melt </td>
|
|
<td width="16%" valign="TOP">kg/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">100</td>
|
|
<td width="58%" valign="TOP">Significant height of combined wind </td>
|
|
<td width="16%" valign="TOP">m</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP"></td>
|
|
<td width="58%" valign="TOP">waves and swell</td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">101</td>
|
|
<td width="58%" valign="TOP">Direction of wind waves</td>
|
|
<td width="16%" valign="TOP">deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">102</td>
|
|
<td width="58%" valign="TOP">Significant height of wind waves </td>
|
|
<td width="16%" valign="TOP">m</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">103</td>
|
|
<td width="58%" valign="TOP">Mean period of wind waves </td>
|
|
<td width="16%" valign="TOP">s </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">104</td>
|
|
<td width="58%" valign="TOP">Direction of swell waves</td>
|
|
<td width="16%" valign="TOP">deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">105</td>
|
|
<td width="58%" valign="TOP">Significant height of swell waves </td>
|
|
<td width="16%" valign="TOP">m</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">106</td>
|
|
<td width="58%" valign="TOP">Mean period of swell waves </td>
|
|
<td width="16%" valign="TOP">s </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">107</td>
|
|
<td width="58%" valign="TOP">Primary wave direction </td>
|
|
<td width="16%" valign="TOP">deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">108</td>
|
|
<td width="58%" valign="TOP">Primary wave mean period </td>
|
|
<td width="16%" valign="TOP">s </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">109</td>
|
|
<td width="58%" valign="TOP">Secondary wave direction </td>
|
|
<td width="16%" valign="TOP">deg. true</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">110</td>
|
|
<td width="58%" valign="TOP">Secondary wave mean period</td>
|
|
<td width="16%" valign="TOP">s </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">111</td>
|
|
<td width="58%" valign="TOP">Net short-wave radiation (surface) </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">112</td>
|
|
<td width="58%" valign="TOP">Net long wave radiation (surface) </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">113</td>
|
|
<td width="58%" valign="TOP">Net short-wave radiation (top of atmos.)</td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">114</td>
|
|
<td width="58%" valign="TOP">Net long wave radiation (top of atmos.) </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">115</td>
|
|
<td width="58%" valign="TOP">Long wave radiation </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">116</td>
|
|
<td width="58%" valign="TOP">Short wave radiation</td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">117</td>
|
|
<td width="58%" valign="TOP">Global radiation</td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">118 </td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">119 </td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">120 </td>
|
|
<td width="58%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">121</td>
|
|
<td width="58%" valign="TOP">Latent heat net flux </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">122</td>
|
|
<td width="58%" valign="TOP">Sensible heat net flux </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">123</td>
|
|
<td width="58%" valign="TOP">Boundary layer dissipation </td>
|
|
<td width="16%" valign="TOP">W/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">124</td>
|
|
<td width="58%" valign="TOP">Momentum flux, u component </td>
|
|
<td width="16%" valign="TOP">N/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">125</td>
|
|
<td width="58%" valign="TOP">Momentum flux, v component </td>
|
|
<td width="16%" valign="TOP">N/m<sup>2</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">126</td>
|
|
<td width="58%" valign="TOP">Wind mixing energy </td>
|
|
<td width="16%" valign="TOP">J</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">127</td>
|
|
<td width="58%" valign="TOP">Image data</td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">128-254</td>
|
|
<td width="58%" valign="TOP">Reserved for use by originating center) </td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="26%" valign="TOP">255</td>
|
|
<td width="58%" valign="TOP">Missing</td>
|
|
<td width="16%" valign="TOP"></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p> Notes:
|
|
|
|
</p><ol>
|
|
<li> By convention, downward net fluxes of radiation or other quantities are assigned
|
|
negative values; upward net fluxes of radiation or other quantities are assigned positive
|
|
values.</li>
|
|
<li>Unidirectional flux values, where the direction of flow is indicated in the name of the
|
|
parameter shall all have positive values irrespective of the direction of flow. Net
|
|
(vertical) fluxes shall be calculated by subtracting the downward flux values from the
|
|
upward flux values</li>
|
|
<li>The u and v components of vector quantities are defined with reference to GDS Octet 17
|
|
and Table 7. However, if the GDS is <b>not</b> included in a message, then any wind
|
|
components are assumed to be resolved relative to the grid specified in the PDS with u and
|
|
v defined as positive in the direction of increasing x and y (or i and j) coordinates
|
|
respectively.</li>
|
|
<li>Provision is made for three types of spectra:</li>
|
|
<p>1) Direction and Frequency<br>
|
|
2) Direction and radial number<br>
|
|
3) Radial number and radial number</p>
|
|
<li> Parameters 81 and 91 show the units as "fraction", thus allowing for a
|
|
range of coverage. It is up to the user to employ the D (power of ten) scaling to assure
|
|
that the necessary precision is retained in the numeric values.</li>
|
|
</ol>
|
|
|
|
<p align="JUSTIFY"><font face="Univers"> </font></p><font face="Univers">
|
|
|
|
<p align="CENTER">TABLE 3. TYPE AND VALUE OF LEVEL</p>
|
|
|
|
<p align="CENTER">(PDS Octets 10, 11, & 12)</p>
|
|
</font>
|
|
|
|
<pre> Octet Number 10 Number 11 Number 12
|
|
|
|
VALUE MEANING CONTENTS
|
|
|---------------------------+-----------------+----------------|
|
|
| 0 - 99 special codes, | 0 | 0 |
|
|
| see Table 3a | | |
|
|
|---------------------------+-----------------+----------------|
|
|
| 100 isobaric level | pressure in hectoPascals (hPa) |
|
|
| | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 101 layer between two | pressure of | pressure of |
|
|
| isobaric levels | top (kPa) | bottom (kPa) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 102 mean sea level | 0 | 0 |
|
|
|---------------------------+-----------------+----------------|
|
|
| 103 fixed height level| height above mean sea level |
|
|
| | (MSL) in meters |
|
|
|---------------------------+-----------------+----------------|
|
|
| 104 layer between two | height of top | height of |
|
|
| height levels | (hm) | bottom (hm) |
|
|
| above msl | above mean sea level |
|
|
|---------------------------+-----------------+----------------|
|
|
| 105 fixed height above| height in meters |
|
|
| ground | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 106 layer between two | height of top | height of |
|
|
| height levels | (hm) | bottom (hm) |
|
|
| above ground | above ground |
|
|
|---------------------------+-----------------+----------------|
|
|
| 107 sigma level | sigma value in 1/10000 |
|
|
| | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 108 layer between two | sigma value at | sigma value |
|
|
| sigma levels | top | at bottom |
|
|
| | in 1/100 | in 1/100 |
|
|
|---------------------------+-----------------+----------------|
|
|
| 109 Hybrid level | level number |
|
|
| | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 110 layer between two | level number of | level number |
|
|
| hybrid levels | top | of bottom |
|
|
|---------------------------+-----------------+----------------|
|
|
| 111 depth below | centimeters |
|
|
| land surface | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 112 layer between two | depth of upper | depth of lower |
|
|
| depths below | surface (cm) | surface (cm) |
|
|
| land surface | | |
|
|
|---------------------------+-----------------+----------------|
|
|
| 113 isentropic | Potential Temperature K |
|
|
| (theta) level | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 114 layer between two | 475K minus | 475K minus |
|
|
| isentropic | theta of top |theta of bottom |
|
|
| levels | in K | in K |
|
|
|---------------------------+-----------------+----------------|
|
|
| 121 layer between two | 1100 hPa minus | 1100 hPa minus |
|
|
| isobaric surfaces | pressure of | pressure of |
|
|
| (high precision) | top, in hPa | bottom, in hPa |
|
|
|---------------------------+-----------------+----------------|
|
|
| 125 Height level | centimeters |
|
|
| above ground | (2 octets) |
|
|
| (high precision) | |
|
|
|---------------------------+-----------------+----------------|
|
|
| 128 layer between two | 1.1 minus sigma| 1.1 minus sigma|
|
|
| sigma levels | of top, in | of bottom, in |
|
|
|---------------------------+-----------------+----------------|
|
|
| (high precision) | 1/1000 of sigma| 1/1000 of sigma|
|
|
|---------------------------+-----------------+----------------|
|
|
| 141 layer between two | pressure of | 1100hPa minus |
|
|
| isobaric surfaces | top, in kPa | pressure of |
|
|
| (mixed precision) | | bottom, in hPa |
|
|
|---------------------------+-----------------+----------------|
|
|
| 160 depth below | meters |
|
|
| sea level | (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 200 entire atmosphere | 0 |
|
|
| considered as a single layer (2 octets) |
|
|
|---------------------------+-----------------+----------------|
|
|
| 201 entire ocean | 0 |
|
|
| considered as a single layer (2 octets) |
|
|
|---------------------------+-----------------+----------------|</pre>
|
|
|
|
<dir>
|
|
<dir>
|
|
<font face="Univers"></font><p><font face="Univers"></font>Note: The numbering allows for additions within this
|
|
framework:</p><dir>
|
|
<dir>
|
|
<p>100-119 normal precision</p>
|
|
<p>120-139 high precision</p>
|
|
<p>140-159 mixed precision</p>
|
|
<p> </p>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="CENTER">TABLE 3a. SPECIAL LEVELS</p>
|
|
|
|
<p align="CENTER">(PDS Octet 10)</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="475">
|
|
<tbody><tr>
|
|
<td width="17%" valign="TOP">VALUE</td>
|
|
<td width="83%" valign="TOP">LEVEL</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"></td>
|
|
<td width="83%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">00</td>
|
|
<td width="83%" valign="TOP">reserved</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">01</td>
|
|
<td width="83%" valign="TOP">surface (of the Earth, which includes sea surface)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">02</td>
|
|
<td width="83%" valign="TOP">cloud base level</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">03</td>
|
|
<td width="83%" valign="TOP">cloud top level</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">04</td>
|
|
<td width="83%" valign="TOP">0 deg (C) isotherm level</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">05</td>
|
|
<td width="83%" valign="TOP">adiabatic condensation level(parcel lifted from surface)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">06</td>
|
|
<td width="83%" valign="TOP">maximum wind speed level</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">07</td>
|
|
<td width="83%" valign="TOP">tropopause level</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">08</td>
|
|
<td width="83%" valign="TOP">Nominal top of atmosphere</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">09</td>
|
|
<td width="83%" valign="TOP">Sea bottom</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP">10-99</td>
|
|
<td width="83%" valign="TOP">Reserved</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE 4. FORECAST TIME UNIT</p>
|
|
|
|
<p align="CENTER">(PDS Octet 18)</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="282">
|
|
<tbody><tr>
|
|
<td width="31%" valign="TOP">VALUE</td>
|
|
<td width="69%" valign="TOP">TIME UNIT</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP"></td>
|
|
<td width="69%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">0</td>
|
|
<td width="69%" valign="TOP">minute</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">1</td>
|
|
<td width="69%" valign="TOP">hour</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">2</td>
|
|
<td width="69%" valign="TOP">day</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">3</td>
|
|
<td width="69%" valign="TOP">month</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">4</td>
|
|
<td width="69%" valign="TOP">year</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">5</td>
|
|
<td width="69%" valign="TOP">decade</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">6</td>
|
|
<td width="69%" valign="TOP">normal (30 years)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">7</td>
|
|
<td width="69%" valign="TOP">century</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">8-253</td>
|
|
<td width="69%" valign="TOP">reserved</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="31%" valign="TOP">254</td>
|
|
<td width="69%" valign="TOP">second</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE 5. </p>
|
|
|
|
<p align="CENTER">TIME RANGE INDICATOR</p>
|
|
|
|
<p align="CENTER">(PDS Octet 21)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="601">
|
|
<tbody><tr>
|
|
<td width="18%" valign="TOP">VALUE</td>
|
|
<td width="82%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">0</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Forecast product valid at reference time +
|
|
P1 P1>0), or</p>
|
|
<p align="JUSTIFY">Uninitialized analysis product for reference time (P1=0). Or<br>
|
|
Image product for reference time (P1=0)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">1</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Initialized analysis product for reference
|
|
time (P1=0).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">2</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Product with a valid time ranging between
|
|
reference time + P1 and reference time + P2</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">3</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Average(reference time + P1 to reference
|
|
time + P2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">4</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Accumulation (reference time + P1 to
|
|
reference time + P2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">product considered valid at reference time
|
|
+ P2</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">5</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Difference(reference time + P2 minus
|
|
reference time + P1) product considered valid at reference time + P2</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">6-9</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">reserved</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">10</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">P1 occupies octets 19 and 20; </p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">product valid at reference time + P1</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">11-50</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">reserved</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">51</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Climatological Mean Value: multiple year
|
|
averages of quantities which are themselves means over some period of time (P2) less than
|
|
a year. The reference time (R) indicates the date and time of the start of a period of
|
|
time, given by R to R + P2, over which a mean is formed; N indicates the number of such
|
|
period-means that are averaged together to form the climatological value, assuming that
|
|
the N period-mean fields are separated by one year. The reference time indicates the start
|
|
of the N-year climatology. N is given in octets 22-23 of the PDS.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">If P1 = 0 then the data averaged in the
|
|
basic interval P2 are assumed to be continuous, i.e., all available data are simply
|
|
averaged together.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">If P1 = 1 (the units of time - octet 18,
|
|
code table 4 - are not relevant here) then the data averaged together in the basic
|
|
interval P2 are valid only at the time (hour, minute) given in the reference time, for all
|
|
the days included in the P2 period. The units of P2 are given by the contents of octet 18
|
|
and Table 4.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">52-112</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">reserved</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">113</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Average of N forecasts (or initialized
|
|
analyses); each product has forecast period of P1 (P1=0 for initialized analyses);
|
|
products have reference times at intervals of P2, beginning at the given reference time.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">114</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Accumulation of N forecasts (or
|
|
initialized analyses); each product has forecast period of P1 (P1=0 for initialized
|
|
analyses); products have reference times at intervals of P2, beginning at the given
|
|
reference time.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">115</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Average of N forecasts, all with the same
|
|
reference time; the first has a forecast period of P1, the remaining forecasts follow at
|
|
intervals of P2.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">116</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Accumulation of N forecasts, all with the
|
|
same reference time; the first has a forecast period of P1, the remaining follow at
|
|
intervals of P2.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">117</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Average of N forecasts, the first has a
|
|
period of P1, the subsequent ones have forecast periods reduced from the previous one by
|
|
an interval of P2; the reference time for the first is given in octets 13-17, the
|
|
subsequent ones have reference times increased from the previous one by an interval of P2.
|
|
Thus all the forecasts have the same valid time, given by the initial reference time + P1.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">118</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Temporal variance, or covariance, of N
|
|
initialized analyses; each product has forecast period P1=0; products have reference times
|
|
at intervals of P2, beginning at the given reference time.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">119 -122</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">reserved</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">123</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Average of N uninitialized analyses,
|
|
starting at the reference time, at intervals of P2.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">124</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">Accumulation of N uninitialized analyses,
|
|
starting at the reference time, at intervals of P2.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="18%" valign="TOP"><p align="JUSTIFY">125-254</p></td>
|
|
<td width="82%" valign="TOP"><p align="JUSTIFY">reserved</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> NOTES:</p>
|
|
|
|
<ol>
|
|
<li>For analysis products, or the first of a series of analysis products, the reference time
|
|
(octets 13 to 17) indicates the valid time.</li>
|
|
<li>For forecast products, or the first of a series of forecast products, the reference time
|
|
indicates the valid time of the analysis upon which the (first) forecast is based.</li>
|
|
<li>Initialized analysis products are allocated numbers distinct from those allocated to
|
|
uninitialized analysis products.</li>
|
|
<li>A value of 10 allows the period of a forecast to be extended over two octets; this
|
|
accommodates extended range forecasts.</li>
|
|
<li>Where products or a series of products are averaged or accumulated, the number involved
|
|
is to be represented in octets 22-23 of Section 1, while any number missing is to be
|
|
represented in octet 24.</li>
|
|
<li>Forecasts of the accumulation or difference of some quantity (e.g. quantitative
|
|
precipitation forecasts), indicated by values of 4 or 5 in octet 21, have a product valid
|
|
time given by the reference time + P2; the period of accumulation, or difference, can be
|
|
calculated as P2 - P1.</li>
|
|
</ol>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p align="JUSTIFY"> </p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="JUSTIFY">A few examples may help to clarify the use of Table 5: </p>
|
|
|
|
<p align="JUSTIFY"> For analysis products P1 is zero and the time range indicator is
|
|
also zero; for initialized products (sometimes called "zero hour forecasts") P1
|
|
is zero, but octet 21 is set to 1. </p>
|
|
|
|
<p align="JUSTIFY">For forecasts, typically, P1 contains the number of hours of the
|
|
forecast (the unit indicator given in octet 18 would be 1) and octet 21 contains a zero. </p>
|
|
|
|
<p align="JUSTIFY">Value 51 allows for the identification of the most common
|
|
climatological entities. With P1=0, it could represent (or identify) the multiple year
|
|
climatology of anything from daily means (or less) to semi-annual means (or more, up to a
|
|
full year). The assumption is that all the available values within the basic period P2 are
|
|
averaged together. (An "annual mean climatology" would just be an average over
|
|
the total climatological period - Table 5, entry 3.) P1=1 allows for a diurnal
|
|
sub-stratification of the data within the P2 period, such as 30-year climatology of
|
|
February mean 00Z temperature starting at a date certain, or all the 12Z surface radiation
|
|
fluxes averaged for all the days in a season, or whatever. If other sub-stratifications
|
|
are appropriate they could be identified by different values of P1. No others have been
|
|
proposed at this time.</p>
|
|
|
|
<p align="JUSTIFY">Value 115 would be used, typically, for multiple day mean forecasts,
|
|
all derived from the same initial conditions.</p>
|
|
|
|
<p align="JUSTIFY">Value 117 would be used, typically, for Monte Carlo type calculations:
|
|
many forecasts valid at the same time from different initial (reference) times.</p>
|
|
|
|
<p align="JUSTIFY">Averages, accumulations, and differences get a somewhat specialized
|
|
treatment. If octet 21 (Table 5) has a value between 2 and 5 (inclusive) then the
|
|
reference time + P1 is the initial date/time and the reference time + P2 is the final
|
|
date/time of the period over which averaging or accumulation takes place. If, however,
|
|
octet 21 has a value of 113, 114, 115, 116, 117, 118, 123, or 124 then P2 specifies the
|
|
time interval between each of the fields (or the forecast initial times) that have been
|
|
averaged or accumulated. These latter values of octet 21 require the quantities averaged
|
|
to be equally separated in time; the former values, 3 and 4 in particular, allow for
|
|
irregular or unspecified intervals of time between the fields that are averaged or
|
|
accumulated.</p>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="Section2">SECTION 2</a>: GRID DESCRIPTION SECTION (GDS)</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY"> The purpose of the (optional) GDS is to provide a grid
|
|
description for grids not defined by number in Table 3.</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="577">
|
|
<tbody><tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY"> Octet no.GDS Content</p></td>
|
|
<td width="73%"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">1 - 3</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">Length in octets of the Grid Description
|
|
Section</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">4</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">NV, the number of vertical coordinate
|
|
parameters</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">5</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">PV, the location (octet number) of the
|
|
list of vertical coordinate parameters, if present or</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">PL, the location (octet number) of the
|
|
list of numbers of points in each row (when no vertical parameters are present), if
|
|
present</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">or</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">255</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">(all bits set to 1) if neither are present</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">6</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">Data representation type (See Table 6)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">7 - 32</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">Grid description, according to data
|
|
representation type, except Lambert, Mercator or Space View.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">or</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">7 - 42</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">Grid description for Lambert or Mercator
|
|
grid</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">or</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">7 - 44</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">Grid description for Space View
|
|
perspective grid</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">PV</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">List of vertical coordinate parameters</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">(length = NV x 4 octets);</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">if present, then PL = 4 x NV + PV</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"><p align="JUSTIFY">PL</p></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">List of numbers of points in each row,
|
|
used for quasi-regular grids</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"><p align="JUSTIFY">(length = NROWS x 2 octets, where NROWS is
|
|
the total number of rows defined within the grid description)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="27%" valign="TOP"></td>
|
|
<td width="73%" valign="TOP"></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p align="JUSTIFY">Note: NV and PV relate to features of GRIB not, at present, in use in
|
|
international exchange. See the WMO Manual on Codes for the descriptions of those
|
|
features.</p>
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
<p align="JUSTIFY">PL is used for "quasi-regular" or "thinned" grids;
|
|
e.g., a lat/lon grid where the number of points in each row is reduced as one moves
|
|
poleward from the equator. The reduction usually follows some mathematical formula
|
|
involving the cosine of the latitude, to generate an (approximately) equally spaced grid
|
|
array. The association of the numbers in octet PL (and following) with the particular row
|
|
follows the scanning mode specification in Table 8.</p>
|
|
<p align="JUSTIFY"> </p>
|
|
</dir>
|
|
</dir>
|
|
<b>
|
|
|
|
<p align="CENTER">TABLES FOR THE GDS</p>
|
|
</b>
|
|
|
|
<p align="CENTER">TABLE 6. DATA REPRESENTATION TYPE</p>
|
|
|
|
<p align="CENTER">(GDS Octet 6)</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="487">
|
|
<tbody><tr>
|
|
<td width="16%" valign="TOP">VALUE</td>
|
|
<td width="84%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">0</td>
|
|
<td width="84%" valign="TOP">Latitude/Longitude Grid also called Equidistant Cylindrical
|
|
or Plate Carree projection grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">1</td>
|
|
<td width="84%" valign="TOP">Mercator Projection Grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">2</td>
|
|
<td width="84%" valign="TOP">Gnomonic Projection Grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">3</td>
|
|
<td width="84%" valign="TOP">Lambert Conformal, secant or tangent, conical or bipolar
|
|
(normal or oblique) Projection Grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">4</td>
|
|
<td width="84%" valign="TOP">Gaussian Latitude/Longitude Grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">5</td>
|
|
<td width="84%" valign="TOP">Polar Stereographic Projection Grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">6 - 12</td>
|
|
<td width="84%" valign="TOP">(reserved - see Manual on Codes)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">13</td>
|
|
<td width="84%" valign="TOP">Oblique Lambert conformal, secant or</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP"></td>
|
|
<td width="84%" valign="TOP">tangent, conical or bipolar,</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP"></td>
|
|
<td width="84%" valign="TOP">projection</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">14 - 49</td>
|
|
<td width="84%" valign="TOP">(reserved - see Manual on Codes)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">50</td>
|
|
<td width="84%" valign="TOP">Spherical Harmonic Coefficients</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">51 - 89</td>
|
|
<td width="84%" valign="TOP">(reserved - see Manual on Codes)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">90</td>
|
|
<td width="84%" valign="TOP">Space view perspective or orthographic grid</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP">91 - 254</td>
|
|
<td width="84%" valign="TOP">(reserved - see Manual on Codes)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE C. Sundry Grid Definitions</p>
|
|
|
|
<p align="CENTER">LATITUDE/LONGITUDE GRIDS</p>
|
|
|
|
<p align="CENTER">INCLUDING GAUSSIAN</p>
|
|
|
|
<p align="CENTER">(GDS Octets 7 - 32)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="601">
|
|
<tbody><tr>
|
|
<td width="21%" valign="TOP">OCTET NO.</td>
|
|
<td width="79%" valign="TOP">CONTENT & MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">7 - 8</td>
|
|
<td width="79%" valign="TOP">Ni - No. of points along a latitude circle</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">9 - 10</td>
|
|
<td width="79%" valign="TOP">Nj - No. of points along a longitude meridian</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">11 - 13</td>
|
|
<td width="79%" valign="TOP">La<sub>1</sub> - latitude of first grid point units:
|
|
millidegrees (degrees x 1000)<br>
|
|
values limited to range 0 - 90,000 bit 1 (leftmost) set to 1 for south latitude</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">14 - 16</td>
|
|
<td width="79%" valign="TOP">Lo<sub>1</sub> - longitude of first grid point units:
|
|
millidegrees (degrees x 1000)<br>
|
|
values limited to range 0 - 360,000 bit 1 (leftmost) set to 1 for west longitude</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">17</td>
|
|
<td width="79%" valign="TOP">Resolution and component flags (Table 7)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">18 - 20</td>
|
|
<td width="79%" valign="TOP">La<sub>2</sub> - Latitude of last grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">(same units, value range, and bit 1 as La<sub>1</sub>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">21 - 23</td>
|
|
<td width="79%" valign="TOP">Lo<sub>2</sub> - Longitude of last grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">(same units, value range, and bit 1 as Lo<sub>1</sub>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">24 - 25</td>
|
|
<td width="79%" valign="TOP">Di - Longitudinal Direction Increment </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">(same units as Lo<sub>1</sub>) (if not given, all bits set =
|
|
1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">26 - 27</td>
|
|
<td width="79%" valign="TOP"><u>Regular Lat/Lon Grid</u>:</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">Dj - Latitudinal Direction Increment (same units as La<sub>1</sub>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">(if not given, all bits set = 1) or</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP"><u>Gaussian Grid</u>:</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">N - number of latitude circles between a pole and the equator</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"></td>
|
|
<td width="79%" valign="TOP">Mandatory if Gaussian Grid specified </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">28</td>
|
|
<td width="79%" valign="TOP">Scanning mode flags (See Table 8)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP">29 - 32</td>
|
|
<td width="79%" valign="TOP">Reserved (set to zero)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p> Notes:
|
|
|
|
</p><ol>
|
|
<li>The latitude and longitude of the first and last grid points should always be given, for
|
|
regular grids.</li>
|
|
<li>If a quasi-regular grid is to be described, in which all the rows or columns do not
|
|
necessarily have the same number of grid points, either Ni (octets 7-8) or Nj (octets
|
|
9-10) and the corresponding Di (octets 24-25) or Dj (octets 26-27) shall be coded with all
|
|
bits set to 1 (missing).</li>
|
|
<li>A quasi-regular grid can be defined only for rows or columns, but not both
|
|
simultaneously. The first point in each row (column) shall be positioned at the meridian
|
|
(parallel) indicated in octets 11-16. The grid points shall be evenly spaced in latitude
|
|
(longitude).</li>
|
|
<li>For Gaussian grids only the rows can be rendered quasi-regular; the first point shall be
|
|
located at the meridian given in octets 14-16 and the last point at the meridian given in
|
|
octets 21-23.</li>
|
|
</ol>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p align="JUSTIFY"> </p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="CENTER">POLAR STEREOGRAPHIC GRIDS</p>
|
|
|
|
<p align="CENTER">(GDS Octets 7 - 32)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="581">
|
|
<tbody><tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">OCTET NO.</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">CONTENT & MEANING</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">7 - 8</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Nx - Number of points along x-axis</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">9 - 10</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Ny - Number of points along y-axis</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">11 - 13</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">La1 - Latitude of first grid point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">14 - 16</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Lo1 - Longitude of first grid point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">17</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Resolution and component flags (see Table
|
|
7)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">18 - 20</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Lov - The orientation of the grid; i.e.,
|
|
the east longitude value of the meridian which is parallel to the y-axis (or columns of
|
|
the grid) along which latitude increases as the y-coordinate increases. (Note: The
|
|
orientation longitude may, or may not, appear within a particular grid.)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">21 - 23</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Dx - the X-direction grid length (see Note
|
|
2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">24 - 26</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Dy - the Y-direction grid length (see note
|
|
2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">27</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Projection center flag (see note 5)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">28</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Scanning mode (see Table 8)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="21%" valign="TOP"><p align="JUSTIFY">29 - 32</p></td>
|
|
<td width="79%" valign="TOP"><p align="JUSTIFY">Set to 0 (reserved)</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY">Notes:</p>
|
|
|
|
<ol>
|
|
<li>Latitude and longitude are in millidegrees (thousandths)</li>
|
|
<li>Grid lengths are in units of meters, at the 60 degree latitude circle nearest to the
|
|
pole in the projection plane.</li>
|
|
<li>Latitude values are limited to the range 0 - 90,000. Bit 1 is set to 1 to indicate south
|
|
latitude.</li>
|
|
<li>Longitude values are limited to the range 0 - 360,000. Bit one is set to 1 to indicate
|
|
west longitude.</li>
|
|
<li>Octet 27:</li>
|
|
<p align="JUSTIFY">Bit 1 set to 0 if the North pole is on the projection plane.</p>
|
|
<p align="JUSTIFY">Bit 1 set to 1 if the South pole is on the projection plane.</p>
|
|
<li>The first and last grid points may not necessarily be the same as the first and last
|
|
data points if the bit map section (BMS) is used.</li>
|
|
<li>The resolution flag (bit 1 of Table 7) is not applicable.</li>
|
|
</ol>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p> </p>
|
|
<p align="CENTER">LAMBERT CONFORMAL SECANT OR TANGENT CONE GRIDS</p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="CENTER">(GDS Octets 7 - 42)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="590">
|
|
<tbody><tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">OCTET NO.</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">CONTENT & MEANING</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">7 - 8</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Nx - Number of points along x-axis</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">9 - 10</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Ny - Number of points along y-axis</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">11 - 13</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">La1 - Latitude of first grid point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">14 - 16</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Lo1 - Longitude of first grid point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">17</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Resolution and component flags (see Table
|
|
7)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">18 - 20</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Lov - The orientation of the grid; i.e.,
|
|
the east longitude value of the meridian which is parallel to the y-axis (or columns of
|
|
the grid) along which latitude increases as the y-coordinate increases. (Note: The
|
|
orientation longitude may, or may not, appear within a particular grid.)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">21 - 23</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Dx - the X-direction grid length (see note
|
|
2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">24 - 26</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Dy - the Y-direction grid length (see Note
|
|
2)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">27</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Projection center flag (see note 5)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">28</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Scanning mode (see Table 8)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">29 - 31</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Latin 1 - The first latitude from the pole
|
|
at which the secant cone cuts the spherical earth. (See Note 8)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">32 - 34</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Latin 2 - The second latitude from the
|
|
pole at which the secant cone cuts the spherical earth. (See Note 8)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">35 - 37</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Latitude of southern pole (millidegrees)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">38 - 40</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Longitude of southern pole (millidegrees)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">41 - 42</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Reserved (set to 0)</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY">Notes:</p>
|
|
|
|
<ol>
|
|
<li>Latitude and longitude are in millidegrees (thousandths)</li>
|
|
<li>Grid lengths are in units of meters, at the intersection latitude circle nearest to the
|
|
pole in the projection plane.</li>
|
|
<li>Latitude values are limited to the range 0 - 90,000. Bit 1 is set to 1 to indicate south
|
|
latitude.</li>
|
|
<li>Longitude values are limited to the range 0 - 360,000. Bit one is set to 1 to indicate
|
|
west longitude.</li>
|
|
<li>Octet 27:<br>
|
|
Bit 1 set to 0 if the North pole is on the projection plane.<br>
|
|
Bit 1 set to 1 if the South pole is on the projection plane.<br>
|
|
Bit 2 set to 0 if only one projection center used<br>
|
|
Bit 2 set to 1 if projection is bipolar and symmetric</li>
|
|
<li>The first and last grid points may not necessarily be the same as the first and last
|
|
data points if the bit map section (BMS) is used.</li>
|
|
<li>The resolution flag (bit 1 of Table 7) is not applicable.</li>
|
|
<li>If Latin 1 = Latin 2 then the projection is on a tangent cone.</li>
|
|
</ol>
|
|
|
|
<p align="CENTER">MERCATOR GRIDS</p>
|
|
|
|
<p align="CENTER">(GDS Octets 7 - 42)</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="502">
|
|
<tbody><tr>
|
|
<td width="25%" valign="TOP"> OCTET NO.</td>
|
|
<td width="75%" valign="TOP">CONTENT & MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">7 - 8</td>
|
|
<td width="75%" valign="TOP">Ni - Number of points along a latitude circle</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">9 - 10</td>
|
|
<td width="75%" valign="TOP">Nj - Number of points along a longitude meridian</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">11 - 13</td>
|
|
<td width="75%" valign="TOP">La1 - Latitude of first grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">14 - 16</td>
|
|
<td width="75%" valign="TOP">Lo1 - Longitude of first grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">17</td>
|
|
<td width="75%" valign="TOP">Resolution and component flags (see Table 7)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">18 - 20</td>
|
|
<td width="75%" valign="TOP">La2 - latitude of last grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">21 - 23</td>
|
|
<td width="75%" valign="TOP">Lo2 - longitude of last grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">24 - 26</td>
|
|
<td width="75%" valign="TOP">Latin - The latitude(s) at which the Mercator projection
|
|
cylinder intersects the earth. </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">27</td>
|
|
<td width="75%" valign="TOP">Reserved (set to 0)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">28</td>
|
|
<td width="75%" valign="TOP">Scanning mode (see Table 8)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">29 - 31</td>
|
|
<td width="75%" valign="TOP">Di - the longitudinal direction increment (see Note 2)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">32 - 34</td>
|
|
<td width="75%" valign="TOP">Dj - the latitudinal direction increment (see note 2)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="25%" valign="TOP">35 - 42</td>
|
|
<td width="75%" valign="TOP">Reserved (set to 0)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="JUSTIFY">Notes:</p>
|
|
|
|
<ol>
|
|
<li>Latitude and longitude are in millidegrees (thousandths)</li>
|
|
<li>Grid lengths are in units of meters, at the circle of latitude specified by Latin. </li>
|
|
<li>Latitude values are limited to the range 0 - 90,000. Bit 1 is set to 1 to indicate south
|
|
latitude.</li>
|
|
<li>Longitude values are limited to the range 0 - 360,000. Bit one is set to 1 to indicate
|
|
west longitude.</li>
|
|
<li>The latitude and longitude of the last grid point should always be given.</li>
|
|
<li>The first and last grid points may not necessarily be the same as the first and last
|
|
data points if the bit map section (BMS) is used.</li>
|
|
</ol>
|
|
|
|
<p align="CENTER">SPACE VIEW PERSPECTIVE OR ORTHOGRQAPHIC</p>
|
|
|
|
<p align="CENTER">(GDS Octets 7-44)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="571">
|
|
<tbody><tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">OCTET NUMBER</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">CONTENTS</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">7-8</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Nx - number of points along x axis
|
|
(columns)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">9-10</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Ny - number of points along y axis (rows
|
|
or lines)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">11-13</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Lap - latitude of sub-satellite point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">14-16</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Lop - longitude of sub-satellite point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">17</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Resolution and component flags (Table 7)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">18-20</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">dx - apparent diameter of earth in grid
|
|
lengths, in x direction</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">21-23</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">dy - apparent diameter of earth in grid
|
|
lengths, in y direction</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">24-25</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Xp - X-coordinate of sub satellite point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">26-27</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Yp - Y-coordinate of sub-satellite point</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">28</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Scanning Mode (Table 8)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">29-31</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">the orientation of the grid; i.e., the
|
|
angle in millidegrees between the increasing y axis and the meridian of the sub-satellite
|
|
point in the direction of increasing latitude (see Note 3).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">32-34</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">Nr - the altitude of the camera from the
|
|
earth's center, measured in units of the earth's (equatorial) radius (See Note 4).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="17%" valign="TOP"><p align="JUSTIFY">35-44</p></td>
|
|
<td width="83%" valign="TOP"><p align="JUSTIFY">reserved</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> Notes:</p>
|
|
|
|
<ol>
|
|
<li>It is assumed that the satellite is at its nominal position, i.e., it is looking
|
|
directly at its sub-satellite point.</li>
|
|
<li>Octet 32-34 shall be set to all ones (missing) to indicate the orthographic view (from
|
|
infinite distance).</li>
|
|
<li>It is the angle between increasing y axis and the meridian 180 degrees east if the
|
|
sub-satellite point is the North pole; or the meridian 0 degrees, if the sub-satellite
|
|
point is the south pole.</li>
|
|
<li>The apparent angular size of the earth will be given by 2 x asin(1/Nr).</li>
|
|
<li>The horizontal and vertical angular resolutions of he sensor (Rx and Ry), needed for
|
|
navigation equations, can be calculated from the following</li>
|
|
</ol>
|
|
|
|
<p align="CENTER">Rx = 2 x asin(1/Nr) / dx</p>
|
|
|
|
<p align="CENTER">Ry = 2 x asin(1/Nr) / dy</p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">SPHERICAL HARMONIC COEFFICIENTS</p>
|
|
|
|
<p align="CENTER">(GDS Octets 7 - 32)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="520">
|
|
<tbody><tr>
|
|
<td width="28%" valign="TOP">OCTET NO.</td>
|
|
<td width="72%" valign="TOP">CONTENT & MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="28%" valign="TOP">7 - 8</td>
|
|
<td width="72%" valign="TOP">J - Pentagonal Resolution Parameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="28%" valign="TOP">9 - 10</td>
|
|
<td width="72%" valign="TOP">K - Pentagonal Resolution Parameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="28%" valign="TOP">11 - 12</td>
|
|
<td width="72%" valign="TOP">M - Pentagonal Resolution Parameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="28%" valign="TOP">13</td>
|
|
<td width="72%" valign="TOP">Representation Type (See Table 9)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="28%" valign="TOP">14</td>
|
|
<td width="72%" valign="TOP">Coefficient Storage Mode (See Table 10)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="28%" valign="TOP">15 - 32</td>
|
|
<td width="72%" valign="TOP">Set to zero (reserved)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p> </p>
|
|
|
|
<p align="CENTER">TABLE 7 - RESOLUTION AND COMPONENT FLAGS</p>
|
|
|
|
<p align="CENTER">(GDS Octet 17)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="576">
|
|
<tbody><tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">Bit</p></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">Value</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">Meaning</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">1</p></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">0</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">Direction increments not given</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">1</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">Direction increments given</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">2</p></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">0</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">Earth assumed spherical with radius =
|
|
6367.47 km</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">1</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">Earth assumed oblate spheroid with size</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">as determined by IAU in 1965: </p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">6378.160 km, 6356.775 km, f = 1/297.0</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">3-4</p></td>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">reserved (set to 0)</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">5</p></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">0</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">u- and v-components of vector quantities
|
|
resolved relative to easterly and northerly directions</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">1</p></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">u and v components of vector quantities
|
|
resolved relative to the defined grid in the direction of increasing x and y (or i and j)
|
|
coordinates respectively</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">6-8</p></td>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="74%" valign="TOP"><p align="JUSTIFY">reserved (set to 0)</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> Note: If the GDS is <b>not</b> included in a message then any
|
|
wind components are assumed to be resolved relative to the grid specified in the PDS with
|
|
u and v defined as positive in the direction of increasing x and y (or i and j)
|
|
coordinates respectively.</p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="CENTER">TABLE 8. SCANNING MODE FLAG</p>
|
|
|
|
<p align="CENTER">(GDS Octet 28)</p>
|
|
<div align="center"><center>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="462">
|
|
<tbody><tr>
|
|
<td width="15%" valign="TOP">BIT</td>
|
|
<td width="17%" valign="TOP">VALUE</td>
|
|
<td width="69%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">1</td>
|
|
<td width="17%" valign="TOP">0</td>
|
|
<td width="69%" valign="TOP">Points scan in +i direction</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"></td>
|
|
<td width="17%" valign="TOP">1</td>
|
|
<td width="69%" valign="TOP">Points scan in -i direction</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">2</td>
|
|
<td width="17%" valign="TOP">0</td>
|
|
<td width="69%" valign="TOP">Points scan in -j direction</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"></td>
|
|
<td width="17%" valign="TOP">1</td>
|
|
<td width="69%" valign="TOP">Points scan in +j direction</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP">3</td>
|
|
<td width="17%" valign="TOP">0</td>
|
|
<td width="69%" valign="TOP">Adjacent points in i direction are consecutive</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"></td>
|
|
<td width="17%" valign="TOP"></td>
|
|
<td width="69%" valign="TOP">(FORTRAN: (I,J))</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"></td>
|
|
<td width="17%" valign="TOP">1</td>
|
|
<td width="69%" valign="TOP">Adjacent points in j direction are consecutive</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"></td>
|
|
<td width="17%" valign="TOP"></td>
|
|
<td width="69%" valign="TOP">(FORTRAN: (J,I))</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</center></div>
|
|
|
|
<p align="JUSTIFY"> Note: i direction is defined as west to east along a parallel of
|
|
latitude, or left to right along an x axis.</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p align="JUSTIFY">j direction is defined as south to north along a meridian of longitude,
|
|
or bottom to top along a y axis.</p>
|
|
<p align="CENTER">TABLE 9. SPECTRAL REPRESENTATION TYPE</p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="CENTER">(GDS Octet 13)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="606">
|
|
<tbody><tr>
|
|
<td width="12%" valign="TOP">VALUE</td>
|
|
<td width="88%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="12%" valign="TOP"><p align="JUSTIFY">1</p></td>
|
|
<td width="88%" valign="TOP"><p align="JUSTIFY">Associated Legendre Polynomials of the
|
|
First Kind with normalization such that the integral equals 1</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="CENTER">TABLE 10. COEFFICIENT STORAGE MODE</p>
|
|
|
|
<p align="CENTER">(GDS Octet 14)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="616">
|
|
<tbody><tr>
|
|
<td width="13%" valign="TOP">VALUE</td>
|
|
<td width="87%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="TOP"><p align="JUSTIFY">1 </p></td>
|
|
<td width="87%" valign="TOP"><p align="JUSTIFY">The complex coefficients X<sub>nm</sub>
|
|
are stored for m <u>></u> 0 as pairs of real numbers Re(Xnm), Im(Xnm) ordered with n
|
|
increasing from m to N(m), first for m = 0 and then for m = 1, 2, 3,...M. The real part of
|
|
the (0,0) coefficient is stored in octets 12-15 of the BDS, as a floating point number in
|
|
the same manner as the packing reference value, with units as in Table 2. The remaining
|
|
coefficients, starting with the imaginary part of the (0,0) coefficient, are packed
|
|
according to the GRIB packing algorithm, with units as given in Table 5, in octets 16 and
|
|
onward in the BDS.</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> NOTES ON SPECTRAL TRUNCATION:</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p align="CENTER"><img src="./GuidetoGRIB_files/Guide-GRIB-2.gif" width="217" height="48"></p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="JUSTIFY">Using the associated Legendre Polynomials of the First Kind, Pnm, as
|
|
typical expansion functions, any variable x(l ,F), which is a function of longitude, l ,
|
|
and sin(latitude), F , can be represented by</p>
|
|
|
|
<p align="CENTER"> </p>
|
|
|
|
<p align="JUSTIFY"><img src="./GuidetoGRIB_files/Guide-GRIB-3.gif" alt="Guide-GRIB-3.gif (2477 bytes)" align="left" hspace="4" width="287" height="248">In the summations, M is the
|
|
maximum zonal wave number that is to be included, and K & J together define the
|
|
maximum meridional total wave number N(m), which, it should be noted, is a function of m.
|
|
A sketch shows the relationships:</p>
|
|
|
|
<p align="JUSTIFY"> </p>
|
|
|
|
<p align="JUSTIFY">In this figure, the ordinate is n the zonal wave number, the abscissa,
|
|
m, is the total meridional wave number, the vertical line at m = M is the zonal
|
|
truncation, and the diagonal passing through (0,0) is the line n = m. The Legendre
|
|
Polynomials are defined only on or above this line, that is for n <u>></u> m. On the
|
|
n-axis, the horizontal line at n = K indicates the upper limit to n values, and the
|
|
diagonal that intersects the n-axis at n = J indicates the upper limit of the area in
|
|
which the Polynomials are defined. The shaded irregular pentagon defined by the n-axis,
|
|
the diagonal from n = J, the horizontal n = K, the vertical m = M, and the other diagonal
|
|
n = m surrounds the region of the (n x m) plane containing the Legendre Polynomials used
|
|
in the expansion.</p>
|
|
|
|
<p align="JUSTIFY">This general pentagonal truncation reduces to some familiar common
|
|
truncations as special cases:</p>
|
|
|
|
<p align="CENTER">Triangular: K = J = M and N(m) = J</p>
|
|
|
|
<p align="CENTER">Rhomboidal: K = J + M and N(m) = J + m</p>
|
|
|
|
<p align="CENTER">Trapezoidal: K = J, K > M and N(m) = J</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<dir>
|
|
<p align="JUSTIFY"> </p>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="JUSTIFY">In all of the above m can take on negative values to represent the
|
|
imaginary part of the spectral coefficients.</p>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="Section3">SECTION 3</a>: BIT MAP SECTION (BMS)</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY"> The purpose of the (optional) BMS is to provide either a bit map
|
|
or a reference to a bit map pre-defined by the center. The bit map consists of contiguous
|
|
bits with a bit-to-data-point correspondence as defined in the grid description. A bit set
|
|
equal to 1 implies the presence of a datum for that grid point in the BDS; a value of zero
|
|
implies the absence of such. This is useful in shrinking fields where fair portions of the
|
|
field are not defined. An example would be global grids of sea surface temperature; the
|
|
bit map would be used to suppress the "data" at grid points over land. One would
|
|
not want to use the BMS if the data were un-defined at only a small number of grid points
|
|
as the overhead of adding the bit map array (one bit for each grid point) might add more
|
|
bits to the overall message that were subtracted by the removal of a few data values.</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="499">
|
|
<tbody><tr>
|
|
<td width="16%" valign="TOP"><p align="JUSTIFY"> Octet no.</p></td>
|
|
<td width="84%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP"><p align="JUSTIFY">1 - 3</p></td>
|
|
<td width="84%" valign="TOP"><p align="JUSTIFY">Length in octets of Bit Map Section</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP"><p align="JUSTIFY">4</p></td>
|
|
<td width="84%" valign="TOP"><p align="JUSTIFY">Number of unused bits at end of Section 3.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP"><p align="JUSTIFY">5 - 6</p></td>
|
|
<td width="84%" valign="TOP"><p align="JUSTIFY">Numeric:</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP" height="51"></td>
|
|
<td width="84%" valign="TOP" height="51">= 0: a bit map follows;<br>
|
|
otherwise: the numeric refers to a predefined bit map provided by the center</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="16%" valign="TOP"><p align="JUSTIFY">7 - nnn</p></td>
|
|
<td width="84%" valign="TOP"><p align="JUSTIFY">Bit map, zero filled to an even number of
|
|
octets</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="Section4">SECTION 4</a>: BINARY DATA SECTION (BDS).</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY"> The BDS contains the packed data and the binary scaling
|
|
information needed to reconstruct the original data from the packed data. The required
|
|
decimal scale factor is found in the PDS, above. The data stream is zero filled to an even
|
|
number of octets. </p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="601">
|
|
<tbody><tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY"> Octet no.</p></td>
|
|
<td width="85%" valign="TOP"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">1 - 3</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Length in octets of binary data section</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">4</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Bits 1 through 4: Flag - See Table 11</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Bits 5 through 8: Number of unused bits at
|
|
end of Section 4.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">5 - 6</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">The binary scale factor (E). A negative
|
|
value is indicated by setting the high order bit (bit No. 1) in octet 5 to 1 (on).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">7 - 10</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Reference value (minimum value); floating
|
|
point representation of the number.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">11</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Number of bits into which a datum point is
|
|
packed</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">12 -nnn</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Variable, depending on octet 4; zero
|
|
filled to an even number of octets.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" valign="TOP"><p align="JUSTIFY">14</p></td>
|
|
<td width="85%" valign="TOP"><p align="JUSTIFY">Optionally, may contain an extension of
|
|
the flags in octet 4. See Table 11.</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY"> Here are some of the various forms the binary data can take; the
|
|
flag table in BDS octet 4, possibly extended into octet 14, identifies which variant is in
|
|
use. </p>
|
|
|
|
<p align="JUSTIFY"> <u>Grid-point data - Simple packing</u></p><u>
|
|
</u>
|
|
|
|
<p align="JUSTIFY"> Here the data simply begin in octet 12 and continue, packed
|
|
according to the simple packing algorithm described above, without any particular regard
|
|
for computer "word" boundaries, until there is no more data. There may be some
|
|
"zero-fill" bits at the end.</p>
|
|
|
|
<p align="JUSTIFY">If all the data in a grid point field happen to have the same value,
|
|
then all of the deviations from the reference value are set to zero. Since a zero value
|
|
requires no bits for packing, octet 11 is set to zero, thus indicating a field of constant
|
|
data, the value of which is given by the reference value. Under these circumstances, octet
|
|
12 is set to zero (the required "zero fill to an even number of octets") and
|
|
bits 5-8 of octet 4 contain an 8. The number of data points in the field is implied by the
|
|
grid identification given in the PDS and/or the GDS and BMS.</p>
|
|
|
|
<p align="JUSTIFY"> <u>Spherical Harmonic Coefficients - Simple packing</u></p><u>
|
|
</u>
|
|
|
|
<p align="JUSTIFY"> Octets 12-15 contain the real part of the (0.0) coefficient in
|
|
the same floating point format as the reference value in octets 7-10. The imaginary part
|
|
of the (0.0) coefficient, mathematically, is always equal zero. Octets 16 to the end
|
|
contain the remaining coefficients packed up as binary data with the same sort of scaling,
|
|
reference value, and the like, as with grid-point numbers. Excluding the (0,0)
|
|
coefficient, which is usually much larger than the others, from the packing operation
|
|
means that the remaining coefficients can be packed to a given precision more efficiently
|
|
(fewer bits per word) than would be the case otherwise.</p>
|
|
|
|
<p align="JUSTIFY"> <u>Grid-Point Data - Second Order or Complex Packing</u></p><u>
|
|
</u>
|
|
|
|
<p align="JUSTIFY"> Before laying out where the various second order values,
|
|
sub-parameters, counters, and what have you, go, it is appropriate to describe the second
|
|
order packing method in an algorithmic manner.</p>
|
|
|
|
<p align="JUSTIFY">Referring back to the description of simple packing, the encoding
|
|
method is the same up to part way through the fourth step, stopping just short of the
|
|
actual packing of the scaled integers into the "words" of either a pre-specified
|
|
or calculated bit length.</p>
|
|
|
|
<p align="JUSTIFY">The basic outline of second order packing is to scan through the array
|
|
of integers (one per grid point, or possibly less than that if the Bit Map Section has
|
|
been employed to discard some of the null value points) and seek out sub-sections
|
|
exhibiting relatively low variability within the sub-section. One then finds the (local)
|
|
minimum value in that sub-section and subtracts it from the ("first order")
|
|
integers in that sub-section, which leave a set of "second order" integers.
|
|
These numbers are then scanned to find the maximum value, which in turn is used to specify
|
|
the minimum bit width for a "word" necessary to contain the sub-section set of
|
|
second order numbers. </p>
|
|
|
|
<p align="JUSTIFY">The term "first order" in this context refers to the integer
|
|
variables that result from subtracting the overall (global) minimum from the original
|
|
variables and then doing all scaling and rounding; "second order" refers to the
|
|
variables that result from subtracting the local minimum from the sub-set of first order
|
|
variables. No further scaling is necessary or appropriate.</p>
|
|
|
|
<p align="JUSTIFY">The sub-section set of numbers are then packed into "words"
|
|
of the just determined bit length. The overall savings in space comes about because the
|
|
second order values are, usually, smaller than their first order counterparts. They have,
|
|
after all, had two minima subtracted from the original values, the overall minimum and the
|
|
local minimum, where the first order values have had only the overall minimum subtracted
|
|
out. There is no guarantee, however, that the second order packing will compress a given
|
|
field to a greater degree than the first order packing. If the first order field of
|
|
integers is highly variable, or generally close to zero, then there will be no gain in
|
|
compression. But if the field shows long runs of small variation, particularly if some of
|
|
the runs are constant (zero variability), then the second order packing will contribute to
|
|
the compression. </p>
|
|
|
|
<p align="JUSTIFY">The process then repeats and a whole collection of sub-sections are
|
|
found, their local minima are subtracted, etc. One of the tricky parts of this process is
|
|
defining just what is meant by a "sub-section of low variability". The WMO
|
|
Manual is silent on this as it only describes how the sub-sections and their ancillary
|
|
data are to be packed in the message. The U.S. National Weather Service, the U.K.
|
|
Meteorological Office, the European Centre for Medium-Range Weather Forecasts, and
|
|
probably other groups have, independently, designed selection criteria and built them into
|
|
GRIB encoders. It is beyond the scope of this document to attempt to describe them in any
|
|
detail. These groups have all expressed their willingness to share their GRIB encoders
|
|
with any who ask for them.</p>
|
|
|
|
<p align="JUSTIFY">Before laying out where the second order values, etc., are placed in a
|
|
message, we had best review just what information has to be saved. We need to include the
|
|
following information:</p>
|
|
|
|
<dir>
|
|
<dir>
|
|
<p align="JUSTIFY">1) How many sub-sections there are;</p>
|
|
<p align="JUSTIFY">2) Where does each sub-section begin;</p>
|
|
<p align="JUSTIFY">3) Where does each sub-section end; or, how many data points are in
|
|
each sub-section;</p>
|
|
<p align="JUSTIFY">4) That is the local minimum value (a first order value) that was found
|
|
for each sub-section;</p>
|
|
<p align="JUSTIFY">5) What is the bit width of the collection of first order values (the
|
|
local minima) found for each sub-section;</p>
|
|
<p align="JUSTIFY">6) What are the second order values for each sub-section;</p>
|
|
<p align="JUSTIFY">7) What are the bit widths of the second order values appropriate for
|
|
all the sub-section; and, finally,</p>
|
|
<p align="JUSTIFY">8) Sufficient information to specify where the above information is
|
|
located.</p>
|
|
</dir>
|
|
</dir>
|
|
|
|
<p align="JUSTIFY">A moments consideration (a long moment, perhaps) will satisfy the
|
|
reader that the information given will be sufficient to reconstruct the original data
|
|
field.</p>
|
|
|
|
<p align="JUSTIFY">The information needed for points 2) and 3), the beginning and end of
|
|
the sub-sections, is presented in the form of a bit map, called a "secondary bit
|
|
map" to distinguish it from the bit map (optionally) contained in the BMS. There is
|
|
one bit for each grid point containing data, ordered in the same way as the grid is laid
|
|
out. The "primary" bit map, the BMS bit map, may have been used to eliminate
|
|
data at points where the data are meaningless - only the remaining "real" data
|
|
points are matched by the bits in the secondary bit map. This possibility is understood to
|
|
exist throughout the following discussion. The start of each sub-section is indicated by
|
|
the corresponding bit set to "on" or to a value of 1. Clearly, the first bit in
|
|
the secondary bit map will always be set on, since the first data point must be the start
|
|
of the first sub-section. (If it is not, then something is wrong somewhere. Unfortunately
|
|
it is not always easy to tell just where the error occurred.) The secondary bit map is
|
|
then no more than a collection of 1s and 0s, indicating the start and the extent of each
|
|
sub-section. It would be possible to scan through the secondary bit map and determine how
|
|
many sub-sections there are; however, this number is explicitly included in the GRIB
|
|
message to save one the trouble, and to serve as an internal self-checking mechanism.</p>
|
|
|
|
<p align="JUSTIFY">At long last, then, here is the layout of the information, with further
|
|
explanatory notes, when second order packing has been employed:</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="607">
|
|
<tbody><tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY"> Octet no.Content</p></td>
|
|
<td width="86%" valign="MIDDLE"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">1-3</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Length in octets of binary data section</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">4</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Bits 1 through 4: Flag - See Table 11</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Bits 5 through 8: Number of unused bits at
|
|
end of Section 4.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">5-6</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">The binary scale factor (E). A negative
|
|
value is indicated by setting the high order bit(bit No. 1) in octet 5 to 1 (on).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">7-10</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Reference value (minimum value); floating
|
|
point representation of the number. This is the overall or "global" minimum that
|
|
has been subtracted from all the values.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">11</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Number of bits into which a datum point is
|
|
packed. This width now refers to the collection of first order packed values that serve as
|
|
the local minimum values, one for each sub-section. It is determined in the same manner as
|
|
for the simple (first order) packing.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">12-13</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">N1 - Octet number, relative to the start
|
|
of the BDS, at which the collection of first order packed numbers begins, i.e. the
|
|
collection of local minimum values.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">14</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">The flags that are an extension of octet
|
|
4. See Code Table 11.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">15-16</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">N2 - Octet number, relative to the start
|
|
of the BDS, at which the collection of second order packed numbers begins.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">17-18</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">P1 - The number of first order packed
|
|
values, the local minima. This number is the same as the number of sub-sections.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">19-20</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">P2 - The number of second order packed
|
|
values. This is the number of actual data points (as possibly modified by the bit map in
|
|
the BMS, if any).</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">21</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Reserved</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">22-(xx-1)</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Width(s), in bits, of the second order
|
|
packed values; each width value is contained in 1 octet. There are as many width values,
|
|
or octets, as there are sub-sections, P1 of them. However, there may be but one such value
|
|
under special circumstances; see below. Also, the width value for a particular sub-section
|
|
may perfectly well be zero.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">xx-(N1-1)</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">Secondary bit map, one bit for each data
|
|
point. It will be P2 bits long, then padded to an even number of octets with binary 0.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">N1-(N2-1)</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">P1 first order packed values, the local
|
|
minima, each held in a "word" of bit-length found in octet 11, then padded to a
|
|
whole number of octets with 0s.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="14%" valign="TOP"><p align="JUSTIFY">N2-...</p></td>
|
|
<td width="86%" valign="TOP"><p align="JUSTIFY">P2 second order packed values. There is no
|
|
"marking" of the sub-sections here; all the sub-section second order values are
|
|
placed in a continuous string of bits. The bit-length of the "words" holding the
|
|
values will change from place to place but again this has to be determined by reference to
|
|
the other information.</p></td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p align="JUSTIFY">As usual, there may be padding by binary 0 bits sufficient to bring the
|
|
entire section to an even number of octets.</p>
|
|
|
|
<p align="JUSTIFY"> There are a small number of special cases and variations on the
|
|
above layout:</p>
|
|
|
|
<p align="JUSTIFY">If the bit-width for a sub-section is zero, then no second order values
|
|
for that sub-section are included in the part of the message starting at octet N2. This
|
|
will happen is all the first order values in the sub-section are identical. This is a form
|
|
of "run-length encoding" and contributes greatly to packing efficiency if the
|
|
original data contains strings of constant value (including zero).</p>
|
|
|
|
<p align="JUSTIFY">Under some circumstances, it may turn out that there is no need to use
|
|
different bit-widths for each of the sub-sections. In that case, a flag is set in bit 8 of
|
|
the extended flags found in octet 14 (see table 11) indicating that all the sub-sections
|
|
are packed with the same bit-width, and that the single value will be found in octet 22.</p>
|
|
|
|
<p align="JUSTIFY">Row by row packing is defined as selecting entire rows (or columns) to
|
|
serve as sub-sections, without regard to "variability" determinations. It can
|
|
have some compression value. If row by row packing is employed, this is indicated by
|
|
setting a flag in bit 7 of the extended flags found in octet 14 (see table 11) and NOT
|
|
including the secondary bit map in the message. It is unnecessary since the length of the
|
|
rows (columns) is known from the grid specifications given elsewhere in the message.</p>
|
|
<b>
|
|
|
|
<p align="CENTER">TABLES FOR THE BDS</p>
|
|
</b>
|
|
|
|
<p align="CENTER">TABLE 11. FLAG</p>
|
|
|
|
<p align="CENTER">(BDS Octet 4 and, optionally, 14)</p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="541">
|
|
<tbody><tr>
|
|
<td width="10%" valign="TOP">BIT</td>
|
|
<td width="16%" valign="TOP">VALUE</td>
|
|
<td width="74%" valign="TOP">MEANING</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">1</td>
|
|
<td width="16%" valign="TOP">0</td>
|
|
<td width="74%" valign="TOP">Grid point data</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP">1</td>
|
|
<td width="74%" valign="TOP">Spherical Harmonic Coefficients</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">2</td>
|
|
<td width="16%" valign="TOP">0</td>
|
|
<td width="74%" valign="TOP">Simple packing </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP">1</td>
|
|
<td width="74%" valign="TOP">Second order ("Complex") Packing </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">3</td>
|
|
<td width="16%" valign="TOP">0</td>
|
|
<td width="74%" valign="TOP">Original data were floating point values</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP">1</td>
|
|
<td width="74%" valign="TOP">Original data were integer values</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP">4</td>
|
|
<td width="16%" valign="TOP">0</td>
|
|
<td width="74%" valign="TOP">No additional flags at octet 14</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="10%" valign="TOP"></td>
|
|
<td width="16%" valign="TOP">1</td>
|
|
<td width="74%" valign="TOP">Octet 14 contains flag bits 5 - 12</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p> The following gives the meaning of the bits in octet 14 ONLY if bit 4 is set to
|
|
1. Otherwise octet 14 contains regular binary data. </p>
|
|
|
|
<table cellspacing="0" border="0" cellpadding="7" width="571">
|
|
<tbody><tr>
|
|
<td width="11%" valign="TOP"> 5</td>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="76%" valign="TOP">Reserved (set to 0)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP">6</td>
|
|
<td width="14%" valign="TOP">0</td>
|
|
<td width="76%" valign="TOP">Single datum at each grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP">1</td>
|
|
<td width="76%" valign="TOP">Matrix of values at each grid point</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP">7</td>
|
|
<td width="14%" valign="TOP">0</td>
|
|
<td width="76%" valign="TOP">No secondary bit maps</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP">1</td>
|
|
<td width="76%" valign="TOP">Secondary bit maps present</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP">8</td>
|
|
<td width="14%" valign="TOP">0</td>
|
|
<td width="76%" valign="TOP">Second order values have constant width</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP"></td>
|
|
<td width="14%" valign="TOP">1</td>
|
|
<td width="76%" valign="TOP">Second order values have different widths</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="11%" valign="TOP">9-12</td>
|
|
<td width="14%" valign="TOP"></td>
|
|
<td width="76%" valign="TOP">Reserved (set to 0)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<p> Notes:
|
|
|
|
</p><ol>
|
|
<li>Bit 3 is set to 1 to indicate that the original data were integers; when this is the
|
|
case any non-zero reference values should be rounded to an integer value prior to placing
|
|
in the GRIB BDS.</li>
|
|
<li>Bit 4 is set to 1 to indicate that bits 5 to 12 are contained in octet 14 of the data
|
|
section.</li>
|
|
<li>Although GRIB is not capable of representing a matrix of data values at each grid point,
|
|
the meaning of bit 6 is retained in anticipation of a future capability.</li>
|
|
<li>When secondary bit maps are present in the data (used in association with second order
|
|
packing) this is indicated by setting bit 7 to 1.</li>
|
|
<li>When octet 14 contains the extended flag information, octets 12 and 13 will also contain
|
|
"special" information; the actual data will begin in a subsequent octet. See
|
|
above.</li>
|
|
</ol>
|
|
<b>
|
|
|
|
<p align="JUSTIFY"><a name="Section5">SECTION 5</a>: END SECTION.</p>
|
|
</b>
|
|
|
|
<p align="JUSTIFY"> The end section serves a human readable indication of the end of
|
|
a GRIB record. It can also be used for computer verification that a complete GRIB record
|
|
is available for data extraction. It should not be used as a search target since a '7777'
|
|
bit combination could exist anywhere in the binary data stream.</p>
|
|
|
|
<p align="JUSTIFY"> Octet no.</p>
|
|
|
|
<p align="JUSTIFY">1-4 '7777' (Coded CCITT-ITA No. 5)</p>
|
|
|
|
|
|
</body></html> |