PDS_VERSION_ID = PDS3 LABEL_REVISION_NOTE = " 2012-02-21 Cornell:BTCarcich incorporated comments from Ken Klaasen. 2012-02-23 Cornell:BTCarcich added new data files (unroll and rates; SFF Thruster firings); corrected small/large typos. " RECORD_TYPE = STREAM OBJECT = TEXT INTERCHANGE_FORMAT = ASCII PUBLICATION_DATE = 2011-08-15 NOTE = "Contents of /DATA/ subdirectories in Stardust-NExT DFMI Data Archive." END_OBJECT = TEXT END Stardust-NExT DFMI data ========================= Contents ======== Overview General structure (layout of data within the files) EDR table structure RDR table structure Simple approach to reading an EDR General approach to reading an EDR Directory layout and filename conventions /DATA/ directory and subdirectory layout Overview ======== The DFMI files under the /DATA/ directory in this data set comprise three types of tables: two raw (EDR) PDS TABLEs of DFMI sensor thresholds' raw counter values and ancillary data; one calibrated (RDR) PDS TABLE containing the actual impact event counts and fluence for the sensors' mass thresholds for the 9P/Tempel 1 flyby encounter; a table of thruster firing events during the 9P/Tempel 1 flyby encounter. Each EDR TABLE covers some span of time: the entire mission excluding the encounter data; the encounter phase. Each row of an EDR TABLE table contains values for a single point in time. Each row comprises the time, counter values of all DFMI sensor thresholds at that time, plus ancillary data such as instrument parameters and geometry. The RDR TABLE covers the encounter with Tempel 1. Each row contains cumulative values from the entire encounter for one DFMI mass threshold. The RDR data are derived from the encounter EDR table plus a broad range of calibration information. This rollover-removed counts and count rate TABLE presents eight channels of DFMI PVDF events as unrolled and rate counts for the encounter. The thruster firing TABLE covers the encounter with Tempel 1. Each row covers a time period and contains the number of thruster firings for that time period. The /DATA/ subdirectory structure separates the data files by target and type. The files are distinguished by filename some of which contain an analog for the start times. General file structure (layout of data within the files) ======================================================== All data are stored in flat ASCII PDS TABLES with detached PDS labels according to PDS standards. The labels and TABLEs are mostly self- explanatory; refer to the PDS Standards Reference for more details. The TABLEs are in, or described in, several types of files: DFMICRU_YYMMDD*.TAB - EDR data taken in DFMI CRUISE mode DFMIENC_YYMMDD*.TAB - EDR data taken in ENCOUNTER mode DFMI_CAL.TAB - RDR data from EDR ENCOUNTER data PVDFENC_UNROLL_AND_RATES.TAB - RDR PVDF data from EDR ENCOUNTER data SFFEXTRACT.TAB - Thruster firings during ENCOUNTER data *.LBL - PDS labels describing the data in the .TAB files above N.B. Where present, YYMMDD refers to the date of the observation as year since 2000 (YY), month (MM, 01 to 12) and day (DD, 01 to 31). There are no RDR data corresponding to the non-ENCOUNTER CRUISE EDR data. Each PDS label file describes in detail the layout and content of the PDS TABLE in the corresponding .TAB file. A brief description will be given here. Refer to /DOCUMENT/ONLABELS.TXT for more details, and to the PDS Standards Reference (available from http://pds.jpl.nasa.gov/) for more general details about PDS labels and PDS TABLEs. Every TABLE file comprises one or two sections, an optional HEADER and a TABLE, in that order. The HEADER and TABLE each comprise one or more lines of data. Every line is a sequence of printable (non-control) ASCII characters terminated by a carriage return (, ASCII 13 decimal) and line feed (, ASCII 10 decimal) character pair. Each HEADER is one line containing comma-separated mnemonics for the COLUMNs in the TABLE; the mnemonics are not necessarily the same length as the corresponding COLUMNs in the TABLE ,and the HEADER line is not necessarily the same length as one row of the TABLE. All rows in a TABLE comprise one line each, are the same length and comprise fixed-width COLUMNs separated by commas, and are terminated by the character pair. Each COLUMN in a row contains an ASCII numeric or alphanumeric value; an alphanumeric value in a COLUMN is further delimited by double quotation marks (", ASCII 34 decimal). Every row in a file contains the same logical COLUMNs, i.e. if a row has a COLUMN 23-characters wide that represents UTC time for the row, then the 23 characters at the same position in all rows represent the same quantity. EDR TABLE structure (DFMICRU_*.TAB; DFMIENC_*.TAB) ================================================== Each EDR TABLE covers some span of time: the entire mission excluding the encounter data; the encounter phase. Each row of an EDR TABLE table contains values for a single point in time. Each row comprises the time, counter values of all DFMI sensor thresholds at that time, plus ancillary data such as instrument parameters and geometry. The EDR tables have 45 and 37 COLUMNs for the CRUISE and ENCOUNTER files, respectively. The first 35 COLUMN definitions are identical between the two files. The first 20 COLUMNS will be described here, which is all the non-ancillary data from the DFMI; refer to the PDS labels for details of the rest of the COLUMNs. COLUMNs 1-8: Time and DFMI status ---------------------------------- Each row of EDR data contains UTC and Spacecraft CLocK (SCLK) representations of a timestamp of the SpaceCraft Event Time (SCET) at which the corresponding event packet was sent to the spacecraft from the DFMI. The SCLK has a nominal resolution of one two-hundred-fifty- sixth of a second i.e. about 4ms, and the UTC is derived from the SCLK. Refer to the SPICE data set for this mission for details of the performance of that clock and the corresponding conversion from SCLK to UTC. Each EDR row also contains the count of the 16-bit DFMI clock, which had a resolution of one second and started at zero each time the DFMI was turned on. Because the data were updated at up to ten times per second, the same DFMI clock value may be present in multiple rows. The following is an example of the layout of these COLUMNs: "2011-02-15T04:39:45.422","0982212398:148", 1364,"A5","NORM","ENCOUNTER",0,"L" ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | UTC time of row------+ | | | | | | | time DFMI packet was | | | | | | | received by S/C Command | | | | | | | & Data Handling (C&DH) | | | | | | | | | | | | | | Spacecraft clock (SCLK)-----------+ | | | | | | Time DFMI packet was received by | | | | | | S/C C&DH. | | | | | | Format = sss:fra | | | | | | where | | | | | | sss = S/C seconds | | | | | | fra = S/C sub-second, in | | | | | | (1/256)s increments | | | | | | | | | | | | DFMI clock-----------------------------+ | | | | | One-second 16-bit counter in DFMI H/W | | | | | | | | | | DFMI Sync byte-----------------+ | | | | Synchronization in DFMI packet. | | | | Hexadecimal value; should be A5. | | | | | | | | | | | | DFMI Mode-------------------------+ | | | - NORM for normal data gathering | | | - IFCn for injected calibration pulse | | | | | | DFMI Readout rate-------------------+ | | Sets minimum rate of DFMI packets | | packets sent to C&DH | | - CRUISE for 0Hz; packet sent only | | when one of the counters changes | | - ENCOUNTER for 1Hz | | | | DFMI Watchdog Reset-------------+ | Number of missed packets which | triggered C&DH to reset the DFMI | | Small PVDF sensor gain------+ L = Small sensor gain = 1 H = Small sensor gain = 10 Provided in case noise level became higher than expected to prevent spurious counts COLUMNs 9-20: DFMI counters ---------------------------- The A1a, A1b, A2a and A2b 8-bit time-cumulative counters are part of the Dual-Acoustic Sensor Subsystem (DASS). They roll over from 255 back to zero. A1a and A1b are the low- and high-sensitivity circuits, respectively, driven by the piezoelectric sensor on the first, or Bumper, layer of the Whipple Shield. A2a and A2b are the low-gain and high-gain circuits, respectively, driven by the piezoelectric sensors on the second, or NEXTEL, layer of the Whipple Shield. Note that the low-gain circuit (A1a and A2a) of each sensor pair will correspond to the higher mass threshold, and vice versa. Alternate designations for the DASS sensors are N1 (A1b), N2 (A1a), N3 (A2b) and N4 (A2a). Note that the alphanumeric sorting of those two sets of designations are different. The m1-m4 and M1-M4 16-bit counters are part of the PVDF Sensor Unit (SU). They roll over from 65535 back to zero. m1 and M1 have the lowest thresholds; m4 and M4 have the highest thresholds. The following is an example of the layout of these COLUMNs: ,143, 81,150,114, 13, 1, 0, 0, 4160, 451, 266, 2, ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | A1a A1b A2a A2b M1 M2 M3 M4 m1 m2 m3 m4 LO HI LO HI HI LO HI LO <= Gain HI LO HI LO LO HI LO HI <= Thresh \ / \ / \ / \ / | | \_____________/ \_____________/ Bumper NEXTEL | | Shield Shield Large PVDF (SU) Small PVDF (SU) \ / \ / \ / | DASS RDR TABLE structure (DFMI_CAL.TAB) ================================== The RDR TABLE covers the encounter with Tempel 1. It has been extracted from the AC_T1_CT2IMP.XLS workbook. Each row contains cumulative values from the entire encounter for one DFMI mass threshold. The RDR data are derived from the encounter EDR table plus a broad range of calibration information. There are no RDR data corresponding to the non-ENCOUNTER CRUISE EDR data. COLUMNs 1-7: Sensor info, data, and fluence -------------------------------------------- Each row corresponds to the sensor threshold identified by the first COLUMN. The rows are ordered by increasing corresponding mass threshold (COLUMN 3). A1b - A1a correspond to PZT FRONT N1 - PZT FRONT N2 A2b - A2a correspond to PZT REAR N3 - PZT REAR N4 m1 - m4 correspond to PVDF SMALL CH 1 - PVDF SMALL CH 4 M1 - M4 correspond to PVDF LARGE CH 1 - PVDF LARGE CH 4 COLUMN 2 is the effective area of the sensor for the row. For the SU this is the actual area of each PVDF sensor; for the Acoustic sensors it is a function of the mass distribution index, which is set at 0.65 for this table. See /DOCUMENT/AC.LBL and associated documentation files for more detail. COLUMN 3 is the mass threshold for the row. COLUMN 4 is the equivalent diameter of a particle having a mass equal to the mass threshold (COLUMN 3) for the row, assuming the particle has a density of 500kg m**-3. COLUMN 5 is the calibrated impact event count for the row. These numbers are derived from the data in the EDR tables and are cumulative for the Tempel 1 encounter. COLUMN 6 is the uncertainty of the calibrated impact event count for the row. This is a character string because in some cases it is a descriptive value. See /DOCUMENT/AC.LBL and associated documentation files for more detail. COLUMN 7 is the fluence, the ratio of the impact event count (COLUMN 4) to the effective area (COLUMN 2). The following is an example of the layout of these COLUMNs: "PVDF SMALL CH 1", 0.002, 2.60E-15, 2.1, 4892,"4892 ",2.45E+06 ^ ^ ^ ^ ^ ^ ^ | | | | | | | Sensor ID----+ | | | | | | | | | | | | Effective area-----+ | | | | | | | | | | Mass threshold-------------+ | | | | | | | | Equivalent particle diameter--+ | | | | | | Impact event count----------+ | | | | Impact event uncertainty----+ | | Fluence----+ COLUMNs 8-11: Uncertainties ---------------------------- These COLUMNs provide the positive and negative uncertainties in the Fluence (COLUMN 7) and Mass Threshold (COLUMN 3). The following is an example of the layout of these COLUMNs: , 3.50E+04, 3.50E+04, 1.30E-15, 2.60E-15 ^ ^ ^ ^ | | | | | | | +--Mass Threshold uncertainty plus | | | | | +--Mass Threshold uncertainty minus | | | +--Impact event count uncertainty plus | +--Impact event count uncertainty minus Rollover-removed counts and count rates (PVDFENC_UNROLL_AND_RATES.TAB) ====================================================================== This table provides cumulative counts, with the effect of counter rollover removed (i.e. "unrolled," and counting rates for the PVDF sensor data). Each column is a copy of, or derived from, column(s) in the EDR ENCOUNTER TABLE, described above. Each row corresponds to one row from the EDR ENCOUNTER TABLE. All but the last of the initial rows of the first twenty minutes of that TABLE, where no PVDF events were recorded, have been excluded. Ancillary data columns, such as synchronization byte, instrument temperature, and observation geometry have have been excluded from this table; refer to the EDR ENCOUNTER table for these data. Note that the TIME_PAST_TCA column may be used as an analog for range to the comet (see below for details). The columns are laid out in similar fashion (fixed-width, comma- separated) to the EDR and RDR tables described above. See the data label for more details. COLUMNs 1-5: Times and mode ---------------------------- "2011-02-15T04:57:11.714","0982213444:223", 1079.296, 0.098,"IFC1" "2011-02-15T04:57:11.815","0982213444:249", 1079.397, 0.101,"IFC1" ^ ^ ^ ^ ^ | | | | | UTC time of row------+ | | | | time DFMI packet was | | | | received by S/C Command | | | | & Data Handling (C&DH) | | | | | | | | Spacecraft clock (SCLK)-----------+ | | | Time DFMI packet was received by | | | S/C C&DH. | | | Format = sss:fra | | | where | | | sss = S/C seconds | | | fra = S/C sub-second, in | | | (1/256)s increments | | | | | | Seconds past Time of------------------------+ | | Closest Approach (TCA) to the comet | | negative values indicate times before TCA | | | | Seconds since previous row-----------------------+ | This is the time that is used | as a divisor in calculating the | count rates for this row. | This column value, TIME_PAST_TCA, | may be used as an analog for the | range to the comet shape model | center via this formula: | | RANGE, km = SQRT( 182^2 + (10.92*T)^2 ) | | which is good to about 0.1km, which is | less than the uncertainty of the actual | trajectory. | | DFMI Mode--------------------------------+ - NORM for normal data gathering - IFCn for injected calibration pulse COLUMNs 6-13: Unrolled PVDF counts (spaces removed for clarity here) --------------------------------------------------------------------- These represent the same PVDF counter values from the EDR ENCOUNTER above, except the effects of 16-bit counter rollover have been removed so the cumulative count values never decrease with increasing time as they do n the EDR data when a counter rolls over. , 77726, 26156, 26212, 26156,11440272, 451, 266, 2 , 77738, 26160, 26216, 26160,11442101, 451, 266, 2 ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | M1 M2 M3 M4 m1 m2 m3 m4 \ / \ / \______________________/ \_____________________/ | | Large PVDF (SU) Small PVDF (SU) COLUMNs 14-21: PVDF count rates -------------------------------- These COLUMNs contain the difference for each PVDF channel, between each row and the previous row, divided by the time between the rows (COLUMN 4 above). , 118.8, 39.6, 39.6, 39.6, 18108.9, 0.0, 0.0, 0.0 , 122.4, 40.8, 40.8, 40.8, 18642.9, 0.0, 0.0, 0.0 ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | M1 M2 M3 M4 m1 m2 m3 m4 \ / \ / \_______________________/ \_____________________/ | | Large PVDF (SU) Small PVDF (SU) Thruster firing TABLE structure (SFFEXTRACT.TAB) ================================================ The thruster firing TABLE rows contain start and end times, duration, and information about the activity of the sixteen thrusters during the time period corresponding to each row. The data have been extracted from the Stardust Small Forces File (SFF). The columns are laid out in similar fashion (fixed-width, comma- separated) to the EDR and RDR tables described above. See the data label for more details. There are no thruster firing data provided corresponding to the non-ENCOUNTER CRUISE EDR data because those were all calibration data; the SFF file in the dynamic science data set (referred to in the label) could be used to extract those data. COLUMNs 1-4: Times ------------------- These COLUMNs provide the start time, stop time, and the duration for the data on the row. "2011-02-15T03:59:26.845","2011-02-15T03:59:28.404","0982210111:133", 1.559 ^ ^ ^ ^ | | | | UTC time of row------+ | | | time period start | | | | | | UTC time of row------------------------+ | | time period stop | | | | Spacecraft clock (SCLK)-------------------+ | time of time period stop | | Duration of time period, seconds------------+ COLUMNs 5-20: Number of thruster firings ----------------------------------------- These sixteen columns indicate how many times each thruster was on during the time period for the row. There are sixteen thrusters in two groups: RCS and TCM. The thruster designations are RCS1, RCS2, RCS3, ..., RCS8, TCM1, TCM2, ..., TCM8. , 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 ^ ^ | | ... | | | +--Number of firings for RCS2 | +--Number of firings for RCS1 COLUMNs 21-36: Accumulated duration of thruster firing ------------------------------------------------------- These sixteen columns indicate the accumulated duration of firing in milliseconds for each thruster during the time period for the row. , 0, 0, 0, 0, 0, 45, 0, 45, 0, 0, 0, 0, 0, 0, ... ^ ^ | | ... | | | +--Accumulated firing time for RCS1 | +--Accumulated firing time for RCS1 Simple approach to reading a TABLE ================================== The comma-separated-values (CSVs) in each table may be read into a spreadsheet or database application. Also, PDS provides the NASAview package to browse PDS tables. It is also possible to read a spectrum programmatically. E.g. the following Python statements read the ENCOUNTER EDR data (first twelve statements) for 90 seconds before and after the time of closest approach (TCA ~ 2011-02-15T04:39:12), and then plot the M1 and m1 counters against time: ####################################################################### ### Start of Python code ### - a modified version of this code and a PNG image of the plot ### it produces is under the /EXTRAS/ directory of this data set. chs=[] ### Make list of lists to for i in range(13): chs+=[[]] ### hold Clk & counters fyle = open('dfmienc_v2_110215_162959.tab') ### Open the file fyle.readline() ### Skip 1 line (HEADER) for row in fyle.readlines(): ### Loop over TABLE rows toks = row.split(',') ### Split row at commas if toks[0]<'"2011-02-15T04:37:42': continue ### Skip before TCA-90s if toks[0]>'"2011-02-15T04:40:42': continue ### Skip after TCA+90s for i,iCol in enumerate([2]+range(8,20)): ### Loop Clock+count COLs val = max( 0.1 ,float(toks[iCol]) ) ### Extract COLUMN value, chs[i] += [val] ### append to inner list fyle.close() ### Close the file ### At this point: ### chs[0] is a list of DFMI clock values [1241,1242,...]; ### chs[1] is a list of A1a values; ### chs[2] is a list of A1b values; ### ... ### chs[5] is a list of M1 values; ### ... ### chs[9] is a list of m1 values; ### ... import matplotlib.pyplot as plt ### Import plot module plt.plot(chs[0],chs[5],'r',label='M1') ### Plot DFMI clock vs M1 plt.plot(chs[0],chs[9],'g',label='m1') ### Plot DFMI clock vs m1 plt.semilogy() ### Plot on log Y scale plt.legend(loc='best') ### Draw legend plt.xlabel('DFMI Clock, s') ### Draw X label plt.ylabel('Threshold counter') ### Draw Y label plt.show() ### Show plot ### End of Python code ####################################################################### General approach to reading a PDS TABLE ======================================= The standard way to read PDS data is to use the information in the PDS label as follows: 1) Determine the pointer to the start of the table -------------------------------------------------- Search the PDS label at the start of the file for the following keyword: ^TABLE = ("DFMICRU_V2_070131_142422.TAB",847 ) The first comma-separated token in parentheses, i.e. the string in quotes, DFMICRU_V2_070131_142422.TAB, is the case-insensitive name of the file containing the table data. The second token, i.e. the number after the comma, 847 is the one-based ordinal byte position of, a.k.a. pointer to, the first byte of the table. 2) Determine the extent (row width and number of rows) of the table ------------------------------------------------------------------- Search the PDS label for the following keywords: OBJECT = TABLE ROWS = 12 ROW_BYTES = 109 COLUMNS = 11 ... END_OBJECT = TABLE Those keywords are the TABLE OBJECT (N.B. not all OBJECT keywords are shown in this example). The keywords have the following meanings: OBJECT Start of the OBJECT (TABLE or COLUMN) ROW_BYTES Count of bytes in each row, including terminator ROWS Count of rows in the table COLUMNS Count of data COLUMN (fields) in each row END_OBJECT End of the OBJECT 3) Determine the location of each data field in a row ----------------------------------------------------- Search the TABLE OBJECT for COLUMN OBJECTs; the keywords will look similar to this: OBJECT = COLUMN NAME = "THRESHOLD_SENSOR_ID" DATA_TYPE = "CHARACTER" COLUMN_NUMBER = 1 START_BYTE = 2 BYTES = 15 DESCRIPTION = "..." END_OBJECT = COLUMN OBJECT = COLUMN NAME = "EFFECTIVE_AREA" DATA_TYPE = "ASCII_REAL" COLUMN_NUMBER = 2 START_BYTE = 19 BYTES = 6 DESCRIPTION = "..." FORMAT = "F6.3" UNIT = "METER**2" END_OBJECT = COLUMN N.B. The first two COLUMN OBJECTs of the DFMI_CAL.LBL file are shown as an example; select keywords were removed or edited for brevity Each of these COLUMN OBJECTs describe the layout of one or more data fields in a table row. The keywords have the following meanings: OBJECT Start of OBJECT COLUMN_NUMBER One-based ordinal position of this field in the row NAME Name of the field DATA_TYPE Data type of the field (CHARACTER => ASCII string) START_BYTE Ordinal byte position of start of the field BYTES Length of the field, bytes DESCRIPTION Description of the field FORMAT Field format, (F6.3: float; 6 wide; 3 decimal places) UNIT Engineering or scientific units of field value END_OBJECT End of the OBJECT The first 25 bytes, and the first two COLUMNs of the corresponding data from the table data (starting at ^HEADER_TABLE pointer in the file) look like this: "PVDF SMALL CH 1", 0.002, ^^ ^ ^^ ^ || | || | || | || +--byte position 24=19+6-1, last byte of COLUMN 2 || | || || | |+-------byte position 19, first byte of COLUMN 2 || | | || | +--------byte position 18, comma separating COLUMNs 1 & 2 || | || +----------byte position 16 = 2+15-1, last byte of COLUMN 1 || |+------------------------byte position 2, first byte of COLUMN 1 | +-------------------------byte position 1, first byte of row 4) Use the information gathered in steps 1-3 above to read the data ------------------------------------------------------------------- The details of this step will be specific to the programming language or other tool being used. If the reader is unable to perform this task themselves, then they will need to secure the services of a capable programmer. /DATA/ directory layout and filename conventions ================================================ /DATA/ directory layout -------------------- Under the /DATA/ directory of this data set, the data files are located in subdirectories by type and target as noted in this table: Dir. & Subdir. Target DFMI data type -------------- ------ -------- /DATA/TEMPEL1/ 9P/TEMPEL 1 (1867 G1) ENCOUNTER /DATA/ISP/ INTERSTELLAR PARTICLES CRUISE See also the /DATA/ directory and subdirectory layout graphic below. Filename conventions -------------------- Each PDS label's filename has the same name before .LBL as its corresponding TABLE filename has before the .TAB. All DFMI data filenames start with DFMI, and end with .LBL or .TAB. - The suffix .LBL indicates the file is a data label. - The suffix .TAB indicates the file is a data TABLE. - The three characters after DFMI indicate the instrument mode and data processing level. - CRU (i.e. DFMICRU_*.*) indicates EDR (raw) data taken in DFMI CRUISE mode before and after the ENCOUNTER data. - ENC (i.e. DFMIENC_*.*) indicates EDR (raw) data taken in DFMI ENCOUNTER mode near the encounter with comet Tempel 1. - CAL (i.e. DFMI_CAL.*) indicates RDR (calibrated) data derived from the Tempel 1 encounter data. There are no RDR data corresponding to the non-ENCOUNTER CRUISE EDR data. - For the EDR data, the three characters '_V2' after CRU or ENC indicate the version or run of the data as processed by the ground data system. Each run uses the most current geometry and gets the latest telemetry. During the Stardust-NExT mission, run _V1 files processed each block of telemetry shortly after it was downlinked. After the mission, run _V2 was processed on all mission DFMI CRUISE mode data, and on all mission ENCOUNTER mode data, to produce one file for each mode for the entire mission. - For the EDR data, the characters after _V2 indicate the start date of the data in that file i.e. _110215_162959 is YYMODD_HHMMSS, or 2011-02-15T16:29:59. Note that for the DFMI CRUISE mode data, the data start before, and end after, the DFMI ENCOUNTER mode data, but do not include the ENCOUNTER mode data. /DATA/ directory and subdirectory layout ======================================== /DATA/ | +--TEMPEL1/ DFMI 9P/Tempel 1 Encounter directory | +--DFMIENC_V2_110215_162959.LBL - Encounter EDR data label | +--DFMIENC_V2_110215_162959.TAB - Encounter EDR data TABLE | +--DFMI_CAL.LBL - Encounter RDR data label | +--DFMI_CAL.TAB - Encounter RDR data TABLE | +--PVDFENC_UNROLL_AND_RATES.LBL - Encounter RDR data label | +--PVDFENC_UNROLL_AND_RATES.TAB - Encounter RDR data TABLE | +--SFFEXTRACT.LBL - Encounter thruster firing data label | +--SFFEXTRACT.TAB - Encounter thruster firing data TABLE | +--ISP/ DFMI Cruise directory | +--DFMICRU_V2_070131_142422.LBL - Cruise EDR data label | +--DFMICRU_V2_070131_142422.TAB - Cruise EDR data table | +-- DATAINFO.TXT This file