Zarr v3 Struct Support & Tensorstore
Chưa có ai nhận issue này.
- #264 của @BrianMichell — đã đóng, không merge
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Bắt đầu bằng cách so sánh các driver TensorStore Zarr v2 và v3 cũng như các định nghĩa metadata của Zarr cho các dtype có cấu trúc. Tái tạo ví dụ Xarray/Python được cung cấp với Zarr v3 và sharding, sau đó xác định driver v3 hiện hỗ trợ những gì. Công việc được xem là hoàn tất khi một khuyến nghị triển khai được ghi lại và, nếu khả thi, các field có cấu trúc được hỗ trợ thông qua driver v3.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hi @jbms @laramiel
Zarr-Python version 3.1.0 just got released and the v3 arrays now support flexible datatypes. One (not yet marked stable) implementation is the numpy structs as if they were in zarr v2. Below example shows a Zarr that's created with Xarray that holds 2 variables (one struct, one normal) as zarr v3 and sharding.
My understanding is the V3 driver in tensorstore doesn't support numpy structs either. However, I believe it should be trivial because the binaries didn't change between zarr v2/v3 but only metadata definition of the same struct changed. Which means we can make v3 driver parse the zarr metadata and use the same logic to read the structured fields as in v2 driver?
What are your recommendations for implementation?
import numpy as np
import xarray as xr
dtype = np.dtype(
{
"names": ["foo", "bar"],
"formats": ["int32", "int64"],
}
)
encoding = {
"headers": {"chunks": (128, 128)},
"seismic": {"chunks": (16, 16, 16), "shards": (128, 128, 128)}
}
seis = xr.DataArray(name="seismic", dims=["inline", "crossline", "depth"], data=np.zeros((512, 512, 512), dtype="float32"))
hdr = xr.DataArray(name="headers", dims=["inline", "crossline"], data=np.zeros((512, 512), dtype=dtype))
ds = xr.Dataset({"seismic": seis, "headers": hdr})
ds.to_zarr("tmp", mode="w", zarr_format=3, encoding=encoding)
- Ngôn ngữ chính
- C++
- Star
- 1.6k
- Fork
- 151
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của google/tensorstore
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
google/tensorstore#305 ·
-
Ship Python 3.15 wheelsĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
google/tensorstore#298 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
google/tensorstore#291 · 1 bình luận · 1 reaction ·
-
Zarr3 rectilinear chunk gridĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
google/tensorstore#288 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 48/100
google/tensorstore#279 ·
Tất cả issue của google/tensorstore
Issue tương tự
-
documentation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Lua File: add readWhole()Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
grumpycoders/pcsx-redux#2667 ·
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug module: copilot
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
MaaAssistantArknights/MaaAssistantArknights#19250 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
LadybirdBrowser/ladybird#14486 ·
Maintainer thường phản hồi trong vòng 1 ngày