NetCDF не имеет формата с фиксированной точностью, который бы сэкономил место так, как вы ожидаете. (См. здесь для типов данных). Обычный способ экономии места - это кодирование в виде короткого целого числа и установка атрибутов переменных scale_factor
и add_offset
.
В вашем случае вы умножили бы на 100, конвертировали в короткие и получили scale_factor=0.01
. Выполнение этого в R, вероятно, является большой работой, но утилита nco справится с этим в несколько строк.
Допустим, у вас есть переменная с именем rh
.
ncap2 -v -s 'rh=short(100*rh)' in.nc out.nc
ncatted -O -h -a add_offset,rh,o,f,0 out.nc
ncatted -O -h -a scale_factor,rh,o,f,0.01 out.nc
Если вы хотите сэкономить память при чтении переменной в R, вы можете быть разочарованы, так как она будет просто преобразована обратно в число с плавающей точкой при чтении.