LCOV - code coverage report
Current view: directory - frmts/envisat - records.c (source / functions) Found Hit Coverage
Test: gdal_filtered.info Lines: 90 45 50.0 %
Date: 2011-12-18 Functions: 2 2 100.0 %

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

Generated by: LCOV version 1.7