|
| int[] | InnerChunkShape = Array.Empty<int>() [get] |
| | Inner chunk (sub-chunk) shape within each shard.
|
| |
| CodecPipeline | InnerPipeline = null! [get] |
| | Codec pipeline applied to each inner chunk.
|
| |
| CodecPipeline | IndexPipeline = null! [get] |
| | Codec pipeline applied to the binary shard index.
|
| |
| ShardIndexLocation | IndexLocation = ShardIndexLocation.End [get] |
| | Where the index sits within the shard file: "end" or "start".
|
| |
| int[] | InnerChunksPerShard = Array.Empty<int>() [get] |
| | Number of inner chunks per shard along each axis. Computed from shard shape / inner chunk shape.
|
| |
| int | TotalInnerChunks [get] |
| | Total number of inner chunks per shard (product of InnerChunksPerShard).
|
| |
| int | IndexEncodedSize [get] |
| | Total byte size of the encoded shard index as stored on disk. This is the raw index data (TotalInnerChunks × 16 bytes) plus any overhead added by the index codecs (e.g. crc32c adds 4 bytes).
|
| |
Configuration for a sharding_indexed codec parsed from zarr.json.
Sharding packs multiple "inner chunks" (sub-chunks) into a single shard file. The shard file contains the compressed inner chunks plus a binary index that maps each inner chunk's grid position to its (offset, length) within the shard.
zarr.json example:
"codecs": [{
"name": "sharding_indexed",
"configuration": {
"chunk_shape": [64, 64],
"codecs": [{"name": "bytes"}, {"name": "blosc", ...}],
"index_codecs": [{"name": "bytes", "configuration": {"endian": "little"}}],
"index_location": "end"
}
}]
The outer chunk_grid.chunk_shape in zarr.json defines the shard shape. The inner chunk_shape here defines the sub-chunk shape within each shard.