This document describes the format of records containing grid analysis data on the National Meteorological Center (NMC) octagonal grid. This is a 47x51 grid with no data values stored for the corner sections (14 grid points are omitted in the corners on the outside edges of the grid), resulting in an octagonal shaped array with 1977 data values. The grid spacing is 381 km at 60 degrees north latitude. The points are equally spaced when viewed on a polar stereographic map projection, centered on the north pole and rotated such that 10 degrees east longitude is a horizontal line to the right of the Pole. The layout of the grid points is shown in figure 1. Programs to read this format and to transform to latitude-longitude grids are available from the NCAR Data Support Section (DSS). These programs use the subroutine GBYTES to handle the bit manipulation functions. GBYTES is available for various computers from the DSS.
The format is used for data from a variety of sources, but it is used most commonly for data from NMC. The NMC grid data are usually based on the NMC final analyses and include data received up to about 10 hours after data time. If the final analyses were not available, data were sometimes filled in with the operational data, which have a data cutoff of 3 hours 20 minutes after data time.
For data received from NMC there is a units change in 1973. Before 1973 heights are in centimeters and wind speeds are in knots. Starting 1 January 1973, the heights are in meters and wind in m/sec. Details of the units are given in Table I. Temperature analyses are received from NMC in ºK but are converted at NCAR to ºC.
Each grid field is contained in one 3000 byte record. This format was originally implemented on Control Data Corporation computers using a 60-bit word size and the record length is 400 of these words. The base value and checksum derive from this word format. The base value can be evaluated using the rules in section B, and the checksum can be ignored by most users.
The record consists of a 120-bit identification section, 60-bit base value, 1977 12-bit data values, and a 60-bit checksum.
A. Identification Section
| Name | Offset | Bits | |
| 1. | format number | 0 | 6 |
| 2. | year | 6 | 7 |
| 3. | month | 13 | 4 |
| 4. | day | 17 | 5 |
| 5. | hour | 22 | 5 |
| 6. | pressure level | 27 | 10 |
| 7. | function | 37 | 9 |
| 8. | forecast | 46 | 9 |
| 9. | miscellaneous | 55 | 10 |
| 10. | source | 65 | 6 |
| 11. | grid status | 71 | 5 |
| 12. | kbias | 76 | 12 |
| 13. | kscale | 88 | 12 |
| 14. | additional | 100 | 20 |
| 1. | format number: 1 for most octagonal grid data. A 2 indicates additional data follows the first 3000 bytes. The extra data occur in a 1955-60 data set and contain a few extra points in the Pacific Ocean. They can be ignored by most applications. Format number is 3 for the tropical grid. Information on this grid is available in a separate document. | ||||||||||
| 2. | year: 65 = 1965 | ||||||||||
| 3. | month: 1 to 12 for Jan. to Dec. | ||||||||||
| 4. | day: day of month | ||||||||||
| 5. | hour: Greenwich time of analysis | ||||||||||
| 6. | pressure level: a packed value representing the pressure level in millibars. Pressure (in mbs) = 1023 - packed value. Certain pressure values have special meaning as follows:
| ||||||||||
| 7. | function code: where 1 is heights, 10 is temperatures, etc. Table I contains a complete list of function codes. | ||||||||||
| 8. | forecast: analyses are coded as zero. Forecasts are usually coded as 12 = 12 hr fcst, 24 = 24 hrs, etc. | ||||||||||
| 9. | misc: this field is used to code the second pressure in thickness fields (packed as 1023-mbs) and can be used for other fields as necessary. For pressures less than 1 mb this field is set to pressure x 100 (0.4 is set to 40) and pressure in 6 is set to 0. | ||||||||||
| 10. | source of the analysis
| ||||||||||
| 11. | grid status: normally zero. A non-zero value may be used in processing the data to indicate that the grid values need to be checked.
| ||||||||||
| 12. | kbias: is the bias used in packing the data. See Eqn (1). It is the value 2048 for grids from NMC. | ||||||||||
| 13. | kscale: is the scaling factor as shown in Eqn (1). kscale is packed in the record such that packed value = kscale + 2048. | ||||||||||
| 14. | additional: For monthly mean grids, the first 8 bits of this area contain a count of the number of fields which were used to compute the mean. For individual analyses, this area is unused for data previous to 1973. Starting in 1973, the following markers may have been packed as received from NMC. Tables explaining these markers are available in NMC Office Note 84.
|
B. Base Value
Bits 121 through 180 contain the base value used in Eqn 1. This is a full 60 bit word based on Control Data Corporation 6600/7600 floating point format except that negative numbers are represented in sign magnitude and not ones complement form. Bit 1 contains the sign, bits 2 to 12 the exponent, and bits 13 to 60 contain the magnitude.
The exponent is biased by 20008 for exponents greater than zero, and 17778 for exponents less than zero. Thus a packed value of 17738 would represent an exponent of -48. A value of 20058 would represent an exponent of +58. Values ordinarily are normalized to the left with the first significant digit in the high order position. The binary point for the magnitude is assumed to be at the extreme right.
| Value (decimal) | Packed value (octal) | |
| -1.000 | 57204000000000000000 | |
| 0. | 00000000000000000000 | |
| 1.000 | 17204000000000000000 | |
| 2.000 | 17214000000000000000 | |
| 3.125 | 17216200000000000000 | |
| 11300.000 | 17355411000000000000 |
Until January 1973, the base values were usually constant for a given pressure level and function code. They were all positive, and corresponded closely to the US Standard Atmosphere of 1962. After 1973, the base values are close to the mean value of each field.
C. Data Section
Bits 181 through 216 are unused and 217 through 23940 contain the data values. The 1977 packed data values are contained in consecutive 12-bit bytes beginning after skipping 216 bits from the start of the record.
Figure 1 shows the geographical location of the data points. The 1977 packed data points have the following (I.J) values in Figure 1: DP#1 I,J = 15,1 DP#2 16,1 . . DP#19 = 33,1 DP#20 = 14,2 . . DP#1977 = 33.51
D. Checksum
Bits 23941 through 24000 contain a 60-bit checksum formed by adding words 1 through 399 on the Control Data 6600/7600. This addition is the same as an add and carry logical addition of the 60 bit words. It is included to allow testing of the data integrity and most users can ignore this checksum.
The packed 12-bit values can be unpacked into integer variables using GBYTES. The true value at each data point is then recoverd from the 12-bit values by the following equation:
The value of const is not packed in the record. The value is usually one, but exceptions to this are noted at the end of Table I. The units of the base values are the same as the units of the truevalue and are listed under "units" in Table I.
The following shows a typical ID section and one of the data values for a temperature field.
| Data | Packed value | Octal | Base 10 | Meaning | |
| a. | year | 1000001 | 101 | 65 | 1965 |
| b. | month | 0110 | 6 | 6 | June |
| c. | day | 11101 | 35 | 29 | 29th |
| d. | hour | 01100 | 14 | 12 | 12Z |
| e. | pressure | 0010101101 | 255 | 173 | 1023-173=850 mbs |
| f. | function | 000001010 | 12 | 10 | Temperature |
| g. | forecast | 000000000 | 0 | 0 | An anlysis |
| h. | misc. | 000000000 | 0 | 0 | not used |
| i. | source | 000001 | 1 | 1 | Data from NMC |
| j. | kbias | 100000000000 | 4000 | 2048 | See eqn (1) |
| k. | kscale | 011111111100 | 3774 | 2044 | kscale=2044-2048=-4 |
| l. | base | 60 bits of zero | 0 | 0 | See eqn (1) |
| m. | DP#1 | 011101110100 | 3564 | 1908 |
| Function Code | Field Type | Units (blank=N/A) before 1973 | Units 1973 on | Usual scaling until 1973 |
| 1 | Z (Geopotential height) | cm | m | 6 for P>400 mb 7 for P<400mb |
| 2 | Stream functions made at NMC | cm2/sec | same as 1 | |
| 4 | Thickness values | cm | m | same as 1 |
| 5 | w (Vertical velocity) | dynes/cm2/sec or microbars/sec | millibars/sec | -8 |
| 6 | Surface pressure1 | mb | 0 | |
| 10 | T (temperature) | deg C | deg C | -4 |
| 19 | dew point depression | deg C | deg C | -4 |
| 20 | Max temperature | deg C | ||
| 21 | Min temperature | deg C | ||
| 26 | Stream functions made at NCAR | cm2/sec | same as 1 | |
| 27 | Stream functions made at NCAR | cm2/sec | same as 1 | |
| 28 | Sea level pressure2 | mb | mb | |
| 30 | U wind component3 | knots | m/sec | |
| 31 | V wind component3 | knots | m/sec | |
| 40 | Cloud cover | 80ths | 0 | |
| 44 | Relative humidity | percent | ||
| 47 | Sea surface temperature | deg C | ||
| 90 | Total precipitation | m | ||
| 93 | Snow depth | m | ||
| 1 For some non-NMC datasets, function code 6 is used to indicate sea level pressure. 2 In NMC data, prior to 1 April 1971, add 900 to get sea level pressure. 3 U and V components are positive in the I and J grid directions, respectively, not to the East and North. Notes: | ||||