首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在xarray的后台添加fsspec.open_local

如何在xarray的后台添加fsspec.open_local
EN

Stack Overflow用户
提问于 2021-03-07 11:43:08
回答 1查看 117关注 0票数 0

遵循Q here xarray read remote grib file on s3 using cfgrib

如何将以下代码转换为在xarray的open_datasetbackend_kwargs中使用。

代码语言:javascript
复制
import fsspec
import xarray as xr

uri = "simplecache::s3://mf-nwp-models/arpege-world/v2/2021-02-16/00/UGRD/10m/0h.grib2"

file = fsspec.open_local(uri, s3={'anon': True}, filecache={'cache_storage':'/tmp/files'})

ds = xr.open_dataset(file, engine="cfgrib")

代码语言:javascript
复制
ds = xr.open_dataset(
    uri,
    engine="cfgrib",
    backend_kwargs=dict(s3={"anon": True}, filecache={"cache_storage": "/tmp/files"}),
)

但是让ERROR:cfgrib.messages:Can't create file 'simplecache::s3://mf-nwp-models/arpege-world/v2/2021-02-16/00/UGRD/10m/0h.grib2.90c91.idx'

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 02:53:32

对不起,这是不可能的,因为目前的情况。xr.open_dataset需要一个URL或一个本地路径,fsspec可以将其转换为开放的类似文件的对象。open_local的任务是处理URL并将字符串返回给本地副本--所以它不太适合。fcgrib处理打开的类似文件的对象,尝试从它们中提取本地路径并(重新)打开它。

在fsspec中有一个函数是合理的,它可以做open_local所做的事情,但返回一个打开的文件。参见fsspec-reference-maker上的讨论,了解我们如何通过临时复制到本地来处理(许多)远程grib2s的打开。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66512985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档