Problem#1 (loading the Geolocation data structure)
Problem#2 (extracting the nominal number of sweeps from the specific product
header)
Day 1 Day 2 Day 3 Day 4 Day 5
Day 6 Day 7 Day 8 Day 9 Day 10
MA
NOM
NOM
NOM
off
off
NOM
NOM
off
off
GEOADS = BEAT_FETCH ( PF, 'GEOLOCATION ADS' )
results in error message
% BEAT-IDL ERROR -102: "invalid fieldname argument (GEOLOCATION ADS)
(libbeat/beat-type.c:814)"
SPH = BEAT_FETCH ( PF, 'SPH' )
the first line results in error message
% BEAT-IDL ERROR -300: "product error detected (value for ascii integer too
large for int16)"
but only for data from orbits 25126 (20Dec06) and later, earlier orbits OK.
NOMSWP = SPH.NUM_SWEEPS_PER_SCAN
Mode Dates
FR17 09JUL02 23SEP02 23MAR03 22SEP03 21MAR04
RR17 17SEP04
RR27 28JAN05 21MAR05 16MAY05 10AUG05
12JAN06 13MAR06 25SEP06 14JUN06
04JAN07
Problem#1: The following works (insert '_' in the field_name)
GEOADS = BEAT_FETCH ( PF, 'GEOLOCATION_ADS' )Full explanation from SN:
This is a change that we introduced from BEAT v3 to v4. Previously it was possible to traverse into data sets by using either the data set name (which could contain spaces) or the corresponding field_name of the data set (which contained underscores). In order to streamline the software and make it better compatible with other data formats we dropped the special treatment of data set names (which was an ENVISAT format specific feature). I would advise you to have a look at the several CHANGES documents that are include with the BEAT package. Although we tried to maintain backward compatibility, a lot has changed between v3.x and the current v4.2.
Problem#2: The following works (add extra argument specifying required field directly)
NOMSWP = BEAT_FETCH ( PF, 'SPH', 'NUM_SWEEPS_PER_SCAN' )This is actually a more subtle problem due to an overflow in the SWEEP_ID field in the MIPAS Specific Product Header which happened between orbit 25125 (20Dec06) (SWEEP_ID=+31118) and 25126 (SWEEP_ID=+34020) - there is some ambiguity as to whether this should be a signed or unsigned 16-bit field. BEAT 4.2.0 actually checks this - the earlier version didn't - so reading the entire SPH is now flagged as causing an error.
Assuming you don't specifically want the SWEEP_ID value, the solution - as above - is to use a second argument to the BEAT_FETCH procedure that directly targets the field that you do want. If you do want the SWEEP_ID field (or the entire SPH), the following is suggested (until the next BEAT release)
If you have downloaded the source package of BEAT (i.e. Linux/Mac OS X/Unix platform) you can perform a small patch yourself by editing the file src/beat-dd-dictionary.c, searching for '"sweep_id"', changing the 'native_type_int16' in the first line that you find to 'native_type_uint16', and rebuilding and installing BEAT.