SCI_NL__1P version 0

SCI_NL__1P_v0

root type

binary record
idfield namedefinition
0mph
ascii record "MPH"size: 1247
1sph
ascii record "SCI_NL_NLC_1P_SPH_v0"size: 697
2dsd
ascii array[dim_0]
dim_0: $num_dsd
ascii record "DSD"size: 280
3summary_quality
binary array[dim_0]
Summary Quality ADS

dim_0: $num_dsr[0]
binary record "SCI_NL__1P_ADSR_summary_quality"size: 182

available: $ds_available[0] != 0

bit offset: $ds_offset[0]
4geolocation
binary array[dim_0]
Geolocation of the States ADSR

dim_0: $num_dsr[1]
binary record "SCI_NL__1P_ADSR_loc"size: 45

available: $ds_available[1] != 0

bit offset: $ds_offset[1]
5instrument_params
binary array[dim_0]
Static Instrument Parameters

dim_0: $num_dsr[2]
binary record "SCI_NL__1P_GADS_stat_inst"

available: $ds_available[2] != 0

bit offset: $ds_offset[2]
6leakage_constant
binary array[dim_0]
Leakage Current Parameter (constant fraction) GADS

dim_0: $num_dsr[3]
binary record "SCI_LK1_AX_GADS_const"size: 163952

available: $ds_available[3] != 0

bit offset: $ds_offset[3]
7leakage_variable
binary array[dim_0]
Leakage Current Parameter (variable fraction) GADS

dim_0: $num_dsr[4]
binary record "SCI_LK1_AX_GADS_var"size: 90228

available: $ds_available[4] != 0

bit offset: $ds_offset[4]
8ppg_etalon
binary array[dim_0]
PPG/Etalon Parameters GADS

dim_0: $num_dsr[5]
binary record "SCI_PE1_AX_GADS_ppg"size: 139264

available: $ds_available[5] != 0

bit offset: $ds_offset[5]
9spectral_base
binary array[dim_0]
Precise Basis of the Spectral Calibration Parameters

dim_0: $num_dsr[6]
binary record "SCI_SP1_AX_GADS_pre_basis_spec"size: 32768

available: $ds_available[6] != 0

bit offset: $ds_offset[6]
10spectral_calibration
binary array[dim_0]
Spectral Calibration Parameters GADS

dim_0: $num_dsr[7]
binary record "SCI_SP1_AX_GADS_spec"size: 372

available: $ds_available[7] != 0

bit offset: $ds_offset[7]
11sun_reference
binary array[dim_0]
Sun Reference Spectrum GADS

dim_0: $num_dsr[8]
binary record "SCI_SU1_AX_GADS_sun"size: 163942

available: $ds_available[8] != 0

bit offset: $ds_offset[8]
12pol_sens_nadir
binary array[dim_0]
Polarization Sensitivity Parameters Nadir GADS

dim_0: $num_dsr[9]
binary record "SCI_NL__1P_GADS_polar_nadir"size: 65540

available: $ds_available[9] != 0

bit offset: $ds_offset[9]
13pol_sens_limb
binary array[dim_0]
Polarization Sensitivity Parameters Limb without Neutral Density Filter

dim_0: $num_dsr[10]
binary record "SCI_NL__1P_GADS_polar_limb_occultation"size: 65544

available: $ds_available[10] != 0

bit offset: $ds_offset[10]
14pol_sens_occ
binary array[dim_0]
Polarization Sensitivity Parameters Occultation without Neutral Density Filter

dim_0: $num_dsr[11]
binary record "SCI_NL__1P_GADS_polar_limb_occultation"size: 65544

available: $ds_available[11] != 0

bit offset: $ds_offset[11]
15rad_sens_nadir
binary array[dim_0]
Radiance Sensitivity Parameters Nadir

dim_0: $num_dsr[12]
binary record "SCI_NL__1P_GADS_rad_nadir"size: 32772

available: $ds_available[12] != 0

bit offset: $ds_offset[12]
16rad_sens_limb
binary array[dim_0]
Radiance Sensitivity Parameters Limb without Neutral Density Filter

dim_0: $num_dsr[13]
binary record "SCI_NL__1P_GADS_rad_limb_occultation"size: 32776

available: $ds_available[13] != 0

bit offset: $ds_offset[13]
17rad_sens_occ
binary array[dim_0]
Radiance Sensitivity Parameters Occultation without Neutral Density Filter

dim_0: $num_dsr[14]
binary record "SCI_NL__1P_GADS_rad_limb_occultation"size: 32776

available: $ds_available[14] != 0

bit offset: $ds_offset[14]
18errors_on_key_data
binary array[dim_0]
Errors on Key Data GADS

dim_0: $num_dsr[15]
binary record "SCI_NL__1P_GADS_err"size: 294912

available: $ds_available[15] != 0

bit offset: $ds_offset[15]
19slit_function
binary array[dim_0]
Slit Function Parameters

dim_0: $num_dsr[16]
binary record "SCI_NL__1P_GADS_slit_f"size: 11

available: $ds_available[16] != 0

