Appendix A: 

Level 1A File Format Description


PURPOSE

The purpose of this appendix is to define the content and format of the SABER Level 1A file. This file will be a product derived from Level 0B modal files and will contain instrument, housekeeping, spacecraft (S/C) and ancillary data in engineering units. The Level 1A file will be separated into scan events that are determined by the scan mode and scan mirror position and velocity, and used as input to the Level 1B processing.

BACKGROUND

The Level 1A file will be the output from Level 1A processing, which reads in modal files, converts to engineering units, determines scan event boundary times, and merges data into scan events. For Level 1A processing this involves reading in the scan mode flag and scan angle and determining boundary times for beginning and ending angles of the type of scan. Scan events are listed in Table 1.

Event Definition

Scan Mode Flag

Scan Angle Direction

Scan Angle

Range [mrads]

Event Type String

Description
Adaptive Down ADPTSCAN TBD TBD ADAPT_UP Nominal scan down
Adaptive Up ADPTSCAN TBD TBD ADAPT_DN Nominal scan up
IFC IFCBBXXX TBD TBD IFCBBXXX Stare at Internal Flight Calibrator
Space Look SPACLOOK TBD TBD SPACLOOK Stare at cold space
Acquisition Down ACQNSCAN TBD TBD ACQ_UP Acquisition scan down
Acquisition Up ACQNSCAN TBD TBD ACQ_DN Acquisition scan up
Lower Baffle Look ACQNSCAN TBD TBD LBAFF Mirror Scans into lower baffle
Upper Baffle Look ACQNSCAN TBD TBD UBAFF Mirror Scans into upper baffle
Fast Scan Down FASTSCAN TBD TBD FAST_DN Scan down at fast rate
Fast Scan Up FASTSCAN TBD TBD FAST_UP Scan up at fast rate
TBD 1-? SPARE1-? TBD TBD TBD Spares for future modes

Table 1: SABER Scan Modes

REQUIREMENTS

The Level 1A file will contain data merged from Level 0B files with samples taken between beginning and ending times of each defined event, determined by the scan mode. The scan events are determined by the scan mode flag and the position and velocity of the scan mirror. Each record will be tagged with a time and scan mode flag (see Table 1). The record time will be in msec since UT midnight, and will be the time when the first measurement field was sampled.

IMPLEMENTATION

The Level 1A file will be divided into adaptive scan events containing instrument data sampled between scan event time boundaries, along with ancillary data required to process each event. Each adaptive scan event will have a scan event header, followed by data that is scan mode event dependent. The event headers contain time information and ancillary data required for processing the event.

FORMAT

The Level 1A format will be ASCII with free format records and fields, (easily represented by a structure). ASCII format ensures cross-platform compatibility, since Linux, SGI and NT workstations will need to share SABER data. Each file contains one day of data. There will be 3 record types; (1) Instrument data, sampled at 22.7 Hz, (2) HouseKeeping data, sampled at 0.063 Hz, and (3) S/C data, sampled at 2 Hz. Based on these sampling rates, the Level 1A file will contain roughly 1 housekeeping record (type 2) for every 32 S/C records (type 3) for every 360 Instrument data records (type 1). The first 4 fields in each record (regardless of type) will be header fields consisting of time, record type, status, and number of fields remaining. The rest of the fields are record-dependent, which are described below.

 SCAN MODE EVENT HEADER DEFINITION

The Level 1A file is based on adaptive scan mode events. Each time the SABER mirror makes a scan through the Earth’s atmosphere, a scan event is defined. The Level 1A file is thus a collection of scan events. For each scan event, the bracketing IFC and Space-look data are included, as well as any baffle-look data if taken. Exactly what data is contained in each event appears in the scan event header. The scan event header will contain the following fields: Event Number (for current day), Year, Date, Orbit Number, Begin Time, End Time, Orbit Number, Data Type, Number of records, where

Event Number is the scan number for the current day,

Year is the 4-digit year,

Date is the 3-digit day-of–year (001-365),

Orbit Number is the TIMED orbit number,

Data Type: Number of Records describes the data which follow in this event and is repeated for all the merged data in the current event and is defined in Table 2.

The format for each data type is described below. Note that each event type has a self-described format, since a reader routine can tell from the (Data Type: Number of Records) fields in the event header precisely what data follows.

Data Type

Description

DC Instrument Data
HK HouseKeeping Data
NMC Pressure Temperature Altitude from NMC data
PVAT Position, Velocity, Attitude and Time data
SOL Solar Geomagnetic Indices

