Description of raw telemetry data file format. Authors: A.Mazurov, E.Loupian, M.Zakharov, SMIS IKI RAN, Moscow, Russia. e-mail: alexei@smis.iki.rssi.ru phone: +7(095)333-5313 I. General description. The general structure of file is as the following: { a. Main Header b. Scan line header c. HRPT Scan line telemtry data b1. Scan line header c1. HRPT scan line telemetry data ... bn. Last scan line header cn. Last HRPT scan line telemetry data. } where the headers are described below and every "HRPT Scan line telemtry data" is telemetry line as it is (see "Data Extraction and Calibration of TIROS-N/NOAA Radiometers"), but leading (first 6 * 10bit words) and trailing (last 100 * 10bit words) syncs are removed. The words are numbered according to the reference mentioned above. The bits inside a line are left aligned (data has been shifted 4 bit to the left - to MSB in Intel's bit/byte order). Total length of the resulting line is 13730 bytes (size of the original line with syncs is 11090 10bits words). Most files contain AVHRR calibration coefficients calculated according to the standard routine which is described in the same reference as above. Types mentioned below: WORD 2 bytes (16 bits) unsigned integer number DWORD 4 bytes (32 bits) unsigned integer number BYTE 1 byte (8 bits) unsigned integer number char ASCII symbol (so, 1 byte) float single precision IEEE format float number double double precision IEEE format float number Note: all files are prepared on IBM-PC compatible computer by software complied using Microsoft C/C++ compiler. II. Format description. Main header has the following structure: typedef struct tagUTF_HEADER { WORD wSize; // size of the structure WORD utfCode; // magic word = 0x0212 WORD CalibrDone; // 1/0 if AVHRR data are calibrated/non-calibrated DWORD dwStart; // Reserved DWORD dwEnd; // Reserved TRAJECTORYHEADER trjHeader; // See below GREF gref; // See below WORD dataCode; // Contents (instrument) ID: // 0x0FFF -- full telemetry // 0x0002 -- HIRS data - not fully implemented // 0xFFFF -- unknown data (reserved) // other values are not defined } UTF_HEADER; where: typedef struct tagTRAJECTORYHEADER { char achSputnik[32] ; // satellite identifier (zero-terminated string) WORD wYear ; // year A.C. WORD wMonth ; // 1 .. 12 WORD wDay ; // 1 .. 31 WORD wHour ; // 0 .. 23 WORD wMinute ; // 0 .. 59 WORD wSecond ; // 0 .. 59 satellite tracking start time (GMT) float fStep ; // reserved WORD wMass ; // reserved BYTE reserved[12] ; // reserved WORD wExtraBytes ; // reserved } TRAJECTORYHEADER ; NOTE: the satellite tracking start time is a hardware operating start time to follow satellite. typedef struct { // ephemeris at satellite tracking start time double time; // Epoch time (yyddd.ddddddddd). double a; // Semimajor axis. double e; // Eccentricity. double incl; // Inclination. double nodeo; // Longitude of ascending node. double omega; // Argument of perigee. double thetg; // Hour angle of the point of Spr/Eq. double mo; // Mean anomaly. double no; // mean motion double deltat; // Time of the 1st scan line (in epoch units) double RevNum; // Revolution number double EphemerisType; // 1.0 - NORAD, 2.0 - TBUS double period; // double xndt2o; double xndd6o; double bstar; double iexp; double ibexp; double spare1; // Clock correction (msec.) if defined. double spare2; double spare3; } GREF; The scan line header has the following structure: typedef struct { // frame HEADER for one AVHRR scan line WORD frm_num; // Scan line number (not used) WORD QualContr; // Quality of line DWORD Time; // TIME of Scan Line ( ms ) float GI[5][3]; // Array with calibration coefficients for all channels } stFRMHEADA; Time - retrieved time of HRPT scan line (msec) QualContr - quality of line (is tested during calibration): 0x000e - fine 0x0002 - time check passed 0x0004 - AVHRR PRT check passed 0x0008 - sync check passed 0x1000 - no calibration data (GI is not valuable) GI[NChan][NCoef]: NChan - AVHRR channel number (zero bazed; 0-4) NCoef - 0 - gain, 1 - intercept 2 - retrieved target temperature (K) NOTE: for visible channels only gain and intercept are available.