open_mfdataset() 在远程 zarr 商店上给予 zarr.errors.GroupNotFoundError
open_mfdataset() on remote zarr store giving zarr.errors.GroupNotFoundError
我正在寻找使用 xarray.open_mfdataset()
读取远程 zarr 商店
我要 zarr.errors.GroupNotFoundError: group not found at path ''
。追溯在底部。
import xarray as xr
import s3fs
fs = s3fs.S3FileSystem(anon=True)
uri = "s3://era5-pds/zarr/2020/12/data/eastward_wind_at_10_metres.zarr"
file = s3fs.S3Map(uri, s3=fs)
ds = xr.open_mfdataset(file, engine="zarr")
我可以使用 xr.open_zarr
打开它
ds = xr.open_zarr(file)
如果我在本地下载 zarr 商店,它工作正常
import xarray as xr
import s3fs
fs = s3fs.S3FileSystem(anon=True)
fs.get("s3://era5-pds/zarr/2020/12/data/eastward_wind_at_10_metres.zarr/*", "eastward_wind_at_10_metres.zarr", recursive=True)
ds = xr.open_mfdataset("eastward_wind_at_10_metres.zarr", engine="zarr")
在远程 zarr 商店open_mfdataset
的引用
>>> ds = xr.open_mfdataset(file, engine="zarr")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/api.py", line 948, in open_mfdataset
datasets = [open_(p, **open_kwargs) for p in paths]
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/api.py", line 948, in <listcomp>
datasets = [open_(p, **open_kwargs) for p in paths]
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/api.py", line 572, in open_dataset
store = opener(filename_or_obj, **extra_kwargs, **backend_kwargs)
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/zarr.py", line 296, in open_group
zarr_group = zarr.open_group(store, **open_kwargs)
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/zarr/hierarchy.py", line 1166, in open_group
raise GroupNotFoundError(path)
zarr.errors.GroupNotFoundError: group not found at path ''
我认为 open_mfdataset 正在对您的路径进行某种处理,因为它需要处理多个路径(因为这是多文件)。
下面的工作(前者可能只在 master 上)
ds = xr.open_mfdataset(uri, engine="zarr", backend_kwargs=dict(storage_options={'anon': True}))
ds = xr.open_mfdataset([file], engine="zarr")
我正在寻找使用 xarray.open_mfdataset()
我要 zarr.errors.GroupNotFoundError: group not found at path ''
。追溯在底部。
import xarray as xr
import s3fs
fs = s3fs.S3FileSystem(anon=True)
uri = "s3://era5-pds/zarr/2020/12/data/eastward_wind_at_10_metres.zarr"
file = s3fs.S3Map(uri, s3=fs)
ds = xr.open_mfdataset(file, engine="zarr")
我可以使用 xr.open_zarr
ds = xr.open_zarr(file)
如果我在本地下载 zarr 商店,它工作正常
import xarray as xr
import s3fs
fs = s3fs.S3FileSystem(anon=True)
fs.get("s3://era5-pds/zarr/2020/12/data/eastward_wind_at_10_metres.zarr/*", "eastward_wind_at_10_metres.zarr", recursive=True)
ds = xr.open_mfdataset("eastward_wind_at_10_metres.zarr", engine="zarr")
在远程 zarr 商店open_mfdataset
的引用
>>> ds = xr.open_mfdataset(file, engine="zarr")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/api.py", line 948, in open_mfdataset
datasets = [open_(p, **open_kwargs) for p in paths]
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/api.py", line 948, in <listcomp>
datasets = [open_(p, **open_kwargs) for p in paths]
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/api.py", line 572, in open_dataset
store = opener(filename_or_obj, **extra_kwargs, **backend_kwargs)
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/xarray/backends/zarr.py", line 296, in open_group
zarr_group = zarr.open_group(store, **open_kwargs)
File "/Users/ray.bell/miniconda/envs/test_env/lib/python3.8/site-packages/zarr/hierarchy.py", line 1166, in open_group
raise GroupNotFoundError(path)
zarr.errors.GroupNotFoundError: group not found at path ''
我认为 open_mfdataset 正在对您的路径进行某种处理,因为它需要处理多个路径(因为这是多文件)。
下面的工作(前者可能只在 master 上)
ds = xr.open_mfdataset(uri, engine="zarr", backend_kwargs=dict(storage_options={'anon': True}))
ds = xr.open_mfdataset([file], engine="zarr")