GOME_xxx_1A version 13

GOME_xxx_1A_v13

This definition is based on version 10B of the GOME-2 Level 1 Product Format Specification (PFS) document (EPS-MIS-SPE-97232) and version 7D of the EPS Generic Product Format Specification (GPFS) document (EPS-GGS-SPE-096167).

root type

binary record
idfield namedefinition
0MPHR
binary record "MPHR_v2"size: 3307
1SPHR
binary record "GOME2_SPHR_v2"size: 3654
2IPR
binary array[dim_0]
dim_0: $num_ipr
binary record "IPR"size: 27
3GEADR
binary array[dim_0]
dim_0: $num_geadr
binary record "GEADR"size: 120

available: $num_geadr > 0
4GIADR_Bands
binary array[dim_0]
dim_0: $num_giadr_bands
binary record "GOME2_GIADR_L1A_Bands_v2"size: 80
5GIADR_Steps
binary array[dim_0]
dim_0: $num_giadr_steps
binary record "GOME2_GIADR_L1A_Steps"size: 620
6GIADR_MME
binary array[dim_0]
dim_0: $num_giadr_mme
binary record "GOME2_GIADR_L1A_MME_v2"
7GIADR_Channels
binary array[dim_0]
dim_0: $num_giadr_channels
binary record "GOME2_GIADR_L1_Channels_v3"size: 99
8VEADR
binary array[dim_0]
dim_0: $num_veadr
binary record "VEADR"size: 120

available: $num_veadr > 0
9VIADR_Dark
binary array[dim_0]
dim_0: $num_viadr_dark
binary record "GOME2_VIADR_L1A_Dark"size: 8251

available: $num_viadr_dark > 0
10VIADR_PPG
binary array[dim_0]
dim_0: $num_viadr_ppg
binary record "GOME2_VIADR_L1A_PPG"size: 24676

available: $num_viadr_ppg > 0
11VIADR_Etalon
binary array[dim_0]
dim_0: $num_viadr_etalon
binary record "GOME2_VIADR_L1A_Etalon"size: 49312

available: $num_viadr_etalon > 0
12VIADR_Spec
binary array[dim_0]
dim_0: $num_viadr_spec
binary record "GOME2_VIADR_L1A_Spec_v4"size: 25228

available: $num_viadr_spec > 0
13VIADR_SMR
binary array[dim_0]
dim_0: $num_viadr_smr
binary record "GOME2_VIADR_L1_SMR_v2"size: 178224

available: $num_viadr_smr > 0
14VIADR_Spec_SMR
binary array[dim_0]
dim_0: $num_viadr_spec_smr
binary record "GOME2_VIADR_L1A_Spec_SMR"size: 57419

available: $num_viadr_spec_smr > 0
15VIADR_DPM
binary array[dim_0]
dim_0: $num_viadr_dpm
binary record "GOME2_VIADR_L1_DPM"size: 61478

available: $num_viadr_dpm > 0
16MDR
binary array[dim_0]
dim_0: $num_mdr
binary union "GOME2_MDR_L1A_v4"

detection rule

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

bytes(/,0,8) == "\001\000\000\002\000\000\f\353" and
bytes(/,20,32) == "PRODUCT_NAME                  = " and
bytes(/,552,4) == "GOME" and
bytes(/,661,2) == "1A" and
bytes(/,3305,1) == "F" and
bytes(/,1037,5) == "   13" and
bytes(/,1075,5) == "    0"

product variables

namesizeinitialisation
num_ipr$num_ipr = int(/MPHR/TOTAL_IPR)
num_geadr$num_geadr = int(/MPHR/TOTAL_GEADR)
num_giadr_bands$num_giadr_bands = unboundindex(/GIADR_Bands, int(./RECORD_HEADER/RECORD_SUBCLASS) != 1)
num_giadr_steps$num_giadr_steps = unboundindex(/GIADR_Steps, int(./RECORD_HEADER/RECORD_SUBCLASS) != 2)
num_giadr_mme$num_giadr_mme = unboundindex(/GIADR_MME, int(./RECORD_HEADER/RECORD_SUBCLASS) != 3)
num_giadr_channels$num_giadr_channels = unboundindex(/GIADR_Channels, int(./RECORD_HEADER/RECORD_SUBCLASS) != 4)
num_veadr$num_veadr = int(/MPHR/TOTAL_VEADR)
num_viadr_dark$num_viadr_dark = 1;
$num_viadr_dark = unboundindex(/VIADR_Dark, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 1)
num_viadr_ppg$num_viadr_ppg = 1;
$num_viadr_ppg = unboundindex(/VIADR_PPG, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 2)
num_viadr_etalon$num_viadr_etalon = 1;
$num_viadr_etalon = unboundindex(/VIADR_Etalon, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 3)
num_viadr_spec$num_viadr_spec = 1;
$num_viadr_spec = unboundindex(/VIADR_Spec, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 4)
num_viadr_smr$num_viadr_smr = 1;
$num_viadr_smr = unboundindex(/VIADR_SMR, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 5)
num_viadr_spec_smr$num_viadr_spec_smr = 1;
$num_viadr_spec_smr = unboundindex(/VIADR_Spec_SMR, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 6)
num_viadr_dpm$num_viadr_dpm = 1;
$num_viadr_dpm = unboundindex(/VIADR_DPM, int(./RECORD_HEADER/RECORD_CLASS) != 7 or int(./RECORD_HEADER/RECORD_SUBCLASS) != 7)
num_mdr$num_mdr = int(/MPHR/TOTAL_MDR)
mdr_bit_size[$num_mdr]for i = 0 to $num_mdr - 1 do
$mdr_bit_size[i] = bitsize(/mdr[i])