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/
===============================================================================