Skip to content

Rectilinear chunks page: regular and rectilinear Zarr chunk grids - #56

Merged
mdsumner merged 3 commits into
mainfrom
claude/project-thread-wzmiog
Oct 20, 2026
Merged

mdsumner merged 3 commits into
mainfrom
claude/project-thread-wzmiog

Conversation

@mdsumner

Copy link
Copy Markdown
Member

Requested by Michael · project thread

Before: playproj reads Zarr chunk layouts on "Tiles and overviews" but has nothing on variable-size (rectilinear) chunk grids, and no page explains when a regular grid stops fitting.

After: a new "Rectilinear chunks" page in the cells group, right after "Tiles and overviews", draws an array cut into chunks in 3D, with the cuts along its first axis in 2D, for a regular grid and a rectilinear one (the zarr-extensions rectilinear chunk grid, after ZEP0003). It covers seven cases:

  • the overhanging last chunk of a regular grid, against a rectilinear grid that states the remainder
  • days in months
  • years of daily files
  • files each chunked inside, where a file's short last chunk can only be referenced exactly if the file did not pad it
  • a time series at one pixel
  • uneven, staggered and overlapping tiles in a mosaic: a grid is a partition, so overlap cannot be expressed

A draggable read shows the chunks it touches and the values decoded against those wanted, for both grids. You can paste a zarr.json or read one from a URL to draw its grid. The about text covers the spec status and the libraries that support it, and states that a single TIFF or netCDF/HDF5 file only ever has a regular block grid.

How: src/core/chunkgrid.js handles axes as lists of edge lengths whose sum may exceed the shape, run-length expand and compress, lookup by binary search of offsets, read cost, zarr.json chunk_grid in both directions, calendars, and the mosaic edge grid. It is checked in test/check-chunkgrid.mjs (including the extension's own README example) and is added to npm test and src/core/index.js. The nav link is added on every page, and the README has a section and layout lines. The sourced research notes live outside the repo, in the project's files.


Generated by Claude Code

…endars and mosaics (work in progress)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JdBGEquUX7MZTcYUPgYkjD
…chunked inside, about text and sources

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JdBGEquUX7MZTcYUPgYkjD
@mdsumner mdsumner self-assigned this Oct 20, 2026
@mdsumner
mdsumner marked this pull request as ready for review October 20, 2026 11:15
@mdsumner

Copy link
Copy Markdown
Member Author

@copilot resolve the merge conflicts in this pull request

…p both nav links

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JdBGEquUX7MZTcYUPgYkjD

Copy link
Copy Markdown
Member Author

Resolved the conflicts by merging main (the H3 hexagons page) in 53f6e3a. Every page's nav now has both the H3 and the Rectilinear chunks links, npm test runs both check-icosa and check-chunkgrid, and it passes locally.


Generated by Claude Code

@mdsumner
mdsumner merged commit 7fd48b7 into main Oct 20, 2026
1 check passed
Copilot stopped work on behalf of mdsumner due to an error October 20, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants