[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDFJava #WHR-919836]: Problem reading grib2 files in memory
- Subject: [netCDFJava #WHR-919836]: Problem reading grib2 files in memory
- Date: Mon, 18 Mar 2013 07:38:57 -0600
Hi Adrian:
Yes, Im thinking it may work when opening an individual grib file, but not for
a collection, which would require special processing.
Can you say why you are trying to use these files from memory? Generally we
assume that datasets will not fit into memory.
John
> Hi,
>
> Thanks very much for the quick response.
>
> The fixed worked in as far as I can open Grib1 and 2 files in memory - but
> the class ucar.nc2.grib.GribCollection creates a new RandomAccessFile when
> the method getDataRaf is called. See the included stack trace (please ignore
> the version name that's just a quick renamed to get the artifacts into nexus).
>
> at
> ucar.nc2.grib.GribCollection.getDataRaf(GribCollection.java:345)[grib-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.grib.grib2.Grib2Iosp$DataReader.read(Grib2Iosp.java:974)[grib-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.grib.grib2.Grib2Iosp.readDataFromCollection(Grib2Iosp.java:913)[grib-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.grib.grib2.Grib2Iosp.readData(Grib2Iosp.java:723)[grib-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.NetcdfFile.readData(NetcdfFile.java:1930)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.Variable.reallyRead(Variable.java:894)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.Variable._read(Variable.java:880)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.Variable.read(Variable.java:692)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.dataset.VariableDS.reallyRead(VariableDS.java:553)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.dataset.VariableDS._read(VariableDS.java:533)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.Variable.read(Variable.java:692)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.Variable.read(Variable.java:638)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.dt.grid.GeoGrid.readDataSlice(GeoGrid.java:607)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
> at
> ucar.nc2.dt.grid.GeoGrid.readDataSlice(GeoGrid.java:518)[netcdf-4.3.16-gribinmemoryfix.jar:4.3.16-gribinmemoryfix]
>
> Cheers
>
> Adrian
>
> -----Original Message-----
> From: Unidata netCDF Java Support [mailto:address@hidden]
> Sent: Saturday, 16 March 2013 10:49 a.m.
> To: Adrian Jarvis
> Cc: address@hidden
> Subject: [netCDFJava #WHR-919836]: Problem reading grib2 files in memory
>
> Hi Adrian,
>
> Thank you for bringing this issue to our attention. We believe we have
> implemented a solution in our latest release (4.3.16), though it is not
> tested, and we would appreciate your feedback on it. Note that, due to the
> nature of grib files and their associated tables (as opposed to a
> self-contained dataset such as NetCDF), the netcdf-java code will still need
> to maintain ncx and gbx9 files on disk.
>
> Cheers,
> Lansing Madry
> Unidata
> Boulder, Colorado
>
> > Hi,
> >
> > I have run into a bug while trying to read a grib2 files from a byte
> > array.
> >
> > I am trying to use the static method
> > NetcdfFile openInMemory(String name, byte[] data)
> >
> > But the Grib2Iosp clas is calling the makeIndex method in the
> > Grib2Index cl= ass which is using the location to try and open a
> > RandomAccessFile using th= e filename. It seems the Grib2Index class
> > is written based on files on dis= k and does not support data in memory.
> >
> > This all fails in a heap since there isn't a file on disk.
> >
> > Here is the stack trace I'm getting:
> > Exception in thread "main" java.io.FileNotFoundException: test-file
> > (The system cannot find the file specified) at
> > java.io.RandomAccessFile.open(Native Method) at
> > java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
> > at java.io.RandomAccessFile.<init>(RandomAccessFile.java:118)
> > at ucar.unidata.io.RandomAccessFile.<init>(RandomAccessFile.java:277)
> > at ucar.unidata.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
> > at ucar.nc2.grib.grib2.Grib2Index.makeIndex(Grib2Index.java:234)
> > at
> > ucar.nc2.grib.GribIndex.makeGribCollectionFromSingleFile(GribIndex.jav
> > a:112) at ucar.nc2.grib.grib2.Grib2Iosp.open(Grib2Iosp.java:310)
> > at ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:1499)
> > at ucar.nc2.NetcdfFile.open(NetcdfFile.java:887)
> > at ucar.nc2.NetcdfFile.openInMemory(NetcdfFile.java:793)
> > at griberror.TestGribReading.main(TestGribReading.java:22)
> >
> > Cheers
> >
> > Adrian Jarvis
> > Senior Java Developer,
> > MetService New Zealand Ltd
> >
> >
> >
>
>
> Ticket Details
> ===================
> Ticket ID: WHR-919836
> Department: Support netCDF Java
> Priority: High
> Status: Open
>
>
Ticket Details
===================
Ticket ID: WHR-919836
Department: Support netCDF Java
Priority: High
Status: Open