[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New decoders release



Hiya,

I'm pleased to announce the release of Decoders 3.0.4

This release involved rewriting all the perl decoders so the date checking is
more robust. The wrong date problem is the most prominent error in all the text
type bulletins. The dates are now checked against the current time and reports
with future dates and dates older than 24 hours are not decoded. The
consequence of the new code is that decoding data older than 24 hours now
doesn't work. The next release might have a flag to bypass the robust date
checking. Also, the output netCDF file now includes the century as well as the
decade, so the pqact entries need to be changed to include century,

DDS|IDS ^S(A....|P....|XUS8.) .... ([0-3][0-9])
        PIPE    /local/ldm/decoders/metar2nc
        etc/metar.cdl
        data/pub/decoded/netcdf/surface
        (\2:yyyy)(\2:mm)

(\2:yy) -> (\2:yyyy) for the old entries. This change needs to be done on all
the perl decoders.

A new metar2nc.new1 decoder was written that creates a netCDF file that has
all the station information at the beginning of the file and the reports are
appended as they arrive. Many of the variables that have different units were
combined under the one variable, ie wind speed could arrive in knots or m/s
are now stored only as m/s.  This creates a smaller netCDF file and it
eliminates the need for programs using the file from doing the conversion on
the fly.  Here's the information listed in the metar.cdl.new1

The metar2nc.new1 decoder creates a netCDF file based on a set of variables
that are commonly used in display programs. Since not all the variables
that are possible(over 135) are written, the raw METAR report is stored
for future decoding of variables not explicited specified. The
lastReport variable gives the record number of the most recent report
for a particular station and the prevReport variable is the record
number of the next most recent. By following the links, all the reports
for a particular station can be extracted. The cdl file metar.cdl.new1
is generated from sfmetar_sa.tbl file. It's important to keep the cdl
insync with sfmetar_sa.tbl file because the cdl station information is
in the same order as the sfmetar_sa.tbl file. A script makeCDL1.pl will
create a new cdl for a new sfmetar_sa.tbl file if necessary.


There are more new decoders that bust bulletins apart and write the reports
under the station name under a day named directory. ie

# All aviation reports including metar tests, broken/written to stn files
DDS|IDS ^S(A....|P....|XUS8.) .... ([0-3][0-9])
        PIPE    /local/ldm/decoders/metarWriter
        data/pub/raw/metar
        (\2:yyyy)(\2:mm)
#
The feedtype and pattern will be the same as the *2nc type decoders.
There are decoders for the METAR, synoptic, upperair, buoy, and zone reports.

# zone reports, broken/written to zone files
DDS|IDS ^FOUS5. .... ([0-3][0-9])
        PIPE    /local/ldm/decoders/zoneWriter
        data/pub/raw/zone
        (\1:yyyy)(\1:mm)

Make sure that the first line in all perl decoders match the perl install point
on your system. Also, there is a bug in perl version 5.8.0 that causes the
decoders to hang, eat cpu resources, and not decode products. The only solution 
is to update to a later release ie  5.8.4


There has been bug fixes to the gribtonc code:

- memory error when more than 32 forecast times
- gribtocdl creating a cdl that produces an extra record in the netCDF file
- more robust checking for parameter suffixes.

As always, if there are any question send them to address@hidden

Thanks,
Robb...


===============================================================================
Robb Kambic                                Unidata Program Center
Software Engineer III                      Univ. Corp for Atmospheric Research
address@hidden             WWW: http://www.unidata.ucar.edu/
===============================================================================