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

[netCDFJava #APE-712909]: How To Get Grib2Pds.TimeInterval of Grib2 File



Grib2Customizer.getForecastTimeInterval();

what is the large data processing system?

John

> Hello John,
> We are building a large data processing system with NetCDF java utilities, 
> nearly 90% of the codes are finished, however we are using low level Grib 
> APIs. I think totally substitution all the low level APIs into high level 
> APIs requires too much work. We just want to know how to retrieve the 
> forecast range when Grib2Pds.isTimeInterval() equals to "true". So could you 
> give me some suggestions?
> By the way, here is our Java simple demo girb2 decoder, could you give us an 
> equal demo please, using high level APIs like NetCDFFile.open()? Because the 
> documentations are not so detail, so we don't quite know about how to use the 
> high level APIs to decode grib files.
> 
> 
> import java.io.IOException;
> import ucar.nc2.grib.GribTables;
> import ucar.nc2.grib.grib1.*;
> import ucar.nc2.grib.grib1.Grib1Gds.LatLon;
> import ucar.nc2.grib.grib1.tables.Grib1ParamTableReader;
> import ucar.nc2.grib.grib2.*;
> import ucar.nc2.grib.grib2.table.*;
> import ucar.unidata.io.RandomAccessFile;
> 
> public class SimpleDecoder {
> 
> public static void readGrib2(String fileName) throws IOException {
> RandomAccessFile raf = new RandomAccessFile (fileName, "r");
> Grib2RecordScanner reader = new Grib2RecordScanner(raf);
> while (reader.hasNext()) {
> Grib2Record record = reader.next();
> Grib2SectionIdentification identification = record.getId();
> Grib2SectionGridDefinition gridDefinition = record.getGDSsection();
> Grib2Gds.LatLon gdsLatLon = (Grib2Gds.LatLon) gridDefinition.getGDS();
> Grib2Pds grib2Pds = record.getPDS();
> Grib2Customizer customizer = Grib2Customizer.factory (record);
> Grib2Customizer grib2Customizer = Grib2Customizer.factory( record );
> 
> //get Element Name
> GribTables.Parameter grib2Parameter = grib2Customizer.getParameter( 
> record.getIs().getDiscipline(), grib2Pds.getParameterCategory(), 
> grib2Pds.getParameterNumber() );
> String element = grib2Parameter.getName();
> String unit = grib2Parameter.getUnit();
> 
> int levelType = grib2Pds.getLevelType1();
> int level;
> if ( levelType == 100 )//Isobaric surface
> level = (int)record.getPDS().getLevelValue1() / 100;//Pa to hPa
> 
> int year = identification.getYear();
> int month =  identification.getMonth();
> int day = identification.getDay();
> int hour = identification.getHour();
> 
> int forecastTime = record.getPDS().getForecastTime();
> if ( grib2Pds.isTimeInterval() )
> {
> 
> }
> else
> {
> 
> }
> 
> //get grid range
> float startLatitude = gdsLatLon.la1;
> float endLatitude = gdsLatLon.la2;
> float LatitudeGridSpace = gdsLatLon.deltaLat;
> int ny = gdsLatLon.getNy();
> float startLongitude = gdsLatLon.lo1;
> float endLongitude = gdsLatLon.lo2;
> float longitudeGridSpace = gdsLatLon.deltaLon;
> int nx = gdsLatLon.getNx();
> 
> float data[] = record.readData( raf );//get Data
> }
> }
> }
> 
> 
> 
> > To: address@hidden
> > Subject: [netCDFJava #APE-712909]: How To Get Grib2Pds.TimeInterval of 
> > Grib2 File
> > Date: Thu, 16 Apr 2015 13:20:52 -0600
> > CC: address@hidden
> > From: address@hidden
> >
> > > Hello,
> > > When I'm decoding a Grib2 file, I meet some elements like APCP, whose 
> > > Grib2Pds.isTimeInterval() equals to "true", so maybe I should get the 
> > > Grib2Pds.TimeInterval.timeRangeLength instead of 
> > > Grib2Pds.getForecastTime(). But the Grib2Pds.TimeInterval is a static 
> > > nested class if Grib2Pds, so how can I get the variable of 
> > > Grib2Pds.TimeInterval with an instance of outer class Grib2Pds? Could you 
> > > provide me a demo Java program? Thanks.
> > >
> > > Ruotong Wang
> > >
> >
> > Hi Ruotong :
> >
> > We dont support the low level GRIB at a user level. Just open the file 
> > through NetcdfFile.open().
> >
> > John
> >
> > Ticket Details
> > ===================
> > Ticket ID: APE-712909
> > Department: Support netCDF Java
> > Priority: Normal
> > Status: Closed
> >
> 

Ticket Details
===================
Ticket ID: APE-712909
Department: Support netCDF Java
Priority: Normal
Status: Open


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.