ALD_U_N_2C version 9

ALD_U_N_2C_03_60

This definition is based on version 3.60 of IODD AED-SD-ECMWF-L2B-037

root type

binary record
Level 2C Product

idfield namedefinition
0mph
ascii record "MPH_v3"size: 1247
1sph
ascii record "Level_2C_SPH_03_30"size: 33681
2dsd
ascii array[dim_0]
dim_0: $num_dsd
ascii record "DSD"size: 288
3meas_map
binary array[dim_0]
Measurement Map Annotation

dim_0: $num_dsr[0]
binary record "Level_2BC_Meas_Map_ADSR"size: 308

available: $ds_available[0] != 0

bit offset: $ds_offset[0]
4mie_grouping
binary array[dim_0]
Mie Grouping ADS

dim_0: $num_dsr[1]
binary record "Level_2BC_Grouping_ADSR_02_30"size: 46

available: $ds_available[1] != 0

bit offset: $ds_offset[1]
5rayleigh_grouping
binary array[dim_0]
Rayleigh Grouping ADS

dim_0: $num_dsr[2]
binary record "Level_2BC_Grouping_ADSR_02_30"size: 46

available: $ds_available[2] != 0

bit offset: $ds_offset[2]
6copied_brc_data
binary array[dim_0]
Copied BRC Data ADS

dim_0: $num_dsr[3]
binary record "Level_2BC_Copied_BRC_Data_ADSR"size: 149

available: $ds_available[3] != 0

bit offset: $ds_offset[3]
7mie_geolocation
binary array[dim_0]
Mie Wind Geolocation Data

dim_0: $num_dsr[4]
binary record "Level_2BC_Geolocation_ADSR_03_30"size: 167

available: $ds_available[4] != 0

bit offset: $ds_offset[4]
8rayleigh_geolocation
binary array[dim_0]
Rayleigh Wind Geolocation Data

dim_0: $num_dsr[5]
binary record "Level_2BC_Geolocation_ADSR_03_30"size: 167

available: $ds_available[5] != 0

bit offset: $ds_offset[5]
9amd_product_confid_data
binary array[dim_0]
AMD Product Confidence Data

dim_0: $num_dsr[6]
binary record "Level_2B_AMD_PCD_ADSR_02_00"size: 54

available: $ds_available[6] != 0

bit offset: $ds_offset[6]
10meas_product_confid_data
binary array[dim_0]
Measurement level Product Confidence Data

dim_0: $num_dsr[7]
binary record "Level_2B_Meas_PCD_ADSR_03_60"size: 2239

available: $ds_available[7] != 0

bit offset: $ds_offset[7]
11mie_wind_prod_conf_data
binary array[dim_0]
Mie Wind Product Confidence Data

dim_0: $num_dsr[8]
binary record "Level_2BC_Mie_Wind_PCD_ADSR_03_30"size: 184

available: $ds_available[8] != 0

bit offset: $ds_offset[8]
12rayleigh_wind_prod_conf_data
binary array[dim_0]
Rayleigh Wind Product Confidence Data

dim_0: $num_dsr[9]
binary record "Level_2BC_Rayleigh_Wind_PCD_ADSR_03_30"size: 55

available: $ds_available[9] != 0

bit offset: $ds_offset[9]
13mie_hloswind
binary array[dim_0]
Mie HLOS winds

dim_0: $num_dsr[10]
binary record "Level_2BC_Mie_HLOSWind_MDSR_03_60"size: 46

available: $ds_available[10] != 0

bit offset: $ds_offset[10]
14rayleigh_hloswind
binary array[dim_0]
Rayleigh HLOS winds

dim_0: $num_dsr[11]
binary record "Level_2BC_Rayleigh_HLOSWind_MDSR_03_60"size: 60

available: $ds_available[11] != 0

bit offset: $ds_offset[11]
15mie_profile
binary array[dim_0]
Mie Profile

dim_0: $num_dsr[12]
binary record "Level_2BC_Wind_Profile_MDSR_02_00"size: 176

available: $ds_available[12] != 0

bit offset: $ds_offset[12]
16rayleigh_profile
binary array[dim_0]
Rayleigh Profile

dim_0: $num_dsr[13]
binary record "Level_2BC_Wind_Profile_MDSR_02_00"size: 176

available: $ds_available[13] != 0

bit offset: $ds_offset[13]
17mie_assim_pcd
binary array[dim_0]
Mie assimilation Product Confidence Data

dim_0: $num_dsr[14]
binary record "Level_2C_Mie_Assim_PCD_ADSR_02_00"size: 155

available: $ds_available[14] != 0

bit offset: $ds_offset[14]
18rayleigh_assim_pcd
binary array[dim_0]
Rayleigh assimilation Product Confidence Data

dim_0: $num_dsr[15]
binary record "Level_2C_Rayleigh_Assim_PCD_ADSR_02_00"size: 155

available: $ds_available[15] != 0

bit offset: $ds_offset[15]
19mie_vecwind
binary array[dim_0]
Mie vector winds

dim_0: $num_dsr[16]
binary record "Level_2C_Mie_VecWind_MDSR_02_00"size: 45

available: $ds_available[16] != 0

bit offset: $ds_offset[16]
20rayleigh_vecwind
binary array[dim_0]
Rayleigh vector winds

dim_0: $num_dsr[17]
binary record "Level_2C_Rayleigh_VecWind_MDSR_02_00"size: 45

available: $ds_available[17] != 0

bit offset: $ds_offset[17]

detection rule

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

bytes(/,0,12) == "PRODUCT=\"AE_" and
bytes(/,17,10) == "ALD_U_N_2C" and
bytes(/,95,23) == "L2B/L2C IODD Iss. 03.60"

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 18
ds_to_dsd_index[$num_ds]$ds_to_dsd_index[0] = index(/dsd, str(./ds_name) == "Meas_Map_ADS                ");
$ds_to_dsd_index[1] = index(/dsd, str(./ds_name) == "Mie_Grouping_ADS            ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "Rayleigh_Grouping_ADS       ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "Copied_BRC_Data_ADS         ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "Mie_Geolocation_ADS         ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "Rayleigh_Geolocation_ADS    ");
$ds_to_dsd_index[6] = index(/dsd, str(./ds_name) == "AMD_Product_Confid_Data_ADS ");
$ds_to_dsd_index[7] = index(/dsd, str(./ds_name) == "Meas_Product_Confid_Data_ADS");
$ds_to_dsd_index[8] = index(/dsd, str(./ds_name) == "Mie_Wind_Prod_Conf_Data_ADS ");
$ds_to_dsd_index[9] = index(/dsd, str(./ds_name) == "Rayl_Wind_Prod_Conf_Data_ADS");
$ds_to_dsd_index[10] = index(/dsd, str(./ds_name) == "Mie_Wind_MDS                ");
$ds_to_dsd_index[11] = index(/dsd, str(./ds_name) == "Rayleigh_Wind_MDS           ");
$ds_to_dsd_index[12] = index(/dsd, str(./ds_name) == "Mie_Profile_MDS             ");
$ds_to_dsd_index[13] = index(/dsd, str(./ds_name) == "Rayleigh_Profile_MDS        ");
$ds_to_dsd_index[14] = index(/dsd, str(./ds_name) == "Mie_Assim_PCD_ADS           ");
$ds_to_dsd_index[15] = index(/dsd, str(./ds_name) == "Rayl_Assim_PCD_ADS          ");
$ds_to_dsd_index[16] = index(/dsd, str(./ds_name) == "Mie_VecWind_MDS             ");
$ds_to_dsd_index[17] = index(/dsd, str(./ds_name) == "Rayleigh_VecWind_MDS        ")
ds_available[$num_ds]for i = 0 to $num_ds - 1 do
$ds_available[i] = if($ds_to_dsd_index[i] != -1 and int(/dsd[$ds_to_dsd_index[i]]/ds_size) != 0, 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)