[netcdf-java] Data precision while aggregating data

John Caron caron at unidata.ucar.edu
Thu May 15 10:54:56 MDT 2008


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
> 


More information about the netcdf-java mailing list