Возможно ли с помощью Python + netCDF4 открыть существующий файл NetCDF и изменить одно из измерений с фиксированного размера на неограниченный размер, чтобы я мог добавлять к нему данные?
Я нашел этот вопрос/ответ, в котором перечислены несколько вариантов выполнения этого с помощью NCO/xarray, но я специально ищу метод с использованием пакета netCDF4.
Ниже приведен минимальный пример, который создает файл NetCDF с фиксированным размером (этой части, конечно, не существует в реальности, иначе я мог бы просто создать файл с неограниченным размером...), а затем снова открывает его, пытаясь изменить измерение time
. У netCDF4.Dimension time_dim
есть функция/метод isunlimited()
для проверки того, является ли измерение неограниченным или нет, но ничего подобного, например. make_unlimited()
, на что я и надеялся.
import netCDF4 as nc4
import numpy as np
# Create dataset for testing
nc1 = nc4.Dataset('test.nc', 'w')
dim = nc1.createDimension('time', 10)
var = nc1.createVariable('time', 'f8', 'time')
var[:] = np.arange(10)
nc1.close()
# Read it back
nc2 = nc4.Dataset('test.nc', 'a')
time_dim = nc2.dimensions['time']
# ...
# (1) Make time_dim unlimited
# (2) Append some data
# ...
nc2.close()
nc2.renameDimension('time', 'tmp_time)
перед созданием нового с именемtime
. - person Mike Müller   schedule 01.12.2017