bit offset: $ds_offset[16]
20small_ap_slit_function
binary array[dim_0]
Small Aperture Slit Function Parameters

dim_0: $num_dsr[17]
binary record "SCI_NL__1P_GADS_small_ap_slit_f"size: 11

available: $ds_available[17] != 0

bit offset: $ds_offset[17]
21states
binary array[dim_0]
States of the Product ADS

dim_0: $num_dsr[18]
binary record "SCI_NL__1P_ADSR_states"size: 1387

available: $ds_available[18] != 0

bit offset: $ds_offset[18]
22pmd_packets
binary array[dim_0]
PMD Data Packets of Observational States ADS

dim_0: $num_dsr[19]
binary record "SCI_NL__1P_ADSR_pmd"size: 6833

available: $ds_available[19] != 0

bit offset: $ds_offset[19]
23auxiliary_packets
binary array[dim_0]
Auxiliary Data Packets of Observation States ADS

dim_0: $num_dsr[20]
binary record "SCI_NL__1P_ADSR_auxiliary_data"size: 1679

available: $ds_available[20] != 0

bit offset: $ds_offset[20]
24new_leakage
binary array[dim_0]
Leakage Current Parameters (newly calculated) ADS

dim_0: $num_dsr[21]
binary record "SCI_NL__1P_ADSR_leak_new"size: 164021

available: $ds_available[21] != 0

bit offset: $ds_offset[21]
25dark_average
binary array[dim_0]
Average of the Dark Measurements per State

dim_0: $num_dsr[22]
binary record "SCI_NL__1P_ADSR_avg_dark"size: 131253

available: $ds_available[22] != 0

bit offset: $ds_offset[22]
26new_ppg_etalon
binary array[dim_0]
PPG/Etalon Parameters (newly calculated) ADS

dim_0: $num_dsr[23]
binary record "SCI_NL__1P_ADSR_ppg_new"size: 172045

available: $ds_available[23] != 0

bit offset: $ds_offset[23]
27new_spectral_calibration
binary array[dim_0]
Spectral Calibration Parameters (newly calculated) ADS

dim_0: $num_dsr[24]
binary record "SCI_NL__1P_ADSR_spec_new"size: 33257

available: $ds_available[24] != 0

bit offset: $ds_offset[24]
28new_sun_reference
binary array[dim_0]
Sun Reference Spectrum (newly calculated) ADS

dim_0: $num_dsr[25]
binary record "SCI_NL__1P_ADSR_sun_new"size: 163928

available: $ds_available[25] != 0

bit offset: $ds_offset[25]
29nadir
binary array[dim_0]
Nadir MDS

dim_0: $num_dsr[26]
binary record "SCI_NL__1P_MDSR_nadir"

available: $ds_available[26] != 0

bit offset: $ds_offset[26]
30limb
binary array[dim_0]
Limb MDS

dim_0: $num_dsr[27]
binary record "SCI_NL__1P_MDSR_limb"

available: $ds_available[27] != 0

bit offset: $ds_offset[27]
31occultation
binary array[dim_0]
Occultation MDS

dim_0: $num_dsr[28]
binary record "SCI_NL__1P_MDSR_occ"

available: $ds_available[28] != 0

bit offset: $ds_offset[28]
32monitoring
binary array[dim_0]
Monitoring MDS

dim_0: $num_dsr[29]
binary record "SCI_NL__1P_MDSR_mon"

available: $ds_available[29] != 0

bit offset: $ds_offset[29]

detection rule

This product definition is applicable if a product matches the following rule:

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "SCI_NL__1P" and
bytes(/,95,23) == "PO-RS-MDA-GS-2009 3-C  "

or

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "SCI_NL__1P" and
bytes(/,95,23) == "PO-RS-MDA-GS2009_06_3C "

or

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "SCI_NL__1P" and
bytes(/,95,23) == "PO-RS-MDA-GS2009_15_3F "

or

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "SCI_NL__1P" and
bytes(/,95,23) == "PO-RS-MDA-GS-2009_15_3H"

or

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "SCI_NL__1P" and
bytes(/,95,23) == "PO-RS-MDA-GS-2009_15_3J"

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 30
ds_to_dsd_index[$num_ds]$ds_to_dsd_index[0] = index(/dsd, str(./ds_name) == "SUMMARY_QUALITY             ");
$ds_to_dsd_index[1] = index(/dsd, str(./ds_name) == "GEOLOCATION                 ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "INSTRUMENT_PARAMS           ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "LEAKAGE_CONSTANT            ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "LEAKAGE_VARIABLE            ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "PPG_ETALON                  ");
$ds_to_dsd_index[6] = index(/dsd, str(./ds_name) == "SPECTRAL_BASE               ");
$ds_to_dsd_index[7] = index(/dsd, str(./ds_name) == "SPECTRAL_CALIBRATION        ");
$ds_to_dsd_index[8] = index(/dsd, str(./ds_name) == "SUN_REFERENCE               ");
$ds_to_dsd_index[9] = index(/dsd, str(./ds_name) == "POL_SENS_NADIR              ");
$ds_to_dsd_index[10] = index(/dsd, str(./ds_name) == "POL_SENS_LIMB               ");
$ds_to_dsd_index[11] = index(/dsd, str(./ds_name) == "POL_SENS_OCC                ");
$ds_to_dsd_index[12] = index(/dsd, str(./ds_name) == "RAD_SENS_NADIR              ");
$ds_to_dsd_index[13] = index(/dsd, str(./ds_name) == "RAD_SENS_LIMB               ");
$ds_to_dsd_index[14] = index(/dsd, str(./ds_name) == "RAD_SENS_OCC                ");
$ds_to_dsd_index[15] = index(/dsd, str(./ds_name) == "ERRORS_ON_KEY_DATA          ");
$ds_to_dsd_index[16] = index(/dsd, str(./ds_name) == "SLIT_FUNCTION               ");
$ds_to_dsd_index[17] = index(/dsd, str(./ds_name) == "SMALL_AP_SLIT_FUNCTION      ");
$ds_to_dsd_index[18] = index(/dsd, str(./ds_name) == "STATES                      ");
$ds_to_dsd_index[19] = index(/dsd, str(./ds_name) == "PMD_PACKETS                 ");
$ds_to_dsd_index[20] = index(/dsd, str(./ds_name) == "AUXILIARY_PACKETS           ");
$ds_to_dsd_index[21] = index(/dsd, str(./ds_name) == "NEW_LEAKAGE                 ");
$ds_to_dsd_index[22] = index(/dsd, str(./ds_name) == "DARK_AVERAGE                ");
$ds_to_dsd_index[23] = index(/dsd, str(./ds_name) == "NEW_PPG_ETALON              ");
$ds_to_dsd_index[24] = index(/dsd, str(./ds_name) == "NEW_SPECTRAL_CALIBRATION    ");
$ds_to_dsd_index[25] = index(/dsd, str(./ds_name) == "NEW_SUN_REFERENCE           ");
$ds_to_dsd_index[26] = index(/dsd, str(./ds_name) == "NADIR                       ");
$ds_to_dsd_index[27] = index(/dsd, str(./ds_name) == "LIMB                        ");
$ds_to_dsd_index[28] = index(/dsd, str(./ds_name) == "OCCULTATION                 ");
$ds_to_dsd_index[29] = index(/dsd, str(./ds_name) == "MONITORING                  ")
ds_available[$num_ds]for i = 0 to $num_ds - 1 do
$ds_available[i] = if($ds_to_dsd_index[i] != -1 and !(bytes(/dsd[$ds_to_dsd_index[i]]/filename,8) == "NOT USED"), 1, 0)
ds_offset[$num_ds]for i = 0 to $num_ds - 1 do
$ds_offset[i] = 8 * int(/dsd[$ds_to_dsd_index[i]]/ds_offset)
num_dsr[$num_ds]for i = 0 to $num_ds - 1 do
$num_dsr[i] = int(/dsd[$ds_to_dsd_index[i]]/num_dsr)
states_nadir_cum_num_dsr[$num_dsr[18]]for i = 0 to $num_dsr[18] - 1 do
$states_nadir_cum_num_dsr[i] = if(i > 0, $states_nadir_cum_num_dsr[i - 1], 0) + if(int(/states[i]/mds_type) == 1, int(/states[i]/num_dsr), 0)
nadir_states_index[$num_dsr[26]]for i = 0 to $num_dsr[26] - 1 do
$nadir_states_index[i] = index($states_nadir_cum_num_dsr, $states_nadir_cum_num_dsr > i)
states_limb_cum_num_dsr[$num_dsr[18]]for i = 0 to $num_dsr[18] - 1 do
$states_limb_cum_num_dsr[i] = if(i > 0, $states_limb_cum_num_dsr[i - 1], 0) + if(int(/states[i]/mds_type) == 2, int(/states[i]/num_dsr), 0)
limb_states_index[$num_dsr[27]]for i = 0 to $num_dsr[27] - 1 do
$limb_states_index[i] = index($states_limb_cum_num_dsr, $states_limb_cum_num_dsr > i)
states_occ_cum_num_dsr[$num_dsr[18]]for i = 0 to $num_dsr[18] - 1 do
$states_occ_cum_num_dsr[i] = if(i > 0, $states_occ_cum_num_dsr[i - 1], 0) + if(int(/states[i]/mds_type) == 3, int(/states[i]/num_dsr), 0)
occ_states_index[$num_dsr[28]]for i = 0 to $num_dsr[28] - 1 do
$occ_states_index[i] = index($states_occ_cum_num_dsr, $states_occ_cum_num_dsr > i)
states_mon_cum_num_dsr[$num_dsr[18]]for i = 0 to $num_dsr[18] - 1 do
$states_mon_cum_num_dsr[i] = if(i > 0, $states_mon_cum_num_dsr[i - 1], 0) + if(int(/states[i]/mds_type) == 4, int(/states[i]/num_dsr), 0)
mon_states_index[$num_dsr[29]]for i = 0 to $num_dsr[29] - 1 do
$mon_states_index[i] = index($states_mon_cum_num_dsr, $states_mon_cum_num_dsr > i)