how to determine the values for the scale_factor and scale_factor
Added by pooran khedri over 5 years ago
Hi everybody,
I need ta add the add_offset and scale_factor to a netcdf file, this file contains meterological data. I do not know how to set the correct value for them.
could you please explain to me how to determine the values for the scale_factor and scale_factor?
Any help would be appreciated.
Pooran
Replies (1)
RE: how to determine the values for the scale_factor and scale_factor - Added by Karin Meier-Fleischer over 5 years ago
Hi pooran,
see UNIDATA's documentation about packed data values.
Packed Data Values Conventions for packing numeric data to save space have some subtleties. Packed data is stored in a netCDF file using a smaller data type than the original data, for example, packing doubles into shorts. The netCDF library itself does not do packing and unpacking, but the Java-netCDF library will do automatic unpacking, see class VariableDS. Recommendations For each variable with packed data, add two attributes called scale_factor and add_offset, such that unpacked_value = packed_value * scale_factor + add_offset The type of the stored variable is the type of the packed data type, typically byte, short, or int. The type of the scale_factor and add_offset attributes should be the type that you want the unpacked data to be, typically float or double. To compute the scale and offset for maximum precision packing of a set of numbers, use: add_offset = dataMin scale_factor = (dataMax - dataMin) / (2^n - 1) where n is the number of bits of the packed (integer) data type. To avoid introducing a bias into the unpacked values due to truncation when packing, round to the nearest integer rather than just truncating towards zero: packed_value = nint((unpacked_value - add_offset) / scale_factor) The precision of the data will be 1.0 / scale_factor. Example, packing 32-bit floats into 16-bit shorts: variables: short data(z, y, x) ; data:scale_offset = 34.02f ; data:add_offset = 1.54f ;
To add attributes to a variable use the CDO operator setattribute.
-Karin