Port RFC5 updated proposal to ngff-spec#67
Conversation
Automated Review URLs |
|
@dstansby updated the schemas! Could I ask you to have a swift look if something strikes you as off? |
|
I had a look, and I'm struggling to read the schemas by eye, and the rendering doesn't look so nice either (https://ngff-spec--67.org.readthedocs.build/en/67/schemas/scene/, https://ngff-spec--67.org.readthedocs.build/en/67/schemas/coordinate-transformations/, https://ngff-spec--67.org.readthedocs.build/en/67/schemas/coordinate-systems/) Perhaps a better test than manual review is checking that the examples all validate correctly using the schemas? |
I feel you 🙄
Tbf, it doesn't look very different from the rendering on the current main. I think it's getting especially nasty for the But you're right about the validator - I guess the easiest thing is then to create fork of the validator, point it to this branch for the schemas and check the examples 👍 OR simply copy some of the examples to the testing CI in here. |
There was a problem hiding this comment.
I had more of a look at the RTD build, and some initial comments:
There's "Coordinate systems" and "Coordinate systems and transforms" pages, which seems confusing (duplication of coordinate systems):

I don't understand why coordinate systems and transformations are in the same schema, wouldn't it be much cleaner to have them in separate schemas?
On a similar theme, it would be much nicer to have all the different transforms as their own schema that are then referenced by other schemas. It would incraese the number of schema files, but make it much easier to find a given transformation for example.
I think that's a legacy thing. They maybe used to be but the schemas are separated as you suggest. It was just that the title of the coordinate transformations schema file was still "coordinate systems and transformations" - I changed it, should be fixed now.
Agree! Makes total sense and can do. |
|
@dstansby found it! The failing example ( |
Otherwise, axes MUST have two or three spatial axes, which is forbidden for multiscales coordinate systems
|
At https://ngff.openmicroscopy.org/rfc/5/responses/2/index.html#change-bydimension-convention it says:
{
"type": "byDimension",
"input": "high_dimensional_coordinatesystem_A",
"output": "high_dimensional_coordinatesystem_B",
"transformations": [
{
"input_axes": [0, 1],
"output_axes": [0, 1],
"transformation": {
"type": "scale",
"scale": [0.5, 0.5]
}
},
{
"input_axes": [2],
"output_axes": [2],
"transformation": {
"type": "translation",
"translation": [10.0]
}
}
]
}On the latest RTD build of this PR, the spec doesn't seem to have been updated to reflect this: https://ngff-spec--67.org.readthedocs.build/en/67/#bydimension, and at least the first example does not align with the above example JSON from the review: {
"coordinateSystems": [
{ "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ] },
{ "name": "out", "axes": [ {"name": "y"}, {"name": "x"} ] }
],
"coordinateTransformations": [
{
"type": "byDimension",
"input": "in",
"output": "out",
"transformations": [
{
"type": "translation",
"translation": [-1.0],
"input_axes": [1],
"output_axes": [1]
},
{
"type": "scale",
"scale": [2.0],
"input_axes": [0],
"output_axes": [0]
}
]
}
]
}@jo-mueller is this something that still needs fixing here? |
|
@dstansby thanks a lot for the extra look, this was indeed incorrect...talk about not seeing the forest for trees anymore 🙄 I also adjusted the schemas and examples for the CI accordingly. |
|
This pull request has been mentioned on Image.sc Forum. There might be relevant details there: https://forum.image.sc/t/how-to-build-hcs-zarrs-with-multiple-image-types-per-fov/119329/9 |
Co-authored-by: Benedikt Best <63287233+btbest@users.noreply.github.com>
|
Got an additional 👍 from @clbarnes. Merging to let @jo-mueller announce as appropriate. |
|
This pull request has been mentioned on Image.sc Forum. There might be relevant details there: https://forum.image.sc/t/ngff-weekly-dev-update-thread/110810/69 |
This is the PR following up to ome/ngff#389.
This PR
PRs to merge first: