Re: [netcdf-java] Data precision while aggregating data

Hi Sachim:

Im trying to understand this problem.

How did you decide that "47865.79166666651" was the correct value of the time?

Sachin Kumar Bhate wrote:
John,

The NcML file shown below attempts to aggregate time series files, overriding
the time values for each 'time' variable.

The aggregation works great and I can access the time values as well,
but I see that there is loss of precision in the new time values, when I access
values for a coordinate data variable.

For example:

<<<<
URI = 'http://www.gri.msstate.edu/rsearch_data/nopp/test_agg_precision.ncml';
   String var="T_20";

   GridDataset gid = GridDataset.open(URI);
   GeoGrid Grid = gid.findGridByName(var);
   GridCoordSys GridCoordS = (GridCoordSys) Grid.getCoordinateSystem();
java.util.Date d[] = GridCoordS.getTimeDates();

    System.out.println("DateString: "+d[0].toGMTString());
 >>>>>

The output from the above code for the 1st time value in the java Date array.

DateString: 5 Dec 1989 18:59:59 GMT

But, the correct value should be

DateString: 5 Dec 1989 19:00:00 GMT


Just out of curiosity I tried to print the 1st time value being read from the NcML,
by 'ucar.nc2.ncml.NcmlReader.readValues()'. I get,

Start = 47865.79166666651;   (Parsed as double)

but,  the 1st start value specified in NcML is  '47865.7916666665110000'.

Don't care about the tailing '0s', but the digit '1' in the 12th decimal place is being dropped and may be causing this
problem.

Although, parsing it as a 'BigDecimal' does read in the correct value.

Start-BigDecimal: 47865.7916666665110000


I am just guessing here, I am not sure if this is what causing the precision problem.

Will appreciate your help.

thanks..

Sachin



  • 2008 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: