GOME_xxx_1A version 4

GOME_xxx_1A_v4

This definition is based on version 6.4 (V2L baseline) of the GOME-2 Level 1 Product Format Specification (PFS) document (EPS-MIS-SPE-97232) and version 6.4 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_v1"size: 2984
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 record "GOME2_GIADR_L1A_Bands_v2"size: 80
5GIADR_Steps
binary record "GOME2_GIADR_L1A_Steps"size: 620
6GIADR_MME
binary record "GOME2_GIADR_L1A_MME_v1"
7GIADR_Channels
binary record "GOME2_GIADR_L1_Channels_v2"size: 98
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_v2"size: 892

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

available: $num_viadr_smr > 0
14MDR
binary array[dim_0]
dim_0: $num_mdr
binary union "GOME2_MDR_L1A_v1"

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) == "    4" and
bytes(/,1075,5) == "    5"

product variables

namesizeinitialisation
num_ipr$num_ipr = int(/MPHR/TOTAL_IPR)
num_geadr$num_geadr = int(/MPHR/TOTAL_GEADR)
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_mdr$num_mdr = int(/MPHR/TOTAL_MDR)
rec_length[10]for i = 0 to 9 do
$rec_length[i] = int(/GIADR_Bands/NUMBER_OF_PIXELS[i])
mdr_bit_size[$num_mdr]for i = 0 to $num_mdr - 1 do
$mdr_bit_size[i] = bitsize(/mdr[i])