У меня есть файл NetCDF, который был сгенерирован в результате численного моделирования. Данные хранятся с использованием масштабного коэффициента и смещения, пример из ncdump следующий:
float lon(lon) ;
lon:long_name = "longitude" ;
lon:standard_name = "coordinates_i" ;
lon:units = "degrees_east " ;
lon:scale_factor = 9.308405e-06f ;
lon:add_offset = 118.9597f ;
Эти данные должны плавно меняться от одного значения к другому.
Если я импортирую это используя netcdf4 или xarray e'g 'data = xr.open_dataset('path/to/file')
, тогда, когда я смотрю на координаты, данные были потеряны, и они больше не меняются плавно. вместо этого выглядит как
Если я импортирую, используя data = xr.open_dataset('path/to/file', mask_and_scale=False)
, тогда данные будут гладкими
, но это не очень полезно, так как не содержит нужной мне информации (немасштабировано). Мне кажется, что есть проблема точности, из-за которой «гладкость» данных находится на слишком высоком десятичном знаке и была потеряна.
Так что мой вопрос, есть ли способ повысить точность при импорте чтобы данные оставались гладкими и не становились ступенчатыми при использовании коэффициента масштабирования и смещения? возможно, используя модуль decimal
или что-то еще?
В качестве альтернативы, есть ли способ импортировать сохраненные данные, масштабный коэффициент и смещение отдельно. и затем применить их в моем python сценарии, где я могу обеспечить более высокую точность?
Я пробовал несколько различных подходов, и пока ничего не работает. Заранее спасибо за помощь.