Table 2: Data types which appear in SABER Level 1A file.

 RECORD TYPE DEFINITIONS

The 6 types of records written in a Level 1A file are described below.

DC Record Type

This record type contains data from the Data Collection packets. "PGA" refers to the programmable Gain Amplifier setting in engineering units. Each channel has 3 gain range settings, described in the SABER Instrument Specification document.

Field

Value Units

1

Record Start Time Milliseconds since UT midnight

2

Scan Angle milliradians

3-22

Channel 1-10 PGA Setting [unitless]

23-32

Channel 1-10 Voltage [Volts]

33

Quality Flag N/A

Table 3: Level 1A DC record type definition.

The structure which defines record type 1 follows:

// Instrument Data Record

typedef struct {

long int startTime; // Record start time (msec since UT midnight

double scanAngle; // Scan Mirror Angle [mrads]

double gain[10]; // Channel 1-10 PGA settings []

int chan[10]; // Channel 1-10 output voltages [counts]

double qualityFlag; // Record quality indicator [tbd]

} DC_Record;

HK Record Type

Contains housekeeping data subcommed from the Data Collection packets, as well as any data from housekeeping mode packets.

Field #

Mnemonic

Value

Units

1

  Record Start Time Milliseconds

HouseKeeping Temperature Monitors

5

tfo1vg1 Temperature 1 Focal Plane 1 (voltage)

6

tfo1vg2 Temperature 1 Focal Plane 2 (voltage)

7

tfo1c Temperature 1 Focal Plane (current)

8

tfo2vg1 Temperature 2 Focal Plane 1 (voltage)

9

tfo2vg2 Temperature 2 Focal Plane 2 (voltage)

10

tfo2c Temperature 2 Focal Plane (current)

11

tfo3v Top of Cold Link #3 (voltage)

12

tfo3c Top of Cold Link #3 (current)

13

tfo4v Top of Cold Link #4 (voltage)

14

tfo4c Top of Cold Link #4 (current)

15

tfo5v Bottom of Cold Link #5 (voltage)

16

tfo5c Bottom of Cold Link #5 (current)

17

tfo6v Bottom of Cold Link #6 (voltage)

18

tfo6c Bottom of Cold Link #6 (current)

19

tto1v Radiator Near Aperture Top  

20

tto2v Radiator Near Aperture Bottom  

21

tto3v Baffle Near Aperture Top  

22

tto4v Baffle Hot Spot  

23

tto5v Baffle Near Rear Joint  

24

tto6v Wall Near Bearing Right  

25

tto7v Wall Near Encoder  

26

tto8v Encoder Mount Front  

27

tto9v Encoder Mount Back  

28

tto10v Fore-optics S/C  

29

tto11v IFC #1 (voltage)

30

tto11c IFC #1 (current)

31

tto12v IFC #2 (voltage)

32

tto12c IFC #2 (current)

33

tto13v IFC #3 (voltage)

34

tto13c IFC #3 (current)

35

tto14v Fore-optics Radiator  

36

tto15v Chopper Base Right  

37

tto16v Chopper Base Left  

38

tm01v Refrigerator Mount Top  

39

tm02v Refrigerator Mount Bottom  

40

tm03v Radiator at Ref Mount Base  

41

tm04v Radiator at Electronics Box  

42

tm05v Electronics Box Hot Spot  

43

tm06v Electronics Box Back  

44

tm07v Radiator at RFE Box  

45

tm08v RFE Box Hot Spot  

46

tm09v RFE Box Back  

47

tco1v Cover Deploy System  

48

tref Reference Voltage for Current  

HouseKeeping Power Monitors

49

v1p5 DC/DC#1 +5V, C&DH Volts

50

v2p15 DC/DC#2 +15V, Housekeeping  

51

v2m15 DC/DC#3 -15V, Housekeeping  

52

v4p5 DC/DC#4 +5V, Scan, Analog Count  

53

v5p15 DC/DC#5 +15V, Scan, Analog Count  

54

v5m15 DC/DC#6 -15V, Scan, Analog Count  

55

v6p15 DC/DC#7 +15V, Scan Drive  

56

v7p15 DC/DC#8 +15V, Signal Process  

57

v7m15 DC/DC#9 -15V, Signal Process  

58

v9p5 DC/DC#10 +5V, Signal Process  

59

v10p28 DC/DC#11 +28V, Refrigerator  

HouseKeeping Calibration Sources

60

bbsetv Blackbody Set Voltage  

61-63

