NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
NOTE: The decoders
mailing list is no longer active. The list archives are made available for historical reasons.
Thanks in advance. ------------ rec 98:1554711:date 2008080400 TMP kpds5=11 kpds6=105 kpds7=2 levels=(0,2) grid=16 2 m above gnd 24hr fcst: TMP=Temp. [K] timerange 0 P1 24 P2 0 TimeU 1 nx 145 ny 73 GDS grid 0 num_in_ave 0 missing 0 center 1 subcenter 0 process 45 Table 1 scan: WE:SN winds(N/S) latlon: lat -90.000000 to 90.000000 by 2.500000 nxny 10585 long 0.000000 to 360.000000 by 2.500000, (145 x 73) scan 64 mode 128 bdsgrid 1-- The following is how I use the grib indexer to get the grib data. RandomAccessFile raf = new RandomAccessFile(filePath, "r"); Grib1Indexer indexer = new Grib1Indexer(); PrintStream ps = new PrintStream(indexPath); indexer.writeFileIndex(raf, ps, false ); Index index = new Index(); boolean rc = index.open(indexPath); ArrayList gribIndexRecords = index.getGribRecords(); ArrayList<GdsRecord> gdsRecords = index.getHorizCoordSys(); // // Build a hashmap for the GDS keys. // java.util.HashMap gdsMap = new java.util.HashMap(); for (int a = 0; a < gdsRecords.size(); a++) { GdsRecord gdsRecord = gdsRecords.get(a); gdsMap.put(gdsRecord.gdsKey, gdsRecord); } for (Iterator it = gribIndexRecords.iterator (); it.hasNext (); ) { zz++; GribRecord gribRecord = (GribRecord)it.next(); if (gribRecord != null) { // //Select only temperature. // if (gribRecord.paramNumber == 11 ) { if (gribRecord.levelType1 == 105) { if (gribRecord.levelValue1 == 2.0) { if (gribRecord.forecastTime == 24) { Grib1Data grib1data = new Grib1Data(raf); if (gdsMap.get(gribRecord.gdsKey) != null) { GdsRecord gds = (GdsRecord)gdsMap.get(gribRecord.gdsKey); System.out.println("Dx: " + gds.dx); System.out.println("Dy: " + gds.dy); System.out.println("Grid Shape Code: " + gds.grid_shape_code); System.out.println("Grid Type: " + gds.grid_type); System.out.println("La1: " + gds.La1); System.out.println("LaD: " + gds.LaD); System.out.println("Latin1: " + gds.latin1); System.out.println("Latin2: " + gds.latin2); System.out.println("Lo1: " + gds.Lo1); System.out.println("LoV: " + gds.LoV); System.out.println("Major Axis Earth " + gds.major_axis_earth); System.out.println("Minor Axis Earth " + gds.minor_axis_earth); System.out.println("Nx: " + gds.nx); System.out.println("Ny: " + gds.ny); System.out.println("Radius Spherical Earth: " + gds.radius_spherical_earth); System.out.println("Resolution: " + gds.resolution); System.out.println("Winds: " + gds.winds); } float[] arr = grib1data.getData(gribRecord.offset1, gribRecord.decimalScale, gribRecord.bmsExists); } // hour 24 } // 2m } //above ground } // end of temperature } // grib record is not null } // end for Sincerely, Pelin Bali WeatherPredict Consulting, Inc. 3200 Atlantic Avenue, Suite 114 Raleigh, NC 27604 Phone (Direct): 919-239-8833 Phone (Main) : 919-876-3633 Fax : 919-876-4469 "Imagination will often carry us to worlds that never were. But without it we go nowhere." - Carl Sagan (Cosmos - 1980)
decoders
archives: