У меня есть отдельные 6-часовые файлы NetCDF в год, но значение времени повреждено, т.е.timedelta64 [нс] 00:00:00 для каждого файла.Моя цель - исправить это и объединить в один объединенный файл, используя xarrays.Файл имеет CF-соглашение и время в греческом языке Proleptic.
Я пытался сохранить значения оси времени как метку времени, но я получил ошибку при записи обратно в формат .nc, говоря ValueError: не удалось предотвратить перезапись существующегоключевой календарь в attrs по переменной time.
Я пытаюсь обновить значения времени в секундах с 01-01-1970.Это работает, но проблема в том, что когда я читаю сохраненный файл, мне бы хотелось, чтобы время отображалось в фактическом гггг-мм-дд, чтобы я мог использовать метод .sel для быстрого просмотра данных.
IsЕсть лучший способ записать мой выходной файл, сохраняя стандартные соглашения Proleptic Gregorian, так что когда я читаю его обратно, моя временная ось автоматически переводится в гггг-мм-дд вместо преобразования его из секунд в формат гггг-мм-ддкаждый раз после прочтения.
import xarray as xr
big_ds = xr.open_mfdataset('path/*', autoclose=True, concat_dim='time')
dt = pd.date_range(start=datetime(2000,1,1), end=datetime(2000,12,31,18), freq='6H')
big_ds.time.values = (dt - std_time).total_seconds()
big_ds.to_netcdf('outfile.nc')
test_ds = xr.open_dataset('outfile.nc')
test_ds.time
>><xarray.DataArray 'time' (time: 1464)>
array([9.466848e+08, 9.467064e+08, 9.467280e+08, ..., 9.782424e+08,
9.782640e+08, 9.782856e+08])
Coordinates:
* time (time) float64 9.467e+08 9.467e+08 ... 9.783e+08 9.783e+08
Attributes:
calendar: proleptic_gregorian