Level 1b Data Base of NOAA AVHRR
Level 1b Data Base of NOAA AVHRR

This section describes the NOAA Polar Orbiter Level 1b Data Base that is archived by SSB, and from which users may request data.

Level 1b (following FGGE terminology) is raw data that have been quality controlled, assembled into discrete data sets, and to which Earth location and calibration information have been appended (but not applied).

The data are present on the data base as a collection of data sets. Each data set contains data of one type for a discrete time period. Thus, there are separate HRPT, LAC, GAC, HIRS, MSU, and SSU data sets. Time periods are arbitrary subsets of orbits, and may cross orbits (i.e., may contain data along a portion of an orbital track that includes the ascending node, the reference point for counting orbits). Generally, GAC, HIRS, MSU, and SSU data sets will be available for corresponding time periods and usually have a three to five minute overlap between consecutive data sets.

Prior to June 1981, the Earth location data in the AVHRR and TOVS Level 1b data may have been slightly inaccurate due to errors in the TIROS Information Processor (TIP) clock onboard the spacecraft. The 6-byte time code in the Level 1b data is taken from the TIP clock which routinely contained errors of 1.5 to 2.3 seconds.

Some problems have been encountered with NOAA-10 and NOAA-11 AVHRR Level 1b GAC data in regards to earth locations, distances between adjacent scan lines, data gaps, scan line numbers, and out of sequence scan times. It is not known at this time if these problems existed with the earlier spacecraft in the TIROS-N series. NESDIS/IPD is investigating these problems and will take corrective action. The following paragraphs summarize a memorandum from Karl W. Cox (SMSRC) to Pat Mulligan (NOAA/NESDIS/OSD) which details the problems. Copies of this memorandum are available from SSB.

As the spacecraft moves through its orbit, the expected angular distance between the nadir of adjacent GAC scans is approximately 0.0296 degrees of arc, or 3.2914 km, as measured from the center of the earth. This actual value of the average angular distance can vary by up to about 0.1712 km due to variations in satellite height, scan angle and other factors. Forty-eight randomly selected NOAA-10 and NOAA-11 GAC data sets were examined over a period of a few days at the beginning of July 1990. On the average, the distances between adjacent scan lines were outside the permitted window (0.2304 km) 45 times per dataset. The time difference between these adjacent scan lines was the expected 500 milliseconds, but the quality flags did not indicate a data gap.

When data gaps occur in GAC data, the scan line number is supposed to be incremented to reflect the number of scan lines corresponding to the length of the gap. However, the first scan line after a data gap was found to have the scan number next in sequence of those preceding the gap, while the second scan line following the gap had been incremented by the number of scan lines corresponding to the data gap. On an average, data gaps were found to occur two to three times per dataset with the gaps typically ranging from one to 40 scan lines.

In four out of the 48 GAC data sets examined, scan times were encountered which were not in proper sequence. Some of the time differences were very large. This problem introduces earth locations markedly different from those of adjacent scan lines. However, the scan line numbers were in ascending sequence as if there were no problems with the scan times or earth locations, and no scan quality flags had been set.

In the past, SSB has attempted to give the user only data with calibration information, but it was found that most users preferred to receive all the data (with or without calibration information) over their area and/or time span. The user can then use his own discretion in applying the calibration coefficients to any gaps of data without calibration information. It is SSB's policy that all Level 1b data (whether it includes calibration information or not) will be provided to the user for his specific area or time unless explicitly requested otherwise by the user.

In the event that the user receives data without calibration information, the data can be calibrated from the telemetry information contained in each scan. For a detailed explanation of this procedure, refer to NOAA Technical Memorandum NESS 107 entitled Data Extraction and Calibration of TIROS-N/NOAA Radiometers, available from SSB. In the case of a data set with some calibration present, the user can usually interpolate the calibration data between known points for the uncalibrated portion.

Clock Information

Users of Level 1b data should be aware that the satellite's on board clock experiences a small drift in time over a period of several months. Specifically, that time drift can be defined by Δt, where Δt is the spacecraft clock time (t) minus the actual UTC time. SOCC monitors this time error and maintains Δt to within ± one-half second. The Earth location data which is appended to the Level 1b data is based on the spacecraft clock time. Therefore, an error in Δt will be reflected as an error in Earth location. The error in Earth location due to this timing error could be as much as 4 kilometers at the satellite subpoint. SOCC normally applies the time correction around 2359 UTC on the scheduled date. The clock error, drift rate, last update and future update are announced in the APT Predict Bulletin (TBUS - TIROS Bulletin U.S.). The Level 1b process has been enhanced to incorporate a clock drift correction option. See Appendix L for details. Figure 2.0.1-1 shows a typical drift of Δt (note that points A and B are where SOCC applies the correction to Δt).

Figure showing typical drift of Delta t

IBM Conventions

All the NOAA polar orbiter Level 1b data and products are produced on IBM mainframes. This section describes some of the characteristics of data written on an IBM mainframe. The bit and byte numbering conventions are described, in addition to the representations for signed binary integers and floating point numbers. These conventions are especially critical if the user does not use an IBM machine to read the data. This does not imply that these data cannot be read on non-IBM machines, but the user should exercise some caution when reading "IBM-generated" data on a non-IBM machine.

The bit and byte (one byte equals 8-bits) numbering convention for Level 1b data sets is as follows. The bits within each byte or word are numbered from the most significant bit (MSB) on the left to the least significant bit (LSB) on the right, with the MSB identified as bit 31, the next most significant as bit 30, and with the LSB as bit 0. Similarly, the byte containing the 8 MSBs of a 32-bit word is identified as byte 4; and the byte containing the 8 LSBs, as byte 1.

IBM's signed binary integers are usually represented as halfwords (16 bits) or words (32 bits). In both lengths, the leftmost bit (bit 31) is the sign of the number. The remaining bits (bits 1-15 for halfwords and 1-31 for words) are used to designate the magnitude of the number. Binary integers are also referred to as fixed-point numbers, because the radix point (binary point) is considered to be fixed at the right, and any scaling is done by the programmer.

Positive binary integers are in true binary notation with a zero sign bit. Negative binary integers are in two's-complement notation with a one bit in the sign position. In all cases, the bits between the sign bit and the leftmost significant bit of the integer are the same as the sign bit (that is, all zeros for positive numbers, all ones for negative numbers). Negative binary integers are formed in two's-complement notation by inverting each bit of the positive binary integer and adding one.

A floating point number is expressed as a hexadecimal fraction multiplied by a separate power of 16. The term floating point indicates that the placement, of the radix (hexadecimal) point, or scaling, is automatically maintained by the machine.

The part of a floating-point number which represents the significant digits of the number is called the fraction. A second part specifies the power (exponent) to which 16 is raised and indicates the location of the radix point of the number. The fraction and exponent may be represented by 32 bits.

A floating-point number has two signs: one for the fraction and one for the exponent. The fraction sign, which is also the sign of the entire number, is the leftmost bit of each format (0 for plus, 1 for minus). The numeric part of the fraction is in true notation regardless of the sign. The numeric part is contained in bits 8-31.

The exponent sign is obtained by expressing the exponent in excess-64 notation; that is, the exponent is added as a signed number to 64. The resulting number is called the characteristic. It is located in bits 1-7. The characteristic can vary from 0 to 127, permitting the exponent to vary from -64 through 0 to +63. This provides a scale multiplier in the range of 16-64 to 16+63. A nonzero fraction, if normalized, has a value less that one and greater than or equal to 1/16, so that the range covered by the magnitude of a normalized floating-point number is between 16-65 and 16+63.

Level 1b Data Set Names

This section describes the data set naming convention which is used for all Level 1b data sets. Each data set has a unique data set name which is generated when the data set is created. This 42-character name (which is coded in binary coded decimal [BCD]) will be used to reference the data sets. The data set name will be "NSS" followed by a set of alphanumeric qualifiers separated by periods (.). The complete data set name with all its qualifiers will be as follows:

NSS.Data-type.Spacecraft-Unique-ID.Year-day.Start-time.Stop-time.Processing-block-ID. Source

The qualifiers of the data set name are defined as shown in Table 2.0.3-1.

Table 2.0.3-1. Data set name qualifiers.
Qualifier Example
DATA-TYPE Valid groups are:
HRPT= HRPT (direct readout full resolution AVHRR)
GHRR= GAC (recorded reduced resolution AVHRR)
LHRR= LAC (recorded HRPT AVHRR)
HIRX= HIRS/2 data set derived from GAC embedded TIP
MSUX= MSU data set derived from GAC embedded TIP
SSUX= SSU data set derived from GAC embedded TIP
HIRS= HIRS/2 data set derived from stored TIP
MSUS= MSU data set derived from stored TIP
SSUS= SSU data set derived from stored TIP
SPACECRAFT-UNIQUE-ID TIROS-N = TN
NOAA-A = NA = NOAA-6
NOAA-B = NB
NOAA-C = NC = NOAA-7
NOAA-D = ND = NOAA-12
NOAA-E = NE = NOAA-8
NOAA-F = NF = NOAA-9
NOAA-G = NG = NOAA-10
NOAA-H = NH = NOAA-11
NOAA-I = NI = NOAA-13
NOAA-J = NJ = NOAA-14
YEAR-DAY D79104, where "D" identifies this group as a Julian day delimiter, "79" identifies the year in which the spacecraft began recording the data set and "104" identifies the Julian day on which the spacecraft began recording the data set.
START-TIME S1355, where "S" identifies this group as a start time delimiter. "1355" denotes 13 hours 55 minutes UTC (to the nearest minute) and represents the time at which spacecraft recording began.
STOP-TIME E1456, where "E" identifies this group as an end time delimiter. "1456" denotes 14 hours 56 minutes UTC (to the nearest minute) and represents the time of spacecraft recording of the last usable data in the data set.
PROCESSING-BLOCK-ID B0016465, where "B" identifies this group as a processing block ID delimiter. "0016465" is a seven digit number identifying the spacecraft revolution in which recording of this data set began and the revolution in which the data ended (the first five digits identifying the beginning revolution and last two being the two least significant digits of the orbit number identifying the end revolution). However, NESDIS does not necessarily guarantee that the Processing-Block-ID contains the correct beginning and ending orbit number. Frequently (especially with LAC data), the orbit numbers are 1 to 2 off the correct orbit; thus, it is always prudent when ordering data to include a time, if known.
SOURCE Valid character groups are:
Fairbanks, Alaska (formerly Gilmore Creek) = GC
Western Europe CDA = WE
SOCC (Satellite Operations Control Center) = SO
Wallops Island, Virginia = WI

