ngff icon indicating copy to clipboard operation
ngff copied to clipboard

RFC5: should all coordinate systems in an group require to be transformable to an array?

Open dstansby opened this issue 2 months ago • 1 comments

AFAIK there's no currently requirement in RFC5 for all coordinate systems listed in a multiscale array to be connected to the array data within by a transform. Should this restriction be added? I came across this thought when thinking about referencing the "default" coordinate system in a multiscales group by path, and thinking that it could at the moment it could in theory be a coordinate system that isn't linked by any transforms at all:

Multiscale(
        coordinateTransformations=(),
        coordinateSystems=(
            CoordinateSystem(
                name="unconnected_but_default",
                axes=[
                    Axis(name="j"),
                    Axis(name="i"),
                ],
            ),
            CoordinateSystem(
                name="physical",
                axes=[
                    Axis(name="j"),
                    Axis(name="i"),
                ],
            ),
        ),
        datasets=(
            Dataset(
                path="0",
                coordinateTransformations=(
                    Scale(
                        scale=[2.0, 2.0],
                        input="0",
                        output="physical",
                    ),
                ),
            ),
        ),
    )

dstansby avatar Nov 02 '25 18:11 dstansby

Hi @dstansby , I was thinking about this when working for the latest revision of RFC5 and I think it would be a reasonable restriction. I guess it would be as easy as requiring that

The set of all coordinateSystems and coordinateTransformations under the root level MUST be fully interconnected, ensuring no disjoint subgraphs exist.

jo-mueller avatar Nov 03 '25 09:11 jo-mueller