Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的窗口写入,例如到NetCDF_Python_Large Data_Netcdf - Fatal编程技术网

python中的窗口写入,例如到NetCDF

python中的窗口写入,例如到NetCDF,python,large-data,netcdf,Python,Large Data,Netcdf,在python中,如何将数组的子集写入磁盘,而不将整个数组保存在内存中 xarrayinput/output文档注意到,xarray不支持增量写入,只支持增量读取,通过dask.array流传输除外。(另外,修改数据集只会影响内存中的副本,而不会影响连接的文件。)dask文档建议可能需要在每次操作后保存整个数组?这可以使用netCDF4(低级NetCDF绑定的python库)来完成。只需分配给dataset变量的一个片段,然后可以选择调用dataset.sync()方法,以确保在将这些更改刷新到

在python中,如何将数组的子集写入磁盘,而不将整个数组保存在内存中


xarray
input/output文档注意到,xarray不支持增量写入,只支持增量读取,通过
dask.array
流传输除外。(另外,修改数据集只会影响内存中的副本,而不会影响连接的文件。)
dask
文档建议可能需要在每次操作后保存整个数组?

这可以使用
netCDF4
(低级NetCDF绑定的python库)来完成。只需分配给dataset变量的一个片段,然后可以选择调用dataset
.sync()
方法,以确保在将这些更改刷新到文件之前没有延迟

注意:这种方法还提供了逐步增加数组维度的机会(通过使用size
None
调用
createDimension
,使其成为变量的第一个维度,并沿该变量维度迭代分配增量较大的索引)


尽管随机访问窗口(即子集)写入似乎需要较低级别的包,但可以使用
xarray
(通过指定块大小参数触发使用
dask.array
后端)以增量方式完成更系统的子集写入(最终覆盖整个阵列),并且假设对算法进行重构,以便主循环发生在dask/xarray存储到文件调用中。这意味着您将无法明确控制块的生成和写入顺序。

这可以使用
netCDF4
(低级NetCDF绑定的python库)来完成。只需分配给dataset变量的一个片段,然后可以选择调用dataset
.sync()
方法,以确保在将这些更改刷新到文件之前没有延迟

注意:这种方法还提供了逐步增加数组维度的机会(通过使用size
None
调用
createDimension
,使其成为变量的第一个维度,并沿该变量维度迭代分配增量较大的索引)


尽管随机访问窗口(即子集)写入似乎需要较低级别的包,但可以使用
xarray
(通过指定块大小参数触发使用
dask.array
后端)以增量方式完成更系统的子集写入(最终覆盖整个阵列),并且假设对算法进行重构,以便主循环发生在dask/xarray存储到文件调用中。这意味着您将无法明确控制块的生成和写入顺序。

似乎可以使用HDF5(
h5py
),在每次分配数据集/数组的子集后调用
.flush()
)。不确定是否也可以使用NetCDF?如何打开NetCDF?如果您正在使用
xarray
open_dataset
并指定
chunks
参数,则NetCDF将逐块加载到内存中:似乎可以使用HDF5(
h5py
),在每次分配到数据集/数组的子集后调用
.flush()
)。不确定是否也可以使用NetCDF?如何打开NetCDF?如果您正在使用
xarray
open_dataset
并指定
chunks
参数,则NetCDF将逐块加载到内存中: