Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Chris Webster a écrit :
I went to convert my _FillValue to NAN; I found that upon reading data and doing comparisons a false is always returned:if (datum[i] == vp->attr->missingValue) // is always false if nan'sAt first I thought I was back in the world of round off hell until I was pointed to:http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm specifically these lines: "A NAN will never return true on a <= comparison," and"One other complication is that comparisons involving NANs are always supposed to return false, "I would like to suggest that mention of this be made on the netCDF Best Practices page where you point people to use NAN as the _FillValue....then I'd like to whine that I have to retro-fit all my code and double the number of checks for every data point to determine if it's _Fill/missing (...using isnan(3)). :)--Chris
In our code we always compare default values (_FillValue or missing_value) with a function in case of theese are NaN. This function looks like: Boolean IsDefault(double X, Y) { if (isnan(X)) return isnan(Y) else return X == Y; } For files we create we never use a NaN value but a fully representable float (i.e. a number which does not have representation problem and rounding risk) like 2.0E200 -- Philippe Poilbarbe CLS Océanographie Spatiale mailto:Philippe.Poilbarbe@xxxxxxxxxxxx phoneto:+33(5)61394727 Parc technologique du canal 8-10, Rue Hermes 31526 Ramonville St-Agne
netcdfgroup
archives: