OB.DAAC Logo
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