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