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.
Hiya Chad,There are some standalone routines that you should look at: Grib1Indexer, Grib1GetData and Grib1Dump . Also the Decoders home page has some important information
http://www.unidata.ucar.edu/software/decoders/ especially the Index tag. There's also JavaDocs on the page.The Grib1GetData routine is basically a template for your code below, it might be a good starting point.
The package is currently under a major refactor for performance reasons and for new capabilities, ie processing Ensemble type data, etc. The API will change from the version that you are using.
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: