-
Notifications
You must be signed in to change notification settings - Fork 81
Description
This seems to be a problem with 5.4-MAINT up to the current (7?) development branch.
A user sent me a GRIB2 file that netCDF-Java will open, but when one then tries to extract a variable, an "Unsupported DRS type = 42" exception is thrown by the Grib2DataReader.factory method. (But note that the same exception could be thrown by Grib2DataReader.getData.)
Comparison of the switch statements in these methods to ECMWF's data representation template list, several such templates are not handled. But for the moment, 42 is the one of concern.
A stack trace is appended (using 5.4-MAINT), but note that the line numbers in Grib2Drs and Grib2DataReader are slightly off as I inserted some logging.
A sample file that demonstrates the problem is here on Dropbox.
The user also comments that: "As far as I have understood, this file has been generated by using ECMWF's ECCODES library and it originates from MetCoOp (251) center."
--
java.lang.RuntimeException: Unsupported DRS type = 42
at ucar.nc2.grib.grib2.Grib2Drs.factory(Grib2Drs.java:39)
at ucar.nc2.grib.grib2.Grib2SectionDataRepresentation.getDrs(Grib2SectionDataRepresentation.java:83)
at ucar.nc2.grib.grib2.Grib2Record.readData(Grib2Record.java:319)
at ucar.nc2.grib.collection.GribDataReader$Grib2DataReader.readData(GribDataReader.java:474)
at ucar.nc2.grib.collection.GribDataReader.read(GribDataReader.java:273)
at ucar.nc2.grib.collection.GribDataReader.readDataFromCollection(GribDataReader.java:116)
at ucar.nc2.grib.collection.GribDataReader.readData(GribDataReader.java:81)
at ucar.nc2.grib.collection.GribIosp.readData(GribIosp.java:1085)
at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:2122)
at ucar.nc2.Variable.reallyRead(Variable.java:797)
at ucar.nc2.Variable._read(Variable.java:736)
at ucar.nc2.Variable.read(Variable.java:614)
at ucar.nc2.dataset.VariableDS.reallyRead(VariableDS.java:459)
at ucar.nc2.dataset.VariableDS._read(VariableDS.java:432)
at ucar.nc2.dataset.VariableDS._read(VariableDS.java:442)
at ucar.nc2.Variable.read(Variable.java:600)
at ucar.nc2.Variable.read(Variable.java:546)
at gov.nasa.giss.data.nc.array.NcArray2D.doSlice(NcArray2D.java:363)
...