Data Set Header

This section describes the Data Set Header. All Level 1b data sets (with the exception of the SBUV/2) contain a Data Set Header record describing the data set. This header record is in binary and padded with trailing spare bytes to make it the same size as the full channel data set records. (Note: The Data Set Header for HRPT and LAC data sets is contained in two 7400-byte records. The first record contains the Data Set Header as described below and the second record will be meaningless to the user.) Currently, there are two slightly different Data Set Headers: one for the AVHRR and one for the TOVS data. The Data Set Header for TOVS has changed slightly from the original. It's format is given in Table 2.0.4-1.

Table 2.0.4-1. Data Set Header Record Format for TOVS (after September 8, 1992).
Byte # # of Bytes Contents
1 1 Spacecraft ID
2 1 Data Type
3-8 6 Start Time
9-10 2 Number of Scans
11-16 6 End Time
17-23 7 Processing Block ID (ASCII)
24 1 Ramp/Auto Calibration
25-26 2 Number of Data Gaps
27-32 6 DACS Quality
33-34 2 Calibration Parameter ID
35 1 DACS Status
36 1 Reserved for mounting and fixed attitude correction indicator:
0 = no correction applied;
1 = correction applied
37 1 Nadir earth location tolerance. Integer scaled to 0.1 km, values range from 0.1 to 25.5 km.
38 1 Spare (Zero-filled)
39-40 2 4-digit year for start of data (effective December 2, 1998)
41-82 42 42 character dataset name (EBCDIC)
83-84 2 Blank-filled
85-end Variable Zero-filled with enough bytes to make header record same size as data record

SSB uses specialized software to extract parts of Level 1b datasets, based on user's selection criteria (channel, area and/or time selects). As of July 3, 1996, SSB modified the extraction software so that the Data Set Header record would reflect the actual number of output scan lines within the subsetted dataset and not the total number of scan lines found in the original dataset. This change does not affect users who order tape copies of entire datasets, just the users that order extracts.

The Data Set Header format was modified on two different occasions: September 8, 1992 and November 15, 1994. Appendix K contains the original format (before September 8, 1992) of the Data Set Header, while Appendix L contains the interim format (between September 8, 1992 and November 15, 1994) of the Data Set Header.

The current Data Set Header format for AVHRR data includes orbital parameters that were implemented with other enhancements on November 15, 1994. The format for the AVHRR Data Set Header is given in Table 2.0.4-2.

