конфликт между типом атрибута missing_value и типом переменной - PullRequest
1 голос
/ 05 июля 2019

, когда я пытаюсь прочитать файл netcdf, сгенерированный мной с использованием класса python netCDF4, я получаю сообщение вроде:

Предупреждение пользователя: ПРЕДУПРЕЖДЕНИЕ: пропущенное_значение не используется, так как оно не может быть безопасно приведен к типу переменной

если я попытаюсь прочитать данные Q2_daily, то здесь из моего nc-файла будет текст дампа:

float Q2_daily(time, lev, lat, lon) ;
    Q2_daily:_FillValue = 1.e+20f ;
    Q2_daily:missing_value = 1.e+20 ;
    Q2_daily:long_name = "Q2_daily" ;
    Q2_daily:units = "various" ;

Итак, python netCDF4 ставит «f» в конце 20, однако, когда я указываю 1e20 в качестве моей переменной missing_value, он не появляется. Я могу переписать это с помощью ncatted, однако я бы хотел, чтобы они были согласованы. Я понимаю, что _FillValue и missing_value часто для разных вещей, однако я хотел бы, чтобы они равнялись одному значению.

Я подозреваю, что netCDF4 должен автоматически устанавливать тип для отсутствующего значения, чтобы он был эквивалентен переменной, которую он мог бы представлять?

Спасибо, Марк.

Я пытался сделать несколько простых вещей, таких как наложение float() на скаляр или np.float(), но это, похоже, не имеет значения.

Код, который записывает атрибут и значение:

variable_name_ids[cnt].setncattr(variable_meta[0],variable_meta[1])

Я безуспешно пытался форсировать тип.

Я хотел бы видеть: Q2_daily:missing_value = 1.e+20f ; в ncdump.

...