Line data Source code
1 : /******************************************************************************
2 : * $Id$
3 : *
4 : * Project: APP ENVISAT Support
5 : * Purpose: Low Level Envisat file access (read/write) API.
6 : * Author: Antonio Valentino <antonio.valentino@tiscali.it>
7 : *
8 : ******************************************************************************
9 : * Copyright (c) 2011, Antonio Valentino
10 : *
11 : * SPDX-License-Identifier: MIT
12 : ****************************************************************************/
13 :
14 : #include "cpl_string.h"
15 : #include "records.h"
16 :
17 : /* --- ASAR record descriptors --------------------------------------------- */
18 : static const EnvisatFieldDescr ASAR_ANTENNA_ELEV_PATT_ADSR[] = {
19 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
20 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
21 : {"BEAM_ID", 13, EDT_Char, 3},
22 : {"ELEVATION_PATTERN.SLANT_RANGE_TIME", 16, EDT_Float32, 11},
23 : {"ELEVATION_PATTERN.ELEVATION_ANGLES", 60, EDT_Float32, 11},
24 : {"ELEVATION_PATTERN.ANTENNA_PATTERN", 104, EDT_Float32, 11},
25 : /*{"SPARE_1", 148, EDT_UByte, 14},*/
26 : {NULL, 0, EDT_Unknown, 0}};
27 :
28 : static const EnvisatFieldDescr ASAR_CHIRP_PARAMS_ADSR[] = {
29 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
30 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
31 : {"BEAM_ID", 13, EDT_Char, 3},
32 : {"POLAR", 16, EDT_Char, 3},
33 : {"CHIRP_WIDTH", 19, EDT_Float32, 1},
34 : {"CHIRP_SIDELOBE", 23, EDT_Float32, 1},
35 : {"CHIRP_ISLR", 27, EDT_Float32, 1},
36 : {"CHIRP_PEAK_LOC", 31, EDT_Float32, 1},
37 : {"CHIRP_POWER", 35, EDT_Float32, 1},
38 : {"ELEV_CORR_FACTOR", 39, EDT_Float32, 1},
39 : /*{"SPARE_1", 43, EDT_UByte, 16},*/
40 : {"CAL_PULSE_INFO.1.MAX_CAL", 59, EDT_Float32, 3},
41 : {"CAL_PULSE_INFO.1.AVG_CAL", 71, EDT_Float32, 3},
42 : {"CAL_PULSE_INFO.1.AVG_VAL_1A", 83, EDT_Float32, 1},
43 : {"CAL_PULSE_INFO.1.PHS_CAL", 87, EDT_Float32, 4},
44 : {"CAL_PULSE_INFO.2.MAX_CAL", 103, EDT_Float32, 3},
45 : {"CAL_PULSE_INFO.2.AVG_CAL", 115, EDT_Float32, 3},
46 : {"CAL_PULSE_INFO.2.AVG_VAL_1A", 127, EDT_Float32, 1},
47 : {"CAL_PULSE_INFO.2.PHS_CAL", 131, EDT_Float32, 4},
48 : {"CAL_PULSE_INFO.3.MAX_CAL", 147, EDT_Float32, 3},
49 : {"CAL_PULSE_INFO.3.AVG_CAL", 159, EDT_Float32, 3},
50 : {"CAL_PULSE_INFO.3.AVG_VAL_1A", 171, EDT_Float32, 1},
51 : {"CAL_PULSE_INFO.3.PHS_CAL", 175, EDT_Float32, 4},
52 : {"CAL_PULSE_INFO.4.MAX_CAL", 191, EDT_Float32, 3},
53 : {"CAL_PULSE_INFO.4.AVG_CAL", 203, EDT_Float32, 3},
54 : {"CAL_PULSE_INFO.4.AVG_VAL_1A", 215, EDT_Float32, 1},
55 : {"CAL_PULSE_INFO.4.PHS_CAL", 219, EDT_Float32, 4},
56 : {"CAL_PULSE_INFO.5.MAX_CAL", 235, EDT_Float32, 3},
57 : {"CAL_PULSE_INFO.5.AVG_CAL", 247, EDT_Float32, 3},
58 : {"CAL_PULSE_INFO.5.AVG_VAL_1A", 259, EDT_Float32, 1},
59 : {"CAL_PULSE_INFO.5.PHS_CAL", 263, EDT_Float32, 4},
60 : {"CAL_PULSE_INFO.6.MAX_CAL", 279, EDT_Float32, 3},
61 : {"CAL_PULSE_INFO.6.AVG_CAL", 291, EDT_Float32, 3},
62 : {"CAL_PULSE_INFO.6.AVG_VAL_1A", 303, EDT_Float32, 1},
63 : {"CAL_PULSE_INFO.6.PHS_CAL", 307, EDT_Float32, 4},
64 : {"CAL_PULSE_INFO.7.MAX_CAL", 323, EDT_Float32, 3},
65 : {"CAL_PULSE_INFO.7.AVG_CAL", 335, EDT_Float32, 3},
66 : {"CAL_PULSE_INFO.7.AVG_VAL_1A", 347, EDT_Float32, 1},
67 : {"CAL_PULSE_INFO.7.PHS_CAL", 351, EDT_Float32, 4},
68 : {"CAL_PULSE_INFO.8.MAX_CAL", 367, EDT_Float32, 3},
69 : {"CAL_PULSE_INFO.8.AVG_CAL", 379, EDT_Float32, 3},
70 : {"CAL_PULSE_INFO.8.AVG_VAL_1A", 391, EDT_Float32, 1},
71 : {"CAL_PULSE_INFO.8.PHS_CAL", 395, EDT_Float32, 4},
72 : {"CAL_PULSE_INFO.9.MAX_CAL", 411, EDT_Float32, 3},
73 : {"CAL_PULSE_INFO.9.AVG_CAL", 423, EDT_Float32, 3},
74 : {"CAL_PULSE_INFO.9.AVG_VAL_1A", 435, EDT_Float32, 1},
75 : {"CAL_PULSE_INFO.9.PHS_CAL", 439, EDT_Float32, 4},
76 : {"CAL_PULSE_INFO.10.MAX_CAL", 455, EDT_Float32, 3},
77 : {"CAL_PULSE_INFO.10.AVG_CAL", 467, EDT_Float32, 3},
78 : {"CAL_PULSE_INFO.10.AVG_VAL_1A", 479, EDT_Float32, 1},
79 : {"CAL_PULSE_INFO.10.PHS_CAL", 483, EDT_Float32, 4},
80 : {"CAL_PULSE_INFO.11.MAX_CAL", 499, EDT_Float32, 3},
81 : {"CAL_PULSE_INFO.11.AVG_CAL", 511, EDT_Float32, 3},
82 : {"CAL_PULSE_INFO.11.AVG_VAL_1A", 523, EDT_Float32, 1},
83 : {"CAL_PULSE_INFO.11.PHS_CAL", 527, EDT_Float32, 4},
84 : {"CAL_PULSE_INFO.12.MAX_CAL", 543, EDT_Float32, 3},
85 : {"CAL_PULSE_INFO.12.AVG_CAL", 555, EDT_Float32, 3},
86 : {"CAL_PULSE_INFO.12.AVG_VAL_1A", 567, EDT_Float32, 1},
87 : {"CAL_PULSE_INFO.12.PHS_CAL", 571, EDT_Float32, 4},
88 : {"CAL_PULSE_INFO.13.MAX_CAL", 587, EDT_Float32, 3},
89 : {"CAL_PULSE_INFO.13.AVG_CAL", 599, EDT_Float32, 3},
90 : {"CAL_PULSE_INFO.13.AVG_VAL_1A", 611, EDT_Float32, 1},
91 : {"CAL_PULSE_INFO.13.PHS_CAL", 615, EDT_Float32, 4},
92 : {"CAL_PULSE_INFO.14.MAX_CAL", 631, EDT_Float32, 3},
93 : {"CAL_PULSE_INFO.14.AVG_CAL", 643, EDT_Float32, 3},
94 : {"CAL_PULSE_INFO.14.AVG_VAL_1A", 655, EDT_Float32, 1},
95 : {"CAL_PULSE_INFO.14.PHS_CAL", 659, EDT_Float32, 4},
96 : {"CAL_PULSE_INFO.15.MAX_CAL", 675, EDT_Float32, 3},
97 : {"CAL_PULSE_INFO.15.AVG_CAL", 687, EDT_Float32, 3},
98 : {"CAL_PULSE_INFO.15.AVG_VAL_1A", 699, EDT_Float32, 1},
99 : {"CAL_PULSE_INFO.15.PHS_CAL", 703, EDT_Float32, 4},
100 : {"CAL_PULSE_INFO.16.MAX_CAL", 719, EDT_Float32, 3},
101 : {"CAL_PULSE_INFO.16.AVG_CAL", 731, EDT_Float32, 3},
102 : {"CAL_PULSE_INFO.16.AVG_VAL_1A", 743, EDT_Float32, 1},
103 : {"CAL_PULSE_INFO.16.PHS_CAL", 747, EDT_Float32, 4},
104 : {"CAL_PULSE_INFO.17.MAX_CAL", 763, EDT_Float32, 3},
105 : {"CAL_PULSE_INFO.17.AVG_CAL", 775, EDT_Float32, 3},
106 : {"CAL_PULSE_INFO.17.AVG_VAL_1A", 787, EDT_Float32, 1},
107 : {"CAL_PULSE_INFO.17.PHS_CAL", 791, EDT_Float32, 4},
108 : {"CAL_PULSE_INFO.18.MAX_CAL", 807, EDT_Float32, 3},
109 : {"CAL_PULSE_INFO.18.AVG_CAL", 819, EDT_Float32, 3},
110 : {"CAL_PULSE_INFO.18.AVG_VAL_1A", 831, EDT_Float32, 1},
111 : {"CAL_PULSE_INFO.18.PHS_CAL", 835, EDT_Float32, 4},
112 : {"CAL_PULSE_INFO.19.MAX_CAL", 851, EDT_Float32, 3},
113 : {"CAL_PULSE_INFO.19.AVG_CAL", 863, EDT_Float32, 3},
114 : {"CAL_PULSE_INFO.19.AVG_VAL_1A", 875, EDT_Float32, 1},
115 : {"CAL_PULSE_INFO.19.PHS_CAL", 879, EDT_Float32, 4},
116 : {"CAL_PULSE_INFO.20.MAX_CAL", 895, EDT_Float32, 3},
117 : {"CAL_PULSE_INFO.20.AVG_CAL", 907, EDT_Float32, 3},
118 : {"CAL_PULSE_INFO.20.AVG_VAL_1A", 919, EDT_Float32, 1},
119 : {"CAL_PULSE_INFO.20.PHS_CAL", 923, EDT_Float32, 4},
120 : {"CAL_PULSE_INFO.21.MAX_CAL", 939, EDT_Float32, 3},
121 : {"CAL_PULSE_INFO.21.AVG_CAL", 951, EDT_Float32, 3},
122 : {"CAL_PULSE_INFO.21.AVG_VAL_1A", 963, EDT_Float32, 1},
123 : {"CAL_PULSE_INFO.21.PHS_CAL", 967, EDT_Float32, 4},
124 : {"CAL_PULSE_INFO.22.MAX_CAL", 983, EDT_Float32, 3},
125 : {"CAL_PULSE_INFO.22.AVG_CAL", 995, EDT_Float32, 3},
126 : {"CAL_PULSE_INFO.22.AVG_VAL_1A", 1007, EDT_Float32, 1},
127 : {"CAL_PULSE_INFO.22.PHS_CAL", 1011, EDT_Float32, 4},
128 : {"CAL_PULSE_INFO.23.MAX_CAL", 1027, EDT_Float32, 3},
129 : {"CAL_PULSE_INFO.23.AVG_CAL", 1039, EDT_Float32, 3},
130 : {"CAL_PULSE_INFO.23.AVG_VAL_1A", 1051, EDT_Float32, 1},
131 : {"CAL_PULSE_INFO.23.PHS_CAL", 1055, EDT_Float32, 4},
132 : {"CAL_PULSE_INFO.24.MAX_CAL", 1071, EDT_Float32, 3},
133 : {"CAL_PULSE_INFO.24.AVG_CAL", 1083, EDT_Float32, 3},
134 : {"CAL_PULSE_INFO.24.AVG_VAL_1A", 1095, EDT_Float32, 1},
135 : {"CAL_PULSE_INFO.24.PHS_CAL", 1099, EDT_Float32, 4},
136 : {"CAL_PULSE_INFO.25.MAX_CAL", 1115, EDT_Float32, 3},
137 : {"CAL_PULSE_INFO.25.AVG_CAL", 1127, EDT_Float32, 3},
138 : {"CAL_PULSE_INFO.25.AVG_VAL_1A", 1139, EDT_Float32, 1},
139 : {"CAL_PULSE_INFO.25.PHS_CAL", 1143, EDT_Float32, 4},
140 : {"CAL_PULSE_INFO.26.MAX_CAL", 1159, EDT_Float32, 3},
141 : {"CAL_PULSE_INFO.26.AVG_CAL", 1171, EDT_Float32, 3},
142 : {"CAL_PULSE_INFO.26.AVG_VAL_1A", 1183, EDT_Float32, 1},
143 : {"CAL_PULSE_INFO.26.PHS_CAL", 1187, EDT_Float32, 4},
144 : {"CAL_PULSE_INFO.27.MAX_CAL", 1203, EDT_Float32, 3},
145 : {"CAL_PULSE_INFO.27.AVG_CAL", 1215, EDT_Float32, 3},
146 : {"CAL_PULSE_INFO.27.AVG_VAL_1A", 1227, EDT_Float32, 1},
147 : {"CAL_PULSE_INFO.27.PHS_CAL", 1231, EDT_Float32, 4},
148 : {"CAL_PULSE_INFO.28.MAX_CAL", 1247, EDT_Float32, 3},
149 : {"CAL_PULSE_INFO.28.AVG_CAL", 1259, EDT_Float32, 3},
150 : {"CAL_PULSE_INFO.28.AVG_VAL_1A", 1271, EDT_Float32, 1},
151 : {"CAL_PULSE_INFO.28.PHS_CAL", 1275, EDT_Float32, 4},
152 : {"CAL_PULSE_INFO.29.MAX_CAL", 1291, EDT_Float32, 3},
153 : {"CAL_PULSE_INFO.29.AVG_CAL", 1303, EDT_Float32, 3},
154 : {"CAL_PULSE_INFO.29.AVG_VAL_1A", 1315, EDT_Float32, 1},
155 : {"CAL_PULSE_INFO.29.PHS_CAL", 1319, EDT_Float32, 4},
156 : {"CAL_PULSE_INFO.30.MAX_CAL", 1335, EDT_Float32, 3},
157 : {"CAL_PULSE_INFO.30.AVG_CAL", 1347, EDT_Float32, 3},
158 : {"CAL_PULSE_INFO.30.AVG_VAL_1A", 1359, EDT_Float32, 1},
159 : {"CAL_PULSE_INFO.30.PHS_CAL", 1363, EDT_Float32, 4},
160 : {"CAL_PULSE_INFO.31.MAX_CAL", 1379, EDT_Float32, 3},
161 : {"CAL_PULSE_INFO.31.AVG_CAL", 1391, EDT_Float32, 3},
162 : {"CAL_PULSE_INFO.31.AVG_VAL_1A", 1403, EDT_Float32, 1},
163 : {"CAL_PULSE_INFO.31.PHS_CAL", 1407, EDT_Float32, 4},
164 : {"CAL_PULSE_INFO.32.MAX_CAL", 1423, EDT_Float32, 3},
165 : {"CAL_PULSE_INFO.32.AVG_CAL", 1435, EDT_Float32, 3},
166 : {"CAL_PULSE_INFO.32.AVG_VAL_1A", 1447, EDT_Float32, 1},
167 : {"CAL_PULSE_INFO.32.PHS_CAL", 1451, EDT_Float32, 4},
168 : /*{"SPARE_2", 1467, EDT_UByte, 16},*/
169 : {NULL, 0, EDT_Unknown, 0}};
170 :
171 : static const EnvisatFieldDescr ASAR_DOP_CENTROID_COEFFS_ADSR[] = {
172 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
173 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
174 : {"SLANT_RANGE_TIME", 13, EDT_Float32, 1},
175 : {"DOP_COEF", 17, EDT_Float32, 5},
176 : {"DOP_CONF", 37, EDT_Float32, 1},
177 : {"DOP_CONF_BELOW_THRESH_FLAG", 41, EDT_UByte, 1},
178 : {"DELTA_DOPP_COEFF", 42, EDT_Int16, 5},
179 : /*{"SPARE_1", 52, EDT_UByte, 3},*/
180 : {NULL, 0, EDT_Unknown, 0}};
181 :
182 : #if 0 /* Unused */
183 : static const EnvisatFieldDescr ASAR_GEOLOCATION_GRID_ADSR[] = {
184 : {"FIRST_ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
185 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
186 : {"LINE_NUM", 13, EDT_UInt32, 1},
187 : {"NUM_LINES", 17, EDT_UInt32, 1},
188 : {"SUB_SAT_TRACK", 21, EDT_Float32, 1},
189 : {"FIRST_LINE_TIE_POINTS.SAMP_NUMBERS", 25, EDT_UInt32, 11},
190 : {"FIRST_LINE_TIE_POINTS.SLANT_RANGE_TIMES", 69, EDT_Float32, 11},
191 : {"FIRST_LINE_TIE_POINTS.ANGLES", 113, EDT_Float32, 11},
192 : {"FIRST_LINE_TIE_POINTS.LATS", 157, EDT_Int32, 11},
193 : {"FIRST_LINE_TIE_POINTS.LONGS", 201, EDT_Int32, 11},
194 : /*{"SPARE_1", 245, EDT_UByte, 22},*/
195 : {"LAST_ZERO_DOPPLER_TIME", 267, EDT_MJD, 1},
196 : {"LAST_LINE_TIE_POINTS.SAMP_NUMBERS", 279, EDT_UInt32, 11},
197 : {"LAST_LINE_TIE_POINTS.SLANT_RANGE_TIMES", 323, EDT_Float32, 11},
198 : {"LAST_LINE_TIE_POINTS.ANGLES", 367, EDT_Float32, 11},
199 : {"LAST_LINE_TIE_POINTS.LATS", 411, EDT_Int32, 11},
200 : {"LAST_LINE_TIE_POINTS.LONGS", 455, EDT_Int32, 11},
201 : /*{"SPARE_2", 499, EDT_UByte, 22},*/
202 : {NULL, 0, EDT_Unknown, 0}
203 : };
204 : #endif /* Unused */
205 :
206 : static const EnvisatFieldDescr ASAR_MAIN_PROCESSING_PARAMS_ADSR[] = {
207 : {"FIRST_ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
208 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
209 : {"LAST_ZERO_DOPPLER_TIME", 13, EDT_MJD, 1},
210 : {"WORK_ORDER_ID", 25, EDT_Char, 12},
211 : {"TIME_DIFF", 37, EDT_Float32, 1},
212 : {"SWATH_ID", 41, EDT_Char, 3},
213 : {"RANGE_SPACING", 44, EDT_Float32, 1},
214 : {"AZIMUTH_SPACING", 48, EDT_Float32, 1},
215 : {"LINE_TIME_INTERVAL", 52, EDT_Float32, 1},
216 : {"NUM_OUTPUT_LINES", 56, EDT_UInt32, 1},
217 : {"NUM_SAMPLES_PER_LINE", 60, EDT_UInt32, 1},
218 : {"DATA_TYPE", 64, EDT_Char, 5},
219 : /*{"SPARE_1", 69, EDT_UByte, 51},*/
220 : {"DATA_ANALYSIS_FLAG", 120, EDT_UByte, 1},
221 : {"ANT_ELEV_CORR_FLAG", 121, EDT_UByte, 1},
222 : {"CHIRP_EXTRACT_FLAG", 122, EDT_UByte, 1},
223 : {"SRGR_FLAG", 123, EDT_UByte, 1},
224 : {"DOP_CEN_FLAG", 124, EDT_UByte, 1},
225 : {"DOP_AMB_FLAG", 125, EDT_UByte, 1},
226 : {"RANGE_SPREAD_COMP_FLAG", 126, EDT_UByte, 1},
227 : {"DETECTED_FLAG", 127, EDT_UByte, 1},
228 : {"LOOK_SUM_FLAG", 128, EDT_UByte, 1},
229 : {"RMS_EQUAL_FLAG", 129, EDT_UByte, 1},
230 : {"ANT_SCAL_FLAG", 130, EDT_UByte, 1},
231 : {"VGA_COM_ECHO_FLAG", 131, EDT_UByte, 1},
232 : {"VGA_COM_PULSE_2_FLAG", 132, EDT_UByte, 1},
233 : {"VGA_COM_PULSE_ZERO_FLAG", 133, EDT_UByte, 1},
234 : {"INV_FILT_COMP_FLAG", 134, EDT_UByte, 1},
235 : /*{"SPARE_2", 135, EDT_UByte, 6},*/
236 : {"RAW_DATA_ANALYSIS.1.NUM_GAPS", 141, EDT_UInt32, 1},
237 : {"RAW_DATA_ANALYSIS.1.NUM_MISSING_LINES", 145, EDT_UInt32, 1},
238 : {"RAW_DATA_ANALYSIS.1.RANGE_SAMP_SKIP", 149, EDT_UInt32, 1},
239 : {"RAW_DATA_ANALYSIS.1.RANGE_LINES_SKIP", 153, EDT_UInt32, 1},
240 : {"RAW_DATA_ANALYSIS.1.CALC_I_BIAS", 157, EDT_Float32, 1},
241 : {"RAW_DATA_ANALYSIS.1.CALC_Q_BIAS", 161, EDT_Float32, 1},
242 : {"RAW_DATA_ANALYSIS.1.CALC_I_STD_DEV", 165, EDT_Float32, 1},
243 : {"RAW_DATA_ANALYSIS.1.CALC_Q_STD_DEV", 169, EDT_Float32, 1},
244 : {"RAW_DATA_ANALYSIS.1.CALC_GAIN", 173, EDT_Float32, 1},
245 : {"RAW_DATA_ANALYSIS.1.CALC_QUAD", 177, EDT_Float32, 1},
246 : {"RAW_DATA_ANALYSIS.1.I_BIAS_MAX", 181, EDT_Float32, 1},
247 : {"RAW_DATA_ANALYSIS.1.I_BIAS_MIN", 185, EDT_Float32, 1},
248 : {"RAW_DATA_ANALYSIS.1.Q_BIAS_MAX", 189, EDT_Float32, 1},
249 : {"RAW_DATA_ANALYSIS.1.Q_BIAS_MIN", 193, EDT_Float32, 1},
250 : {"RAW_DATA_ANALYSIS.1.GAIN_MIN", 197, EDT_Float32, 1},
251 : {"RAW_DATA_ANALYSIS.1.GAIN_MAX", 201, EDT_Float32, 1},
252 : {"RAW_DATA_ANALYSIS.1.QUAD_MIN", 205, EDT_Float32, 1},
253 : {"RAW_DATA_ANALYSIS.1.QUAD_MAX", 209, EDT_Float32, 1},
254 : {"RAW_DATA_ANALYSIS.1.I_BIAS_FLAG", 213, EDT_UByte, 1},
255 : {"RAW_DATA_ANALYSIS.1.Q_BIAS_FLAG", 214, EDT_UByte, 1},
256 : {"RAW_DATA_ANALYSIS.1.GAIN_FLAG", 215, EDT_UByte, 1},
257 : {"RAW_DATA_ANALYSIS.1.QUAD_FLAG", 216, EDT_UByte, 1},
258 : {"RAW_DATA_ANALYSIS.1.USED_I_BIAS", 217, EDT_Float32, 1},
259 : {"RAW_DATA_ANALYSIS.1.USED_Q_BIAS", 221, EDT_Float32, 1},
260 : {"RAW_DATA_ANALYSIS.1.USED_GAIN", 225, EDT_Float32, 1},
261 : {"RAW_DATA_ANALYSIS.1.USED_QUAD", 229, EDT_Float32, 1},
262 : {"RAW_DATA_ANALYSIS.2.NUM_GAPS", 233, EDT_UInt32, 1},
263 : {"RAW_DATA_ANALYSIS.2.NUM_MISSING_LINES", 237, EDT_UInt32, 1},
264 : {"RAW_DATA_ANALYSIS.2.RANGE_SAMP_SKIP", 241, EDT_UInt32, 1},
265 : {"RAW_DATA_ANALYSIS.2.RANGE_LINES_SKIP", 245, EDT_UInt32, 1},
266 : {"RAW_DATA_ANALYSIS.2.CALC_I_BIAS", 249, EDT_Float32, 1},
267 : {"RAW_DATA_ANALYSIS.2.CALC_Q_BIAS", 253, EDT_Float32, 1},
268 : {"RAW_DATA_ANALYSIS.2.CALC_I_STD_DEV", 257, EDT_Float32, 1},
269 : {"RAW_DATA_ANALYSIS.2.CALC_Q_STD_DEV", 261, EDT_Float32, 1},
270 : {"RAW_DATA_ANALYSIS.2.CALC_GAIN", 265, EDT_Float32, 1},
271 : {"RAW_DATA_ANALYSIS.2.CALC_QUAD", 269, EDT_Float32, 1},
272 : {"RAW_DATA_ANALYSIS.2.I_BIAS_MAX", 273, EDT_Float32, 1},
273 : {"RAW_DATA_ANALYSIS.2.I_BIAS_MIN", 277, EDT_Float32, 1},
274 : {"RAW_DATA_ANALYSIS.2.Q_BIAS_MAX", 281, EDT_Float32, 1},
275 : {"RAW_DATA_ANALYSIS.2.Q_BIAS_MIN", 285, EDT_Float32, 1},
276 : {"RAW_DATA_ANALYSIS.2.GAIN_MIN", 289, EDT_Float32, 1},
277 : {"RAW_DATA_ANALYSIS.2.GAIN_MAX", 293, EDT_Float32, 1},
278 : {"RAW_DATA_ANALYSIS.2.QUAD_MIN", 297, EDT_Float32, 1},
279 : {"RAW_DATA_ANALYSIS.2.QUAD_MAX", 301, EDT_Float32, 1},
280 : {"RAW_DATA_ANALYSIS.2.I_BIAS_FLAG", 305, EDT_UByte, 1},
281 : {"RAW_DATA_ANALYSIS.2.Q_BIAS_FLAG", 306, EDT_UByte, 1},
282 : {"RAW_DATA_ANALYSIS.2.GAIN_FLAG", 307, EDT_UByte, 1},
283 : {"RAW_DATA_ANALYSIS.2.QUAD_FLAG", 308, EDT_UByte, 1},
284 : {"RAW_DATA_ANALYSIS.2.USED_I_BIAS", 309, EDT_Float32, 1},
285 : {"RAW_DATA_ANALYSIS.2.USED_Q_BIAS", 313, EDT_Float32, 1},
286 : {"RAW_DATA_ANALYSIS.2.USED_GAIN", 317, EDT_Float32, 1},
287 : {"RAW_DATA_ANALYSIS.2.USED_QUAD", 321, EDT_Float32, 1},
288 : /*{"SPARE_3", 325, EDT_UByte, 32},*/
289 : {"START_TIME.1.FIRST_OBT", 357, EDT_UInt32, 2},
290 : {"START_TIME.1.FIRST_MJD", 365, EDT_MJD, 1},
291 : {"START_TIME.2.FIRST_OBT", 377, EDT_UInt32, 2},
292 : {"START_TIME.2.FIRST_MJD", 385, EDT_MJD, 1},
293 : {"PARAMETER_CODES.FIRST_SWST_CODE", 397, EDT_UInt16, 5},
294 : {"PARAMETER_CODES.LAST_SWST_CODE", 407, EDT_UInt16, 5},
295 : {"PARAMETER_CODES.PRI_CODE", 417, EDT_UInt16, 5},
296 : {"PARAMETER_CODES.TX_PULSE_LEN_CODE", 427, EDT_UInt16, 5},
297 : {"PARAMETER_CODES.TX_BW_CODE", 437, EDT_UInt16, 5},
298 : {"PARAMETER_CODES.ECHO_WIN_LEN_CODE", 447, EDT_UInt16, 5},
299 : {"PARAMETER_CODES.UP_CODE", 457, EDT_UInt16, 5},
300 : {"PARAMETER_CODES.DOWN_CODE", 467, EDT_UInt16, 5},
301 : {"PARAMETER_CODES.RESAMP_CODE", 477, EDT_UInt16, 5},
302 : {"PARAMETER_CODES.BEAM_ADJ_CODE", 487, EDT_UInt16, 5},
303 : {"PARAMETER_CODES.BEAM_SET_NUM_CODE", 497, EDT_UInt16, 5},
304 : {"PARAMETER_CODES.TX_MONITOR_CODE", 507, EDT_UInt16, 5},
305 : /*{"SPARE_4", 517, EDT_UByte, 60},*/
306 : {"ERROR_COUNTERS.NUM_ERR_SWST", 577, EDT_UInt32, 1},
307 : {"ERROR_COUNTERS.NUM_ERR_PRI", 581, EDT_UInt32, 1},
308 : {"ERROR_COUNTERS.NUM_ERR_TX_PULSE_LEN", 585, EDT_UInt32, 1},
309 : {"ERROR_COUNTERS.NUM_ERR_TX_PULSE_BW", 589, EDT_UInt32, 1},
310 : {"ERROR_COUNTERS.NUM_ERR_ECHO_WIN_LEN", 593, EDT_UInt32, 1},
311 : {"ERROR_COUNTERS.NUM_ERR_UP", 597, EDT_UInt32, 1},
312 : {"ERROR_COUNTERS.NUM_ERR_DOWN", 601, EDT_UInt32, 1},
313 : {"ERROR_COUNTERS.NUM_ERR_RESAMP", 605, EDT_UInt32, 1},
314 : {"ERROR_COUNTERS.NUM_ERR_BEAM_ADJ", 609, EDT_UInt32, 1},
315 : {"ERROR_COUNTERS.NUM_ERR_BEAM_SET_NUM", 613, EDT_UInt32, 1},
316 : /*{"SPARE_5", 617, EDT_UByte, 26},*/
317 : {"IMAGE_PARAMETERS.FIRST_SWST_VALUE", 643, EDT_Float32, 5},
318 : {"IMAGE_PARAMETERS.LAST_SWST_VALUE", 663, EDT_Float32, 5},
319 : {"IMAGE_PARAMETERS.SWST_CHANGES", 683, EDT_UInt32, 5},
320 : {"IMAGE_PARAMETERS.PRF_VALUE", 703, EDT_Float32, 5},
321 : {"IMAGE_PARAMETERS.TX_PULSE_LEN_VALUE", 723, EDT_Float32, 5},
322 : {"IMAGE_PARAMETERS.TX_PULSE_BW_VALUE", 743, EDT_Float32, 5},
323 : {"IMAGE_PARAMETERS.ECHO_WIN_LEN_VALUE", 763, EDT_Float32, 5},
324 : {"IMAGE_PARAMETERS.UP_VALUE", 783, EDT_Float32, 5},
325 : {"IMAGE_PARAMETERS.DOWN_VALUE", 803, EDT_Float32, 5},
326 : {"IMAGE_PARAMETERS.RESAMP_VALUE", 823, EDT_Float32, 5},
327 : {"IMAGE_PARAMETERS.BEAM_ADJ_VALUE", 843, EDT_Float32, 5},
328 : {"IMAGE_PARAMETERS.BEAM_SET_VALUE", 863, EDT_UInt16, 5},
329 : {"IMAGE_PARAMETERS.TX_MONITOR_VALUE", 873, EDT_Float32, 5},
330 : /*{"SPARE_6", 893, EDT_UByte, 82},*/
331 : {"FIRST_PROC_RANGE_SAMP", 975, EDT_UInt32, 1},
332 : {"RANGE_REF", 979, EDT_Float32, 1},
333 : {"RANGE_SAMP_RATE", 983, EDT_Float32, 1},
334 : {"RADAR_FREQ", 987, EDT_Float32, 1},
335 : {"NUM_LOOKS_RANGE", 991, EDT_UInt16, 1},
336 : {"FILTER_WINDOW", 993, EDT_Char, 7},
337 : {"WINDOW_COEF_RANGE", 1000, EDT_Float32, 1},
338 : {"BANDWIDTH.LOOK_BW_RANGE", 1004, EDT_Float32, 5},
339 : {"BANDWIDTH.TOT_BW_RANGE", 1024, EDT_Float32, 5},
340 : {"NOMINAL_CHIRP.1.NOM_CHIRP_AMP", 1044, EDT_Float32, 4},
341 : {"NOMINAL_CHIRP.1.NOM_CHIRP_PHS", 1060, EDT_Float32, 4},
342 : {"NOMINAL_CHIRP.2.NOM_CHIRP_AMP", 1076, EDT_Float32, 4},
343 : {"NOMINAL_CHIRP.2.NOM_CHIRP_PHS", 1092, EDT_Float32, 4},
344 : {"NOMINAL_CHIRP.3.NOM_CHIRP_AMP", 1108, EDT_Float32, 4},
345 : {"NOMINAL_CHIRP.3.NOM_CHIRP_PHS", 1124, EDT_Float32, 4},
346 : {"NOMINAL_CHIRP.4.NOM_CHIRP_AMP", 1140, EDT_Float32, 4},
347 : {"NOMINAL_CHIRP.4.NOM_CHIRP_PHS", 1156, EDT_Float32, 4},
348 : {"NOMINAL_CHIRP.5.NOM_CHIRP_AMP", 1172, EDT_Float32, 4},
349 : {"NOMINAL_CHIRP.5.NOM_CHIRP_PHS", 1188, EDT_Float32, 4},
350 : /*{"SPARE_7", 1204, EDT_UByte, 60},*/
351 : {"NUM_LINES_PROC", 1264, EDT_UInt32, 1},
352 : {"NUM_LOOK_AZ", 1268, EDT_UInt16, 1},
353 : {"LOOK_BW_AZ", 1270, EDT_Float32, 1},
354 : {"TO_BW_AZ", 1274, EDT_Float32, 1},
355 : {"FILTER_AZ", 1278, EDT_Char, 7},
356 : {"FILTER_COEF_AZ", 1285, EDT_Float32, 1},
357 : {"AZ_FM_RATE", 1289, EDT_Float32, 3},
358 : {"AX_FM_ORIGIN", 1301, EDT_Float32, 1},
359 : {"DOP_AMB_CONF", 1305, EDT_Float32, 1},
360 : /*{"SPARE_8", 1309, EDT_UByte, 68},*/
361 : {"CALIBRATION_FACTORS.1.PROC_SCALING_FACT", 1377, EDT_Float32, 1},
362 : {"CALIBRATION_FACTORS.1.EXT_CAL_FACT", 1381, EDT_Float32, 1},
363 : {"CALIBRATION_FACTORS.2.PROC_SCALING_FACT", 1385, EDT_Float32, 1},
364 : {"CALIBRATION_FACTORS.2.EXT_CAL_FACT", 1389, EDT_Float32, 1},
365 : {"NOISE_ESTIMATION.NOISE_POWER_CORR", 1393, EDT_Float32, 5},
366 : {"NOISE_ESTIMATION.NUM_NOISE_LINES", 1413, EDT_UInt32, 5},
367 : /*{"SPARE_9", 1433, EDT_UByte, 76},*/
368 : {"OUTPUT_STATISTICS.1.OUT_MEAN", 1509, EDT_Float32, 1},
369 : {"OUTPUT_STATISTICS.1.OUT_IMAG_MEAN", 1513, EDT_Float32, 1},
370 : {"OUTPUT_STATISTICS.1.OUT_STD_DEV", 1517, EDT_Float32, 1},
371 : {"OUTPUT_STATISTICS.1.OUT_IMAG_STD_DEV", 1521, EDT_Float32, 1},
372 : {"OUTPUT_STATISTICS.2.OUT_MEAN", 1525, EDT_Float32, 1},
373 : {"OUTPUT_STATISTICS.2.OUT_IMAG_MEAN", 1529, EDT_Float32, 1},
374 : {"OUTPUT_STATISTICS.2.OUT_STD_DEV", 1533, EDT_Float32, 1},
375 : {"OUTPUT_STATISTICS.2.OUT_IMAG_STD_DEV", 1537, EDT_Float32, 1},
376 : /*{"SPARE_10", 1541, EDT_UByte, 52},*/
377 : {"ECHO_COMP", 1593, EDT_Char, 4},
378 : {"ECHO_COMP_RATIO", 1597, EDT_Char, 3},
379 : {"INIT_CAL_COMP", 1600, EDT_Char, 4},
380 : {"INIT_CAL_RATIO", 1604, EDT_Char, 3},
381 : {"PER_CAL_COMP", 1607, EDT_Char, 4},
382 : {"PER_CAL_RATIO", 1611, EDT_Char, 3},
383 : {"NOISE_COMP", 1614, EDT_Char, 4},
384 : {"NOISE_COMP_RATIO", 1618, EDT_Char, 3},
385 : /*{"SPARE_11", 1621, EDT_UByte, 64},*/
386 : {"BEAM_MERGE_SL_RANGE", 1685, EDT_UInt32, 4},
387 : {"BEAM_MERGE_ALG_PARAM", 1701, EDT_Float32, 4},
388 : {"LINES_PER_BURST", 1717, EDT_UInt32, 5},
389 : /*{"SPARE_12", 1737, EDT_UByte, 28},*/
390 : {"ORBIT_STATE_VECTORS.1.STATE_VECT_TIME_1", 1765, EDT_MJD, 1},
391 : {"ORBIT_STATE_VECTORS.1.X_POS_1", 1777, EDT_Int32, 1},
392 : {"ORBIT_STATE_VECTORS.1.Y_POS_1", 1781, EDT_Int32, 1},
393 : {"ORBIT_STATE_VECTORS.1.Z_POS_1", 1785, EDT_Int32, 1},
394 : {"ORBIT_STATE_VECTORS.1.X_VEL_1", 1789, EDT_Int32, 1},
395 : {"ORBIT_STATE_VECTORS.1.Y_VEL_1", 1793, EDT_Int32, 1},
396 : {"ORBIT_STATE_VECTORS.1.Z_VEL_1", 1797, EDT_Int32, 1},
397 : {"ORBIT_STATE_VECTORS.2.STATE_VECT_TIME_1", 1801, EDT_MJD, 1},
398 : {"ORBIT_STATE_VECTORS.2.X_POS_1", 1813, EDT_Int32, 1},
399 : {"ORBIT_STATE_VECTORS.2.Y_POS_1", 1817, EDT_Int32, 1},
400 : {"ORBIT_STATE_VECTORS.2.Z_POS_1", 1821, EDT_Int32, 1},
401 : {"ORBIT_STATE_VECTORS.2.X_VEL_1", 1825, EDT_Int32, 1},
402 : {"ORBIT_STATE_VECTORS.2.Y_VEL_1", 1829, EDT_Int32, 1},
403 : {"ORBIT_STATE_VECTORS.2.Z_VEL_1", 1833, EDT_Int32, 1},
404 : {"ORBIT_STATE_VECTORS.3.STATE_VECT_TIME_1", 1837, EDT_MJD, 1},
405 : {"ORBIT_STATE_VECTORS.3.X_POS_1", 1849, EDT_Int32, 1},
406 : {"ORBIT_STATE_VECTORS.3.Y_POS_1", 1853, EDT_Int32, 1},
407 : {"ORBIT_STATE_VECTORS.3.Z_POS_1", 1857, EDT_Int32, 1},
408 : {"ORBIT_STATE_VECTORS.3.X_VEL_1", 1861, EDT_Int32, 1},
409 : {"ORBIT_STATE_VECTORS.3.Y_VEL_1", 1865, EDT_Int32, 1},
410 : {"ORBIT_STATE_VECTORS.3.Z_VEL_1", 1869, EDT_Int32, 1},
411 : {"ORBIT_STATE_VECTORS.4.STATE_VECT_TIME_1", 1873, EDT_MJD, 1},
412 : {"ORBIT_STATE_VECTORS.4.X_POS_1", 1885, EDT_Int32, 1},
413 : {"ORBIT_STATE_VECTORS.4.Y_POS_1", 1889, EDT_Int32, 1},
414 : {"ORBIT_STATE_VECTORS.4.Z_POS_1", 1893, EDT_Int32, 1},
415 : {"ORBIT_STATE_VECTORS.4.X_VEL_1", 1897, EDT_Int32, 1},
416 : {"ORBIT_STATE_VECTORS.4.Y_VEL_1", 1901, EDT_Int32, 1},
417 : {"ORBIT_STATE_VECTORS.4.Z_VEL_1", 1905, EDT_Int32, 1},
418 : {"ORBIT_STATE_VECTORS.5.STATE_VECT_TIME_1", 1909, EDT_MJD, 1},
419 : {"ORBIT_STATE_VECTORS.5.X_POS_1", 1921, EDT_Int32, 1},
420 : {"ORBIT_STATE_VECTORS.5.Y_POS_1", 1925, EDT_Int32, 1},
421 : {"ORBIT_STATE_VECTORS.5.Z_POS_1", 1929, EDT_Int32, 1},
422 : {"ORBIT_STATE_VECTORS.5.X_VEL_1", 1933, EDT_Int32, 1},
423 : {"ORBIT_STATE_VECTORS.5.Y_VEL_1", 1937, EDT_Int32, 1},
424 : {"ORBIT_STATE_VECTORS.5.Z_VEL_1", 1941, EDT_Int32, 1},
425 : /*{"SPARE_13", 1945, EDT_UByte, 64},*/
426 : {NULL, 0, EDT_Unknown, 0}};
427 :
428 : static const EnvisatFieldDescr ASAR_MAP_PROJECTION_GADS[] = {
429 : {"MAP_DESCRIPTOR", 0, EDT_Char, 32},
430 : {"SAMPLES", 32, EDT_UInt32, 1},
431 : {"LINES", 36, EDT_UInt32, 1},
432 : {"SAMPLE_SPACING", 40, EDT_Float32, 1},
433 : {"LINE_SPACING", 44, EDT_Float32, 1},
434 : {"ORIENTATION", 48, EDT_Float32, 1},
435 : /*{"SPARE_1", 52, EDT_UByte, 40},*/
436 : {"HEADING", 92, EDT_Float32, 1},
437 : {"ELLIPSOID_NAME", 96, EDT_Char, 32},
438 : {"SEMI_MAJOR", 128, EDT_Float32, 1},
439 : {"SEMI_MINOR", 132, EDT_Float32, 1},
440 : {"SHIFT_DX", 136, EDT_Float32, 1},
441 : {"SHIFT_DY", 140, EDT_Float32, 1},
442 : {"SHIFT_DZ", 144, EDT_Float32, 1},
443 : {"AVG_HEIGHT", 148, EDT_Float32, 1},
444 : /*{"SPARE_2", 152, EDT_UByte, 12},*/
445 : {"PROJECTION_DESCRIPTION", 164, EDT_Char, 32},
446 : {"UTM_DESCRIPTOR", 196, EDT_Char, 32},
447 : {"UTM_ZONE", 228, EDT_Char, 4},
448 : {"UTM_ORIGIN_EASTING", 232, EDT_Float32, 1},
449 : {"UTM_ORIGIN_NORTHING", 236, EDT_Float32, 1},
450 : {"UTM_CENTER_LONG", 240, EDT_Int32, 1},
451 : {"UTM_CENTER_LAT", 244, EDT_Int32, 1},
452 : {"UTM_PARA1", 248, EDT_Float32, 1},
453 : {"UTM_PARA2", 252, EDT_Float32, 1},
454 : {"UTM_SCALE", 256, EDT_Float32, 1},
455 : {"UPS_DESCRIPTOR", 260, EDT_Char, 32},
456 : {"UPS_CENTER_LONG", 292, EDT_Int32, 1},
457 : {"UPS_CENTER_LAT", 296, EDT_Int32, 1},
458 : {"UPS_SCALE", 300, EDT_Float32, 1},
459 : {"NSP_DESCRIPTOR", 304, EDT_Char, 32},
460 : {"ORIGIN_EASTING", 336, EDT_Float32, 1},
461 : {"ORIGIN_NORTHING", 340, EDT_Float32, 1},
462 : {"CENTER_LONG", 344, EDT_Int32, 1},
463 : {"CENTER_LAT", 348, EDT_Int32, 1},
464 : {"STANDARD_PARALLEL_PARAMETERS.PARA1", 352, EDT_Float32, 1},
465 : {"STANDARD_PARALLEL_PARAMETERS.PARA2", 356, EDT_Float32, 1},
466 : {"STANDARD_PARALLEL_PARAMETERS.PARA3", 360, EDT_Float32, 1},
467 : {"STANDARD_PARALLEL_PARAMETERS.PARA4", 364, EDT_Float32, 1},
468 : {"CENTRAL_MERIDIAN_PARAMETERS.CENTRAL_M1", 368, EDT_Float32, 1},
469 : {"CENTRAL_MERIDIAN_PARAMETERS.CENTRAL_M2", 372, EDT_Float32, 1},
470 : {"CENTRAL_MERIDIAN_PARAMETERS.CENTRAL_M3", 376, EDT_Float32, 1},
471 : /*{"PROJECTION_PARAMETERS.SPARE_3", 380, EDT_UByte, 16},*/
472 : {"POSITION_NORTHINGS_EASTINGS.TL_NORTHING", 396, EDT_Float32, 1},
473 : {"POSITION_NORTHINGS_EASTINGS.TL_EASTING", 400, EDT_Float32, 1},
474 : {"POSITION_NORTHINGS_EASTINGS.TR_NORTHING", 404, EDT_Float32, 1},
475 : {"POSITION_NORTHINGS_EASTINGS.TR_EASTING", 408, EDT_Float32, 1},
476 : {"POSITION_NORTHINGS_EASTINGS.BR_NORTHING", 412, EDT_Float32, 1},
477 : {"POSITION_NORTHINGS_EASTINGS.BR_EASTING", 416, EDT_Float32, 1},
478 : {"POSITION_NORTHINGS_EASTINGS.BL_NORTHING", 420, EDT_Float32, 1},
479 : {"POSITION_NORTHINGS_EASTINGS.BL_EASTING", 424, EDT_Float32, 1},
480 : {"POSITION_LAT_LONG.TL_LAT", 428, EDT_Int32, 1},
481 : {"POSITION_LAT_LONG.TL_LONG", 432, EDT_Int32, 1},
482 : {"POSITION_LAT_LONG.TR_LAT", 436, EDT_Int32, 1},
483 : {"POSITION_LAT_LONG.TR_LONG", 440, EDT_Int32, 1},
484 : {"POSITION_LAT_LONG.BR_LAT", 444, EDT_Int32, 1},
485 : {"POSITION_LAT_LONG.BR_LONG", 448, EDT_Int32, 1},
486 : {"POSITION_LAT_LONG.BL_LAT", 452, EDT_Int32, 1},
487 : {"POSITION_LAT_LONG.BL_LONG", 456, EDT_Int32, 1},
488 : /*{"SPARE_4", 460, EDT_UByte, 32},*/
489 : {"IMAGE_TO_MAP_COEFS", 492, EDT_Float32, 8},
490 : {"MAP_TO_IMAGE_COEFS", 524, EDT_Float32, 8},
491 : /*{"SPARE_5", 556, EDT_UByte, 35},*/
492 : {NULL, 0, EDT_Unknown, 0}};
493 :
494 : static const EnvisatFieldDescr ASAR_SQ_ADSR[] = {
495 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
496 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
497 : {"INPUT_MEAN_FLAG", 13, EDT_UByte, 1},
498 : {"INPUT_STD_DEV_FLAG", 14, EDT_UByte, 1},
499 : {"INPUT_GAPS_FLAG", 15, EDT_UByte, 1},
500 : {"INPUT_MISSING_LINES_FLAG", 16, EDT_UByte, 1},
501 : {"DOP_CEN_FLAG", 17, EDT_UByte, 1},
502 : {"DOP_AMB_FLAG", 18, EDT_UByte, 1},
503 : {"OUTPUT_MEAN_FLAG", 19, EDT_UByte, 1},
504 : {"OUTPUT_STD_DEV_FLAG", 20, EDT_UByte, 1},
505 : {"CHIRP_FLAG", 21, EDT_UByte, 1},
506 : {"MISSING_DATA_SETS_FLAG", 22, EDT_UByte, 1},
507 : {"INVALID_DOWNLINK_FLAG", 23, EDT_UByte, 1},
508 : /*{"SPARE_1", 24, EDT_UByte, 7},*/
509 : {"THRESH_CHIRP_BROADENING", 31, EDT_Float32, 1},
510 : {"THRESH_CHIRP_SIDELOBE", 35, EDT_Float32, 1},
511 : {"THRESH_CHIRP_ISLR", 39, EDT_Float32, 1},
512 : {"THRESH_INPUT_MEAN", 43, EDT_Float32, 1},
513 : {"EXP_INPUT_MEAN", 47, EDT_Float32, 1},
514 : {"THRESH_INPUT_STD_DEV", 51, EDT_Float32, 1},
515 : {"EXP_INPUT_STD_DEV", 55, EDT_Float32, 1},
516 : {"THRESH_DOP_CEN", 59, EDT_Float32, 1},
517 : {"THRESH_DOP_AMB", 63, EDT_Float32, 1},
518 : {"THRESH_OUTPUT_MEAN", 67, EDT_Float32, 1},
519 : {"EXP_OUTPUT_MEAN", 71, EDT_Float32, 1},
520 : {"THRESH_OUTPUT_STD_DEV", 75, EDT_Float32, 1},
521 : {"EXP_OUTPUT_STD_DEV", 79, EDT_Float32, 1},
522 : {"THRESH_INPUT_MISSING_LINES", 83, EDT_Float32, 1},
523 : {"THRESH_INPUT_GAPS", 87, EDT_Float32, 1},
524 : {"LINES_PER_GAPS", 91, EDT_UInt32, 1},
525 : /*{"SPARE_2", 95, EDT_UByte, 15},*/
526 : {"INPUT_MEAN", 110, EDT_Float32, 2},
527 : {"INPUT_STD_DEV", 118, EDT_Float32, 2},
528 : {"NUM_GAPS", 126, EDT_Float32, 1},
529 : {"NUM_MISSING_LINES", 130, EDT_Float32, 1},
530 : {"OUTPUT_MEAN", 134, EDT_Float32, 2},
531 : {"OUTPUT_STD_DEV", 142, EDT_Float32, 2},
532 : {"TOT_ERRORS", 150, EDT_UInt32, 1},
533 : /*{"SPARE_3", 154, EDT_UByte, 16},*/
534 : {NULL, 0, EDT_Unknown, 0}};
535 :
536 : static const EnvisatFieldDescr ASAR_SR_GR_ADSR[] = {
537 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
538 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
539 : {"SLANT_RANGE_TIME", 13, EDT_Float32, 1},
540 : {"GROUND_RANGE_ORIGIN", 17, EDT_Float32, 1},
541 : {"SRGR_COEFF", 21, EDT_Float32, 5},
542 : /*{"SPARE_1", 41, EDT_UByte, 14},*/
543 : {NULL, 0, EDT_Unknown, 0}};
544 :
545 : #if 0 /* Unused */
546 : static const EnvisatFieldDescr ASAR_GEOLOCATION_ADSR[] = {
547 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
548 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
549 : {"CENTER_LAT", 13, EDT_Int32, 1},
550 : {"CENTER_LONG", 17, EDT_Int32, 1},
551 : /*{"SPARE_1", 21, EDT_UByte, 4},*/
552 : {NULL, 0, EDT_Unknown, 0}
553 : };
554 : #endif /* Unused */
555 :
556 : static const EnvisatFieldDescr ASAR_PROCESSING_PARAMS_ADSR[] = {
557 : {"FIRST_ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
558 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
559 : {"LAST_ZERO_DOPPLER_TIME", 13, EDT_MJD, 1},
560 : {"WORK_ORDER_ID", 25, EDT_Char, 12},
561 : {"TIME_DIFF", 37, EDT_Float32, 1},
562 : {"SWATH_ID", 41, EDT_Char, 3},
563 : {"RANGE_SPACING", 44, EDT_Float32, 1},
564 : {"AZIMUTH_SPACING", 48, EDT_Float32, 1},
565 : {"LINE_TIME_INTERVAL", 52, EDT_Float32, 1},
566 : {"NUM_OUTPUT_LINES", 56, EDT_UInt32, 1},
567 : {"NUM_SAMPLES_PER_LINE", 60, EDT_UInt32, 1},
568 : {"DATA_TYPE", 64, EDT_Char, 5},
569 : /*{"SPARE_1", 69, EDT_UByte, 51},*/
570 : {"DATA_ANALYSIS_FLAG", 120, EDT_UByte, 1},
571 : {"ANT_ELEV_CORR_FLAG", 121, EDT_UByte, 1},
572 : {"CHIRP_EXTRACT_FLAG", 122, EDT_UByte, 1},
573 : {"SRGR_FLAG", 123, EDT_UByte, 1},
574 : {"DOP_CEN_FLAG", 124, EDT_UByte, 1},
575 : {"DOP_AMB_FLAG", 125, EDT_UByte, 1},
576 : {"RANGE_SPREAD_COMP_FLAG", 126, EDT_UByte, 1},
577 : {"DETECTED_FLAG", 127, EDT_UByte, 1},
578 : {"LOOK_SUM_FLAG", 128, EDT_UByte, 1},
579 : {"RMS_EQUAL_FLAG", 129, EDT_UByte, 1},
580 : {"ANT_SCAL_FLAG", 130, EDT_UByte, 1},
581 : /*{"SPARE_2", 131, EDT_UByte, 10},*/
582 : {"RAW_DATA_ANALYSIS.1.NUM_GAPS", 141, EDT_UInt32, 1},
583 : {"RAW_DATA_ANALYSIS.1.NUM_MISSING_LINES", 145, EDT_UInt32, 1},
584 : {"RAW_DATA_ANALYSIS.1.RANGE_SAMP_SKIP", 149, EDT_UInt32, 1},
585 : {"RAW_DATA_ANALYSIS.1.RANGE_LINES_SKIP", 153, EDT_UInt32, 1},
586 : {"RAW_DATA_ANALYSIS.1.CALC_I_BIAS", 157, EDT_Float32, 1},
587 : {"RAW_DATA_ANALYSIS.1.CALC_Q_BIAS", 161, EDT_Float32, 1},
588 : {"RAW_DATA_ANALYSIS.1.CALC_I_STD_DEV", 165, EDT_Float32, 1},
589 : {"RAW_DATA_ANALYSIS.1.CALC_Q_STD_DEV", 169, EDT_Float32, 1},
590 : {"RAW_DATA_ANALYSIS.1.CALC_GAIN", 173, EDT_Float32, 1},
591 : {"RAW_DATA_ANALYSIS.1.CALC_QUAD", 177, EDT_Float32, 1},
592 : {"RAW_DATA_ANALYSIS.1.I_BIAS_MAX", 181, EDT_Float32, 1},
593 : {"RAW_DATA_ANALYSIS.1.I_BIAS_MIN", 185, EDT_Float32, 1},
594 : {"RAW_DATA_ANALYSIS.1.Q_BIAS_MAX", 189, EDT_Float32, 1},
595 : {"RAW_DATA_ANALYSIS.1.Q_BIAS_MIN", 193, EDT_Float32, 1},
596 : {"RAW_DATA_ANALYSIS.1.GAIN_MIN", 197, EDT_Float32, 1},
597 : {"RAW_DATA_ANALYSIS.1.GAIN_MAX", 201, EDT_Float32, 1},
598 : {"RAW_DATA_ANALYSIS.1.QUAD_MIN", 205, EDT_Float32, 1},
599 : {"RAW_DATA_ANALYSIS.1.QUAD_MAX", 209, EDT_Float32, 1},
600 : {"RAW_DATA_ANALYSIS.1.I_BIAS_FLAG", 213, EDT_UByte, 1},
601 : {"RAW_DATA_ANALYSIS.1.Q_BIAS_FLAG", 214, EDT_UByte, 1},
602 : {"RAW_DATA_ANALYSIS.1.GAIN_FLAG", 215, EDT_UByte, 1},
603 : {"RAW_DATA_ANALYSIS.1.QUAD_FLAG", 216, EDT_UByte, 1},
604 : {"RAW_DATA_ANALYSIS.1.USED_I_BIAS", 217, EDT_Float32, 1},
605 : {"RAW_DATA_ANALYSIS.1.USED_Q_BIAS", 221, EDT_Float32, 1},
606 : {"RAW_DATA_ANALYSIS.1.USED_GAIN", 225, EDT_Float32, 1},
607 : {"RAW_DATA_ANALYSIS.1.USED_QUAD", 229, EDT_Float32, 1},
608 : {"RAW_DATA_ANALYSIS.2.NUM_GAPS", 233, EDT_UInt32, 1},
609 : {"RAW_DATA_ANALYSIS.2.NUM_MISSING_LINES", 237, EDT_UInt32, 1},
610 : {"RAW_DATA_ANALYSIS.2.RANGE_SAMP_SKIP", 241, EDT_UInt32, 1},
611 : {"RAW_DATA_ANALYSIS.2.RANGE_LINES_SKIP", 245, EDT_UInt32, 1},
612 : {"RAW_DATA_ANALYSIS.2.CALC_I_BIAS", 249, EDT_Float32, 1},
613 : {"RAW_DATA_ANALYSIS.2.CALC_Q_BIAS", 253, EDT_Float32, 1},
614 : {"RAW_DATA_ANALYSIS.2.CALC_I_STD_DEV", 257, EDT_Float32, 1},
615 : {"RAW_DATA_ANALYSIS.2.CALC_Q_STD_DEV", 261, EDT_Float32, 1},
616 : {"RAW_DATA_ANALYSIS.2.CALC_GAIN", 265, EDT_Float32, 1},
617 : {"RAW_DATA_ANALYSIS.2.CALC_QUAD", 269, EDT_Float32, 1},
618 : {"RAW_DATA_ANALYSIS.2.I_BIAS_MAX", 273, EDT_Float32, 1},
619 : {"RAW_DATA_ANALYSIS.2.I_BIAS_MIN", 277, EDT_Float32, 1},
620 : {"RAW_DATA_ANALYSIS.2.Q_BIAS_MAX", 281, EDT_Float32, 1},
621 : {"RAW_DATA_ANALYSIS.2.Q_BIAS_MIN", 285, EDT_Float32, 1},
622 : {"RAW_DATA_ANALYSIS.2.GAIN_MIN", 289, EDT_Float32, 1},
623 : {"RAW_DATA_ANALYSIS.2.GAIN_MAX", 293, EDT_Float32, 1},
624 : {"RAW_DATA_ANALYSIS.2.QUAD_MIN", 297, EDT_Float32, 1},
625 : {"RAW_DATA_ANALYSIS.2.QUAD_MAX", 301, EDT_Float32, 1},
626 : {"RAW_DATA_ANALYSIS.2.I_BIAS_FLAG", 305, EDT_UByte, 1},
627 : {"RAW_DATA_ANALYSIS.2.Q_BIAS_FLAG", 306, EDT_UByte, 1},
628 : {"RAW_DATA_ANALYSIS.2.GAIN_FLAG", 307, EDT_UByte, 1},
629 : {"RAW_DATA_ANALYSIS.2.QUAD_FLAG", 308, EDT_UByte, 1},
630 : {"RAW_DATA_ANALYSIS.2.USED_I_BIAS", 309, EDT_Float32, 1},
631 : {"RAW_DATA_ANALYSIS.2.USED_Q_BIAS", 313, EDT_Float32, 1},
632 : {"RAW_DATA_ANALYSIS.2.USED_GAIN", 317, EDT_Float32, 1},
633 : {"RAW_DATA_ANALYSIS.2.USED_QUAD", 321, EDT_Float32, 1},
634 : /*{"SPARE_3", 325, EDT_UByte, 32},*/
635 : {"START_TIME.1.FIRST_OBT", 357, EDT_UInt32, 2},
636 : {"START_TIME.1.FIRST_MJD", 365, EDT_MJD, 1},
637 : {"START_TIME.2.FIRST_OBT", 377, EDT_UInt32, 2},
638 : {"START_TIME.2.FIRST_MJD", 385, EDT_MJD, 1},
639 : {"PARAMETER_CODES.SWST_CODE", 397, EDT_UInt16, 5},
640 : {"PARAMETER_CODES.LAST_SWST_CODE", 407, EDT_UInt16, 5},
641 : {"PARAMETER_CODES.PRI_CODE", 417, EDT_UInt16, 5},
642 : {"PARAMETER_CODES.TX_PULSE_LEN_CODE", 427, EDT_UInt16, 5},
643 : {"PARAMETER_CODES.TX_BW_CODE", 437, EDT_UInt16, 5},
644 : {"PARAMETER_CODES.ECHO_WIN_LEN_CODE", 447, EDT_UInt16, 5},
645 : {"PARAMETER_CODES.UP_CODE", 457, EDT_UInt16, 5},
646 : {"PARAMETER_CODES.DOWN_CODE", 467, EDT_UInt16, 5},
647 : {"PARAMETER_CODES.RESAMP_CODE", 477, EDT_UInt16, 5},
648 : {"PARAMETER_CODES.BEAM_ADJ_CODE", 487, EDT_UInt16, 5},
649 : {"PARAMETER_CODES.BEAM_SET_NUM_CODE", 497, EDT_UInt16, 5},
650 : {"PARAMETER_CODES.TX_MONITOR_CODE", 507, EDT_UInt16, 5},
651 : /*{"SPARE_4", 517, EDT_UByte, 60},*/
652 : {"ERROR_COUNTERS.NUM_ERR_SWST", 577, EDT_UInt32, 1},
653 : {"ERROR_COUNTERS.NUM_ERR_PRI", 581, EDT_UInt32, 1},
654 : {"ERROR_COUNTERS.NUM_ERR_TX_PULSE_LEN", 585, EDT_UInt32, 1},
655 : {"ERROR_COUNTERS.NUM_ERR_TX_PULSE_BW", 589, EDT_UInt32, 1},
656 : {"ERROR_COUNTERS.NUM_ERR_ECHO_WIN_LEN", 593, EDT_UInt32, 1},
657 : {"ERROR_COUNTERS.NUM_ERR_UP", 597, EDT_UInt32, 1},
658 : {"ERROR_COUNTERS.NUM_ERR_DOWN", 601, EDT_UInt32, 1},
659 : {"ERROR_COUNTERS.NUM_ERR_RESAMP", 605, EDT_UInt32, 1},
660 : {"ERROR_COUNTERS.NUM_ERR_BEAM_ADJ", 609, EDT_UInt32, 1},
661 : {"ERROR_COUNTERS.NUM_ERR_BEAM_SET_NUM", 613, EDT_UInt32, 1},
662 : /*{"SPARE_5", 617, EDT_UByte, 26},*/
663 : {"IMAGE_PARAMETERS.SWST_VALUE", 643, EDT_Float32, 5},
664 : {"IMAGE_PARAMETERS.LAST_SWST_VALUE", 663, EDT_Float32, 5},
665 : {"IMAGE_PARAMETERS.SWST_CHANGES", 683, EDT_UInt32, 5},
666 : {"IMAGE_PARAMETERS.PRF_VALUE", 703, EDT_Float32, 5},
667 : {"IMAGE_PARAMETERS.TX_PULSE_LEN_VALUE", 723, EDT_Float32, 5},
668 : {"IMAGE_PARAMETERS.TX_PULSE_BW_VALUE", 743, EDT_Float32, 5},
669 : {"IMAGE_PARAMETERS.ECHO_WIN_LEN_VALUE", 763, EDT_Float32, 5},
670 : {"IMAGE_PARAMETERS.UP_VALUE", 783, EDT_Float32, 5},
671 : {"IMAGE_PARAMETERS.DOWN_VALUE", 803, EDT_Float32, 5},
672 : {"IMAGE_PARAMETERS.RESAMP_VALUE", 823, EDT_Float32, 5},
673 : {"IMAGE_PARAMETERS.BEAM_ADJ_VALUE", 843, EDT_Float32, 5},
674 : {"IMAGE_PARAMETERS.BEAM_SET_VALUE", 863, EDT_UInt16, 5},
675 : {"IMAGE_PARAMETERS.TX_MONITOR_VALUE", 873, EDT_Float32, 5},
676 : /*{"SPARE_6", 893, EDT_UByte, 82},*/
677 : {"FIRST_PROC_RANGE_SAMP", 975, EDT_UInt32, 1},
678 : {"RANGE_REF", 979, EDT_Float32, 1},
679 : {"RANGE_SAMP_RATE", 983, EDT_Float32, 1},
680 : {"RADAR_FREQ", 987, EDT_Float32, 1},
681 : {"NUM_LOOKS_RANGE", 991, EDT_UInt16, 1},
682 : {"FILTER_RANGE", 993, EDT_Char, 7},
683 : {"FILTER_COEF_RANGE", 1000, EDT_Float32, 1},
684 : {"BANDWIDTH.LOOK_BW_RANGE", 1004, EDT_Float32, 5},
685 : {"BANDWIDTH.TOT_BW_RANGE", 1024, EDT_Float32, 5},
686 : {"NOMINAL_CHIRP.1.NOM_CHIRP_AMP", 1044, EDT_Float32, 4},
687 : {"NOMINAL_CHIRP.1.NOM_CHIRP_PHS", 1060, EDT_Float32, 4},
688 : {"NOMINAL_CHIRP.2.NOM_CHIRP_AMP", 1076, EDT_Float32, 4},
689 : {"NOMINAL_CHIRP.2.NOM_CHIRP_PHS", 1092, EDT_Float32, 4},
690 : {"NOMINAL_CHIRP.3.NOM_CHIRP_AMP", 1108, EDT_Float32, 4},
691 : {"NOMINAL_CHIRP.3.NOM_CHIRP_PHS", 1124, EDT_Float32, 4},
692 : {"NOMINAL_CHIRP.4.NOM_CHIRP_AMP", 1140, EDT_Float32, 4},
693 : {"NOMINAL_CHIRP.4.NOM_CHIRP_PHS", 1156, EDT_Float32, 4},
694 : {"NOMINAL_CHIRP.5.NOM_CHIRP_AMP", 1172, EDT_Float32, 4},
695 : {"NOMINAL_CHIRP.5.NOM_CHIRP_PHS", 1188, EDT_Float32, 4},
696 : /*{"SPARE_7", 1204, EDT_UByte, 60},*/
697 : {"NUM_LINES_PROC", 1264, EDT_UInt32, 1},
698 : {"NUM_LOOK_AZ", 1268, EDT_UInt16, 1},
699 : {"LOOK_BW_AZ", 1270, EDT_Float32, 1},
700 : {"TO_BW_AZ", 1274, EDT_Float32, 1},
701 : {"FILTER_AZ", 1278, EDT_Char, 7},
702 : {"FILTER_COEF_AZ", 1285, EDT_Float32, 1},
703 : {"AZ_FM_RATE", 1289, EDT_Float32, 3},
704 : {"AX_FM_ORIGIN", 1301, EDT_Float32, 1},
705 : {"DOP_AMB_CONF", 1305, EDT_Float32, 1},
706 : /*{"SPARE_8", 1309, EDT_UByte, 68},*/
707 : {"CALIBRATION_FACTORS.1.PROC_SCALING_FACT", 1377, EDT_Float32, 1},
708 : {"CALIBRATION_FACTORS.1.EXT_CAL_FACT", 1381, EDT_Float32, 1},
709 : {"CALIBRATION_FACTORS.2.PROC_SCALING_FACT", 1385, EDT_Float32, 1},
710 : {"CALIBRATION_FACTORS.2.EXT_CAL_FACT", 1389, EDT_Float32, 1},
711 : {"NOISE_ESTIMATION.NOISE_POWER_CORR", 1393, EDT_Float32, 5},
712 : {"NOISE_ESTIMATION.NUM_NOISE_LINES", 1413, EDT_UInt32, 5},
713 : /*{"SPARE_9", 1433, EDT_UByte, 76},*/
714 : {"OUTPUT_STATISTICS.1.OUT_MEAN", 1509, EDT_Float32, 1},
715 : {"OUTPUT_STATISTICS.1.OUT_IMAG_MEAN", 1513, EDT_Float32, 1},
716 : {"OUTPUT_STATISTICS.1.OUT_STD_DEV", 1517, EDT_Float32, 1},
717 : {"OUTPUT_STATISTICS.1.OUT_IMAG_STD_DEV", 1521, EDT_Float32, 1},
718 : {"OUTPUT_STATISTICS.2.OUT_MEAN", 1525, EDT_Float32, 1},
719 : {"OUTPUT_STATISTICS.2.OUT_IMAG_MEAN", 1529, EDT_Float32, 1},
720 : {"OUTPUT_STATISTICS.2.OUT_STD_DEV", 1533, EDT_Float32, 1},
721 : {"OUTPUT_STATISTICS.2.OUT_IMAG_STD_DEV", 1537, EDT_Float32, 1},
722 : /*{"SPARE_10", 1541, EDT_UByte, 52},*/
723 : {"ECHO_COMP", 1593, EDT_Char, 4},
724 : {"ECHO_COMP_RATIO", 1597, EDT_Char, 3},
725 : {"INIT_CAL_COMP", 1600, EDT_Char, 4},
726 : {"INIT_CAL_RATIO", 1604, EDT_Char, 3},
727 : {"PER_CAL_COMP", 1607, EDT_Char, 4},
728 : {"PER_CAL_RATIO", 1611, EDT_Char, 3},
729 : {"NOISE_COMP", 1614, EDT_Char, 4},
730 : {"NOISE_COMP_RATIO", 1618, EDT_Char, 3},
731 : /*{"SPARE_11", 1621, EDT_UByte, 64},*/
732 : {"BEAM_OVERLAP", 1685, EDT_UInt32, 4},
733 : {"LINES_PER_BURST", 1701, EDT_UInt32, 5},
734 : /*{"SPARE_12", 1721, EDT_UByte, 44},*/
735 : {"ORBIT_STATE_VECTORS.1.STATE_VECT_TIME_1", 1765, EDT_MJD, 1},
736 : {"ORBIT_STATE_VECTORS.1.X_POS_1", 1777, EDT_Int32, 1},
737 : {"ORBIT_STATE_VECTORS.1.Y_POS_1", 1781, EDT_Int32, 1},
738 : {"ORBIT_STATE_VECTORS.1.Z_POS_1", 1785, EDT_Int32, 1},
739 : {"ORBIT_STATE_VECTORS.1.X_VEL_1", 1789, EDT_Int32, 1},
740 : {"ORBIT_STATE_VECTORS.1.Y_VEL_1", 1793, EDT_Int32, 1},
741 : {"ORBIT_STATE_VECTORS.1.Z_VEL_1", 1797, EDT_Int32, 1},
742 : {"ORBIT_STATE_VECTORS.2.STATE_VECT_TIME_1", 1801, EDT_MJD, 1},
743 : {"ORBIT_STATE_VECTORS.2.X_POS_1", 1813, EDT_Int32, 1},
744 : {"ORBIT_STATE_VECTORS.2.Y_POS_1", 1817, EDT_Int32, 1},
745 : {"ORBIT_STATE_VECTORS.2.Z_POS_1", 1821, EDT_Int32, 1},
746 : {"ORBIT_STATE_VECTORS.2.X_VEL_1", 1825, EDT_Int32, 1},
747 : {"ORBIT_STATE_VECTORS.2.Y_VEL_1", 1829, EDT_Int32, 1},
748 : {"ORBIT_STATE_VECTORS.2.Z_VEL_1", 1833, EDT_Int32, 1},
749 : {"ORBIT_STATE_VECTORS.3.STATE_VECT_TIME_1", 1837, EDT_MJD, 1},
750 : {"ORBIT_STATE_VECTORS.3.X_POS_1", 1849, EDT_Int32, 1},
751 : {"ORBIT_STATE_VECTORS.3.Y_POS_1", 1853, EDT_Int32, 1},
752 : {"ORBIT_STATE_VECTORS.3.Z_POS_1", 1857, EDT_Int32, 1},
753 : {"ORBIT_STATE_VECTORS.3.X_VEL_1", 1861, EDT_Int32, 1},
754 : {"ORBIT_STATE_VECTORS.3.Y_VEL_1", 1865, EDT_Int32, 1},
755 : {"ORBIT_STATE_VECTORS.3.Z_VEL_1", 1869, EDT_Int32, 1},
756 : {"ORBIT_STATE_VECTORS.4.STATE_VECT_TIME_1", 1873, EDT_MJD, 1},
757 : {"ORBIT_STATE_VECTORS.4.X_POS_1", 1885, EDT_Int32, 1},
758 : {"ORBIT_STATE_VECTORS.4.Y_POS_1", 1889, EDT_Int32, 1},
759 : {"ORBIT_STATE_VECTORS.4.Z_POS_1", 1893, EDT_Int32, 1},
760 : {"ORBIT_STATE_VECTORS.4.X_VEL_1", 1897, EDT_Int32, 1},
761 : {"ORBIT_STATE_VECTORS.4.Y_VEL_1", 1901, EDT_Int32, 1},
762 : {"ORBIT_STATE_VECTORS.4.Z_VEL_1", 1905, EDT_Int32, 1},
763 : {"ORBIT_STATE_VECTORS.5.STATE_VECT_TIME_1", 1909, EDT_MJD, 1},
764 : {"ORBIT_STATE_VECTORS.5.X_POS_1", 1921, EDT_Int32, 1},
765 : {"ORBIT_STATE_VECTORS.5.Y_POS_1", 1925, EDT_Int32, 1},
766 : {"ORBIT_STATE_VECTORS.5.Z_POS_1", 1929, EDT_Int32, 1},
767 : {"ORBIT_STATE_VECTORS.5.X_VEL_1", 1933, EDT_Int32, 1},
768 : {"ORBIT_STATE_VECTORS.5.Y_VEL_1", 1937, EDT_Int32, 1},
769 : {"ORBIT_STATE_VECTORS.5.Z_VEL_1", 1941, EDT_Int32, 1},
770 : /*{"SPARE_13", 1945, EDT_UByte, 64},*/
771 : {"SLANT_RANGE_TIME", 2009, EDT_Float32, 1},
772 : {"DOP_COEF", 2013, EDT_Float32, 5},
773 : {"DOP_CONF", 2033, EDT_Float32, 1},
774 : /*{"SPARE_14", 2037, EDT_UByte, 14},*/
775 : {"CHIRP_WIDTH", 2051, EDT_Float32, 1},
776 : {"CHIRP_SIDELOBE", 2055, EDT_Float32, 1},
777 : {"CHIRP_ISLR", 2059, EDT_Float32, 1},
778 : {"CHIRP_PEAK_LOC", 2063, EDT_Float32, 1},
779 : {"CHIRP_POWER", 2067, EDT_Float32, 1},
780 : {"ELEV_CORR_FACTOR", 2071, EDT_Float32, 1},
781 : /*{"SPARE_15", 2075, EDT_UByte, 16},*/
782 : {"CAL_INFO.1.MAX_CAL", 2091, EDT_Float32, 3},
783 : {"CAL_INFO.1.AVG_CAL", 2103, EDT_Float32, 3},
784 : {"CAL_INFO.1.AVG_VAL_1A", 2115, EDT_Float32, 1},
785 : {"CAL_INFO.1.PHS_CAL", 2119, EDT_Float32, 4},
786 : {"CAL_INFO.2.MAX_CAL", 2135, EDT_Float32, 3},
787 : {"CAL_INFO.2.AVG_CAL", 2147, EDT_Float32, 3},
788 : {"CAL_INFO.2.AVG_VAL_1A", 2159, EDT_Float32, 1},
789 : {"CAL_INFO.2.PHS_CAL", 2163, EDT_Float32, 4},
790 : {"CAL_INFO.3.MAX_CAL", 2179, EDT_Float32, 3},
791 : {"CAL_INFO.3.AVG_CAL", 2191, EDT_Float32, 3},
792 : {"CAL_INFO.3.AVG_VAL_1A", 2203, EDT_Float32, 1},
793 : {"CAL_INFO.3.PHS_CAL", 2207, EDT_Float32, 4},
794 : {"CAL_INFO.4.MAX_CAL", 2223, EDT_Float32, 3},
795 : {"CAL_INFO.4.AVG_CAL", 2235, EDT_Float32, 3},
796 : {"CAL_INFO.4.AVG_VAL_1A", 2247, EDT_Float32, 1},
797 : {"CAL_INFO.4.PHS_CAL", 2251, EDT_Float32, 4},
798 : {"CAL_INFO.5.MAX_CAL", 2267, EDT_Float32, 3},
799 : {"CAL_INFO.5.AVG_CAL", 2279, EDT_Float32, 3},
800 : {"CAL_INFO.5.AVG_VAL_1A", 2291, EDT_Float32, 1},
801 : {"CAL_INFO.5.PHS_CAL", 2295, EDT_Float32, 4},
802 : {"CAL_INFO.6.MAX_CAL", 2311, EDT_Float32, 3},
803 : {"CAL_INFO.6.AVG_CAL", 2323, EDT_Float32, 3},
804 : {"CAL_INFO.6.AVG_VAL_1A", 2335, EDT_Float32, 1},
805 : {"CAL_INFO.6.PHS_CAL", 2339, EDT_Float32, 4},
806 : {"CAL_INFO.7.MAX_CAL", 2355, EDT_Float32, 3},
807 : {"CAL_INFO.7.AVG_CAL", 2367, EDT_Float32, 3},
808 : {"CAL_INFO.7.AVG_VAL_1A", 2379, EDT_Float32, 1},
809 : {"CAL_INFO.7.PHS_CAL", 2383, EDT_Float32, 4},
810 : {"CAL_INFO.8.MAX_CAL", 2399, EDT_Float32, 3},
811 : {"CAL_INFO.8.AVG_CAL", 2411, EDT_Float32, 3},
812 : {"CAL_INFO.8.AVG_VAL_1A", 2423, EDT_Float32, 1},
813 : {"CAL_INFO.8.PHS_CAL", 2427, EDT_Float32, 4},
814 : {"CAL_INFO.9.MAX_CAL", 2443, EDT_Float32, 3},
815 : {"CAL_INFO.9.AVG_CAL", 2455, EDT_Float32, 3},
816 : {"CAL_INFO.9.AVG_VAL_1A", 2467, EDT_Float32, 1},
817 : {"CAL_INFO.9.PHS_CAL", 2471, EDT_Float32, 4},
818 : {"CAL_INFO.10.MAX_CAL", 2487, EDT_Float32, 3},
819 : {"CAL_INFO.10.AVG_CAL", 2499, EDT_Float32, 3},
820 : {"CAL_INFO.10.AVG_VAL_1A", 2511, EDT_Float32, 1},
821 : {"CAL_INFO.10.PHS_CAL", 2515, EDT_Float32, 4},
822 : {"CAL_INFO.11.MAX_CAL", 2531, EDT_Float32, 3},
823 : {"CAL_INFO.11.AVG_CAL", 2543, EDT_Float32, 3},
824 : {"CAL_INFO.11.AVG_VAL_1A", 2555, EDT_Float32, 1},
825 : {"CAL_INFO.11.PHS_CAL", 2559, EDT_Float32, 4},
826 : {"CAL_INFO.12.MAX_CAL", 2575, EDT_Float32, 3},
827 : {"CAL_INFO.12.AVG_CAL", 2587, EDT_Float32, 3},
828 : {"CAL_INFO.12.AVG_VAL_1A", 2599, EDT_Float32, 1},
829 : {"CAL_INFO.12.PHS_CAL", 2603, EDT_Float32, 4},
830 : {"CAL_INFO.13.MAX_CAL", 2619, EDT_Float32, 3},
831 : {"CAL_INFO.13.AVG_CAL", 2631, EDT_Float32, 3},
832 : {"CAL_INFO.13.AVG_VAL_1A", 2643, EDT_Float32, 1},
833 : {"CAL_INFO.13.PHS_CAL", 2647, EDT_Float32, 4},
834 : {"CAL_INFO.14.MAX_CAL", 2663, EDT_Float32, 3},
835 : {"CAL_INFO.14.AVG_CAL", 2675, EDT_Float32, 3},
836 : {"CAL_INFO.14.AVG_VAL_1A", 2687, EDT_Float32, 1},
837 : {"CAL_INFO.14.PHS_CAL", 2691, EDT_Float32, 4},
838 : {"CAL_INFO.15.MAX_CAL", 2707, EDT_Float32, 3},
839 : {"CAL_INFO.15.AVG_CAL", 2719, EDT_Float32, 3},
840 : {"CAL_INFO.15.AVG_VAL_1A", 2731, EDT_Float32, 1},
841 : {"CAL_INFO.15.PHS_CAL", 2735, EDT_Float32, 4},
842 : {"CAL_INFO.16.MAX_CAL", 2751, EDT_Float32, 3},
843 : {"CAL_INFO.16.AVG_CAL", 2763, EDT_Float32, 3},
844 : {"CAL_INFO.16.AVG_VAL_1A", 2775, EDT_Float32, 1},
845 : {"CAL_INFO.16.PHS_CAL", 2779, EDT_Float32, 4},
846 : {"CAL_INFO.17.MAX_CAL", 2795, EDT_Float32, 3},
847 : {"CAL_INFO.17.AVG_CAL", 2807, EDT_Float32, 3},
848 : {"CAL_INFO.17.AVG_VAL_1A", 2819, EDT_Float32, 1},
849 : {"CAL_INFO.17.PHS_CAL", 2823, EDT_Float32, 4},
850 : {"CAL_INFO.18.MAX_CAL", 2839, EDT_Float32, 3},
851 : {"CAL_INFO.18.AVG_CAL", 2851, EDT_Float32, 3},
852 : {"CAL_INFO.18.AVG_VAL_1A", 2863, EDT_Float32, 1},
853 : {"CAL_INFO.18.PHS_CAL", 2867, EDT_Float32, 4},
854 : {"CAL_INFO.19.MAX_CAL", 2883, EDT_Float32, 3},
855 : {"CAL_INFO.19.AVG_CAL", 2895, EDT_Float32, 3},
856 : {"CAL_INFO.19.AVG_VAL_1A", 2907, EDT_Float32, 1},
857 : {"CAL_INFO.19.PHS_CAL", 2911, EDT_Float32, 4},
858 : {"CAL_INFO.20.MAX_CAL", 2927, EDT_Float32, 3},
859 : {"CAL_INFO.20.AVG_CAL", 2939, EDT_Float32, 3},
860 : {"CAL_INFO.20.AVG_VAL_1A", 2951, EDT_Float32, 1},
861 : {"CAL_INFO.20.PHS_CAL", 2955, EDT_Float32, 4},
862 : {"CAL_INFO.21.MAX_CAL", 2971, EDT_Float32, 3},
863 : {"CAL_INFO.21.AVG_CAL", 2983, EDT_Float32, 3},
864 : {"CAL_INFO.21.AVG_VAL_1A", 2995, EDT_Float32, 1},
865 : {"CAL_INFO.21.PHS_CAL", 2999, EDT_Float32, 4},
866 : {"CAL_INFO.22.MAX_CAL", 3015, EDT_Float32, 3},
867 : {"CAL_INFO.22.AVG_CAL", 3027, EDT_Float32, 3},
868 : {"CAL_INFO.22.AVG_VAL_1A", 3039, EDT_Float32, 1},
869 : {"CAL_INFO.22.PHS_CAL", 3043, EDT_Float32, 4},
870 : {"CAL_INFO.23.MAX_CAL", 3059, EDT_Float32, 3},
871 : {"CAL_INFO.23.AVG_CAL", 3071, EDT_Float32, 3},
872 : {"CAL_INFO.23.AVG_VAL_1A", 3083, EDT_Float32, 1},
873 : {"CAL_INFO.23.PHS_CAL", 3087, EDT_Float32, 4},
874 : {"CAL_INFO.24.MAX_CAL", 3103, EDT_Float32, 3},
875 : {"CAL_INFO.24.AVG_CAL", 3115, EDT_Float32, 3},
876 : {"CAL_INFO.24.AVG_VAL_1A", 3127, EDT_Float32, 1},
877 : {"CAL_INFO.24.PHS_CAL", 3131, EDT_Float32, 4},
878 : {"CAL_INFO.25.MAX_CAL", 3147, EDT_Float32, 3},
879 : {"CAL_INFO.25.AVG_CAL", 3159, EDT_Float32, 3},
880 : {"CAL_INFO.25.AVG_VAL_1A", 3171, EDT_Float32, 1},
881 : {"CAL_INFO.25.PHS_CAL", 3175, EDT_Float32, 4},
882 : {"CAL_INFO.26.MAX_CAL", 3191, EDT_Float32, 3},
883 : {"CAL_INFO.26.AVG_CAL", 3203, EDT_Float32, 3},
884 : {"CAL_INFO.26.AVG_VAL_1A", 3215, EDT_Float32, 1},
885 : {"CAL_INFO.26.PHS_CAL", 3219, EDT_Float32, 4},
886 : {"CAL_INFO.27.MAX_CAL", 3235, EDT_Float32, 3},
887 : {"CAL_INFO.27.AVG_CAL", 3247, EDT_Float32, 3},
888 : {"CAL_INFO.27.AVG_VAL_1A", 3259, EDT_Float32, 1},
889 : {"CAL_INFO.27.PHS_CAL", 3263, EDT_Float32, 4},
890 : {"CAL_INFO.28.MAX_CAL", 3279, EDT_Float32, 3},
891 : {"CAL_INFO.28.AVG_CAL", 3291, EDT_Float32, 3},
892 : {"CAL_INFO.28.AVG_VAL_1A", 3303, EDT_Float32, 1},
893 : {"CAL_INFO.28.PHS_CAL", 3307, EDT_Float32, 4},
894 : {"CAL_INFO.29.MAX_CAL", 3323, EDT_Float32, 3},
895 : {"CAL_INFO.29.AVG_CAL", 3335, EDT_Float32, 3},
896 : {"CAL_INFO.29.AVG_VAL_1A", 3347, EDT_Float32, 1},
897 : {"CAL_INFO.29.PHS_CAL", 3351, EDT_Float32, 4},
898 : {"CAL_INFO.30.MAX_CAL", 3367, EDT_Float32, 3},
899 : {"CAL_INFO.30.AVG_CAL", 3379, EDT_Float32, 3},
900 : {"CAL_INFO.30.AVG_VAL_1A", 3391, EDT_Float32, 1},
901 : {"CAL_INFO.30.PHS_CAL", 3395, EDT_Float32, 4},
902 : {"CAL_INFO.31.MAX_CAL", 3411, EDT_Float32, 3},
903 : {"CAL_INFO.31.AVG_CAL", 3423, EDT_Float32, 3},
904 : {"CAL_INFO.31.AVG_VAL_1A", 3435, EDT_Float32, 1},
905 : {"CAL_INFO.31.PHS_CAL", 3439, EDT_Float32, 4},
906 : {"CAL_INFO.32.MAX_CAL", 3455, EDT_Float32, 3},
907 : {"CAL_INFO.32.AVG_CAL", 3467, EDT_Float32, 3},
908 : {"CAL_INFO.32.AVG_VAL_1A", 3479, EDT_Float32, 1},
909 : {"CAL_INFO.32.PHS_CAL", 3483, EDT_Float32, 4},
910 : /*{"SPARE_16", 3499, EDT_UByte, 16},*/
911 : {"FIRST_LINE_TIME", 3515, EDT_MJD, 1},
912 : {"FIRST_LINE_TIE_POINTS.RANGE_SAMP_NUMS_FIRST", 3527, EDT_UInt32, 3},
913 : {"FIRST_LINE_TIE_POINTS.SLANT_RANGE_TIMES_FIRST", 3539, EDT_Float32, 3},
914 : {"FIRST_LINE_TIE_POINTS.INC_ANGLES_FIRST", 3551, EDT_Float32, 3},
915 : {"FIRST_LINE_TIE_POINTS.LATS_FIRST", 3563, EDT_Int32, 3},
916 : {"FIRST_LINE_TIE_POINTS.LONGS_FIRST", 3575, EDT_Int32, 3},
917 : {"MID_LINE_TIME", 3587, EDT_MJD, 1},
918 : {"MID_RANGE_LINE_NUMS", 3599, EDT_UInt32, 1},
919 : {"MID_LINE_TIE_POINTS.RANGE_SAMP_NUMS_MID", 3603, EDT_UInt32, 3},
920 : {"MID_LINE_TIE_POINTS.SLANT_RANGE_TIMES_MID", 3615, EDT_Float32, 3},
921 : {"MID_LINE_TIE_POINTS.INC_ANGLES_MID", 3627, EDT_Float32, 3},
922 : {"MID_LINE_TIE_POINTS.LATS_MID", 3639, EDT_Int32, 3},
923 : {"MID_LINE_TIE_POINTS.LONGS_MID", 3651, EDT_Int32, 3},
924 : {"LAST_LINE_TIME", 3663, EDT_MJD, 1},
925 : {"LAST_LINE_NUM", 3675, EDT_UInt32, 1},
926 : {"LAST_LINE_TIE_POINTS.RANGE_SAMP_NUMS_LAST", 3679, EDT_UInt32, 3},
927 : {"LAST_LINE_TIE_POINTS.SLANT_RANGE_TIMES_LAST", 3691, EDT_Float32, 3},
928 : {"LAST_LINE_TIE_POINTS.INC_ANGLES_LAST", 3703, EDT_Float32, 3},
929 : {"LAST_LINE_TIE_POINTS.LATS_LAST", 3715, EDT_Int32, 3},
930 : {"LAST_LINE_TIE_POINTS.LONGS_LAST", 3727, EDT_Int32, 3},
931 : {"SWST_OFFSET", 3739, EDT_Float32, 1},
932 : {"GROUND_RANGE_BIAS", 3743, EDT_Float32, 1},
933 : {"ELEV_ANGLE_BIAS", 3747, EDT_Float32, 1},
934 : {"IMAGETTE_RANGE_LEN", 3751, EDT_Float32, 1},
935 : {"IMAGETTE_AZ_LEN", 3755, EDT_Float32, 1},
936 : {"IMAGETTE_RANGE_RES", 3759, EDT_Float32, 1},
937 : {"GROUND_RES", 3763, EDT_Float32, 1},
938 : {"IMAGETTE_AZ_RES", 3767, EDT_Float32, 1},
939 : {"PLATFORM_ALT", 3771, EDT_Float32, 1},
940 : {"PLATFORM_VEL", 3775, EDT_Float32, 1},
941 : {"SLANT_RANGE", 3779, EDT_Float32, 1},
942 : {"CW_DRIFT", 3783, EDT_Float32, 1},
943 : {"WAVE_SUBCYCLE", 3787, EDT_UInt16, 1},
944 : {"EARTH_RADIUS", 3789, EDT_Float32, 1},
945 : {"SAT_HEIGHT", 3793, EDT_Float32, 1},
946 : {"FIRST_SAMPLE_SLANT_RANGE", 3797, EDT_Float32, 1},
947 : /*{"SPARE_17", 3801, EDT_UByte, 12},*/
948 : {"ELEVATION_PATTERN.SLANT_RANGE_TIME", 3813, EDT_Float32, 11},
949 : {"ELEVATION_PATTERN.ELEVATION_ANGLES", 3857, EDT_Float32, 11},
950 : {"ELEVATION_PATTERN.ANTENNA_PATTERN", 3901, EDT_Float32, 11},
951 : /*{"SPARE_18", 3945, EDT_UByte, 14},*/
952 : {NULL, 0, EDT_Unknown, 0}};
953 :
954 : static const EnvisatFieldDescr ASAR_WAVE_SQ_ADSR[] = {
955 : {"ZERO_DOPPLER_TIME", 0, EDT_MJD, 1},
956 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
957 : {"INPUT_MEAN_FLAG", 13, EDT_UByte, 1},
958 : {"INPUT_STD_DEV_FLAG", 14, EDT_UByte, 1},
959 : {"INPUT_GAPS_FLAG", 15, EDT_UByte, 1},
960 : {"INPUT_MISSING_LINES_FLAG", 16, EDT_UByte, 1},
961 : {"DOP_CEN_FLAG", 17, EDT_UByte, 1},
962 : {"DOP_AMB_FLAG", 18, EDT_UByte, 1},
963 : {"OUTPUT_MEAN_FLAG", 19, EDT_UByte, 1},
964 : {"OUTPUT_STD_DEV_FLAG", 20, EDT_UByte, 1},
965 : {"CHIRP_FLAG", 21, EDT_UByte, 1},
966 : {"MISSING_DATA_SETS_FLAG", 22, EDT_UByte, 1},
967 : {"INVALID_DOWNLINK_FLAG", 23, EDT_UByte, 1},
968 : /*{"SPARE_1", 24, EDT_UByte, 7},*/
969 : {"THRESH_CHIRP_BROADENING", 31, EDT_Float32, 1},
970 : {"THRESH_CHIRP_SIDELOBE", 35, EDT_Float32, 1},
971 : {"THRESH_CHIRP_ISLR", 39, EDT_Float32, 1},
972 : {"THRESH_INPUT_MEAN", 43, EDT_Float32, 1},
973 : {"EXP_INPUT_MEAN", 47, EDT_Float32, 1},
974 : {"THRESH_INPUT_STD_DEV", 51, EDT_Float32, 1},
975 : {"EXP_INPUT_STD_DEV", 55, EDT_Float32, 1},
976 : {"THRESH_DOP_CEN", 59, EDT_Float32, 1},
977 : {"THRESH_DOP_AMB", 63, EDT_Float32, 1},
978 : {"THRESH_OUTPUT_MEAN", 67, EDT_Float32, 1},
979 : {"EXP_OUTPUT_MEAN", 71, EDT_Float32, 1},
980 : {"THRESH_OUTPUT_STD_DEV", 75, EDT_Float32, 1},
981 : {"EXP_OUTPUT_STD_DEV", 79, EDT_Float32, 1},
982 : {"THRESH_INPUT_MISSING_LINES", 83, EDT_Float32, 1},
983 : {"THRESH_INPUT_GAPS", 87, EDT_Float32, 1},
984 : {"LINES_PER_GAPS", 91, EDT_UInt32, 1},
985 : /*{"SPARE_2", 95, EDT_UByte, 15},*/
986 : {"INPUT_MEAN", 110, EDT_Float32, 2},
987 : {"INPUT_STD_DEV", 118, EDT_Float32, 2},
988 : {"NUM_GAPS", 126, EDT_Float32, 1},
989 : {"NUM_MISSING_LINES", 130, EDT_Float32, 1},
990 : {"OUTPUT_MEAN", 134, EDT_Float32, 2},
991 : {"OUTPUT_STD_DEV", 142, EDT_Float32, 2},
992 : {"TOT_ERRORS", 150, EDT_UInt32, 1},
993 : /*{"SPARE_3", 154, EDT_UByte, 16},*/
994 : {"LAND_FLAG", 170, EDT_UByte, 1},
995 : {"LOOK_CONF_FLAG", 171, EDT_UByte, 1},
996 : {"INTER_LOOK_CONF_FLAG", 172, EDT_UByte, 1},
997 : {"AZ_CUTOFF_FLAG", 173, EDT_UByte, 1},
998 : {"AZ_CUTOFF_ITERATION_FLAG", 174, EDT_UByte, 1},
999 : {"PHASE_FLAG", 175, EDT_UByte, 1},
1000 : /*{"SPARE_4", 176, EDT_UByte, 4},*/
1001 : {"LOOK_CONF_THRESH", 180, EDT_Float32, 2},
1002 : {"INTER_LOOK_CONF_THRESH", 188, EDT_Float32, 1},
1003 : {"AZ_CUTOFF_THRESH", 192, EDT_Float32, 1},
1004 : {"AZ_CUTOFF_ITERATIONS_THRESH", 196, EDT_UInt32, 1},
1005 : {"PHASE_PEAK_THRESH", 200, EDT_Float32, 1},
1006 : {"PHASE_CROSS_THRESH", 204, EDT_Float32, 1},
1007 : /*{"SPARE_5", 208, EDT_UByte, 12},*/
1008 : {"LOOK_CONF", 220, EDT_Float32, 1},
1009 : {"INTER_LOOK_CONF", 224, EDT_Float32, 1},
1010 : {"AZ_CUTOFF", 228, EDT_Float32, 1},
1011 : {"PHASE_PEAK_CONF", 232, EDT_Float32, 1},
1012 : {"PHASE_CROSS_CONF", 236, EDT_Float32, 1},
1013 : /*{"SPARE_6", 240, EDT_UByte, 12},*/
1014 : {NULL, 0, EDT_Unknown, 0}};
1015 :
1016 : /* --- MERIS record descriptors -------------------------------------------- */
1017 : static const EnvisatFieldDescr MERIS_1P_QUALITY_ADSR[] = {
1018 : {"DSR_TIME", 0, EDT_MJD, 1},
1019 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
1020 : {"RANGE_FLAG", 13, EDT_UInt16, 5},
1021 : {"RANGE_BLIND_FLAG", 23, EDT_UInt16, 5},
1022 : {NULL, 0, EDT_Unknown, 0}};
1023 :
1024 : static const EnvisatFieldDescr MERIS_1P_SCALING_FACTOR_GADS[] = {
1025 : {"SCALING_FACTOR_ALT", 0, EDT_Float32, 1},
1026 : {"SCALING_FACTOR_ROUGH", 4, EDT_Float32, 1},
1027 : {"SCALING_FACTOR_ZON_WIND", 8, EDT_Float32, 1},
1028 : {"SCALING_FACTOR_MERR_WIND", 12, EDT_Float32, 1},
1029 : {"SCALING_FACTOR_ATM_PRES", 16, EDT_Float32, 1},
1030 : {"SCALING_FACTOR_OZONE", 20, EDT_Float32, 1},
1031 : {"SCALING_FACTOR_REL_HUM", 24, EDT_Float32, 1},
1032 : {"SCALING_FACTOR_RAD", 28, EDT_Float32, 15},
1033 : {"GAIN_SETTINGS", 88, EDT_UByte, 80},
1034 : {"SAMPLING_RATE", 168, EDT_UInt32, 1},
1035 : {"SUN_SPECTRAL_FLUX", 172, EDT_Float32, 15},
1036 : /*{"SPARE_1", 232, EDT_UByte, 60},*/
1037 : {NULL, 0, EDT_Unknown, 0}};
1038 :
1039 : static const EnvisatFieldDescr MERIS_2P_QUALITY_ADSR[] = {
1040 : {"DSR_TIME", 0, EDT_MJD, 1},
1041 : {"ATTACH_FLAG", 12, EDT_UByte, 1},
1042 : {"PERC_WATER_ABS_AERO", 13, EDT_UByte, 1},
1043 : {"PERC_WATER", 14, EDT_UByte, 1},
1044 : {"PERC_DDV_LAND", 15, EDT_UByte, 1},
1045 : {"PERC_LAND", 16, EDT_UByte, 1},
1046 : {"PERC_CLOUD", 17, EDT_UByte, 1},
1047 : {"PERC_LOW_POLY_PRESS", 18, EDT_UByte, 1},
1048 : {"PERC_LOW_NEURAL_PRESS", 19, EDT_UByte, 1},
1049 : {"PERC_OUT_RAN_INP_WVAPOUR", 20, EDT_UByte, 1},
1050 : {"PER_OUT_RAN_OUTP_WVAPOUR", 21, EDT_UByte, 1},
1051 : {"PERC_OUT_RANGE_INP_CL", 22, EDT_UByte, 1},
1052 : {"PERC_OUT_RAN_OUTP_CL", 23, EDT_UByte, 1},
1053 : {"PERC_IN_RAN_INP_LAND", 24, EDT_UByte, 1},
1054 : {"PERC_OUT_RAN_OUTP_LAND", 25, EDT_UByte, 1},
1055 : {"PERC_OUT_RAN_INP_OCEAN", 26, EDT_UByte, 1},
1056 : {"PERC_OUT_RAN_OUTP_OCEAN", 27, EDT_UByte, 1},
1057 : {"PERC_OUT_RAN_INP_CASE1", 28, EDT_UByte, 1},
1058 : {"PERC_OUT_RAN_OUTP_CASE1", 29, EDT_UByte, 1},
1059 : {"PERC_OUT_RAN_INP_CASE2", 30, EDT_UByte, 1},
1060 : {"PERC_OUT_RAN_OUTP_CASE2", 31, EDT_UByte, 1},
1061 : {NULL, 0, EDT_Unknown, 0}};
1062 :
1063 : static const EnvisatFieldDescr MERIS_2P_SCALING_FACTOR_GADS[] = {
1064 : {"SCALING_FACTOR_ALT", 0, EDT_Float32, 1},
1065 : {"SCALING_FACTOR_ROUGH", 4, EDT_Float32, 1},
1066 : {"SCALING_FACTOR_ZON_WIND", 8, EDT_Float32, 1},
1067 : {"SCALING_FACTOR_MERR_WIND", 12, EDT_Float32, 1},
1068 : {"SCALING_FACTOR_ATM_PRES", 16, EDT_Float32, 1},
1069 : {"SCALING_FACTOR_OZONE", 20, EDT_Float32, 1},
1070 : {"SCALING_FACTOR_REL_HUMID", 24, EDT_Float32, 1},
1071 : {"SCALING_FACTOR_REFLEC", 28, EDT_Float32, 13},
1072 : {"SCALING_FACTOR_ALGAL_PIG_IND", 80, EDT_Float32, 1},
1073 : {"SCALING_FACTOR_YELLOW_SUBS", 84, EDT_Float32, 1},
1074 : {"SCALING_FACTOR_SUSP_SED", 88, EDT_Float32, 1},
1075 : {"SCALING_FACTOR_AERO_EPSILON", 92, EDT_Float32, 1},
1076 : {"SCALING_FACTOR_AER_OPT_THICK", 96, EDT_Float32, 1},
1077 : {"SCALING_FACTOR_CL_OPT_THICK", 100, EDT_Float32, 1},
1078 : {"SCALING_FACTOR_SURF_PRES", 104, EDT_Float32, 1},
1079 : {"SCALING_FACTOR_WVAPOUR", 108, EDT_Float32, 1},
1080 : {"SCALING_FACTOR_PHOTOSYN_RAD", 112, EDT_Float32, 1},
1081 : {"SCALING_FACTOR_TOA_VEG", 116, EDT_Float32, 1},
1082 : {"SCALING_FACTOR_BOA_VEG", 120, EDT_Float32, 1},
1083 : {"SCALING_FACTOR_CLOUD_ALBEDO", 124, EDT_Float32, 1},
1084 : {"SCALING_FACTOR_CLOUD_TOP_PRESS", 128, EDT_Float32, 1},
1085 : {"OFF_REFLEC", 132, EDT_Float32, 13},
1086 : {"OFFSET_ALGAL", 184, EDT_Float32, 1},
1087 : {"OFFSET_YELLOW_SUBS", 188, EDT_Float32, 1},
1088 : {"OFFSET_TOTAL_SUSP", 192, EDT_Float32, 1},
1089 : {"OFFSET_AERO_EPSILON", 196, EDT_Float32, 1},
1090 : {"OFFSET_AER_OPT_THICK", 200, EDT_Float32, 1},
1091 : {"OFFSET_CL_OPT_THICK", 204, EDT_Float32, 1},
1092 : {"OFFSET_SURF_PRES", 208, EDT_Float32, 1},
1093 : {"OFFSET_WVAPOUR", 212, EDT_Float32, 1},
1094 : {"OFFSET_PHOTOSYN_RAD", 216, EDT_Float32, 1},
1095 : {"OFFSET_TOA_VEG", 220, EDT_Float32, 1},
1096 : {"OFFSET_BOA_VEG", 224, EDT_Float32, 1},
1097 : {"OFFSET_CLOUD_ALBEDO", 228, EDT_Float32, 1},
1098 : {"OFFSET_CLOUD_TOP_PRESS", 232, EDT_Float32, 1},
1099 : {"GAIN_SETTINGS", 236, EDT_UByte, 80},
1100 : {"SAMPLING_RATE", 316, EDT_UInt32, 1},
1101 : {"SUN_SPECTRAL_FLUX", 320, EDT_Float32, 15},
1102 : {"SCALING_FACTOR_RECT_REFL_NIR", 380, EDT_Float32, 1},
1103 : {"OFFSET_RECT_REFL_NIR", 384, EDT_Float32, 1},
1104 : {"SCALING_FACTOR_RECT_REFL_RED", 388, EDT_Float32, 1},
1105 : {"OFFSET_RECT_REFL_RED", 392, EDT_Float32, 1},
1106 : /*{"SPARE_1", 396, EDT_UByte, 44},*/
1107 : {NULL, 0, EDT_Unknown, 0}};
1108 :
1109 : static const EnvisatFieldDescr MERIS_2P_C_SCALING_FACTOR_GADS[] = {
1110 : {"SCALING_FACTOR_CLOUD_OPT_THICK", 0, EDT_Float32, 1},
1111 : {"SCALING_FACTOR_CLOUD_TOP_PRESS", 4, EDT_Float32, 1},
1112 : {"SCALING_FACTOR_WVAPOUR", 8, EDT_Float32, 1},
1113 : {"OFFSET_CL_OPT_THICK", 12, EDT_Float32, 1},
1114 : {"OFFSET_CLOUD_TOP_PRESS", 16, EDT_Float32, 1},
1115 : {"OFFSET_WVAPOUR", 20, EDT_Float32, 1},
1116 : /*{"SPARE_1", 24, EDT_UByte, 52},*/
1117 : {NULL, 0, EDT_Unknown, 0}};
1118 :
1119 : static const EnvisatFieldDescr MERIS_2P_V_SCALING_FACTOR_GADS[] = {
1120 : {"SCALING_FACTOR_TOA_VEGETATION_INDEX", 0, EDT_Float32, 1},
1121 : {"SCALING_FACTOR_BOA_VEGETATION_INDEX", 4, EDT_Float32, 1},
1122 : {"OFFSET_TOA_VEGETAYION_INDEX", 8, EDT_Float32, 1},
1123 : {"OFFSET_BOA_VEGETAYION_INDEX", 12, EDT_Float32, 1},
1124 : /*{"SPARE_1", 16, EDT_UByte, 60},*/
1125 : {NULL, 0, EDT_Unknown, 0}};
1126 :
1127 : static const EnvisatRecordDescr aASAR_Records[] = {
1128 : {"MDS1 ANTENNA ELEV PATT ADS", ASAR_ANTENNA_ELEV_PATT_ADSR},
1129 : {"MDS2 ANTENNA ELEV PATT ADS", ASAR_ANTENNA_ELEV_PATT_ADSR},
1130 : {"CHIRP PARAMS ADS", ASAR_CHIRP_PARAMS_ADSR},
1131 : {"DOP CENTROID COEFFS ADS", ASAR_DOP_CENTROID_COEFFS_ADSR},
1132 : /*{"GEOLOCATION GRID ADS", ASAR_GEOLOCATION_GRID_ADSR},*/
1133 : {"MAIN PROCESSING PARAMS ADS", ASAR_MAIN_PROCESSING_PARAMS_ADSR},
1134 : {"MAP PROJECTION GADS", ASAR_MAP_PROJECTION_GADS},
1135 : {"MDS1 SQ ADS", ASAR_SQ_ADSR},
1136 : {"MDS2 SQ ADS", ASAR_SQ_ADSR},
1137 : {"SR GR ADS", ASAR_SR_GR_ADSR},
1138 : /* WAVE */
1139 : /*{"GEOLOCATION ADS", ASAR_GEOLOCATION_ADSR},*/
1140 : {"PROCESSING PARAMS ADS", ASAR_PROCESSING_PARAMS_ADSR},
1141 : {"SQ ADS", ASAR_WAVE_SQ_ADSR},
1142 : {NULL, NULL}};
1143 :
1144 : static const EnvisatRecordDescr aMERIS_1P_Records[] = {
1145 : {"Quality ADS", MERIS_1P_QUALITY_ADSR},
1146 : {"Scaling Factor GADS", MERIS_1P_SCALING_FACTOR_GADS},
1147 : {NULL, NULL}};
1148 :
1149 : static const EnvisatRecordDescr aMERIS_2P_Records[] = {
1150 : {"Quality ADS", MERIS_2P_QUALITY_ADSR},
1151 : {"Scaling Factor GADS", MERIS_2P_SCALING_FACTOR_GADS},
1152 : {NULL, NULL}};
1153 :
1154 : static const EnvisatRecordDescr aMERIS_2P_C_Records[] = {
1155 : {"Quality ADS", MERIS_2P_QUALITY_ADSR},
1156 : {"Scaling Factor GADS", MERIS_2P_C_SCALING_FACTOR_GADS},
1157 : {NULL, NULL}};
1158 :
1159 : static const EnvisatRecordDescr aMERIS_2P_V_Records[] = {
1160 : {"Quality ADS", MERIS_2P_QUALITY_ADSR},
1161 : {"Scaling Factor GADS", MERIS_2P_V_SCALING_FACTOR_GADS},
1162 : {NULL, NULL}};
1163 :
1164 : const EnvisatRecordDescr *
1165 0 : EnvisatFile_GetRecordDescriptor(const char *pszProduct, const char *pszDataset)
1166 : {
1167 0 : const EnvisatRecordDescr *paRecords = NULL;
1168 0 : const EnvisatRecordDescr *pRecordDescr = NULL;
1169 : int nLen;
1170 :
1171 0 : if (STARTS_WITH_CI(pszProduct, "ASA"))
1172 0 : paRecords = aASAR_Records;
1173 0 : else if (STARTS_WITH_CI(pszProduct, "MER"))
1174 : {
1175 0 : if (STARTS_WITH_CI(pszProduct + 6, "C_2P"))
1176 0 : paRecords = aMERIS_2P_C_Records;
1177 0 : else if (STARTS_WITH_CI(pszProduct + 6, "V_2P"))
1178 0 : paRecords = aMERIS_2P_V_Records;
1179 0 : else if (STARTS_WITH_CI(pszProduct + 8, "1P"))
1180 0 : paRecords = aMERIS_1P_Records;
1181 0 : else if (STARTS_WITH_CI(pszProduct + 8, "2P"))
1182 0 : paRecords = aMERIS_2P_Records;
1183 : else
1184 0 : return NULL;
1185 : }
1186 0 : else if (STARTS_WITH_CI(pszProduct, "SAR"))
1187 : /* ERS products in ENVISAT format have the same records of ASAR ones */
1188 0 : paRecords = aASAR_Records;
1189 : else
1190 0 : return NULL;
1191 :
1192 : /* strip trailing spaces */
1193 0 : for (nLen = (int)strlen(pszDataset); nLen && pszDataset[nLen - 1] == ' ';
1194 0 : --nLen)
1195 : ;
1196 :
1197 0 : pRecordDescr = paRecords;
1198 0 : while (pRecordDescr->szName != NULL)
1199 : {
1200 0 : if (EQUALN(pRecordDescr->szName, pszDataset, nLen))
1201 0 : return pRecordDescr;
1202 : else
1203 0 : ++pRecordDescr;
1204 : }
1205 :
1206 0 : return NULL;
1207 : }
1208 :
1209 0 : CPLErr EnvisatFile_GetFieldAsString(const void *pRecord, int nRecLen,
1210 : const EnvisatFieldDescr *pField,
1211 : char *szBuf, size_t nBufLen)
1212 : {
1213 : int ret;
1214 0 : int i, nOffset = 0;
1215 : const GByte *pData;
1216 :
1217 0 : if (pField->nOffset >= nRecLen)
1218 : {
1219 0 : CPLDebug("EnvisatDataset",
1220 : "Field offset (%d) is greater than the record length (%d).",
1221 : pField->nOffset, nRecLen);
1222 :
1223 0 : return CE_Failure;
1224 : }
1225 :
1226 0 : pData = (const GByte *)pRecord + pField->nOffset;
1227 :
1228 0 : szBuf[0] = '\0';
1229 :
1230 0 : switch (pField->eType)
1231 : {
1232 0 : case EDT_Char:
1233 0 : memcpy((void *)szBuf, pData, pField->nCount);
1234 0 : szBuf[pField->nCount] = '\0';
1235 0 : break;
1236 0 : case EDT_UByte:
1237 : case EDT_SByte:
1238 0 : for (i = 0; i < pField->nCount; ++i)
1239 : {
1240 0 : if (i > 0)
1241 0 : szBuf[nOffset++] = ' ';
1242 0 : ret = snprintf(szBuf + nOffset, nBufLen - nOffset, "%d",
1243 0 : ((const char *)pData)[i]);
1244 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1245 0 : return CE_Failure;
1246 0 : nOffset += ret;
1247 : }
1248 0 : break;
1249 0 : case EDT_Int16:
1250 0 : for (i = 0; i < pField->nCount; ++i)
1251 : {
1252 : GInt16 nVal;
1253 0 : if (i > 0)
1254 0 : szBuf[nOffset++] = ' ';
1255 0 : memcpy(&nVal, pData + i * sizeof(nVal), sizeof(nVal));
1256 0 : ret = snprintf(szBuf + nOffset, nBufLen - nOffset, "%d",
1257 0 : CPL_MSBWORD16(nVal));
1258 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1259 0 : return CE_Failure;
1260 0 : nOffset += ret;
1261 : }
1262 0 : break;
1263 0 : case EDT_UInt16:
1264 0 : for (i = 0; i < pField->nCount; ++i)
1265 : {
1266 : GUInt16 nVal;
1267 0 : if (i > 0)
1268 0 : szBuf[nOffset++] = ' ';
1269 0 : memcpy(&nVal, pData + i * sizeof(nVal), sizeof(nVal));
1270 0 : ret = snprintf(szBuf + nOffset, nBufLen - nOffset, "%u",
1271 0 : CPL_MSBWORD16(nVal));
1272 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1273 0 : return CE_Failure;
1274 0 : nOffset += ret;
1275 : }
1276 0 : break;
1277 0 : case EDT_Int32:
1278 0 : for (i = 0; i < pField->nCount; ++i)
1279 : {
1280 : GInt32 nVal;
1281 0 : if (i > 0)
1282 0 : szBuf[nOffset++] = ' ';
1283 0 : memcpy(&nVal, pData + i * sizeof(nVal), sizeof(nVal));
1284 0 : ret = snprintf(szBuf + nOffset, nBufLen - nOffset, "%d",
1285 : CPL_MSBWORD32(nVal));
1286 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1287 0 : return CE_Failure;
1288 0 : nOffset += ret;
1289 : }
1290 0 : break;
1291 0 : case EDT_UInt32:
1292 0 : for (i = 0; i < pField->nCount; ++i)
1293 : {
1294 : GUInt32 nVal;
1295 0 : if (i > 0)
1296 0 : szBuf[nOffset++] = ' ';
1297 0 : memcpy(&nVal, pData + i * sizeof(nVal), sizeof(nVal));
1298 0 : ret = snprintf(szBuf + nOffset, nBufLen - nOffset, "%u",
1299 : CPL_MSBWORD32(nVal));
1300 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1301 0 : return CE_Failure;
1302 0 : nOffset += ret;
1303 : }
1304 0 : break;
1305 0 : case EDT_Float32:
1306 0 : for (i = 0; i < pField->nCount; ++i)
1307 : {
1308 : float fValue;
1309 0 : memcpy(&fValue, pData + i * sizeof(fValue), sizeof(fValue));
1310 : #ifdef CPL_LSB
1311 0 : CPL_SWAP32PTR(&fValue);
1312 : #endif
1313 :
1314 0 : if (i > 0)
1315 0 : szBuf[nOffset++] = ' ';
1316 0 : ret = CPLsnprintf(szBuf + nOffset, nBufLen - nOffset, "%f",
1317 : fValue);
1318 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1319 0 : return CE_Failure;
1320 0 : nOffset += ret;
1321 : }
1322 0 : break;
1323 0 : case EDT_Float64:
1324 0 : for (i = 0; i < pField->nCount; ++i)
1325 : {
1326 : double dfValue;
1327 0 : memcpy(&dfValue, pData + i * sizeof(dfValue), sizeof(dfValue));
1328 : #ifdef CPL_LSB
1329 0 : CPL_SWAPDOUBLE(&dfValue);
1330 : #endif
1331 0 : if (i > 0)
1332 0 : szBuf[nOffset++] = ' ';
1333 0 : ret = CPLsnprintf(szBuf + nOffset, nBufLen - nOffset, "%f",
1334 : dfValue);
1335 0 : if (ret < 0 || ret >= (int)nBufLen - nOffset)
1336 0 : return CE_Failure;
1337 0 : nOffset += ret;
1338 : }
1339 0 : break;
1340 : /*
1341 : case EDT_CInt16:
1342 : for (i = 0; i < pField->nCount; ++i)
1343 : {
1344 : if (i > 0)
1345 : szBuf[nOffset++] = ' ';
1346 : nOffset += sprintf(szBuf + nOffset, "(%d, %d)",
1347 : CPL_MSBWORD16(((const
1348 : GInt16*)pData)[2 * i]), CPL_MSBWORD16(((const GInt16*)pData)[2 *
1349 : i+1]));
1350 : }
1351 : break;
1352 : case EDT_CInt32:
1353 : for (i = 0; i < pField->nCount; ++i)
1354 : {
1355 : if (i > 0)
1356 : szBuf[nOffset++] = ' ';
1357 : nOffset += sprintf(szBuf + nOffset, "(%d, %d)",
1358 : CPL_MSBWORD32(((const
1359 : GInt32*)pData)[2 * i]), CPL_MSBWORD32(((const GInt32*)pData)[2 *
1360 : i+1]));
1361 : }
1362 : break;
1363 : case EDT_CFloat32:
1364 : for (i = 0; i < pField->nCount; ++i)
1365 : {
1366 : float fReal = ((const float*)pData)[2 * i];
1367 : float fImag = ((const float*)pData)[2 * i + 1];
1368 : #ifdef CPL_LSB
1369 : CPL_SWAP32PTR( &fReal );
1370 : CPL_SWAP32PTR( &fImag );
1371 : #endif
1372 : if (i > 0)
1373 : szBuf[nOffset++] = ' ';
1374 : nOffset += CPLsprintf(szBuf + nOffset, "(%f, %f)",
1375 : fReal, fImag);
1376 : }
1377 : break;
1378 : case EDT_CFloat64:
1379 : for (i = 0; i < pField->nCount; ++i)
1380 : {
1381 : double dfReal = ((const double*)pData)[2 * i];
1382 : double dfImag = ((const double*)pData)[2 * i + 1];
1383 : #ifdef CPL_LSB
1384 : CPL_SWAPDOUBLE( &dfReal );
1385 : CPL_SWAPDOUBLE( &dfImag );
1386 : #endif
1387 : if (i > 0)
1388 : szBuf[nOffset++] = ' ';
1389 : nOffset += CPLsprintf(szBuf + nOffset, "(%f, %f)",
1390 : dfReal, dfImag);
1391 : }
1392 : break;
1393 : */
1394 0 : case EDT_MJD:
1395 0 : CPLAssert(pField->nCount == 1);
1396 : {
1397 : GInt32 days;
1398 : GUInt32 seconds, microseconds;
1399 :
1400 0 : days = CPL_MSBWORD32(((const GInt32 *)pData)[0]);
1401 0 : seconds = CPL_MSBWORD32(((const GUInt32 *)pData)[1]);
1402 0 : microseconds = CPL_MSBWORD32(((const GUInt32 *)pData)[2]);
1403 :
1404 0 : ret = snprintf(szBuf, nBufLen, "%d, %u, %u", days, seconds,
1405 : microseconds);
1406 0 : if (ret < 0 || ret >= (int)nBufLen)
1407 0 : return CE_Failure;
1408 : }
1409 0 : break;
1410 0 : default:
1411 0 : CPLDebug("EnvisatDataset",
1412 : "Unabe to convert '%s' field to string: "
1413 : "unexpected data type '%d'.",
1414 0 : pField->szName, pField->eType);
1415 0 : return CE_Failure;
1416 : }
1417 :
1418 0 : return CE_None;
1419 : }
|