SCI_OL__2P version 2

SCI_OL__2P_v2

root type

binary record
idfield namedefinition
0mph
ascii record "MPH"size: 1247
1sph
ascii record "SCI_OL__2P_SPH_v2"size: 2771
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_OL__2P_ADSR_summary_quality"size: 193

available: $ds_available[0] != 0

bit offset: $ds_offset[0]
4state_geolocation
binary array[dim_0]
Geolocation ADS

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

available: $ds_available[1] != 0

bit offset: $ds_offset[1]
5static_param
ascii string
Static parameters of the Level 2 off-line processor (verbatim copy of XML file)

byte size: $ds_size[2] / 8

available: $ds_available[2] != 0

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

dim_0: $num_dsr[3]
binary record "SCI_NL_OL_2P_ADSR_states"size: 23

available: $ds_available[3] != 0

bit offset: $ds_offset[3]
7geolocation_nadir
binary array[dim_0]
Geolocation of the Nadir Ground Pixels ADS

dim_0: $num_dsr[4]
binary record "SCI_OL__2P_ADSR_geolocation_nadir"size: 107

available: $ds_available[4] != 0

bit offset: $ds_offset[4]
8geolocation_limb
binary array[dim_0]
Geolocation of the Limb/Occultation measurements

dim_0: $num_dsr[5]
binary record "SCI_OL__2P_ADSR_geolocation_limb_occultation"size: 103

available: $ds_available[5] != 0

bit offset: $ds_offset[5]
9clouds_aerosol
binary array[dim_0]
Cloud and Aerosol MDS

dim_0: $num_dsr[6]
binary record "SCI_OL__2P_MDSR_clouds_aerosols_v1"

available: $ds_available[6] != 0

bit offset: $ds_offset[6]
10nad_uv0_o3
binary array[dim_0]
O3 Nadir Fitting Window MDS

dim_0: $num_dsr[7]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[7] != 0

bit offset: $ds_offset[7]
11nad_uv1_no2
binary array[dim_0]
NO2 Nadir Fitting Window MDS

dim_0: $num_dsr[8]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[8] != 0

bit offset: $ds_offset[8]
12nad_uv2_o3
binary array[dim_0]
O3 Nadir Fitting Window MDS

dim_0: $num_dsr[9]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[9] != 0

bit offset: $ds_offset[9]
13nad_uv3_bro
binary array[dim_0]
BrO Nadir Fitting Window MDS

dim_0: $num_dsr[10]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[10] != 0

bit offset: $ds_offset[10]
14nad_uv4_h2co
binary array[dim_0]
H2CO Nadir Fitting Window MDS

dim_0: $num_dsr[11]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[11] != 0

bit offset: $ds_offset[11]
15nad_uv5_so2
binary array[dim_0]
SO2 Nadir Fitting Window MDS

dim_0: $num_dsr[12]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[12] != 0

bit offset: $ds_offset[12]
16nad_uv6_oclo
binary array[dim_0]
OClO Nadir Fitting Window MDS

dim_0: $num_dsr[13]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[13] != 0

bit offset: $ds_offset[13]
17nad_uv7_spare
binary array[dim_0]
Spare Nadir Fitting Window MDS

dim_0: $num_dsr[14]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[14] != 0

bit offset: $ds_offset[14]
18nad_ir0_h2o
binary array[dim_0]
H2O Nadir Fitting Window MDS

dim_0: $num_dsr[15]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[15] != 0

bit offset: $ds_offset[15]
19nad_ir1_ch4
binary array[dim_0]
CH4 Nadir Fitting Window MDS

dim_0: $num_dsr[16]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[16] != 0

bit offset: $ds_offset[16]
20nad_ir2_n2o
binary array[dim_0]
N2 Nadir Fitting Window MDS

dim_0: $num_dsr[17]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[17] != 0

bit offset: $ds_offset[17]
21nad_ir3_co
binary array[dim_0]
CO Nadir Fitting Window MDS

dim_0: $num_dsr[18]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[18] != 0

bit offset: $ds_offset[18]
22nad_ir4_co2
binary array[dim_0]
CO2 Nadir Fitting Window MDS

dim_0: $num_dsr[19]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[19] != 0

bit offset: $ds_offset[19]
23nad_ir5_spare
binary array[dim_0]
Spare Nadir Fitting Window MDS

dim_0: $num_dsr[20]
binary record "SCI_OL__2P_MDSR_nadir_v1"

available: $ds_available[20] != 0

bit offset: $ds_offset[20]
24lim_pth
binary array[dim_0]
PTH Limb Fitting Window MDS

dim_0: $num_dsr[21]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[21] != 0

bit offset: $ds_offset[21]
25lim_uv0_o3
binary array[dim_0]
O3 Limb Fitting Window MDS

dim_0: $num_dsr[22]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[22] != 0

bit offset: $ds_offset[22]
26lim_uv1_no2
binary array[dim_0]
NO2 Limb Fitting Window MDS

dim_0: $num_dsr[23]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[23] != 0

bit offset: $ds_offset[23]
27lim_uv2_o3
binary array[dim_0]
O3 Limb Fitting Window MDS

dim_0: $num_dsr[24]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[24] != 0

bit offset: $ds_offset[24]
28lim_uv3_bro
binary array[dim_0]
BrO Limb Fitting Window MDS

dim_0: $num_dsr[25]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[25] != 0

bit offset: $ds_offset[25]
29lim_uv4_h2co
binary array[dim_0]
H2CO Limb Fitting Window MDS

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

available: $ds_available[26] != 0

bit offset: $ds_offset[26]
30lim_uv5_so2
binary array[dim_0]
SO2 Limb Fitting Window MDS

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

available: $ds_available[27] != 0

bit offset: $ds_offset[27]
31lim_uv6_oclo
binary array[dim_0]
OClO Limb Fitting Window MDS

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

available: $ds_available[28] != 0

bit offset: $ds_offset[28]
32lim_uv7_spare
binary array[dim_0]
Spare Limb Fitting Window MDS

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

available: $ds_available[29] != 0

bit offset: $ds_offset[29]
33lim_ir0_h2o
binary array[dim_0]
H2O Limb Fitting Window MDS

dim_0: $num_dsr[30]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[30] != 0

bit offset: $ds_offset[30]
34lim_ir1_ch4
binary array[dim_0]
CH4 Limb Fitting Window MDS

dim_0: $num_dsr[31]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[31] != 0

bit offset: $ds_offset[31]
35lim_ir2_n2o
binary array[dim_0]
N2O Limb Fitting Window MDS

dim_0: $num_dsr[32]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[32] != 0

bit offset: $ds_offset[32]
36lim_ir3_co
binary array[dim_0]
CO Limb Fitting Window MDS

dim_0: $num_dsr[33]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[33] != 0

bit offset: $ds_offset[33]
37lim_ir4_spare
binary array[dim_0]
Spare Limb Fitting Window MDS

dim_0: $num_dsr[34]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[34] != 0

bit offset: $ds_offset[34]
38occ_pth
binary array[dim_0]
PTH Occultation Fitting Window MDS

dim_0: $num_dsr[35]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[35] != 0

bit offset: $ds_offset[35]
39occ_uv0_o3
binary array[dim_0]
O3 Occultation Fitting Window MDS

dim_0: $num_dsr[36]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[36] != 0

bit offset: $ds_offset[36]
40occ_uv1_no2
binary array[dim_0]
NO2 Occultation Fitting Window MDS

dim_0: $num_dsr[37]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[37] != 0

bit offset: $ds_offset[37]
41occ_uv2_o3
binary array[dim_0]
O3 Occultation Fitting Window MDS

dim_0: $num_dsr[38]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[38] != 0

bit offset: $ds_offset[38]
42occ_uv3_bro
binary array[dim_0]
BrO Occultation Fitting Window MDS

dim_0: $num_dsr[39]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[39] != 0