jscur[3] Jones Source Currents  

HouseKeeping Refrigerator

64

rcs Refrigerator Compressor Position  

65

rbs Refrigerator Balancer Position  

66

rcc Refrigerator Compressor Current mAmps

67

rbc Refrigerator Balancer Current mAmps

68

rao Refrigerator Accelerometer Out  

69

trch Temperature Cold Head  

HouseKeeping Status

70

stat1Hbeat Heartbeat, Error Counters  

71

stat2Uplink Uplink Status  

72

stat3Onoff On/Off Status  

73

stat4Lnktmp TFO3V, Ref Cold Link Temp  

74

stat5Intrpt Interrupt, Subsystem Status  

HouseKeeping Register Values

75

ti Time Interrupt Compare Word  

76-85

ge[10] Auto Gains (on/off)  

86-95

ghtp[10] Auto Gain High Trip Points  

96-105

gltp[10] Auto Gain Low Trip Points  

106-115

o[10] Channel Offsets Volts

116

mdump EEPROM Dump Block Start Position  

117-119

jssetcur[3] Jones Source Set Currents  

120

bbt Blackbody Set Temperature  

121

adscoff1 Adaptive Scan Offset 1  

122

adscml1 Adaptive Scan Mirror Limit 1  

123

adscoff2 Adaptive Scan Offset 2  

124

adscml2 Adaptive Scan Mirror Limit 2  

125-127

dfsa[3] Data Formatter Start Addresses  

128

rcon1 Refrigerator Control Word 1  

129

rcon2 Refrigerator Control Word 2  

130

crccomp CRC Compare Value  

131

crccur CRC Present Value  

132

retupad Return From Uplink Address  

133

astemp Adaptive Scan Temporary Store  

134

ad1_2p Adaptive Scan 1/2 Peak Value  

135

ml1_2p Mirror Location at 1/2 Peak  

136

mfsp1 Mirror Full Sweep Position 1  

137

mfsp2 Mirror Full Sweep Position 2  

 

The structure(s) that defines record type 2 follows;

// HouseKeeping Record

typedef struct {

long int startTime; // Record start time (msec since UT midnight

HK_Temp_Mon temp_mon; // Temperature Monitors Structure (ch 0-43)

HK_Power_Mon power_mon; // Power Monitors Structure (ch 44-54)

HK_Cal_Src cal_src; // Calibration Sources Structure (ch 55-58)

HK_Refrig refrig; // Refrigerator Structure (ch 59-64)

HK_Status hkStatus; // Status Structure (ch 65-69)

HK_Reg_Val reg_val; // Register Values Structure (ch 70-132)

} HkRec;

// HouseKeeping Temperature Monitors

typedef struct {

double tfo1vg1; // Temperature 1 Focal Plane 1 (voltage)

double tfo1vg2; // Temperature 1 Focal Plane 2 (voltage)

double tfo1c; // Temperature 1 Focal Plane (current)

double tfo2vg1; // Temperature 2 Focal Plane 1 (voltage)

double tfo2vg2; // Temperature 2 Focal Plane 2 (voltage)

double tfo2c; // Temperature 2 Focal Plane (current)

double tfo3v; // Top of Cold Link #3 (voltage)

double tfo3c; // Top of Cold Link #3 (current)

double tfo4v; // Top of Cold Link #4 (voltage)

double tfo4c; // Top of Cold Link #4 (current)

double tfo5v; // Bottom of Cold Link #5 (voltage)

double tfo5c; // Bottom of Cold Link #5 (current)

double tfo6v; // Bottom of Cold Link #6 (voltage)

double tfo6c; // Bottom of Cold Link #6 (current)

double tto1v; // Radiator Near Aperture Top

double tto2v; // Radiator Near Aperture Bottom

double tto3v; // Baffle Near Aperture Top

double tto4v; // Baffle Hot Spot

double tto5v; // Baffle Near Rear Joint

double tto6v; // Wall Near Bearing Right

double tto7v; // Wall Near Encoder

double tto8v; // Encoder Mount Front

double tto9v; // Encoder Mount Back

double tto10v; // Fore-optics S/C

double tto11v; // IFC #1 (voltage)

double tto11c; // IFC #1 (current)

double tto12v; // IFC #2 (voltage)

double tto12c; // IFC #2 (current)

double tto13v; // IFC #3 (voltage)

double tto13c; // IFC #3 (current)

double tto14v; // Fore-optics Radiator

double tto15v; // Chopper Base Right

double tto16v; // Chopper Base Left

double tm01v; // Refrigerator Mount Top

double tm02v; // Refrigerator Mount Bottom

double tm03v; // Radiator at Ref Mount Base

double tm04v; // Radiator at Electronics Box

double tm05v; // Electronics Box Hot Spot

double tm06v; // Electronics Box Back

double tm07v; // Radiator at RFE Box

double tm08v; // RFE Box Hot Spot

double tm09v; // RFE Box Back

double tco1v; // Cover Deploy System

double tref; // Reference Voltage for Current

} HkTempMon;

