MIP_FM2_AX version 1

MIP_FM2_AX_v1

root type

binary record
idfield namedefinition
0mph
ascii record "MPH"size: 1247
1sph
ascii record "Auxiliary_Data_SPH"size: 98
2dsd
ascii array[dim_0]
dim_0: $num_dsd
ascii record "DSD"size: 280
3initial_guess_general_data
binary array[dim_0]
GADS General

dim_0: $num_dsr[0]
binary record "MIP_IG2_AX_GADS_general_v1"

available: $ds_available[0] != 0

bit offset: $ds_offset[0]
4pressure_profiles_mds
binary array[dim_0]
Pressure profile MDS

dim_0: $num_dsr[1]
binary record "MIP_IG2_AX_MDSR_press"

available: $ds_available[1] != 0

bit offset: $ds_offset[1]
5temperature_profiles_mds
binary array[dim_0]
Temperature profiles MDS

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

available: $ds_available[2] != 0

bit offset: $ds_offset[2]
6vmr_profiles_mds
binary array[dim_0]
VMR profiles MDS

dim_0: $num_dsr[3]
binary record "MIP_IG2_AX_MDSR_vmr_v1"

available: $ds_available[3] != 0

bit offset: $ds_offset[3]
7pt_mw_continuum_prof_mds
binary array[dim_0]
p,T Continuum profiles MDS

dim_0: $num_dsr[4]
binary record "MIP_IG2_AX_MDSR_cont_prof"

available: $ds_available[4] != 0

bit offset: $ds_offset[4]
8h2o_mw_continuum_prof_mds
binary array[dim_0]
H2O Continuum profiles MDS

dim_0: $num_dsr[5]
binary record "MIP_IG2_AX_MDSR_cont_prof"

available: $ds_available[5] != 0

bit offset: $ds_offset[5]
9n2o_mw_continuum_prof_mds
binary array[dim_0]
N2O Continuum profiles MDS

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

available: $ds_available[6] != 0

bit offset: $ds_offset[6]
10hno3_mw_continuum_prof_mds
binary array[dim_0]
HNO3 Continuum profiles MDS

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

available: $ds_available[7] != 0

bit offset: $ds_offset[7]
11ch4_mw_continuum_prof_mds
binary array[dim_0]
CH4 Continuum profiles MDS

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

available: $ds_available[8] != 0

bit offset: $ds_offset[8]
12o3_mw_continuum_prof_mds
binary array[dim_0]
O3 Continuum profiles MDS

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

available: $ds_available[9] != 0

bit offset: $ds_offset[9]
13no2_mw_continuum_prof_mds
binary array[dim_0]
NO2 Continuum profiles MDS

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

available: $ds_available[10] != 0

bit offset: $ds_offset[10]
14f11_mw_continuum_prof_mds
binary array[dim_0]
F11 Continuum profiles MDS

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

available: $ds_available[11] != 0

bit offset: $ds_offset[11]
15clno_mw_continuum_prof_mds
binary array[dim_0]
ClONO2 Continuum profiles MDS

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

available: $ds_available[12] != 0

bit offset: $ds_offset[12]
16n2o5_mw_continuum_prof_mds
binary array[dim_0]
N2O5 Continuum profiles MDS

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

available: $ds_available[13] != 0

bit offset: $ds_offset[13]
17f12_mw_continuum_prof_mds
binary array[dim_0]
F12 Continuum profiles MDS

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

available: $ds_available[14] != 0

bit offset: $ds_offset[14]
18forward_model_general_data
binary array[dim_0]
General data

dim_0: $num_dsr[15]
binary record "MIP_FM2_AX_GADS_fc"size: 16

available: $ds_available[15] != 0

bit offset: $ds_offset[15]
19mw_occupation_matrix_ads
binary array[dim_0]
Data depending on occupation matrix location ADS

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

available: $ds_available[16] != 0

bit offset: $ds_offset[16]
20mw_grouping_ads
binary array[dim_0]
Microwindow grouping data ADS

dim_0: int(/initial_guess_general_data[0]/num_lat_bands)
binary record "MIP_FM2_AX_ADSR_cont"

available: $ds_available[17] != 0

bit offset: $ds_offset[17]
21simulated_spectra_mds
binary array[dim_0]
Computed spectra MDS

dim_0: int(/initial_guess_general_data[0]/num_lat_bands)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:)]/nsim)
binary array[dim_0]
dim_0: int(/forward_model_general_data[0]/ngeo)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:/../..)]/nmw)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:/../../..)]/mw_occ[int(/mw_occupation_matrix_ads[index(:/../../..)]/nmw) * index(:/..) + index(:)])
binary record "MIP_FM2_AX_MDSR_spect"

available: $ds_available[18] != 0

bit offset: $ds_offset[18]
22fitted_parameters_mds
binary array[dim_0]
Values of unknown parameters MDS

dim_0: int(/initial_guess_general_data[0]/num_lat_bands)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:)]/nsim)
binary record "MIP_FM2_AX_MDSR_unk"

available: $ds_available[19] != 0

bit offset: $ds_offset[19]
23jacobi_matrices_mds
binary array[dim_0]
Jacobian matrices MDS

dim_0: int(/initial_guess_general_data[0]/num_lat_bands)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:)]/nsim)
binary array[dim_0]
dim_0: int(/forward_model_general_data[0]/ngeo)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:/../..)]/nmw)
binary array[dim_0]
dim_0: int(/mw_occupation_matrix_ads[index(:/../../..)]/mw_occ[int(/mw_occupation_matrix_ads[index(:/../../..)]/nmw) * index(:/..) + index(:)])
binary record "MIP_FM2_AX_MDSR_jac"

available: $ds_available[20] != 0

bit offset: $ds_offset[20]

detection rule

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

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "MIP_FM2_AX" and
bytes(/,95,23) == "PO-RS-ESA-GS-0177_6    "

or

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

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 21
ds_to_dsd_index[$num_ds]$ds_to_dsd_index[0] = index(/dsd, str(./ds_name) == "INITIAL GUESS GENERAL DATA  ");
$ds_to_dsd_index[1] = index(/dsd, str(./ds_name) == "PRESSURE PROFILES MDS       ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "TEMPERATURE PROFILES MDS    ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "VMR PROFILES MDS            ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "PT MW CONTINUUM PROF MDS    ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "H2O MW CONTINUUM PROF MDS   ");
$ds_to_dsd_index[6] = index(/dsd, str(./ds_name) == "N2O MW CONTINUUM PROF MDS   ");
$ds_to_dsd_index[7] = index(/dsd, str(./ds_name) == "HNO3 MW CONTINUUM PROF MDS  ");
$ds_to_dsd_index[8] = index(/dsd, str(./ds_name) == "CH4 MW CONTINUUM PROF MDS   ");
$ds_to_dsd_index[9] = index(/dsd, str(./ds_name) == "O3 MW CONTINUUM PROF MDS    ");
$ds_to_dsd_index[10] = index(/dsd, str(./ds_name) == "NO2 MW CONTINUUM PROF MDS   ");
$ds_to_dsd_index[11] = index(/dsd, str(./ds_name) == "F11 MW CONTINUUM PROF MDS   ");
$ds_to_dsd_index[12] = index(/dsd, str(./ds_name) == "CLNO MW CONTINUUM PROF MDS  ");
$ds_to_dsd_index[13] = index(/dsd, str(./ds_name) == "N2O5 MW CONTINUUM PROF MDS  ");
$ds_to_dsd_index[14] = index(/dsd, str(./ds_name) == "F12 MW CONTINUUM PROF MDS   ");
$ds_to_dsd_index[15] = index(/dsd, str(./ds_name) == "FORWARD MODEL GENERAL DATA  ");
$ds_to_dsd_index[16] = index(/dsd, str(./ds_name) == "MW OCCUPATION MATRIX ADS    ");
$ds_to_dsd_index[17] = index(/dsd, str(./ds_name) == "MW GROUPING ADS             ");
$ds_to_dsd_index[18] = index(/dsd, str(./ds_name) == "SIMULATED SPECTRA MDS       ");
$ds_to_dsd_index[19] = index(/dsd, str(./ds_name) == "FITTED PARAMETERS MDS       ");
$ds_to_dsd_index[20] = index(/dsd, str(./ds_name) == "JACOBI MATRICES MDS         ")
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)
species_count$species_count = 10