spec: removed invalid mapAxis example#129
Conversation
Automated Review URLs |
|
Thanks @jo-mueller,
But your proposed add/drop axis transformation would be more appropriate for that because if I map xyz to cxyz, presumably the output would have a fixed value of the c coordinate and we'd want to specify what that is, and doing that isn't possible with I think mapping cxyz to xyz could be fine if the presumption is that the c coordinate is "dropped," but I may be assuming implementations treat channels in a special way...will have to think about this more. My feeling at the moment: |
|
@bogovicj thanks for chiming in here. It's true, we also had the discussion about how to treat the channel axis in terms of transforms. It's something that most implementations seem to get right intuitively, which doesn't change the fact that it's a bit of a blind spot in transforms land. I guess when RFC3 gets closer to the finish line we'll have to think about this harder because any new axis should somehow declare how it is supposed to be treated by transforms. The reason why I am not 100% sold on the drop axis transform, is that you could express a dropaxis by its inverse, which would be a sequence of a We discussed it yesterday in @ome/gerbi and came to the conclusion that the
Alternatively, we could document the affine transform better towards this end? I.e., for a downprojection, you could use an affine of the form and for an up-projection, you could use Additional translations can then do the job of controlling this behavior a bit more fine-grained. |
@bogovicj I just realized that one of the mapAxis examples here were invalid against the spec. In the current spec text it says:
mapAxistransformations describe axis permutations as a transpose vector of integers.Transformations MUST include a
mapAxisfieldwhose value is an array of integers that specifies the new ordering in terms of indices of the old order.
The length of the array MUST equal the number of dimensions in both the input and output coordinate systems.
Each integer in the array MUST be a valid zero-based index into the input coordinate system's axes
(i.e., between 0 and N-1 for an N-dimensional input).
Each index MUST appear exactly once in the array.
The last statement is not reflected in the removed example - unless this usecase should be reflected somehow? 🤔 I will open another PR shortly to add a
newAxistransform, which should solve theprojection_upusecase, but I'm not sure how to do a projection from nD to (n-1)D here.Related ome/ngff#499