This convention does not standardize variable names.
NetCDF variables that contain coordinate data are referred to as coordinate variables, auxiliary coordinate variables, scalar coordinate variables, or multidimensional coordinate variables.
The NUG conventions (
NUG section 8.1
NUG section 8.1 ) provide the
_FillValue
, missing_value
,
valid_min
, valid_max
, and
valid_range
attributes to indicate missing
data.
The NUG conventions for missing data changed significantly between
version 2.3 and version 2.4. Since version 2.4 the NUG defines missing
data as all values outside of the valid_range
, and
specifies how the valid_range
should be defined from
the _FillValue
(which has library specified default
values) if it hasn't been explicitly specified. If only one missing
value is needed for a variable then we recommend strongly that this value be specified
using the _FillValue
attribute. Doing this guarantees
that the missing value will be recognized by generic applications that
follow either the before or after version 2.4 conventions.
The scalar attribute with the name _FillValue
and of the same type as its variable is recognized by the netCDF library
as the value used to pre-fill disk space allocated to the variable. This
value is considered to be a special value that indicates undefined or
missing data, and is returned when reading values that were not written.
The _FillValue
should be outside the range specified
by valid_range
(if used) for a variable. The netCDF
library defines a default fill value for each data type (
NUG section 7.16
NUG section 7.16 ).
The missing_value
attribute is considered deprecated by the NUG and we do not recommend
its use. However for backwards compatibility with COARDS this standard
continues to recognize the use of the missing_value
attribute to indicate undefined or missing data.
The missing values of a variable with
scale_factor
and/or add_offset
attributes (see section Section 8.1, “Packed Data”) are interpreted
relative to the variable's external values
, i.e., the values stored in the netCDF file. (a.k.a. the packed values, the raw values, the values
stored in the netCDF file), not the values that result after the scale
and offset are applied. Applications that process variables
that have attributes to indicate both a transformation (via a scale
and/or offset) and missing values should first check that a data value
is valid, and then apply the transformation. Note that values that are
identified as missing should not be transformed. Since the missing value
is outside the valid range it is possible that applying a transformation
to it could result in an invalid operation. For example, the default
_FillValue
is very close to the maximum representable
value of IEEE single precision floats, and multiplying it by 100
produces an "Infinity" (using single precision arithmetic).
This convention defines
a two-element vector attribute actual_range
for
variables containing numeric data. If the variable is packed using the
scale_factor
and add_offset
attributes (see section 8.1), the elements of the
actual_range
should have the type intended for the
unpacked data. The elements of actual_range
must be
exactly equal to the minimum and the maximum data values which occur in
the variable (when unpacked if packing is used), and both must be within
the valid_range
if specified. If the data is all
missing or invalid, the actual_range
attribute cannot
be used.