Skip to content

Conversation

@jo-mueller
Copy link
Collaborator

@jo-mueller jo-mueller commented Oct 21, 2025

Built on top top of #14 and #20 (requires these two to be merged first). Contains the changes proposed in the latest versions of rfc5.

@jo-mueller jo-mueller added the RFC Changes that are part of an [RFC-process](https://ngff.openmicroscopy.org/rfc/index.html) label Oct 21, 2025
@jo-mueller jo-mueller changed the title Rfc5 RFC5: coordinate systems and transformations Oct 21, 2025
Co-authored-by: Will Moore <900055+will-moore@users.noreply.github.com>
Co-authored-by: David Stansby <d.stansby@ucl.ac.uk>
Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
@jo-mueller
Copy link
Collaborator Author

jo-mueller commented Nov 3, 2025

@dstansby

sorry, don't think I'll have the time to look into this in detail. What I will do at some point is try and validate metadata produced by ome-zarr-models against these as a way of checking them (and checking ome-zarr-models!)

That's what I had in mind. Thanks! We can also do that at the Hackathon?

@will-moore

The schemas on this branch are currently being used by ome-ngff-validator at ome/ome-ngff-validator#48

Sorry, I probably broke that. I wanted to have everything in one place here to avoid polluting the commit history any worse than it already is :D Changing the schemas for the validator to this place should fix it, though!

@will-moore
Copy link
Member

@jo-mueller I pushed a fix about the same time as I made that comment (when I realised it was broken).
ome/ome-ngff-validator@5afaab5
So it should be working now?

@jo-mueller
Copy link
Collaborator Author

@clbarnes just realized that I need to run a few safety checks myself on this one before clearing for review. I'll ping you (again) when I think it's really ready for another set of eyes!

@jo-mueller
Copy link
Collaborator Author

jo-mueller commented Nov 25, 2025

@clbarnes all ready for review :)

I'll already put a few items here that come to mind for future checklisting:

  • Changelog updated
  • Spec in sync with respective proposal
  • schemas/examples in order
  • ...?

@jo-mueller jo-mueller moved this to In review in OME-Zarr 0.6.dev2 Nov 26, 2025
Copy link
Contributor

@clbarnes clbarnes left a comment

Choose a reason for hiding this comment

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

Text looks good to me - changes discussed at the hackathon are presumably going into dev3 (remove inverseOf, restructure byDimension)?

The test suites are still using the 0.6dev2 version scheme, which needs updating.

@jo-mueller
Copy link
Collaborator Author

jo-mueller commented Nov 27, 2025

@clbarnes Thanks for the extra pair of eyes.

The test suites are still using the 0.6dev2 version scheme, which needs updating.

Changed in b91fd82 👍

changes discussed at the hackathon are presumably going into dev3

Yes! See WIP: ome/ngff#389

@jo-mueller jo-mueller merged commit ed1c56c into ome:main Dec 2, 2025
4 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in OME-Zarr 0.6.dev2 Dec 2, 2025
jo-mueller added a commit to jo-mueller/ngff-spec that referenced this pull request Dec 15, 2025
* upgrade to Jupyter book 2

* correctly mark examples

* bump mystmd dependency

* pin mystmd

* hashpin template

* remove legacy dependencies

* Create README.md for OME-NGFF specification

* remove legacy files

* use auto-built footer for copyright

* Update `coordinateSystems` metadata

* Updated `axes` metadata and moved under `coordinateSystems` header level

* Update array coordinate systems metadata and merge existing examples

* Update coordinate convention metadata

* Updated coordinate transformations metadata

* updated matrix transformations

* update transformation types

* update transformation types metadata

* harmonize link syntax

* removed deprecated statement about `byDimension` transform

* harmonized indendations and json style

* fixed `byDimension` metadata

* make examples collapsible

* renamed example folder

* add orcid logo to editor info

* fix reference

* change precedence

See discussion [here](bogovicj/ngff-rfc5-coordinate-transformation-examples#11 (comment))

* added examples for transformations with discrete axes

* fix link to example

* untrack autogenerated files

* update affine examples and fix variable ordering

* Fixed scale examples

* removed example from additional details

* specify affines/rotations as 2D matrices in parameter table

* renamed coordinate transformations schema

* Refactor rotation property to use `mtxFlatOrNested`

* Delete schemas.md

* remove `mtxFloatOrNested`

affine/rotation matrices should always be 2D

* "zarr array" instead of "binary data"

* WIP: Update rfc5 schemas (#1)

I'm merging this so that all necessary changes regarding the addition of rfc5-stuff to the main branch of the ngff-spec repo can be in one place. This branch was supposed to be a break-out to keep the commit-history of ome#17 clean.

* Update input/output to input_axes/output_axes in schema

* Add description and required field to byDimension

* Update mapAxis schema to use integer array

* Add path and interpolation to displacements schema

The displacements object now includes a required 'path' property for specifying the zarr array location and an 'interpolation' property with supported methods. This enhances the schema's ability to describe displacement fields and their application.

* Add path and interpolation to coordinates schema

Introduces 'path' and 'interpolation' properties to the 'coordinates' object in the schema, specifying the location of the coordinate field and the interpolation method to use. The 'path' property is now required.

* only allow paths, no URLs

* move required fields to correct places

* name musnt't be empty

* added axis types to schema

* Added descriptions to schemas

* updated versions to 0.6dev2

* fix paths and versions

* pull schema from correct location

* Added action to run the tests

* update config reference

* update versions in test suite

* Revert "update config reference"

This reverts commit ff3fedd.

* update all version references to "0.6dev2"

* update version reference

* at least two spatial axes

* allow any axis type

* update version reference

* Add maxItems constraint to axes schema

Set a maximum of 5 items for the axes array in the schema to enforce limits on the number of axes allowed.

* Refactor image schema for coordinate transformations

Refactors the definition of coordinateTransformations and coordinateSystems to use inline array schemas with stricter constraints. Adds a new multiscale_coordinateTransformations definition to support scale and translate transformations for multiscale datasets.

* Update to NGFF 0.6dev2 and refactor coordinate systems

Updated example and test JSON files to use the NGFF 0.6dev2 specification. Replaced 'axes' with 'coordinateSystems', added explicit 'input' and 'output' fields to coordinateTransformations, and restructured transformation chains for clarity and compliance with the new spec.

* fix schema resolution

* sync PR with latest RFC5 proposal (#2)

Co-authored-by: Will Moore <900055+will-moore@users.noreply.github.com>
Co-authored-by: David Stansby <d.stansby@ucl.ac.uk>
Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>

* fix links

* fix schema resolution

* split tests into separate files; add conformance test script

* Conformance testing docs

Also minor refactor test_validation

* Add $schema to strict schemas

* Add jsonschema_dingus

* replaced `0.6dev2` by `0.6.dev2`

---------

Co-authored-by: Will Moore <900055+will-moore@users.noreply.github.com>
Co-authored-by: David Stansby <d.stansby@ucl.ac.uk>
Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
Co-authored-by: Chris Barnes <chris.barnes@gerbi-gmb.de>
jo-mueller added a commit to jo-mueller/ngff-spec that referenced this pull request Dec 15, 2025
* upgrade to Jupyter book 2

* correctly mark examples

* bump mystmd dependency

* pin mystmd

* hashpin template

* remove legacy dependencies

* Create README.md for OME-NGFF specification

* remove legacy files

* use auto-built footer for copyright

* Update `coordinateSystems` metadata

* Updated `axes` metadata and moved under `coordinateSystems` header level

* Update array coordinate systems metadata and merge existing examples

* Update coordinate convention metadata

* Updated coordinate transformations metadata

* updated matrix transformations

* update transformation types

* update transformation types metadata

* harmonize link syntax

* removed deprecated statement about `byDimension` transform

* harmonized indendations and json style

* fixed `byDimension` metadata

* make examples collapsible

* renamed example folder

* add orcid logo to editor info

* fix reference

* change precedence

See discussion [here](bogovicj/ngff-rfc5-coordinate-transformation-examples#11 (comment))

* added examples for transformations with discrete axes

* fix link to example

* untrack autogenerated files

* update affine examples and fix variable ordering

* Fixed scale examples

* removed example from additional details

* specify affines/rotations as 2D matrices in parameter table

* renamed coordinate transformations schema

* Refactor rotation property to use `mtxFlatOrNested`

* Delete schemas.md

* remove `mtxFloatOrNested`

affine/rotation matrices should always be 2D

* "zarr array" instead of "binary data"

* WIP: Update rfc5 schemas (#1)

I'm merging this so that all necessary changes regarding the addition of rfc5-stuff to the main branch of the ngff-spec repo can be in one place. This branch was supposed to be a break-out to keep the commit-history of ome#17 clean.

* Update input/output to input_axes/output_axes in schema

* Add description and required field to byDimension

* Update mapAxis schema to use integer array

* Add path and interpolation to displacements schema

The displacements object now includes a required 'path' property for specifying the zarr array location and an 'interpolation' property with supported methods. This enhances the schema's ability to describe displacement fields and their application.

* Add path and interpolation to coordinates schema

Introduces 'path' and 'interpolation' properties to the 'coordinates' object in the schema, specifying the location of the coordinate field and the interpolation method to use. The 'path' property is now required.

* only allow paths, no URLs

* move required fields to correct places

* name musnt't be empty

* added axis types to schema

* Added descriptions to schemas

* updated versions to 0.6dev2

* fix paths and versions

* pull schema from correct location

* Added action to run the tests

* update config reference

* update versions in test suite

* Revert "update config reference"

This reverts commit ff3fedd.

* update all version references to "0.6dev2"

* update version reference

* at least two spatial axes

* allow any axis type

* update version reference

* Add maxItems constraint to axes schema

Set a maximum of 5 items for the axes array in the schema to enforce limits on the number of axes allowed.

* Refactor image schema for coordinate transformations

Refactors the definition of coordinateTransformations and coordinateSystems to use inline array schemas with stricter constraints. Adds a new multiscale_coordinateTransformations definition to support scale and translate transformations for multiscale datasets.

* Update to NGFF 0.6dev2 and refactor coordinate systems

Updated example and test JSON files to use the NGFF 0.6dev2 specification. Replaced 'axes' with 'coordinateSystems', added explicit 'input' and 'output' fields to coordinateTransformations, and restructured transformation chains for clarity and compliance with the new spec.

* fix schema resolution

* sync PR with latest RFC5 proposal (#2)

Co-authored-by: Will Moore <900055+will-moore@users.noreply.github.com>
Co-authored-by: David Stansby <d.stansby@ucl.ac.uk>
Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>

* fix links

* fix schema resolution

* split tests into separate files; add conformance test script

* Conformance testing docs

Also minor refactor test_validation

* Add $schema to strict schemas

* Add jsonschema_dingus

* replaced `0.6dev2` by `0.6.dev2`

---------

Co-authored-by: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Co-authored-by: Will Moore <900055+will-moore@users.noreply.github.com>
Co-authored-by: David Stansby <d.stansby@ucl.ac.uk>
Co-authored-by: Davis Bennett <davis.v.bennett@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

RFC Changes that are part of an [RFC-process](https://ngff.openmicroscopy.org/rfc/index.html)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants