-
Notifications
You must be signed in to change notification settings - Fork 6
RFC5: coordinate systems and transformations #17
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
Conversation
…ller/ngff-spec into upgrade-to-jupyter-book-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>
That's what I had in mind. Thanks! We can also do that at the Hackathon?
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! |
|
@jo-mueller I pushed a fix about the same time as I made that comment (when I realised it was broken). |
|
@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! |
|
@clbarnes all ready for review :) I'll already put a few items here that come to mind for future checklisting:
|
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.
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.
Previously `0.6dev2`, now `0.6.dev2`
|
@clbarnes Thanks for the extra pair of eyes.
Changed in b91fd82 👍
Yes! See WIP: ome/ngff#389 |
* 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>
* 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>
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.