Table 2.0.4-2. Data Set Header record format for AVHRR (after November 15, 1994).
Byte # # of Bytes Contents Scaling Factor
1 1 Spacecraft ID n/a
2 1 Data Type n/a
3-8 6 Start Time n/a
9-10 2 Number of scans n/a
11-16 6 End Time n/a
17-23 7 Processing Block ID (ASCII) n/a
24 1 Ramp/Auto Calibration n/a
25-26 2 Number of data gaps n/a
27-32 6 DACS Quality n/a
33-34 2 Calibration Parameter ID n/a
35 1 DACS Status n/a
36 1 Reserved for mounting and fixed attitude correction indicator: 0 = no correction applied; 1 = correction applied n/a
37 1 Nadir earth location tolerance. Integer scaled to 0.1 km, values range from 0.1 to 25.5 km. n/a
38 1 Spare (Zero-filled) n/a
39-40 2 4-digit year for start of data (effective Dec. 2, 1998) n/a
41-84 44 44 character dataset name (EBCDIC) n/a
85-86 2 2-digit year of Epoch for orbit vector (4 digits effective March 17, 1999) n/a
87-88 2 Julian Day of Epoch (XXX) n/a
89-92 4 Millisecond UTC epoch time of day (XXXXXXXX) n/a
Keplerian Orbital Elements
93-96 4 Semi-major axis in kilometers 1000
97-100 4 Eccentricity 100000000
101-104 4 Inclination (in degrees) 100000
105-108 4 Argument of Perigee (in degrees) 100000
109-112 4 Right Ascension of the Ascending Node (in degrees) 100000
113-116 4 Mean Anomaly (in degrees) 100000
Cartesian Inertial True of Date Elements
117-120 4 x component of position vector (in kilometers) 10000
121-124 4 y component of position vector (in kilometers) 10000
125-128 4 z component of position vector (in kilometers) 10000
129-132 4 x -dot component of position vector (in kilometers/sec) 1000000
133-136 4 y -dot component of position vector (in kilometers/sec) 1000000
137-140 4 z -dot component of position vector (in kilometers/sec) 1000000
Future Use
141-142 2 Yaw fixed error correction n/a
143-144 2 Roll fixed error correction n/a
145-146 2 Pitch fixed error correction n/a
147-end variable Spares - zero filled to the size of the data record n/a
Note: orbit parameters are scaled to 4-byte integers (not 8-byte floating point).

Valid spacecraft IDs are contained in Table 2.0.4-3. Note that the spacecraft ID is identical for NOAA-11 and TIROS-N. In this case, users should use the time code in conjunction with the spacecraft ID to verify that they have the correct satellite.

Table 2.0.4-3. Spacecraft ID.
ID Number Satellite
0 Spare
1 TIROS-N
2 NOAA-6
4 NOAA-7
6 NOAA-8
7 NOAA-9
8 NOAA-10
1 NOAA-11
5 NOAA-12
2 NOAA-13
3 NOAA-14

The data type of the data set is identified by the two integer codes contained in Table 2.0.4-4.

Table 2.0.4-4. Data Type Codes.
Bits 4-7 Bits 0-3
Code Data Type Code TIP Source
1 LAC 1 Embedded TIP
2 GAC 2 Stored TIP
3 HRPT 3 Third CDA TIP
4 TIP 4-15 Spare
5 HIRS/2 n/a n/a
6 MSU n/a n/a
7 SSU n/a n/a
8 DCS n/a n/a
9 SEM n/a n/a
10-15 Spare n/a n/a

The start time is the spacecraft time code from the first frame of data processed for this data set and is contained in 6 bytes. The year is contained in the leftmost 7 bits of the first two bytes, the 9-bit Julian day is right-justified in the first two bytes, and the 27-bit millisecond UTC time of day is right-justified in the last four bytes. All other bits are zero. Figure 2.0.4-1 shows the format of the time code for both start and end times.

Figure showing breakdown of format for time code

Complete scans that fall within data gaps are not included in the number of scans count. A gap in the data that covers one or more consecutive scans is counted as one data gap.

The end time is the spacecraft time code from the last frame of data processed for this data set. The content and format are the same as described for the start time (see Figure 2.0.4-1).

The Processing Block ID is a seven-byte field generated from start and end times. It contains the spacecraft revolution in which recording of the data set began and the revolution in which it terminated (same as the Processing Block ID described in beginning of Section 2.0.3).

The ramp/auto calibration field is contained in one byte. Bits 4-8 of this byte have meaning for GAC, LAC, and HRPT data sets only. These bits indicate ramp non-linearity. Bit 3 of this byte has meaning only for HIRS/2 and SSU data sets and contains the setting of the auto calibration override switch. Bit 4 is used for channel 1, bit 5 for channel 2, etc.

The DACS quality field consists of six types of DACS (Data Acquisition and Control Subsystem) quality information accumulated in the headers of all data sets derived from data input from DACS. The first two bytes contain a count of the input data frames that contained no frame sync word errors. The second two bytes contain a count of the DACS detected TIP parity errors. The last two bytes contain a sum of all auxiliary sync errors detected in the input data for the complete data set.

The calibration parameter ID identifies the calibration parameter input data set which is used to calibrate the data in this data set. The ID is encoded internally as a string of two 8-bit characters; not as an integer number.

DACS status information comprises one byte and is contained in the header of all data sets derived from data input from DACS. This byte is described in Table 2.0.4-5.

Table 2.0.4-5. DACS Status Information Format.
Bits Value Meaning
7 Pseudo Noise (P/N) Flag
0 Normal Data
1 P/N Data
6-5 Data Source
0 Unused
1 Fairbanks
2 Wallops
3 SOCC
4 Tape Direction
0 REV (time decrementing)
1 FWD (time incrementing)
3 Data Mode
0 Test Data
1 Flight Data
2-0 Spare

Source: http://www.ncdc.noaa.gov