Skip to content

Conversation

@seankmartin
Copy link

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for affine transformations in OME-Zarr 0.6+ format, introducing several new coordinate transformation types from RFC-5. The implementation extracts scaling factors from affine matrices and properly handles complex transformations including rotation, permutation, and sequences.

  • Adds support for affine, rotation, mapAxis, and sequence transformations in OME-Zarr 0.6+
  • Implements scale extraction from arbitrary affine matrices to properly handle non-uniform transformations
  • Updates voxel size calculation to use affine matrix analysis instead of simple transform multiplication

Reviewed changes

Copilot reviewed 31 out of 32 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
testdata/datasource/zarr/ome_zarr/all_0.6/simple/rotation.zarr/zarr.json Test data for rotation transformation with coordinate system definition
testdata/datasource/zarr/ome_zarr/all_0.6/simple/affine.zarr/zarr.json Test data for affine transformation with scale and translation matrix
testdata/datasource/zarr/ome_zarr/all_0.6/basic/translation.zarr/zarr.json Test data for translation transformation
testdata/datasource/zarr/ome_zarr/all_0.6/basic/sequenceScaleTranslation.zarr/zarr.json Test data for sequence transformation combining scale and translation
testdata/datasource/zarr/ome_zarr/all_0.6/basic/scale.zarr/zarr.json Test data for scale transformation
testdata/datasource/zarr/ome_zarr/all_0.6/basic/identity.zarr/zarr.json Test data for identity transformation
testdata/datasource/zarr/ome_zarr/all_0.6/axis_dependent/mapAxis.zarr/zarr.json Test data for axis permutation transformation
testdata/datasource/zarr/ome_zarr/all_0.6/README.md Documentation for test data source
src/util/affine.ts New utility for extracting scales from affine matrices and computing relative transforms
src/util/affine.spec.ts Comprehensive tests for affine matrix scale extraction
src/sliceview/frontend.ts Updates voxel size calculation to use affine matrix scale extraction
src/datasource/zarr/ome.ts Core implementation of OME-Zarr 0.6+ transformation parsing and validation
src/datasource/zarr/ome.spec.ts Extensive tests for OME-Zarr 0.6 transformation parsing
src/datasource/zarr/frontend.ts Updates to use base transform from multiscale metadata
src/datasource/zarr/codec/zstd/resolve.ts Adds registration for "zstandard" codec name (0.6+ spec)
src/datasource/zarr/codec/zstd/decode.ts Adds decoding support for "zstandard" codec name
python/tests/zarr_test.py Integration tests for all supported OME-Zarr 0.6 transformations

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@seankmartin seankmartin marked this pull request as ready for review January 7, 2026 16:23
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.

3 participants