python - 使用维度切片读取单个 NetCDF 文件的子集

标签 python python-xarray netcdf4

我有一个非常大的 NetCDF 文件。

我尝试使用 python xarray 模块中的 dask.array 功能,并在打开此数据时指定 block 大小。效果很好;然而,当我尝试使用 .load() 将变量加载到内存时,速度非常慢。

我想知道是否有任何选项(在 xarray 或其他 python 模块中)可以通过提供维度索引(lat、lon)来读取 NetCDF 文件的子集?这样我就可以直接将函数应用于子集文件,而无需使用 dask.array

最佳答案

您可以在将变量加载到内存之前对数据进行切片。

ds = xr.open_dataset('path/to/file')
in_memory = ds.isel(x=slice(10, 1000)).load()

关于python - 使用维度切片读取单个 NetCDF 文件的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010971/

相关文章:

python - 从 Pandas GroupBy 对象中提取特定值

python - 使用matplotlib设置x轴

python - 从现有 NetCDF 文件创建新的 NetCDF,同时保留原始文件的压缩

r - ncvar_get "cannot allocate vector of size"对于 netcdf4 子集,无论多小

python - django:如何从数据库对象的主键中散列 URL?

python - 查找给定字符串是python中的单词,字符还是数字

python - Xarray : ValueError: dimensions or multi-index levels ['lons' , 'lats'] 不存在

scipy - 值错误 : unrecognized engine zarr must be one of: ['scipy' , 'store' ]

python - 如何将带有 complex128 数据的 xarray.DataArray 保存到 netcdf

python - netcdf 文件中数组的压缩