bit offset: $ds_offset[39]
43occ_uv4_h2co
binary array[dim_0]
H2CO Occultation Fitting Window MDS

dim_0: $num_dsr[40]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[40] != 0

bit offset: $ds_offset[40]
44occ_uv5_so2
binary array[dim_0]
SO2 Occultation Fitting Window MDS

dim_0: $num_dsr[41]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[41] != 0

bit offset: $ds_offset[41]
45occ_uv6_oclo
binary array[dim_0]
OClO Occultation Fitting Window MDS

dim_0: $num_dsr[42]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[42] != 0

bit offset: $ds_offset[42]
46occ_uv7_spare
binary array[dim_0]
Spare Occultation Fitting Window MDS

dim_0: $num_dsr[43]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[43] != 0

bit offset: $ds_offset[43]
47occ_ir0_h2o
binary array[dim_0]
H2O Occultation Fitting Window MDS

dim_0: $num_dsr[44]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[44] != 0

bit offset: $ds_offset[44]
48occ_ir1_ch4
binary array[dim_0]
CH4 Occultation Fitting Window MDS

dim_0: $num_dsr[45]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[45] != 0

bit offset: $ds_offset[45]
49occ_ir2_n2o
binary array[dim_0]
N2 Occultation Fitting Window MDS

dim_0: $num_dsr[46]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[46] != 0

bit offset: $ds_offset[46]
50occ_ir3_co
binary array[dim_0]
CO Occultation Fitting Window MDS

dim_0: $num_dsr[47]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[47] != 0

bit offset: $ds_offset[47]
51occ_ir4_spare
binary array[dim_0]
Spare Occultation Fitting Window MDS

dim_0: $num_dsr[48]
binary record "SCI_OL__2P_MDSR_limb_occultation"

available: $ds_available[48] != 0

bit offset: $ds_offset[48]
52nad_profile_o3
binary array[dim_0]
O3 Nadir Profile MDS (not properly defined yet)

dim_0: $ds_size[49]
binary uint8size: 1

available: $ds_available[49] != 0

bit offset: $ds_offset[49]

detection rule

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

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

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 50
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) == "STATE_GEOLOCATION           ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "STATIC_PARAM                ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "STATES                      ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "GEOLOCATION_NADIR           ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "GEOLOCATION_LIMB            ");
$ds_to_dsd_index[6] = index(/dsd, str(./ds_name) == "CLOUDS_AEROSOL              ");
$ds_to_dsd_index[7] = index(/dsd, str(./ds_name) == "NAD_UV0_O3                  ");
$ds_to_dsd_index[8] = index(/dsd, str(./ds_name) == "NAD_UV1_NO2                 ");
$ds_to_dsd_index[9] = index(/dsd, str(./ds_name) == "NAD_UV2_O3                  ");
$ds_to_dsd_index[10] = index(/dsd, str(./ds_name) == "NAD_UV3_BRO                 ");
$ds_to_dsd_index[11] = index(/dsd, str(./ds_name) == "NAD_UV4_H2CO                ");
$ds_to_dsd_index[12] = index(/dsd, str(./ds_name) == "NAD_UV5_SO2                 ");
$ds_to_dsd_index[13] = index(/dsd, str(./ds_name) == "NAD_UV6_OCLO                ");
$ds_to_dsd_index[14] = index(/dsd, str(./ds_name) == "NAD_UV7_SPARE               ");
$ds_to_dsd_index[15] = index(/dsd, str(./ds_name) == "NAD_IR0_H2O                 ");
$ds_to_dsd_index[16] = index(/dsd, str(./ds_name) == "NAD_IR1_CH4                 ");
$ds_to_dsd_index[17] = index(/dsd, str(./ds_name) == "NAD_IR2_N2O                 ");
$ds_to_dsd_index[18] = index(/dsd, str(./ds_name) == "NAD_IR3_CO                  ");
$ds_to_dsd_index[19] = index(/dsd, str(./ds_name) == "NAD_IR4_CO2                 ");
$ds_to_dsd_index[20] = index(/dsd, str(./ds_name) == "NAD_IR5_SPARE               ");
$ds_to_dsd_index[21] = index(/dsd, str(./ds_name) == "LIM_PTH                     ");
$ds_to_dsd_index[22] = index(/dsd, str(./ds_name) == "LIM_UV0_O3                  ");
$ds_to_dsd_index[23] = index(/dsd, str(./ds_name) == "LIM_UV1_NO2                 ");
$ds_to_dsd_index[24] = index(/dsd, str(./ds_name) == "LIM_UV2_O3                  ");
$ds_to_dsd_index[25] = index(/dsd, str(./ds_name) == "LIM_UV3_BRO                 ");
$ds_to_dsd_index[26] = index(/dsd, str(./ds_name) == "LIM_UV4_H2CO                ");
$ds_to_dsd_index[27] = index(/dsd, str(./ds_name) == "LIM_UV5_SO2                 ");
$ds_to_dsd_index[28] = index(/dsd, str(./ds_name) == "LIM_UV6_OCLO                ");
$ds_to_dsd_index[29] = index(/dsd, str(./ds_name) == "LIM_UV7_SPARE               ");
$ds_to_dsd_index[30] = index(/dsd, str(./ds_name) == "LIM_IR0_H2O                 ");
$ds_to_dsd_index[31] = index(/dsd, str(./ds_name) == "LIM_IR1_CH4                 ");
$ds_to_dsd_index[32] = index(/dsd, str(./ds_name) == "LIM_IR2_N2O                 ");
$ds_to_dsd_index[33] = index(/dsd, str(./ds_name) == "LIM_IR3_CO                  ");
$ds_to_dsd_index[34] = index(/dsd, str(./ds_name) == "LIM_IR4_SPARE               ");
$ds_to_dsd_index[35] = index(/dsd, str(./ds_name) == "OCC_PTH                     ");
$ds_to_dsd_index[36] = index(/dsd, str(./ds_name) == "OCC_UV0_O3                  ");
$ds_to_dsd_index[37] = index(/dsd, str(./ds_name) == "OCC_UV1_NO2                 ");
$ds_to_dsd_index[38] = index(/dsd, str(./ds_name) == "OCC_UV2_O3                  ");
$ds_to_dsd_index[39] = index(/dsd, str(./ds_name) == "OCC_UV3_BRO                 ");
$ds_to_dsd_index[40] = index(/dsd, str(./ds_name) == "OCC_UV4_H2CO                ");
$ds_to_dsd_index[41] = index(/dsd, str(./ds_name) == "OCC_UV5_SO2                 ");
$ds_to_dsd_index[42] = index(/dsd, str(./ds_name) == "OCC_UV6_OCLO                ");
$ds_to_dsd_index[43] = index(/dsd, str(./ds_name) == "OCC_UV7_SPARE               ");
$ds_to_dsd_index[44] = index(/dsd, str(./ds_name) == "OCC_IR0_H2O                 ");
$ds_to_dsd_index[45] = index(/dsd, str(./ds_name) == "OCC_IR1_CH4                 ");
$ds_to_dsd_index[46] = index(/dsd, str(./ds_name) == "OCC_IR2_N2O                 ");
$ds_to_dsd_index[47] = index(/dsd, str(./ds_name) == "OCC_IR3_CO                  ");
$ds_to_dsd_index[48] = index(/dsd, str(./ds_name) == "OCC_IR4_SPARE               ");
$ds_to_dsd_index[49] = index(/dsd, str(./ds_name) == "NAD_PROFILE_O3              ")
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)
ds_size[$num_ds]for i = 0 to $num_ds - 1 do
$ds_size[i] = 8 * int(/dsd[$ds_to_dsd_index[i]]/ds_size)
num_dsr[$num_ds]for i = 0 to $num_ds - 1 do
$num_dsr[i] = int(/dsd[$ds_to_dsd_index[i]]/num_dsr)