`intake_xarray` does not lazy read metadata from files
还没有人认领这个 Issue。
评估
调研方向
使用 intake_xarray 驱动程序、intake.open_catalog 以及 issue 中所示的 netcdf 和 zarr 条目重现 catalog 示例。跟踪 read() 前后条目元数据的填充方式,然后验证在不丢失 catalog 元数据的情况下,文件元数据可以延迟获取。确认 NetCDF 和 Zarr 源的行为。
由索引模型根据 Issue 内容生成。
描述
The entries powered by intake_xarray driver does not lazy read metadata from the files.
# %%
import intake
import xarray as xr
ds = xr.Dataset(
{
"test_var": [0],
},
attrs={"xarray_metadata": "The metadata in the xarray file"},
)
ds.to_netcdf("test_metadata.nc")
ds.to_zarr("test_metadata.zarr", mode="w")
# %%
catalog_content = """sources:
netcdf:
driver: netcdf
args:
urlpath: '{{ CATALOG_DIR }}/test_metadata.nc'
metadata:
catalog_metadata: The metadata in the catalog entry
zarr_intake_xarray:
description: zarr archive read by intake_xarray
driver: zarr
args:
urlpath: '{{ CATALOG_DIR }}/test_metadata.zarr'
metadata:
catalog_metadata: The metadata in the catalog entry
zarr_intake:
description: zarr archive read by intake
driver: zarr_cat
args:
urlpath: '{{ CATALOG_DIR }}/test_metadata.zarr'
metadata:
catalog_metadata: The metadata in the catalog entry
"""
with open("catalog.yml", "w") as f:
f.write(catalog_content)
cat = intake.open_catalog("catalog.yml")
print(f"{cat.netcdf.metadata = }")
print(f"{cat.zarr_intake_xarray.metadata = }")
print(f"{cat.zarr_intake.metadata = }")
As you see from the output, the metadata from the entry powered by intake driver has the field from the zarr file:
cat.netcdf.metadata = {'catalog_metadata': 'The metadata in the catalog entry'}
cat.zarr_intake_xarray.metadata = {'catalog_metadata': 'The metadata in the catalog entry'}
cat.zarr_intake.metadata = {'catalog_metadata': 'The metadata in the catalog entry', 'xarray_metadata': 'The metadata in the xarray file'}
However, after reading the files, the metadata is complete:
cat.netcdf.read()
cat.zarr_intake_xarray.read()
print(f"Netcdf metadata after reading: {cat.netcdf.metadata}")
print(f"Zarr metadata after reading: {cat.zarr_intake_xarray.metadata}")
Output:
Netcdf metadata after reading: {'catalog_metadata': 'The metadata in the catalog entry', 'dims': {'test_var': 1}, 'data_vars': {}, 'coords': ('test_var',), 'xarray_metadata': 'The metadata in the xarray file'}
Zarr metadata after reading: {'catalog_metadata': 'The metadata in the catalog entry', 'dims': {'test_var': 1}, 'data_vars': {}, 'coords': ('test_var',), 'xarray_metadata': 'The metadata in the xarray file'}
OS: Windows 10
python 3.11.5
intake 0.7.0
intake_xarray 0.7.0
xarray 2023.8.0
zarr 2.16.1
- 主要语言
- Python
- 星标
- 76
- 派生
- 36
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
intake/intake-xarray 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 48/100
intake/intake-xarray#150 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 55/100
intake/intake-xarray#148 · 11 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 45/100
intake/intake-xarray#142 · 2 条评论 ·
-
难度 3/5 1-2 天 新手友好度 30/100
intake/intake-xarray#141 · 6 条评论 ·
-
难度 5/5 一周以上 新手友好度 25/100
intake/intake-xarray#139 · 12 条评论 · 1 个 reaction ·
查看 intake/intake-xarray 的全部 Issue
相似的 Issue
-
[BUG]: Compliance rules never see Unity Catalog views as views可能已有人在做 @wagnercsantos 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
databrickslabs/ontos#1348 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
ibm-granite/granite.build#649 ·
维护者通常 1 天内回复
-
`forum_pr_poster` action will always return `none` when checking for pre-existing feedback threads, even if a feedback thread already exists.可能已有人在做 @pgmzeta 今天认领。 未关闭E-Verified P-Major
难度 2/5 1-3 小时 新手友好度 79/100
goonstation/goonstation#28259 ·
维护者通常 2 天内回复
-
enhancement
难度 2/5 1-3 小时 新手友好度 65/100
woonstadrotterdam/monumenten#70 ·
维护者通常 15 天内回复
-
binding:python bug
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复