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

[netCDFJava #WHR-919836]: Problem reading grib2 files in memory

This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.


  • Subject: [netCDFJava #WHR-919836]: Problem reading grib2 files in memory
  • Date: Fri, 15 Mar 2013 15:48:59 -0600

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.java: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