{ "groupAll": { "transform": { "type": "affine", "affine": [ 2.0, 0.0, 0.0, 10.0, 0.0, 0.5, 0.0, -5.0, 0.0, 0.0, 1.0, 0.0 ] }, "axisTypes": ["spatial","spatial","channel"], "axisLabels": ["X","Y","C"] }, "groupAllWithSingleUnit": { "comment":"This is not great since our channel axis does not have units of nm", "transform": { "type": "affine", "affine": [ 2.0, 0.0, 0.0, 10.0, 0.0, 0.5, 0.0, -5.0, 0.0, 0.0, 1.0, 0.0 ], "unit":"nm" }, "axisTypes": ["spatial","spatial","channel"], "axisLabels": ["X","Y","C"] }, "groupAllWithSeparateUnits": { "comment":"Now our units are correct, but it feels weird to mix channel and spatial transform in the affine", "link":"https://github.com/ome/ngff/issues/28#issuecomment-790961056", "transform": { "type": "affine", "affine": [ 2.0, 0.0, 0.0, 10.0, 0.0, 0.5, 0.0, -5.0, 0.0, 0.0, 1.0, 0.0 ], "units":["nm","nm","channel"] }, "axisTypes": ["spatial","spatial","channel"], "axisLabels": ["X","Y","C"] }, "groupAllWithSeparateUnits_v2": { "comment":"Now our units are correct, but it feels weird to mix channel and spatial transform in the affine", "link":"https://github.com/ome/ngff/issues/28#issuecomment-790961056", "transform": { "type": "sequence", "sequence": [ { "type":"scale", "scale":[2,0.5,1] }, { "type":"translation", "translation":[10,-5.0,0] } ], "units":["nm","nm","channel"] }, "axes": [ { "label":"X", "type":"spatial" }, { "label":"Y", "type":"spatial" }, { "label":"C", "type":"channel (or custom name as to what is meant by channel)" } ] }, "splitByAxis": { "comment":"Split the transforms on a per-axis basis, but maybe its nice to join that spatial axes together", "axes": [ { "label":"X", "type":"spatial", "transform": { "type":"affine", "affine":[2.0, 10.0] }, "unit":"nm" }, { "label":"Y", "type":"channel", "transform": { "type":"affine", "affine":[0.5, -5.0] }, "unit":"nm" }, { "transform": { "type":"identity" } } ] }, "groupByAxisType": { "comment":"Join the spatial axis transform in a single affine, but this means I think we need to keep track of which dimensions of the discrete grid this corresponds to. Maybe we can omit these if sensible defaults are okay ", "axes": [ { "type":"spatial", "labels":["X","Y"], "indicies":[0,1], "transform": { "type":"affine", "affine":[2.0, 0.0, 10.0, 0.0, 0.5, -5.0 ] }, "unit":"nm" }, { "type":"channel", "labels":["C"], "indicies":[2], "transform": { "type":"identity" } } ] } }