// HouseKeeping Power Monitors

typedef struct {

double v1p5; // DC/DC#1 +5V, C&DH

double v2p15; // DC/DC#2 +15V, Housekeeping

double v2m15; // DC/DC#3 -15V, Housekeeping

double v4p5; // DC/DC#4 +5V, Scan, Analog Count

double v5p15; // DC/DC#5 +15V, Scan, Analog Count

double v5m15; // DC/DC#6 -15V, Scan, Analog Count

double v6p15; // DC/DC#7 +15V, Scan Drive

double v7p15; // DC/DC#8 +15V, Signal Process

double v7m15; // DC/DC#9 -15V, Signal Process

double v9p5; // DC/DC#10 +5V, Signal Process

double v10p28; // DC/DC#11 +28V, Refrigerator

} HkPowerMon;

// HouseKeeping Calibration Sources

typedef struct {

double bbsetv; // Blackbody Set Voltage

double jscur[3]; // Jones Source Currents

} HkCalSrc;

// HouseKeeping Refrigerator

typedef struct {

double rcs; // Refrigerator Compressor Position

double rbs; // Refrigerator Balancer Position

double rcc; // Refrigerator Compressor Current

double rbc; // Refrigerator Balancer Current

double rao; // Refrigerator Accelerometer Out

double trch; // Temperature Cold Head

} HkRefrig;

// HouseKeeping Status

typedef struct {

short int stat1Hbeat; // Heartbeat, Error Counters

short int stat2Uplink; // Uplink Status

short int stat3Onoff; // On/Off Status

double stat4Lnktmp; // TFO3V, Ref Cold Link Temp

short int stat5Intrpt; // Interrupt, Subsystem Status

} HkStatus;

// HouseKeeping Register Values

typedef struct {

short int ti; // Time Interrupt Compare Word

char ge[10]; // Auto Gains (on/off)

double ghtp[10]; // Auto Gain High Trip Points

double gltp[10]; // Auto Gain Low Trip Points

double o[10]; // Channel Offsets

short int mdump; // EEPROM Dump Block Start Position

double jssetcur[3]; // Jones Source Set Currents

double bbt; // Blackbody Set Temperature

double adscoff1; // Adaptive Scan Offset 1

double adscml1; // Adaptive Scan Mirror Limit 1

double adscoff2; // Adaptive Scan Offset 2

double adscml2; // Adaptive Scan Mirror Limit 2

short int dfsa[3]; // Data Formatter Start Addresses

short int rcon1; // Refrigerator Control Word 1

short int rcon2; // Refrigerator Control Word 2

short int crccomp; // CRC Compare Value

short int crccur; // CRC Present Value

short int retupad; // Return From Uplink Address

short int astemp; // Adaptive Scan Temporary Store

short int ad1_2p; // Adaptive Scan 1/2 Peak Value

short int ml1_2p; // Mirror Location at 1/2 Peak

short int mfsp1; // Mirror Full Sweep Position 1

short int mfsp2; // Mirror Full Sweep Position 2

} HkRegVal;

 PVAT Record Type Definition

This record type contains data from Pointing Velocity Attitude Time (PVAT) file.

Field

Value Units

1

Record Start Time Milliseconds since UT midnight

2

TBD TBD
     
     
     

NMC Record Type Definition

This record type contains pressure, altitude and temperature data for the current SABER scan. The profile comes from the NMC NetCDF file. The profile selected is based on 60km tangent point location and time for the unrefracted ray.

Field

Value Units

1

Profile Latitude (60 km TP) Degrees (0=equator, -90=S. Pole, +90=North Pole)

2

Profile Longitude (60 km TP) Degrees E

3

TIMED Orbit Number  

4

SABER Scan #  

5

Date YYYYDDD

6

Time (60 km ) Msec since midnight

The structure which defines record type 1 follows:

// Spacecraft Data Record

typedef struct {

long int startTime; // Record start time (msec since UT midnight

} HC_Record;

 SOL Record Type Definition

TBD