ALD_U_N_1A version 5

ALD_U_N_1A_04_12

This definition is based on version 4/12 of IODD ADM-IC-52-1666

root type

binary record "Level_1A_Product_04_12"
Level 1A Product

idfield namedefinition
0mph
ascii record "MPH_v3"size: 1247
1sph
ascii record "Level_1A_SPH_04_04"size: 1194
2dsd
ascii array[dim_0]
dim_0: $num_dsd
ascii record "DSD"size: 288
3geolocation
binary array[dim_0]
Geolocation ADS

dim_0: $num_dsr[0]
binary record "Level_1A_Geolocation_ADSR_04_09"size: 42090

available: $ds_available[0] != 0

bit offset: $ds_offset[0]
4data_quality
binary array[dim_0]
Data Quality ADS

dim_0: $num_dsr[1]
binary record "Level_1A_Data_Quality_ADSR_04_04"size: 1114

available: $ds_available[1] != 0

bit offset: $ds_offset[1]
5reference_pulse
binary array[dim_0]
Reference Pulse ADSR

dim_0: $num_dsr[2]
binary record "Level_1A_Reference_Pulse_ADSR_04_04"size: 48020

available: $ds_available[2] != 0

bit offset: $ds_offset[2]
6house_keeping
binary array[dim_0]
House Keeping ADS

dim_0: $num_dsr[3]
binary record "Level_1A_Housekeeping_ADSR_04_12"size: 11356

available: $ds_available[3] != 0

bit offset: $ds_offset[3]
7mie_measurement
binary array[dim_0]
Mie Measurement MDSR

dim_0: $num_dsr[4]
binary record "Level_1A_Mie_Measurement_MDSR_04_04"size: 30018

available: $ds_available[4] != 0

bit offset: $ds_offset[4]
8rayleigh_measurement
binary array[dim_0]
Rayleigh Measurement MDS

dim_0: $num_dsr[5]
binary record "Level_1A_Rayleigh_Measurement_MDSR_04_04"size: 30018

available: $ds_available[5] != 0

bit offset: $ds_offset[5]

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_1A" and
bytes(/,95,23) == "521666_IODD_4_12       "

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 6
ds_to_dsd_index[$num_ds]$ds_to_dsd_index[0] = index(/dsd, str(./ds_name) == "Geolocation_ADS             ");
$ds_to_dsd_index[1] = index(/dsd, str(./ds_name) == "Data_Quality_ADS            ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "Reference_Pulse_ADS         ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "Housekeeping_ADS            ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "Mie_Measurement_MDS         ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "Rayleigh_Measurement_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)