Due to the lapse in federal government funding, NASA is not updating this website. We sincerely regret this inconvenience.
NASA Logo
Ocean Color Science Software

ocssw V2022
VcstViirsStructs.h
Go to the documentation of this file.
1 /******************************************************************************
2  * NAME: ViirsStructures.h
3  *
4  * DESCRIPTION: Header file that consolidates structure and constant definitions
5  * used by the VIIRS geolocation, OBC, and calibration processes.
6  *
7  *
8  * Created on: Nov 13, 2014
9  * Author: Sam Anderson, VCST
10  *
11  ******************************************************************************/
12 
13 #ifndef VIIRSSTRUCTURES_H_
14 #define VIIRSSTRUCTURES_H_
15 
16 #define Viirs_Bands 22
17 
18 // L1A dimensions
19 
20 #define Number_of_Scans_5min 169
21 #define SC_Diary_Records_5min 320
22 #define Number_of_Scans_6min 203
23 #define SC_Diary_Records_6min 381
24 // don's short L1A file
25 //#define Number_of_Scans 34
26 
27 #define Number_of_Scans 203
28 #define SC_Diary_Records 381
29 #define SC_Diary_Records_1Hz 380
30 #define SC_Diary_Records_10Hz 3801
31 
32 #define Mband_detectors 16
33 #define Iband_detectors 32
34 #define Mband_Pixels 3200
35 #define Iband_Pixels 6400
36 #define DNB_Pixels 4064
37 #define Mband_Samples 6304
38 #define Mband_Cal_Samples 48
39 #define Iband_Cal_Samples 96
40 #define DNB_Cal_Samples 64
41 #define Number_of_Mbands 16
42 #define Number_of_Ibands 5
43 #define Number_of_Tbands 7
44 #define Number_of_MTbands 5
45 #define Number_of_ITbands 2
46 #define Number_of_Rbands 14
47 #define Number_of_MRbands 11
48 #define Number_of_IRbands 3
49 #define Number_of_DNBs 1 // old
50 #define Agg_Zones 3
51 #define Parity 2
52 #define High_Gain 0
53 #define Low_Gain 1
54 #define Gain_States 2
55 #define C_Coefs 4
56 //#define Number_of_DNBs 3 // new
57 #define Quaternion_Elements 4
58 #define Vector_Elements 3
59 #define EV_APIDs 24
60 #define HR_Metadata 146
61 #define Cal_Metadata 134
62 #define Eng_Status 8
63 #define Eng_Block 128
64 #define ASP_Offsets 3072
65 #define SDSM_Data 256
66 #define Encoder_Reading 1290
67 #define Mirror_Sides 2
68 #define Number_of_DG_bands 7
69 #define Number_of_BB_temps 6
70 #define SDSM_Samples 5
71 #define SDSM_Detectors 8
72 
73 #define M13_LUT_Radiance_Values 327681
74 #define LUT_Radiance_Values 65536
75 #define Number_of_Iband_Lines Iband_detectors*Number_of_Scans //5408
76 #define Number_of_Iband_Pixels 6400
77 #define Number_of_Mband_Lines Mband_detectors*Number_of_Scans //2704
78 #define Number_of_Mband_Pixels 3200
79 #define Number_of_DNB_Lines Mband_detectors*Number_of_Scans //2704
80 #define Number_of_DNB_Pixels 4064
81 
82 // Compression
83 
84 const bool bShuffleFilter = true;
85 const bool bDeflateFilter = true;
86 const int deflateLevel = 5;
87 
88 // Enumerations
89 
91  NPP,
92  J1,
93  J2,
95 };
96 
99 };
100 
109 };
110 
117 };
118 
121 };
122 
127 };
128 
133 };
134 
138 };
139 
143 };
144 
147 };
148 
151 };
152 
157 };
158 
162 };
163 
173 };
174 
175 // L1A Earth View and Calibration data structures
176 
182 };
183 
190 };
191 
197 };
198 
199 // L1A Engineering data structures
200 
201 // analog signal processor data
202 
204  short p30vPin;
205  unsigned char aspBiases[60];
206  unsigned char other[25];
207  unsigned char reserved[41];
208 };
209 
210 // analog signal processor hardware configuration data .. should be 128 bytes
211 
213  // revision for VISNIR regiser table
214  unsigned char ap_visnir_reg_tbl_rev;
215 
216  unsigned char ap_smwir_reg_tbl_rev; // revision for SMWIR regiser table
217  unsigned char ap_lwir_reg_tbl_rev; // revision for LWIR regiser table
218  unsigned char ap_fp_ideal_tbl_rev; // revision for FPA ideal table
219 
220  // LW imaging integration ticks by imaging frame sync width
221  unsigned char ap_lw_ifs_width : 6;
222  unsigned char ap_det_connected : 1; // ASP Detector state
223  unsigned char ap_dc_restore : 1; // ASP global DC restore
224 
225  // SM radiometric integration ticks by radiometric frame sync width
226  unsigned char ap_lw_rfs_width : 6;
227  unsigned char ap_dual_gain_3_ops : 2; // ASP dual gain ops
228 
229  // SM radiometric integration ticks by radiometric frame sync width
230  unsigned char ap_sm_ifs_width : 6;
231  unsigned char ap_fpa_st_3_ops : 2; // ASP FPA self test ops
232 
233  // SM radiometric integration ticks by radiometric frame sync width
234  unsigned char ap_sm_rfs_width : 6;
235  unsigned char fill1 : 2;
236 
237  // VN imaging integration ticks by imaging frame sync width
238  unsigned char ap_vn_ifs_width : 6;
239  unsigned char fill2 : 2;
240 
241  // VN imaging integration ticks by imaging frame sync width
242  unsigned char ap_vn_rfs_width : 6;
243  unsigned char fill3 : 2;
244 
245  // Focal Plane Temperature LW CFPA high resolution temperature
247 
248  // Focal Plane Temperature LW CFPA wide range temperature
250 
251  // Focal Plane Temperature SM CFPA high resolution temperature
253 
254  // Focal Plane Temperature SM CFPA wide range temperature
256 
257  // Focal Plane Temperature VIS/NIR FPA temperature
259 
260  unsigned char fill4[108]; // 864 bits of fill data
261 };
262 
263 // analog signal processor offset data
264 
266  // for 0 ham side
267  short m1_ham0[16];
268  short m2_ham0[16];
269  short m3_ham0[16];
270  short m4_ham0[16];
271  short m5_ham0[16];
272  short m6_ham0[16];
273  short m7_ham0[16];
274  short m8_ham0[16];
275  short m9_ham0[16];
276  short m10_ham0[16];
277  short m11_ham0[16];
278  short m12_ham0[16];
279  short m13_ham0[16];
280  short m14_ham0[16];
281  short m15_ham0[16];
282  short m16a_ham0[16];
283  short m16b_ham0[16];
284  short i1e_ham0[16];
285  short i1o_ham0[16];
286  short i2e_ham0[16];
287  short i2o_ham0[16];
288  short i3e_ham0[16];
289  short i3o_ham0[16];
290  short i4e_ham0[16];
291  short i4o_ham0[16];
292  short i5e_ham0[16];
293  short i5o_ham0[16];
294 
295  // for 1 ham side
296  short m1_ham1[16];
297  short m2_ham1[16];
298  short m3_ham1[16];
299  short m4_ham1[16];
300  short m5_ham1[16];
301  short m6_ham1[16];
302  short m7_ham1[16];
303  short m8_ham1[16];
304  short m9_ham1[16];
305  short m10_ham1[16];
306  short m11_ham1[16];
307  short m12_ham1[16];
308  short m13_ham1[16];
309  short m14_ham1[16];
310  short m15_ham1[16];
311  short m16a_ham1[16];
312  short m16b_ham1[16];
313  short i1e_ham1[16];
314  short i1o_ham1[16];
315  short i2e_ham1[16];
316  short i2o_ham1[16];
317  short i3e_ham1[16];
318  short i3o_ham1[16];
319  short i4e_ham1[16];
320  short i4o_ham1[16];
321  short i5e_ham1[16];
322  short i5o_ham1[16];
323 
324  char fill[1344];
325 };
326 
327 // DNB configuration data .. should be 128 bytes
328 
330  unsigned char dp_aggreg_mode_rev;
331  unsigned char dp_threshold_tbl_rev;
332  unsigned char dp_1a_offsets_tbl_rev;
333  short dp_dnb_ccd;
334  unsigned char dp_1b_offsets_tbl_rev;
335  unsigned char dp_2_offsets_tbl_rev;
336  unsigned char dp_3_offsets_tbl_rev;
337  unsigned char fill[120];
338 };
339 
340 // digital pre-processor configuration data .. should be 128 bytes
341 
342 const int dpp_config_index_1 = 0;
343 
345  unsigned char dp_reg_tbl_rev;
346  unsigned char dp_state_tran_tbl_rev;
347  unsigned char dp_band_proc_tbl_rev;
348  unsigned char dp_heat_ctrl_tbl_rev;
349  unsigned char dp_macro_cmd_tbl_rev;
350  unsigned char dp_crit_tele_tbl_rev;
351  unsigned short dp_stor_cmd_tbl_rev;
352 
353  unsigned char ps_sec_e_isog_on : 1;
354  unsigned char ps_sec_d_csog_on : 1;
355  unsigned char ps_sec_c_se_on : 1;
356  unsigned char ps_sec_b_apfp_on : 1;
357  unsigned char dp_servo_in_use : 1;
358  unsigned char dp_nonrdt_fpie_pwr : 1;
359  unsigned char dp_hrd_pkt_norm_test : 1;
360  unsigned char dp_dn_m_l_gain_pkt : 1;
361 
362  unsigned char se_b_tele_pos_known : 1;
363  unsigned char se_b_mtrs_stopped : 1;
364  unsigned char se_b_mtr_coil_driver : 1;
365  unsigned char se_b_anlg_pwr_on : 1;
366  unsigned char se_a_tele_pos_known : 1;
367  unsigned char se_a_mtrs_stopped : 1;
368  unsigned char se_a_mtr_coil_driver : 1;
369  unsigned char se_a_anlg_pwr_on : 1;
370 
371  unsigned char dp_ap_m16_tdi_on : 1;
372  unsigned char cp_blk_pwr_sel : 1;
373  unsigned char dp_dn_aggreg_mod : 6;
374 
375  unsigned char dp_scan_encdr_delta;
376  unsigned char dummy;
377 
378  unsigned char se_servo_pwr_sel : 1;
379  unsigned char dp_ap_self_test : 1;
380  unsigned char spare1 : 6;
381 
382  unsigned char se_b_ham_mir_side : 1;
383  unsigned char se_a_ham_mir_side : 1;
384  unsigned char ap_dc_fast_restor : 1;
385  unsigned char dp_dnb_dark_sub_eth : 1;
386  unsigned char dp_dnb_dark_sub_cal : 1;
387  unsigned char dp_dnb_tmg_mode : 1;
388  unsigned char dp_dnb_1a_1b_stage : 2;
389 };
390 
391 const int dpp_config_index_2 = 15;
392 
401  short ft_adc_ref;
403  short ft_ckt_gnd;
412 };
413 
414 // solar diffuser ...
415 //struct SDSML1ADataType
416 //{
417 // unsigned short position : 8;
418 // short samples[5][8]; // Data is sample by AMP, 8 SDSM detector, 5 samples
419 // // the following combines the "other" and "reserved" field
420 // // described in the MDFCB for a total of 1400 bits
421 // short preamp;
422 // unsigned char other[173];
423 //};
424 
425 // temperature data
426 
428  short bbTemp[6];
429  short ham_tmp1; // half angle mirror t1
430  short ham_tmp2; // half angle mirror t2
431  short hm_cr_cs_prt; // CR cold stage PRT temperature
432  short hm_cr_is_prt; // CR intermediate stage PRT temperature
433  short hm_cr_os_prt; // CR outer stage PRT temperature
434 
435  unsigned short ap_vn_vref_inhibit : 12;
436  unsigned short fill1 : 4;
437 
438  unsigned int fill2;
443 
444  short mf_ao_blkhd_nx_pz; // Aft optics
445  short mf_ao_blkhd_px_nz; // Aft optics
446  short mf_ao_km2_nx; // Aft optics KM2_NX
450  short mf_ham_blkhd; // half angle mirror bulkhead
451  short mf_km2_nxny; // NXNY kinematic mount, 2 deg contraint
452  short mf_km2_nxpy; // NXPY kinematic mount, 2 deg contraint
453  short mf_km1_pxny; // PXNY kinematic mount, 1 deg contraint
454  short mf_km2_pxpy; // PXPY kinematic mount, 2 deg contraint
455  short mf_nadir_rad_nxp; // Nadir radiator NXPY
456  short mf_nadir_rad_pxn; // Nadir radiator PXNY
459  short mf_scan_cavity_baf_nz; // scan cavity baffle NZ
460  short mf_scan_cavity_baf_pz; // scan cavity baffle PZ
462  short mf_space_rad_nz; // space radiator NZ
463  short mf_space_rad_pz; // space radiator PZ
467 
468  short se_a_hammtr_dfbear; // HAM DF Bearing Temp MTR_A
469  short se_a_telemtr_dfbear; // Tele DF Bearing Temp MTR_A
470  short se_b_hammtr_dfbear; // HAM DF Bearing Temp MTR_B
471  short se_b_telemtr_dfbear; // Tele DF Bearing Temp MTR_B
472  short ap_lw_cca; // Long wave IR CCA
473  short ap_sm_cca; // Short/Med wave IR CCA
474  short ap_vn_cca; // Visible/Near IR CCA
475 
476  short dp_dnb_cca; // DNB CCA
477  short dp_dpp_cca; // Digital preprocessor CCA
478  short dp_fpie_ad_cca; // FPIE A/D CCA
479  short dp_fpie_clk_cca; // FPIE CLK CCA
480  short ft_cca;
483  short se_a_cca;
484  short se_b_cca;
485 
486  unsigned char hm_ham_op_htr_cntl : 1; // FSW echo C_HM09 for HAM heater
487  unsigned char hm_dnb_htr_cntl : 1; // FSW echo C_HM06A for DNB heater
488  unsigned char ft_sm_heater : 1; // short/med wave IR heater, 0=off, 1=on
489  unsigned char ft_lw_heater : 1; // Long wave IR heater, 0=off, 1=on
490  unsigned char ft_sm_82k : 1; // short/med wave 80K setpoint, 0=off, 1=on
491  unsigned char ft_sm_80k : 1; // short/med wave 78K setpoint, 0=off, 1=on
492  unsigned char ft_lw_82k : 1; // long wave 80K setpoint, 0=off, 1=on
493  unsigned char ft_lw_80k : 1; // long wave 78K setpoint, 0=off, 1=on
494 
495  unsigned char hm_tel_op_htr_cntl : 1; // FSW echo C_HM10 for Tele Op heater
496  unsigned char filler1 : 7;
497 
498  unsigned short hm_ham_ophtr_temp : 14; // indicates heater setpoint
499  unsigned char filler2 : 2;
500 
501  unsigned short hm_tel_ophtr_temp : 14; // indicates heater setpoint
502  unsigned char filler3 : 2;
503 
504  unsigned short ap_bb_avg_temp : 14; // average of the BB thermistor : 2;
505  unsigned char filler4 : 2;
506 
507  unsigned short bb_htr_temp : 14; // FSW echo C_BB01
508  unsigned char filler5 : 2;
509 
510  unsigned short bb_select; // indicates which BB thermistor used to get avg
511  unsigned short filler6;
512 };
513 
514 const int bb_htr_temp_index = 122;
515 
517  unsigned short teleEncoding[1290];
518  unsigned short hamEncoding[1290];
519 };
520 
522  unsigned short telAngleStart;
523  unsigned short hamAngScanStart;
524  unsigned short hrdValues[16];
525  unsigned char other[3];
526  unsigned char reserved[89];
527 };
528 
529 // engineering status data
530 
532  unsigned char fpaCalDataGain : 1;
533  unsigned char sdsmActive : 1;
534  unsigned char hamSide : 1;
535  unsigned char servoLocked : 1;
536  unsigned char sensorMode : 4;
537 
538  unsigned char es_se_b_teleham_scansyn : 1;
539  unsigned char es_se_a_teleham_scansyn : 1;
540  unsigned char testDataPattern : 4;
541  unsigned char spare : 2;
542 
543  unsigned char es_sd_sdsm_mtr_step_cnt : 7;
544  unsigned char other : 1;
545 
546  unsigned char reserved[5];
547 };
548 
549 // L1B program data structures
550 
561  unsigned char ham_side[Number_of_Scans]; // new version
562  unsigned char sensor_mode[Number_of_Scans]; // new version
563  // short ham_side[Number_of_Scans]; // old version
564  // short sensor_mode[Number_of_Scans]; // old version
567 };
568 
581 };
582 
589 inline bool isImg(VIIRS_BAND_ENUM band) {
590  return ( band < MOD_1);
591 }
592 
593 inline bool isMod(VIIRS_BAND_ENUM band) {
594  return ((band > IMG_5) &&
595  (band < DNB_));
596 }
597 
598 inline bool isDG(VIIRS_BAND_ENUM band) {
599  return ((band == MOD_1) ||
600  (band == MOD_2) || (band == MOD_3) || (band == MOD_4) ||
601  (band == MOD_5) || (band == MOD_7) || (band == MOD_13));
602 }
603 
605  return ((band == M_1) ||
606  (band == M_2) || (band == M_3) || (band == M_4) ||
607  (band == M_5) || (band == M_7) || (band == M_13));
608 }
609 
610 inline bool isTeb(VIIRS_BAND_ENUM band) {
611  return ((band == IMG_4) ||
612  (band == IMG_5) || (band == MOD_12) || (band == MOD_13) ||
613  (band == MOD_14) || (band == MOD_15) || (band == MOD_16));
614 }
615 
624  if (isImg(band)) return band;
625  else return -1;
626 }
627 
629  if (isMod(band)) return (band - MOD_1);
630  else return -1;
631 }
632 
634  if (isMod(band)) {
635  if (band == MOD_6) return 0;
636  else if (band == MOD_8) return 1;
637  else if (band == MOD_9) return 2;
638  else if (band == MOD_10) return 3;
639  else if (band == MOD_11) return 4;
640  else if (band == MOD_12) return 5;
641  else if (band == MOD_14) return 6;
642  else if (band == MOD_15) return 7;
643  else if (band == MOD_16) return 8;
644  else return -1;
645  } else return -1;
646 }
647 
649  if (isMod(band)) {
650  if (band <= MOD_5) return mb_index(band);
651  else if (band == MOD_7) return 5;
652  else if (band == MOD_13) return 6;
653  else return -1;
654  } else return -1;
655 }
656 
658  if (band == IMG_4) return 0;
659  else if (band == IMG_5) return 1;
660  else if (band == MOD_12) return 2;
661  else if (band == MOD_13) return 3;
662  else if (band == MOD_14) return 4;
663  else if (band == MOD_15) return 5;
664  else if (band == MOD_16) return 6;
665  else return -1;
666 }
667 
669  if (band == IMG_1) return 0;
670  else if (band == IMG_2) return 1;
671  else if (band == IMG_3) return 2;
672  else if (band == MOD_1) return 3;
673  else if (band == MOD_2) return 4;
674  else if (band == MOD_3) return 5;
675  else if (band == MOD_4) return 6;
676  else if (band == MOD_5) return 7;
677  else if (band == MOD_6) return 8;
678  else if (band == MOD_7) return 9;
679  else if (band == MOD_8) return 10;
680  else if (band == MOD_9) return 11;
681  else if (band == MOD_10) return 12;
682  else if (band == MOD_11) return 13;
683  else return -1;
684 }
685 
687  if (band == IMG_4) return 0;
688  else if (band == IMG_5) return 1;
689  else return -1;
690 }
691 
693  if (band == IMG_1) return 0;
694  else if (band == IMG_2) return 1;
695  else if (band == IMG_3) return 2;
696  else return -1;
697 }
698 
700  if (band == MOD_12) return 0;
701  else if (band == MOD_13) return 1;
702  else if (band == MOD_14) return 2;
703  else if (band == MOD_15) return 3;
704  else if (band == MOD_16) return 4;
705  else return -1;
706 }
707 
709  if (band == MOD_1) return 0;
710  else if (band == MOD_2) return 1;
711  else if (band == MOD_3) return 2;
712  else if (band == MOD_4) return 3;
713  else if (band == MOD_5) return 4;
714  else if (band == MOD_6) return 5;
715  else if (band == MOD_7) return 6;
716  else if (band == MOD_8) return 7;
717  else if (band == MOD_9) return 8;
718  else if (band == MOD_10) return 9;
719  else if (band == MOD_11) return 10;
720  else return -1;
721 }
722 
723 #endif /* VIIRSSTRUCTURES_H_ */
@ I_3
unsigned short ham_encoder[Number_of_Scans][Encoder_Reading]
@ DG_M13
@ M_RSB_M5
@ RSB_M7
unsigned char sdsm_data[Number_of_Scans][SDSM_Data]
unsigned short hrdValues[16]
unsigned short teleEncoding[1290]
VIIRS_I_BAND_ENUM
int scan_end_CCSDS_msec[Number_of_Scans]
int dg_index(VIIRS_BAND_ENUM band)
@ TEB_M12
@ SG_M12
@ ALL_BANDS
VIIRS_MOD_TEB_BAND_ENUM
unsigned char ham_side[Number_of_Scans]
#define Mband_Samples
@ J2
unsigned char reserved[89]
unsigned char reserved[41]
@ MOD_2
unsigned short hamEncoding[1290]
int ib_index(VIIRS_BAND_ENUM band)
#define Number_of_DNBs
unsigned char dp_macro_cmd_tbl_rev
@ IMG_3
unsigned char dp_nonrdt_fpie_pwr
unsigned char se_a_ham_mir_side
short SD_DNB[Number_of_DNBs][Number_of_Scans][Mband_detectors][DNB_Cal_Samples]
unsigned char ap_lw_ifs_width
short EV_I[Number_of_Scans][Iband_detectors][Iband_Pixels]
unsigned char sdsmActive
@ IMG_BANDS
unsigned char ps_sec_d_csog_on
#define Cal_Metadata
unsigned short ap_vn_vref_inhibit
unsigned short ap_bb_avg_temp
unsigned char dp_dnb_dark_sub_eth
unsigned char HR_metadata[Number_of_Scans][EV_APIDs][HR_Metadata]
@ M_16
unsigned char es_sd_sdsm_mtr_step_cnt
unsigned char testDataPattern
VIIRS_BAND_ENUM
unsigned char se_a_mtr_coil_driver
@ DG_M3
unsigned short bb_select
unsigned char dp_dnb_1a_1b_stage
@ VIIRS_SENSOR_SAFE
unsigned char ps_sec_b_apfp_on
@ M_7
unsigned char reserved[5]
@ M_8
#define Iband_Pixels
unsigned char dp_crit_tele_tbl_rev
@ M_RSB_M10
VIIRS_SENSOR_MODES
@ SG_M14
short scan_end_CCSDS_usec[Number_of_Scans]
unsigned char ap_dc_fast_restor
short scan_start_CCSDS_usec[Number_of_Scans]
#define Encoder_Reading
@ M_RSB_M2
#define Iband_detectors
VIIRS_CATEGORY_ENUM
@ RSB_BANDS
@ M_2
@ M_TEB_M16
unsigned char dp_2_offsets_tbl_rev
unsigned char dp_ap_m16_tdi_on
unsigned char dp_hrd_pkt_norm_test
@ M_RSB_M6
PARAM_TYPE_NONE Default value No parameter is buried in the product name name_prefix is case insensitive string compared to the product name PARAM_TYPE_VIS_WAVE The visible wavelength bands from the sensor are buried in the product name The product name is compared by appending and name_suffix ie aph_412_giop where prod_ix will be set to PARAM_TYPE_IR_WAVE same search method as PARAM_TYPE_VIS_WAVE except only wavelength above are looped through but prod_ix is still based ie aph_2_giop for the second band
unsigned char se_b_tele_pos_known
VIIRS_IMG_TEB_BAND_ENUM
unsigned char dp_heat_ctrl_tbl_rev
unsigned char eng_status[Number_of_Scans][Eng_Status]
unsigned short hamAngScanStart
unsigned char ap_vn_ifs_width
#define Eng_Status
@ RSB_M10
short SD_I[Number_of_Ibands][Number_of_Scans][Iband_detectors][Iband_Cal_Samples]
#define Number_of_Ibands
@ RSB_M1
#define DNB_Cal_Samples
short BB_M[Number_of_Mbands+1][Number_of_Scans][Mband_detectors][Mband_Cal_Samples]
unsigned char ap_visnir_reg_tbl_rev
@ M_RSB_BAND_MAXIMUM
unsigned char se_b_anlg_pwr_on
short scan_start_CCSDS_day[Number_of_Scans]
@ MOD_8
#define Number_of_DNB_Pixels
unsigned short bb_htr_temp
VIIRS_M_BAND_ENUM
unsigned char se_b_mtrs_stopped
#define Mband_detectors
#define Number_of_Scans
@ M_6
unsigned short hm_ham_ophtr_temp
unsigned char ft_sm_heater
@ VIIRS_SENSOR_OG
@ J1
@ DG_M5
@ MOD_10
@ PLATFORM_MAXIMUM
@ MOD_11
unsigned char dp_reg_tbl_rev
@ RSB_BAND_MAXIMUM
@ I_2
unsigned char dp_dn_aggreg_mod
#define SDSM_Data
unsigned char ap_dual_gain_3_ops
unsigned char aspBiases[60]
@ SG_M10
@ M_TEB_M13
@ TEB_M16
@ MOD_3
unsigned char dp_band_proc_tbl_rev
unsigned char eng_temp[Number_of_Scans][Eng_Block]
bool isMod(VIIRS_BAND_ENUM band)
bool isDG(VIIRS_BAND_ENUM band)
@ I_TEB_I4
unsigned char filler5
@ DNB_
unsigned char ap_dc_restore
unsigned char se_servo_pwr_sel
unsigned char es_se_b_teleham_scansyn
#define ASP_Offsets
@ IMG_2
@ M_RSB_M11
@ M_12
unsigned char dp_scan_encdr_delta
unsigned char dp_1b_offsets_tbl_rev
@ RSB_M5
@ VIIRS_SENSOR_OP_DAY
@ SG_M15
unsigned char ft_lw_82k
short EV_M_SG[Number_of_Scans][Mband_detectors][Mband_Pixels]
@ TEB_M13
@ MOD_6
unsigned char filler3
double scan_start_time[Number_of_Scans]
@ DG_M2
@ VIIRS_SENSOR_LAUNCH
VIIRS_MOD_DG_BAND_ENUM
unsigned char fill[120]
@ M_11
@ MOD_BANDS
unsigned char se_a_tele_pos_known
@ RSB_M8
@ M_TEB_M14
@ M_RSB_M4
unsigned char other[25]
int VIIRS_scan_number[Number_of_Scans]
int teb_index(VIIRS_BAND_ENUM band)
@ RSB_I3
int mb_index(VIIRS_BAND_ENUM band)
int rsb_index(VIIRS_BAND_ENUM band)
unsigned char ap_lwir_reg_tbl_rev
unsigned char ap_sm_rfs_width
unsigned char ft_lw_80k
@ M_TEB_BAND_MAXIMUM
@ TEB_I4
unsigned char dp_1a_offsets_tbl_rev
@ M_1
#define Eng_Block
unsigned char se_b_mtr_coil_driver
unsigned char ap_vn_rfs_width
@ SG_M11
@ RSB_M6
unsigned char cp_blk_pwr_sel
@ I_4
unsigned char ps_sec_e_isog_on
unsigned char dp_state_tran_tbl_rev
unsigned char ap_fp_ideal_tbl_rev
@ M_TEB_M15
unsigned short telAngleStart
@ SG_BAND_MAXIMUM
unsigned char ap_smwir_reg_tbl_rev
int irsb_index(VIIRS_BAND_ENUM band)
unsigned short filler6
@ M_TEB_M12
const int dpp_config_index_1
GRAN_SEQ_ENUM
@ MOD_15
@ SG_M6
@ BAND_MAXIMUM
@ RSB_I1
#define Number_of_Mbands
@ CURRENT
@ DNB_BAND
@ MOD_1
#define Iband_Cal_Samples
@ M_RSB_M1
@ BEFORE
@ MOD_4
unsigned char ap_lw_rfs_width
short BB_I[Number_of_Ibands][Number_of_Scans][Iband_detectors][Iband_Cal_Samples]
@ AFTER
unsigned char dnb_config[Number_of_Scans][Eng_Block]
@ M_15
@ I_TEB_BAND_MAXIMUM
unsigned char dp_3_offsets_tbl_rev
unsigned char dp_dnb_dark_sub_cal
#define Mband_Cal_Samples
unsigned char ap_sm_ifs_width
@ RSB_M11
@ VIIRS_SENSOR_OP_NIGHT
@ DG_M4
bool isTeb(VIIRS_BAND_ENUM band)
@ MOD_14
unsigned char dpp_config[Number_of_Scans][Eng_Block]
const int dpp_config_index_2
@ MOD_9
unsigned char sensor_mode[Number_of_Scans]
#define Mband_Pixels
@ I_1
int scan_start_CCSDS_msec[Number_of_Scans]
@ I_BAND_MAXIMUM
@ M_BAND_MAXIMUM
double scan_end_time[Number_of_Scans]
short BB_DNB[Number_of_DNBs][Number_of_Scans][Mband_detectors][DNB_Cal_Samples]
const int bb_htr_temp_index
unsigned char dp_dn_m_l_gain_pkt
@ VIIRS_SENSOR_INVALID
@ VIIRS_SENSOR_DIAGNOSTIC
@ TEB_I5
@ TEB_BAND_MAXIMUM
@ M_13
@ DG_M1
@ M_RSB_M3
#define HR_Metadata
unsigned char dp_aggreg_mode_rev
@ MOD_5
unsigned char dp_ap_self_test
@ I_TEB_I5
@ TEB_M14
unsigned char sensorMode
bool isImg(VIIRS_BAND_ENUM band)
short scan_end_CCSDS_day[Number_of_Scans]
@ MOD_7
@ TEB_BANDS
short EV_M_DG[Number_of_Scans][Mband_detectors][Mband_Samples]
@ M_14
@ M_RSB_M7
unsigned short fill1
unsigned char filler2
unsigned char se_b_ham_mir_side
const bool bDeflateFilter
@ I_5
unsigned char ps_sec_c_se_on
@ IMG_1
unsigned char asp_offsets[Number_of_Scans][ASP_Offsets]
unsigned char ft_sm_80k
short SD_M[Number_of_Mbands+1][Number_of_Scans][Mband_detectors][Mband_Cal_Samples]
@ M_5
@ RSB_I2
unsigned short dp_stor_cmd_tbl_rev
short SV_M[Number_of_Mbands+1][Number_of_Scans][Mband_detectors][Mband_Cal_Samples]
unsigned char other[3]
unsigned char dp_servo_in_use
unsigned char filler4
@ IMG_5
@ DG_M7
@ TEB_M15
VIIRS_PLATFORM_ENUM
int mteb_index(VIIRS_BAND_ENUM band)
@ RSB_M2
unsigned char ft_lw_heater
@ IMG_4
VIIRS_RSB_BAND_ENUM
unsigned char asp_config[Number_of_Scans][Eng_Block]
@ DG_BAND_MAXIMUM
const bool bShuffleFilter
@ RSB_M9
@ RSB_M3
short SV_I[Number_of_Ibands][Number_of_Scans][Iband_detectors][Iband_Cal_Samples]
@ M_4
unsigned char filler1
@ SG_M16
@ SG_M9
@ M_RSB_M9
@ M_3
@ MOD_12
@ M_9
unsigned char dp_threshold_tbl_rev
unsigned char ap_fpa_st_3_ops
VIIRS_TEB_BAND_ENUM
@ RSB_M4
@ VIIRS_SENSOR_ACTIVATION
const int deflateLevel
unsigned char se_a_mtrs_stopped
unsigned char dp_dnb_tmg_mode
unsigned char servoLocked
#define EV_APIDs
@ CATEGORY_MAXIMUM
unsigned short hm_tel_ophtr_temp
int iteb_index(VIIRS_BAND_ENUM band)
int sg_index(VIIRS_BAND_ENUM band)
unsigned char ap_det_connected
unsigned char se_a_anlg_pwr_on
VIIRS_MOD_SG_BAND_ENUM
@ M_10
unsigned short tel_encoder[Number_of_Scans][Encoder_Reading]
@ NPP
unsigned char hm_dnb_htr_cntl
@ SG_M8
@ MOD_13
unsigned char hm_ham_op_htr_cntl
unsigned char fill4[108]
unsigned char eng_reserved[Number_of_Scans][Eng_Block]
unsigned char fpaCalDataGain
short SV_DNB[Number_of_DNBs][Number_of_Scans][Mband_detectors][DNB_Cal_Samples]
unsigned char cal_metadata[Number_of_Scans][Cal_Metadata]
unsigned char hm_tel_op_htr_cntl
unsigned char ft_sm_82k
@ MOD_16
int mrsb_index(VIIRS_BAND_ENUM band)
@ M_RSB_M8
short EV_DNB[Number_of_Scans][Mband_detectors][Number_of_DNB_Pixels]
VIIRS_MOD_RSB_BAND_ENUM
unsigned char asp_analog[Number_of_Scans][Eng_Block]
@ GRAN_SEQ_MAXIMUM
unsigned char es_se_a_teleham_scansyn