-
Notifications
You must be signed in to change notification settings - Fork 0
Feature: Affine transform handling from ome #118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…nto feature/NA-533-b
There was a problem hiding this 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.
No description provided.