Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Chad,I forgot to mention that one could use the netcdf-java package also to extract the data at a higher level.
http://www.unidata.ucar.edu/software/netcdf-java/There's a interface to the package called ToolsUI which permits one to look at/display the data.
It's worth you time to inspect this package instead of dealing with the low level details of Grib unless you need too. There are netcdf-java Java Docs on the page too..
Robb... On Fri, 24 Jul 2009, Chad Saxon wrote:
Hi all, i recently have started to looking into reading grib1 and grib2 files using the netcdf java library and need to extract the variables in the file along with their relative data. i have some code here: public class GribPlugin { GribChecker file = new GribChecker(); Grib1GridDefinitionSection gridSection; Grib1Input gribInput; Grib1ProductDefinitionSection productSection; Grib2ExtractRawData extract; ArrayList<String> gribRecords; ArrayList<String> gribProducts; String testfile = "Pacific.wind.grb"; static int type; public GribPlugin() throws IOException, NoValidGribException, NotSupportedException{ ucar.unidata.io.RandomAccessFile gribfile = new ucar.unidata.io.RandomAccessFile(testfile, "rw"); type = file.getEdition(gribfile); System.out.println("File read in: " + testfile + ", Type of Grib File is " + type); gribInput = new Grib1Input(gribfile); gribRecords = new ArrayList<String>(); gribProducts = new ArrayList<String>(); gribRecords = gribInput.getRecords(); gribProducts = gribInput.getProducts(); //extract = new Grib2ExtractRawData(gribfile); //gribRecords = extract.getRecords(); //gribProducts = extract.getProducts(); System.out.println("number of grib records: " + gribRecords.size()); System.out.println("number of grib products: " + gribProducts.size()); //System.out.println(gridSection.getNx() + " " + gridSection.getNy()); //System.out.println("First lat coordinate: " + gridSection.getLa1() + " Last lat coordinate: " + gridSection.getLa2()); //System.out.println("First lon coordinate: " + gridSection.getLo1() + " Last lon coordinate: " + gridSection.getLo2()); } a printout of this code with this particular file yields: File read in: Pacific.wind.grb, Type of Grib File is 1 number of grib records: 0 number of grib products: 0 I guess i don't know what i am looking for to get the data and am not as familiar with this type of data as i should be. I guess i need to read up on what "records" or "products" really are but i was wondering if there was any examples hidden somewhere in some javadoc from the netcdf java website?? thanks all for the help and suggestions! Chad
=============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research rkambic@xxxxxxxxxxxxxxxx WWW: http://www.unidata.ucar.edu/ ===============================================================================
netcdf-java
archives: