Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zarr v3 #206

Closed
wants to merge 51 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
f0da62a
start of named space and transform metadata
bogovicj Feb 1, 2022
4331deb
fwd and inv coordinate transforms
bogovicj Feb 9, 2022
8051e71
Merge remote-tracking branch 'upstream/main' into coord-transforms
bogovicj Feb 9, 2022
180568b
more transform details
bogovicj Feb 9, 2022
4f48364
start page on details and recommendations
bogovicj Feb 9, 2022
98a40de
transformation progress
bogovicj May 5, 2022
dd71953
change fields to camelCase
bogovicj May 9, 2022
1b26a8e
add details for coordinate and displacement fields
bogovicj May 12, 2022
cd9c431
add details on dimension order
bogovicj May 13, 2022
e210027
clean up array indexing section
bogovicj May 13, 2022
d873541
add more details for scale, translation, displacement
bogovicj May 15, 2022
63ed4ce
merge and cleanup
bogovicj May 16, 2022
a459492
Merge remote-tracking branch 'upstream/main' into coord-transforms
bogovicj May 24, 2022
9058b4b
clarify input and output dimensionality for transforms
bogovicj Jun 1, 2022
38ac6ac
update to transformations
bogovicj Jun 3, 2022
3a2aae1
rotation transformation details
Jun 3, 2022
ed12192
minor rephrase intro to coordinateTransformations section
Jun 3, 2022
3ec8543
add details for bijection ct
bogovicj Jun 6, 2022
30cade5
big changes to transformations spec
bogovicj Jun 9, 2022
df470d7
Add "coordinateSystems" and "coordinateTransformations" fields for ex…
bogovicj Sep 6, 2022
99f3a4e
coordinate transformation updates:
bogovicj Sep 7, 2022
de73c68
update multiscales_example
bogovicj Sep 11, 2022
163c8f4
rename dimensionWise byDimension
bogovicj Sep 11, 2022
7b35c28
add more transformation examples
bogovicj Sep 11, 2022
7baeed7
byDimension examples, rm input/outputAxes fields
bogovicj Sep 11, 2022
162a9e9
reorder, simplify sections.
Sep 15, 2022
a90662d
clean up example formatting
Sep 15, 2022
32656e5
add array coordinate system example
Sep 16, 2022
0245ca9
rm duplicate editor names, typo fix
bogovicj Sep 23, 2022
a3ff0b5
fix sequence example json. add inverseOf to input/output field exception
Sep 23, 2022
0df402d
be clearer re: half-open interval
Sep 23, 2022
f05d480
move axes section into coordinateSystems section
bogovicj Oct 4, 2022
ed17ed5
typo fixes
bogovicj Oct 4, 2022
b9f89e1
Merge branch 'coord-transforms' of github.com:bogovicj/ngff into coor…
bogovicj Oct 4, 2022
cd01ab7
add two new coordinate transformation examples
bogovicj Oct 4, 2022
027b55b
describe where to store coordinateTransformations
bogovicj Oct 5, 2022
5bfe442
corrections for coordinates and displacements
bogovicj Oct 5, 2022
aab7469
add optional "longName" field for axes
bogovicj Oct 6, 2022
85808cf
Merge remote-tracking branch 'upstream/main' into coord-transforms
bogovicj Oct 12, 2022
74466c5
Move rotation example to example directory
ivirshup Oct 9, 2022
ff2bc86
Move inverseOf example to examples directory
ivirshup Oct 9, 2022
a68523f
multiscales example relative typo fix
bogovicj Oct 12, 2022
3fe7aa2
corrections and clarifications to coordinates and displacements
bogovicj Oct 12, 2022
f976a87
transforms MUST have "input"
bogovicj Oct 12, 2022
72b4f9c
cts: remove url parameters
bogovicj Mar 14, 2023
be7d849
ct: fix and clarify nested json representation for affine and rotatio…
bogovicj Mar 14, 2023
da94207
motivate coordinate systems
bogovicj Mar 15, 2023
b92f540
describe discrete axes, interpolation, etc
bogovicj Mar 15, 2023
6d3ba9b
initial draft for Zarr3-based OME-Zarr
normanrz Jul 20, 2023
0e51292
better directory example
normanrz Jul 20, 2023
fc6db29
explicitly allow all Zarr features
normanrz Jul 20, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions latest/examples/coordSystems/arrayCoordSys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"arrayCoordinateSystem" : {
"name" : "myDataArray",
"axes" : [
{"name": "i", "type": "array"},
{"name": "j", "type": "array"},
{"name": "k", "type": "array"}
]
}
}
42 changes: 24 additions & 18 deletions latest/examples/multiscales_strict/multiscales_example.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,50 @@
{
"version": "0.5-dev",
"name": "example",
"axes": [
{"name": "t", "type": "time", "unit": "millisecond"},
{"name": "c", "type": "channel"},
{"name": "z", "type": "space", "unit": "micrometer"},
{"name": "y", "type": "space", "unit": "micrometer"},
{"name": "x", "type": "space", "unit": "micrometer"}
"coordinateSystems" : [
{
"name" : "example",
"axes": [
{"name": "t", "type": "time", "unit": "millisecond"},
{"name": "c", "type": "channel"},
{"name": "z", "type": "space", "unit": "micrometer"},
{"name": "y", "type": "space", "unit": "micrometer"},
{"name": "x", "type": "space", "unit": "micrometer"}
]
}
],
"datasets": [
{
"path": "0",
"coordinateTransformations": [{
// the voxel size for the first scale level (0.5 micrometer)
// the voxel size for the first scale level (0.5 micrometer), time unit (0.1 milliseconds)
"type": "scale",
"scale": [1.0, 1.0, 0.5, 0.5, 0.5]
"scale": [0.1, 1.0, 0.5, 0.5, 0.5],
"input" : "/0",
"output" : "example"
}]
},
{
"path": "1",
"coordinateTransformations": [{
// the voxel size for the second scale level (downscaled by a factor of 2 -> 1 micrometer)
// the voxel size for the second scale level (downscaled by a factor of 2 -> 1 micrometer), time unit (0.1 milliseconds)
"type": "scale",
"scale": [1.0, 1.0, 1.0, 1.0, 1.0]
"scale": [0.1, 1.0, 1.0, 1.0, 1.0],
"input" : "/1`",
"output" : "example"
}]
},
{
"path": "2",
"coordinateTransformations": [{
// the voxel size for the third scale level (downscaled by a factor of 4 -> 2 micrometer)
// the voxel size for the third scale level (downscaled by a factor of 4 -> 2 micrometer), time unit (0.1 milliseconds)
"type": "scale",
"scale": [1.0, 1.0, 2.0, 2.0, 2.0]
"scale": [0.1, 1.0, 2.0, 2.0, 2.0],
"input" : "/2",
"output" : "example"
}]
}
],
"coordinateTransformations": [{
// the time unit (0.1 milliseconds), which is the same for each scale level
"type": "scale",
"scale": [0.1, 1.0, 1.0, 1.0, 1.0]
}],
"type": "gaussian",
"metadata": {
"description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
Expand All @@ -51,4 +57,4 @@
}
}
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"multiscales": [
{
"version": "0.5-dev",
"name": "example",
"coordinateSystems" : [
{
"name" : "exampleCoordinateSystem",
"axes": [
{"name": "t", "type": "time", "unit": "millisecond"},
{"name": "c", "type": "channel"},
{"name": "z", "type": "space", "unit": "micrometer"},
{"name": "y", "type": "space", "unit": "micrometer"},
{"name": "x", "type": "space", "unit": "micrometer"}
]
}
],
"datasets": [
{
"path": "0"
// the transformation of other arrays are defined relative to this, the highest resolution, array
},
{
"path": "1",
"coordinateTransformations": [{
// the second scale level (downscaled by a factor of 2 relative to "0" in zyx)
"type": "scale",
"scale": [1, 1, 2, 2, 2],
"input" : "/1`",
"output" : "/0"
}]
},
{
"path": "2",
"coordinateTransformations": [{
// the third scale level (downscaled by a factor of 4 relative to "0" in zyx)
"type": "scale",
"scale": [1, 1, 4, 4, 4],
"input" : "/2",
"output" : "/0"
}]
}
],
"coordinateTransformations": [{
// the time unit (0.1 milliseconds), the voxel size for all spatial axes of "0" (0.5 micrometers)
"type": "scale",
"scale": [0.1, 1.0, 0.5, 0.5, 0.5],
"input" : "/0",
"output" : "exampleCoordinateSystem"
}],
"type": "gaussian",
"metadata": {
"description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
"method": "skimage.transform.pyramid_gaussian",
"version": "0.16.1",
"args": "[true]",
"kwargs": {"multichannel": true}
}
}
]
}
64 changes: 64 additions & 0 deletions latest/examples/subspace/subspaceMultidim.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"coordinateSystems" : [
{ "name " : "in", "axes" : [ {"name" : "0", "name" : "1", "name": "2", "name": "3", "name": "4" }] },
{ "name " : "out", "axes" : [ {"name" : "x", "name" : "y", "name" : "z" }] }
],
"coordinateTransformations" : [
{
"type" : "sequence",
"name" : "5D-to-3D",
"input" : "in",
"output" : "out",
"transformations" : [
{
"type": "mapIndex",
"inputAxes" : ["0", "1"],
"outputAxes" : ["x", "y"]
},
{
"type": "scale",
"scale" : [2],
"inputAxes" : ["3"],
"outputAxes" : ["z"]
}
]
},
{
"type" : "sequence",
"name" : "5D-to-3D-not-contiguous",
"input" : "in",
"output" : "out",
"transformations" : [
{
"type": "mapIndex",
"inputAxes" : ["0", "2"],
"outputAxes" : ["x", "z"]
},
{
"type": "scale",
"scale" : [2],
"inputAxes" : ["1"],
"outputAxes" : ["y"]
}
]
},
{
"type" : "sequence",
"name" : "5D-to-3D-not-contiguous",
"input" : "in",
"output" : "out",
"transformations" : [
{
"type": "mapAxes",
"map" : {"0":"x", "2":"z"}
},
{
"type": "scale",
"scale" : [2],
"inputAxes" : ["1"],
"outputAxes" : ["y"]
}
]
}
]
}
26 changes: 26 additions & 0 deletions latest/examples/subspace/subspacePermute.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"coordinateSystems" : [
{ "name" : "in", "axes" : [ {"name" : "i"}, {"name" : "j" } ]},
{ "name" : "out", "axes" : [ {"name" : "x"}, {"name" : "y" } ]}
],
"coordinateTransformations" : [
{
"type" : "byDimension",
"input" : "in",
"output" : "out",
"transformations" : [
{
"type": "identity",
"input" : ["j"],
"output" : ["x"]
},
{
"type": "scale",
"scale" : [2],
"input" : ["i"],
"output" : ["y"]
}
]
}
]
}
14 changes: 14 additions & 0 deletions latest/examples/transformations/affine2d2d.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"coordinateSystems" : [
{ "name": "ij", "axes": [{"name": "i"}, {"name": "j"}] },
{ "name": "xy", "axes": [{"name": "x"}, {"name": "y"}] }
],
"coordinateTransformations" : [
{
"type": "affine",
"affine": [1, 2, 3, 4, 5, 6],
"input": "ij",
"output": "xy"
}
]
}
14 changes: 14 additions & 0 deletions latest/examples/transformations/affine2d3d.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"coordinateSystems": [
{ "name": "ij", "axes": [{"name": "i"}, {"name": "j"}] },
{ "name": "xyz", "axes": [{"name": "x"}, {"name": "y"}, {"name": "z"}] }
],
"coordinateTransformations": [
{
"type": "affine",
"affine": [1, 2, 3, 4, 5, 6, 7, 8, 9],
"input": "ij",
"output": "xyz"
}
]
}
15 changes: 15 additions & 0 deletions latest/examples/transformations/affine2d3d_nested.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"coordinateSystems" : [
{ "name": "ij", "axes": [{"name": "i"}, {"name": "j"}] },
{ "name": "xy", "axes": [{"name": "x"}, {"name": "y"}] }
],
"coordinateTransformations" : [
{
"type": "affine",
"affine": [ [1, 2, 3],
[4, 5, 6]],
"input": "ij",
"output": "xy"
}
]
}
15 changes: 15 additions & 0 deletions latest/examples/transformations/bijection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"coordinateSystems" : [
{ "name": "src", "axes": [{"name": "i"}, {"name": "j"}] },
{ "name": "tgt", "axes": [{"name": "x"}, {"name": "y"}] }
],
"coordinateTransformations" : [
{
"type": "bijection",
"forward": { "type" : "coordinates", "path" : "/forward_coordinates" },
"inverse": { "type" : "coordinates", "path" : "/inverse_coordinates" },
"input": "src",
"output": "tgt"
}
]
}
7 changes: 7 additions & 0 deletions latest/examples/transformations/bijection_verbose.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "bijection",
"forward": { "type" : "coordinates", "path" : "/forward_coordinates", "input" : "src", "output" : "tgt" },
"inverse": { "type" : "coordinates", "path" : "/inverse_coordinates", "input" : "tgt", "output" : "src" },
"input": "src",
"output": "tgt"
}
17 changes: 17 additions & 0 deletions latest/examples/transformations/byDimension1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"coordinateSystems": [
{ "name": "in", "axes": [ {"name": "i"}, {"name": "j"} ] },
{ "name": "out", "axes": [ {"name": "x"}, {"name": "y"} ] }
],
"coordinateTransformations": [
{
"type": "byDimension",
"input": "in",
"output": "out",
"transformations": [
{ "type": "translation", "translation": [-1.0], "input": ["i"], "output": ["x"]},
{ "type": "scale", "scale": [2.0], "input": ["j"], "output": ["y"]}
]
}
]
}
17 changes: 17 additions & 0 deletions latest/examples/transformations/byDimension2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"coordinateSystems": [
{ "name": "in", "axes": [ {"name": "i"}, {"name": "j"}, {"name": "k"}, {"name": "l"}] },
{ "name": "out", "axes": [ {"name": "x"}, {"name": "y"}, {"name": "z"} ] }
],
"coordinateTransformations": [
{
"type": "byDimension",
"input": "in",
"output": "out",
"transformations" : [
{ "type": "translation", "translation": [1, 3], "input": ["i", "k" ], "output": ["y", "x"]},
{ "type": "scale", "scale": [2.0], "input": ["j"], "output": ["z"]}
]
}
]
}
17 changes: 17 additions & 0 deletions latest/examples/transformations/byDimensionInvalid1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"coordinateSystems": [
{ "name": "in", "axes": [ {"name": "i"}, {"name": "j"} ] },
{ "name": "out", "axes": [ {"name": "x"}, {"name": "y"} ] }
],
"coordinateTransformations": [
{
"type": "byDimension",
"input": "in",
"output": "out",
"transformations": [
{ "type": "translation", "translation": [-1.0], "input": ["i"], "output": ["z"]},
{ "type": "scale", "scale": [2.0], "input": ["0"], "output": ["y"]}
]
}
]
}
17 changes: 17 additions & 0 deletions latest/examples/transformations/byDimensionInvalid2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"coordinateSystems": [
{ "name": "in", "axes": [ {"name": "i"}, {"name": "j"} ] },
{ "name": "out", "axes": [ {"name": "x"}, {"name": "y"} ] }
],
"coordinateTransformations": [
{
"type": "byDimension",
"input": "in",
"output": "out",
"transformations": [
{ "type": "translation", "translation": [-1.0], "input": ["i"], "output": ["x"]},
{ "type": "scale", "scale": [2.0], "input": ["i"], "output": ["x"]}
]
}
]
}
14 changes: 14 additions & 0 deletions latest/examples/transformations/coordinates1d.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"coordinateSystems": [
{ "name": "i", "axes": [{"name": "i"}] },
{ "name": "x", "axes": [{"name": "x"}] }
],
"coordinateTransformations": [{
"name": "a coordinate field transform",
"type": "coordinates",
"path": "i2xCoordinates",
"input": "i",
"output": "x",
"interpolation": "nearest"
}]
}
Loading