Это можно сделать с помощью netCDF4
(библиотека Python низкоуровневых привязок NetCDF).Просто назначьте срез переменной набора данных и, если нужно, впоследствии вызовите метод набора данных .sync()
, чтобы не допустить задержки до того, как эти изменения будут сброшены в файл.
Обратите внимание, что этот подход также предоставляет возможность постепенно увеличивать измерение массива (вызывая createDimension
с размером None
, делая его первым измерением переменной и итеративно присваивая постепенно увеличивающиеся индексы вдольэто измерение переменной).
Хотя записи окна произвольного доступа (т. е. подмножества), по-видимому, требуют пакета более низкого уровня, более систематические записи подмножества (в конечном итоге охватывающие весь массив) могут выполняться постепенно с помощью xarray
(указав параметр размера куска для запуска использования dask.array
бэкэнда) и при условии, что ваш алгоритм подвергается рефакторингу, так что основной цикл происходит в вызове dask / xarray store-to-file.Это означает, что вы не будете иметь явного контроля над последовательностью, в которой порции генерируются и записываются.