transformations Examples#

This document contains JSON examples for transformations metadata layouts.

byDimensionInvalid2#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ] },
 4    { "name": "out", "axes": [ {"name": "y"}, {"name": "x"} ] }
 5  ],
 6  "coordinateTransformations": [
 7    {
 8      "type": "byDimension",
 9      "input": "in",
10      "output": "out",
11      "transformations": [
12        {
13          "transformation": {
14
15            "type": "translation",
16            "translation": [-1.0]
17          },
18          "input_axes": [1],
19          "output_axes": [1]
20        },
21        {
22          "transformation": {
23            "type": "scale",
24            "scale": [2.0]
25          },
26          "input_axes": [1],
27          "output_axes": [1]
28        }
29      ]
30    }
31  ]
32}

byDimension1#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ] },
 4    { "name": "out", "axes": [ {"name": "y"}, {"name": "x"} ] }
 5  ],
 6  "coordinateTransformations": [
 7    {
 8      "type": "byDimension",
 9      "input": "in",
10      "output": "out",
11      "transformations": [
12        {
13          "transformation": {
14            "type": "translation",
15            "translation": [-1.0]
16          },
17          "input_axes": [1],
18          "output_axes": [1]
19        },
20        {
21          "transformation": {
22            "type": "scale",
23            "scale": [2.0]
24          },
25          "input_axes": [0],
26          "output_axes": [0]
27        }
28      ]
29    }
30  ]
31}

rotation#

 1{
 2  "coordinateSystems" : [
 3    { "name" : "ji", "axes" : [{"name" : "j"}, {"name":"i"}] },
 4    { "name" : "yx", "axes" : [{"name" : "y"}, {"name":"x"}] }
 5  ],
 6  "coordinateTransformations" : [
 7    {
 8      "type": "rotation",
 9      "rotation": [[0, -1], [1, 0]],
10      "input" : "ji",
11      "output" : "yx"
12    }
13  ]
14}

coordinates1d#

 1{
 2  "coordinateSystems": [
 3    { "name": "input", "axes": [{"name": "i"}] },
 4    { "name": "output", "axes": [{"name": "x"}] }
 5  ],
 6  "coordinateTransformations": [{
 7    "name": "a coordinate field transform",
 8    "type": "coordinates",
 9    "path": "i2xCoordinates",
10    "input": "input",
11    "output": "output",
12    "interpolation": "nearest"
13  }]
14}

bijection_verbose#

1{
2  "type": "bijection",
3  "forward": { "type" : "coordinates", "path" : "forward_coordinates", "input" : "src", "output" : "tgt" },
4  "inverse": { "type" : "coordinates", "path" : "inverse_coordinates", "input" : "tgt", "output" : "src" },
5  "input": "src",
6  "output": "tgt"
7}

byDimensionXarray#

 1{
 2  "coordinateSystems": [
 3    {
 4      "name": "physical",
 5      "axes": [
 6        { "name": "x", "type": "space", "unit": "micrometer" },
 7        { "name": "y", "type": "space", "unit": "micrometer" }
 8      ]
 9    },
10    {
11      "name": "array",
12      "axes": [
13        { "name": "dim_0", "type": "array" },
14        { "name": "dim_1", "type": "array" }
15      ]
16    }
17  ],
18  "coordinateTransformations": [
19    {
20      "type": "byDimension",
21      "input": "array",
22      "output": "physical",
23      "transformations": [
24        {
25          "type": "coordinates",
26          "path": "xCoordinates",
27          "input_axes": [ 0 ],
28          "output_axes": [ 0 ]
29        },
30        {
31          "type": "coordinates",
32          "path": "yCoordinates",
33          "input_axes": [ 1 ],
34          "output_axes": [ 1 ]
35        }
36      ]
37    }
38  ]
39}

affine2d2d#

 1{
 2  "coordinateSystems" : [
 3    { "name": "ji", "axes": [{"name": "j"}, {"name": "i"}] },
 4    { "name": "yx", "axes": [{"name": "y"}, {"name": "x"}] }
 5  ],
 6  "coordinateTransformations" : [ 
 7    {
 8      "type": "affine",
 9      "affine": [[1, 2, 3], [4, 5, 6]],
10      "input": "ji",
11      "output": "yx"
12    }
13  ]
14}

scale_with_discrete#

 1{
 2  "coordinateSystems": [
 3    {
 4      "name": "in",
 5      "axes": [
 6        {"name": "k", "discrete": true},
 7        {"name": "j", "discrete": false},
 8        {"name": "i", "discrete": false}
 9      ]
10    },
11    {
12      "name": "out",
13      "axes": [
14        {"name": "c", "discrete": true},
15        {"name": "y", "discrete": false},
16        {"name": "x", "discrete": false}
17      ]
18    }
19  ],
20  "coordinateTransformations": [ 
21    {
22      "type": "scale",
23      "scale": [1, 3.12, 2],
24      "input": "in",
25      "output": "out"
26    }
27  ]
28}

bijection#

 1{
 2  "coordinateSystems" : [
 3    { "name": "src", "axes": [{"name": "j"}, {"name": "i"}] },
 4    { "name": "tgt", "axes": [{"name": "y"}, {"name": "x"}] }
 5  ],
 6  "coordinateTransformations" : [ 
 7    {
 8      "type": "bijection",
 9      "forward": {
10        "type" : "coordinates",
11        "path" : "forward_coordinates"
12      },
13      "inverse": {
14        "type" : "coordinates",
15        "path" : "inverse_coordinates"
16      },
17      "input": "src",
18      "output": "tgt"
19    }
20  ]
21}

byDimensionInvalid1#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ] },
 4    { "name": "out", "axes": [ {"name": "y"}, {"name": "x"} ] }
 5  ],
 6  "coordinateTransformations": [
 7    {
 8      "type": "byDimension",
 9      "input": "in",
10      "output": "out",
11      "transformations": [
12        {
13          "transformation": {
14            "type": "translation",
15            "translation": [-1.0]
16          },
17          "input_axes": [1],
18          "output_axes": [2]
19        },
20        {
21          "transformation": {
22            "type": "scale",
23            "scale": [2.0]
24          },
25          "input_axes": [0],
26          "output_axes": [2]
27        }
28      ]
29    }
30  ]
31}

affine2d3d#

 1{
 2  "coordinateSystems": [
 3    { "name": "ij", "axes": [{"name": "i"}, {"name": "j"}] },
 4    { "name": "zyx", "axes": [{"name": "z"}, {"name": "y"}, {"name": "x"}] }
 5  ],
 6  "coordinateTransformations": [ 
 7    {
 8      "type": "affine",
 9      "affine": [[1, 0, 0], [2, 3, 4], [5, 6, 7]],
10      "input": "ij",
11      "output": "zyx"
12    }
13  ]
14}

sequence#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ]},
 4    { "name": "out", "axes": [ {"name": "y"}, {"name": "x"} ]}
 5  ],
 6  "coordinateTransformations": [ 
 7    {
 8      "type": "sequence",
 9      "input": "in",
10      "output": "out",
11      "transformations": [
12        {
13            "type": "translation",
14            "translation": [0.1, 0.9]
15        },
16        {
17            "type": "scale",
18            "scale": [2, 3]
19        }
20      ]
21    }
22  ]
23}

byDimension2#

 1{
 2  "coordinateSystems": [
 3    {
 4      "name": "in",
 5      "axes": [
 6        { "name": "l", "type": "array" },
 7        { "name": "j", "type": "array" },
 8        { "name": "k", "type": "array" },
 9        { "name": "i", "type": "array" }
10      ]
11    },
12    {
13      "name": "out",
14      "axes": [
15        { "name": "z", "type": "array" },
16        { "name": "y", "type": "array" },
17        { "name": "x", "type": "array" }
18      ]
19    }
20  ],
21  "coordinateTransformations": [
22    {
23      "type": "byDimension",
24      "input": "in",
25      "output": "out",
26      "transformations": [
27        {
28          "transformation": {
29            "type": "translation",
30            "translation": [ 0.5, 1.5 ]
31          },
32          "input_axes": [ 3, 2 ],
33          "output_axes": [ 1, 2 ]
34        },
35        {
36          "transformation": {
37            "type": "scale",
38            "scale": [ 2 ]
39          },
40          "input_axes": [ 1 ],
41          "output_axes": [ 0 ]
42        }
43      ]
44    }
45  ]
46}

scale#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [{"name": "j"}, {"name": "i"}] },
 4    { "name": "out", "axes": [{"name": "y"}, {"name": "x"}] }
 5  ],
 6  "coordinateTransformations": [ 
 7    {
 8      "type": "scale",
 9      "scale": [2, 3.12],
10      "input": "in",
11      "output": "out"
12    }
13  ]
14}

xarrayLike#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "i", "type": "array"}, {"name": "j", "type": "array"} ]},
 4    { "name": "out", "axes": [ {"name": "x", "type": "space"}, {"name": "y", "type": "space"} ]}
 5  ],
 6  "coordinateTransformations": [ 
 7    {
 8      "type": "byDimension",
 9      "input": "in",
10      "output": "out",
11      "transformations": [
12        {
13            "type": "coordinates",
14            "path": "/xCoordinates",
15            "input_axes" : ["i"],
16            "output_axes" : ["x"]
17        },
18        {
19            "type": "coordinates",
20            "path": "/yCoordinates",
21            "input_axes" : ["j"],
22            "output_axes" : ["y"]
23        }
24      ]
25    }
26  ]
27}

displacement1d#

 1{
 2  "coordinateSystems": [
 3    { "name": "input", "axes": [{"name": "i"}] },
 4    { "name": "output", "axes": [{"name": "x"}] }
 5  ],
 6  "coordinateTransformations": [{
 7    "name": "a displacement field transform",
 8    "type": "displacements",
 9    "path": "i2xCoordinates",
10    "input": "input",
11    "output": "output",
12    "interpolation": "nearest"
13  }]
14}

mapAxis1#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ]},
 4    { "name": "out1", "axes": [ {"name": "y"}, {"name": "x"} ]},
 5    { "name": "out2", "axes": [ {"name": "y"}, {"name": "x"} ]}
 6  ],
 7  "coordinateTransformations": [ 
 8    { 
 9      "name": "equivalent to identity",
10      "type": "mapAxis", 
11      "mapAxis": [0, 1],
12      "input": "in",
13      "output": "out1" 
14    },
15    { 
16      "name": "permutation",
17      "type": "mapAxis", 
18      "mapAxis": [1, 0],
19      "input": "in",
20      "output": "out2" 
21    }
22  ]
23}

affine2d2d_with_channel#

 1{
 2  "coordinateSystems" : [
 3    {
 4      "name": "cji",
 5      "axes": [
 6        {"name": "k", "discrete": true},
 7        {"name": "j", "discrete": false},
 8        {"name": "i", "discrete": false}
 9      ]
10    },
11    {
12      "name": "cyx",
13      "axes": [
14        {"name": "c", "discrete": true},
15        {"name": "y", "discrete": false},
16        {"name": "x", "discrete": false}
17      ]
18    }
19  ],
20  "coordinateTransformations" : [ 
21    {
22      "type": "affine",
23      "affine": [
24        [1, 0, 0, 0],
25        [0, 1, 2, 3],
26        [0, 4, 5, 6]
27      ],
28      "input": "cji",
29      "output": "cyx"
30    }
31  ]
32}

identity#

1{
2  "coordinateSystems": [
3    { "name": "in", "axes": [ {"name": "j"}, {"name": "i"} ]},
4    { "name": "out", "axes": [ {"name": "y"}, {"name": "x"} ]}
5  ],
6  "coordinateTransformations": [ 
7    { "type": "identity", "input": "in", "output": "out" }
8  ]
9}

mapAxis2#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [ {"name": "a"}, {"name": "b"}]},
 4    { "name": "out_down", "axes": [ {"name": "x"}]},
 5    { "name": "out_up", "axes": [ {"name": "z"}, {"name": "y"}, {"name": "x"} ]}
 6  ],
 7  "coordinateTransformations": [ 
 8    { 
 9      "name": "projection down",
10      "type": "mapAxis", 
11      "mapAxis": [1],
12      "input": "in",
13      "output": "out_down" 
14    },
15    { 
16      "name": "projection up",
17      "type": "mapAxis", 
18      "mapAxis": [1, 1, 0],
19      "input": "in",
20      "output": "out_up" 
21    }
22  ]
23}

sequenceSubspace1#

 1{
 2  "coordinateSystems" : [
 3    { "name" : "in", "axes" : [ {"name" : "i"}, {"name" : "j"} ] },
 4    { "name" : "out", "axes" : [ {"name" : "x"}, {"name" : "y"} ] }
 5  ],
 6  "coordinateTransformations" : [
 7    {
 8      "type" : "sequence",
 9      "input" : "in",
10      "output" : "out",
11      "transformations" : [
12        {
13            "type" : "coordinates",
14            "path" : "/coordinates",
15            "input_axes" : ["i"],
16            "output_axes" : ["x"]
17        },
18        {
19            "type" : "scale",
20            "scale" : [2.0],
21            "input_axes" : ["j"],
22            "output_axes" : ["y"]
23        }
24      ]
25    }
26  ]
27}

translation#

 1{
 2  "coordinateSystems": [
 3    { "name": "in", "axes": [{"name": "j"}, {"name": "i"}] },
 4    { "name": "out", "axes": [{"name": "y"}, {"name": "x"}] }
 5  ],
 6  "coordinateTransformations" : [ 
 7    {
 8      "type": "translation",
 9      "input": "in",
10      "output": "out",
11      "translation": [9, -1.42]
12    }
13  ]
14}