From bd308cb1802d5a9d505248e0bacad23a0f67288c Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 15 Jan 2026 22:56:33 +0100
Subject: [PATCH 01/27] port RFC5 updated proposal to ngff-spec
---
.../multiscales_example.json | 12 +-
.../multiscales_example_relative.json | 16 +-
.../multiscales_transformations.json | 4 +-
examples/subspace/subspaceMultidim.json | 121 ++--
examples/subspace/subspacePermute.json | 87 ++-
examples/transformations/inverseOf.json | 17 -
examples/transformations/mapAxis1.json | 4 +-
examples/transformations/mapAxis2.json | 4 +-
index.md | 636 +++++++++---------
9 files changed, 475 insertions(+), 426 deletions(-)
delete mode 100644 examples/transformations/inverseOf.json
diff --git a/examples/multiscales_strict/multiscales_example.json b/examples/multiscales_strict/multiscales_example.json
index b874f281..9fa8e1c4 100644
--- a/examples/multiscales_strict/multiscales_example.json
+++ b/examples/multiscales_strict/multiscales_example.json
@@ -21,40 +21,40 @@
],
"datasets": [
{
- "path": "0",
+ "path": "s0",
"coordinateTransformations": [
{
// the voxel size for the first scale level (0.5 micrometer)
// and the time unit (0.1 milliseconds), which is the same for each scale level
"type": "scale",
"scale": [0.1, 1.0, 0.5, 0.5, 0.5],
- "input": "0",
+ "input": "s0",
"output": "intrinsic"
}
]
},
{
- "path": "1",
+ "path": "s1",
"coordinateTransformations": [
{
// the voxel size for the second scale level (downscaled by a factor of 2 -> 1 micrometer)
// and 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],
- "input": "1",
+ "input": "s1",
"output": "intrinsic"
}
]
},
{
- "path": "2",
+ "path": "s2",
"coordinateTransformations": [
{
// the voxel size for the third scale level (downscaled by a factor of 4 -> 2 micrometer)
// and the time unit (0.1 milliseconds), which is the same for each scale level
"type": "scale",
"scale": [0.1, 1.0, 2.0, 2.0, 2.0],
- "input": "2",
+ "input": "s2",
"output": "intrinsic"
}
]
diff --git a/examples/multiscales_strict/multiscales_example_relative.json b/examples/multiscales_strict/multiscales_example_relative.json
index 65a6e9d5..fabf5957 100644
--- a/examples/multiscales_strict/multiscales_example_relative.json
+++ b/examples/multiscales_strict/multiscales_example_relative.json
@@ -38,23 +38,23 @@
}]
},
{
- "path": "1",
+ "path": "s1",
"coordinateTransformations": [{
- // the second scale level (downscaled by a factor of 2 relative to "0" in zyx)
+ // the second scale level (downscaled by a factor of 2 relative to "s0" in zyx)
"type": "scale",
"scale": [1, 1, 2, 2, 2],
- "input" : "/1",
- "output" : "array_0"
+ "input" : "s1",
+ "output" : "intrinsic"
}]
},
{
- "path": "2",
+ "path": "s2",
"coordinateTransformations": [{
- // the third scale level (downscaled by a factor of 4 relative to "0" in zyx)
+ // the third scale level (downscaled by a factor of 4 relative to "s0" in zyx)
"type": "scale",
"scale": [1, 1, 4, 4, 4],
- "input" : "/2",
- "output" : "array_0"
+ "input" : "s2",
+ "output" : "intrinsic"
}]
}
],
diff --git a/examples/multiscales_strict/multiscales_transformations.json b/examples/multiscales_strict/multiscales_transformations.json
index 46e60a4c..338faab8 100644
--- a/examples/multiscales_strict/multiscales_transformations.json
+++ b/examples/multiscales_strict/multiscales_transformations.json
@@ -40,12 +40,12 @@
],
"datasets": [
{
- "path": "0",
+ "path": "s0",
"coordinateTransformations": [
{
"scale": [1, 1],
"type": "scale",
- "input": "0",
+ "input": "s0",
"output": "intrinsic"
}
]
diff --git a/examples/subspace/subspaceMultidim.json b/examples/subspace/subspaceMultidim.json
index b2200a47..6264ab51 100644
--- a/examples/subspace/subspaceMultidim.json
+++ b/examples/subspace/subspaceMultidim.json
@@ -1,44 +1,87 @@
{
- "coordinateSystems": [
- {
- "name": "in",
- "axes": [
- { "name": "0", "type": "array" },
- { "name": "1", "type": "array" },
- { "name": "2", "type": "array" },
- { "name": "3", "type": "array" },
- { "name": "4", "type": "array" }
- ]
- },
- {
- "name": "out",
- "axes": [
- { "name": "x", "type": "space" },
- { "name": "y", "type": "space" },
- { "name": "z", "type": "space" }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "type": "byDimension",
- "name": "5D-to-3D-not-contiguous",
- "input": "in",
- "output": "out",
- "transformations": [
- {
- "type": "mapAxis",
- "mapAxis": { "0": "x", "2": "z" },
- "input_axes": [ "0", "2" ],
- "output_axes": [ "x", "z" ]
- },
+ "zarr_format": 3,
+ "node_type": "group",
+ "attributes": {
+ "ome": {
+ "version": "0.6.dev2",
+ "multiscales": [
{
- "type": "scale",
- "scale": [ 2 ],
- "input_axes": [ "1" ],
- "output_axes": [ "y" ]
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ },
+ {
+ "name": "array_coordinates",
+ "axes": [
+ {
+ "type": "array",
+ "name": "dim_0",
+ "discrete": true
+ },
+ {
+ "type": "array",
+ "name": "dim_1",
+ "discrete": true
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "byDimension",
+ "output": "physical",
+ "input": "array",
+ "transformations": [
+ {
+ "type": "scale",
+ "output_axes": [
+ "x"
+ ],
+ "input_axes": [
+ "dim_1"
+ ],
+ "scale": [
+ 2
+ ]
+ },
+ {
+ "type": "translation",
+ "output_axes": [
+ "y"
+ ],
+ "input_axes": [
+ "dim_0"
+ ],
+ "translation": [
+ -10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ]
}
]
}
- ]
-}
+ }
+}
\ No newline at end of file
diff --git a/examples/subspace/subspacePermute.json b/examples/subspace/subspacePermute.json
index 4594e8c7..c2752b83 100644
--- a/examples/subspace/subspacePermute.json
+++ b/examples/subspace/subspacePermute.json
@@ -1,26 +1,71 @@
{
- "coordinateSystems" : [
- { "name" : "in", "axes" : [ {"name" : "i"}, {"name" : "j" } ]},
- { "name" : "out", "axes" : [ {"name" : "x"}, {"name" : "y" } ]}
- ],
- "coordinateTransformations" : [
- {
- "type" : "byDimension",
- "input" : "in",
- "output" : "out",
- "transformations" : [
+ "zarr_format": 3,
+ "node_type": "group",
+ "attributes": {
+ "ome": {
+ "version": "0.6.dev2",
+ "multiscales": [
{
- "type": "identity",
- "input_axes" : ["j"],
- "output_axes" : ["x"]
- },
- {
- "type": "scale",
- "scale" : [2],
- "input_axes" : ["i"],
- "output_axes" : ["y"]
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ },
+ {
+ "name": "array_coordinates",
+ "axes": [
+ {
+ "type": "array",
+ "name": "dim_0",
+ "discrete": true
+ },
+ {
+ "type": "array",
+ "name": "dim_1",
+ "discrete": true
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "scale",
+ "output": "array_coordinates",
+ "input": "array",
+ "name": "default-scale",
+ "scale": [1, 1]
+ }
+ ]
+ }
+ ],
+ "coordinateTransformations": [
+ {
+ "type": "mapAxis",
+ "output": "physical",
+ "input": "array_coordinates",
+ "name": "transform-name",
+ "mapAxis": [1, 0]
+ }
+ ]
}
]
}
- ]
-}
+ }
+}
\ No newline at end of file
diff --git a/examples/transformations/inverseOf.json b/examples/transformations/inverseOf.json
deleted file mode 100644
index 4c77e9ea..00000000
--- a/examples/transformations/inverseOf.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "coordinateSystems" : [
- { "name" : "moving", "axes" : [{"name" : "y-moving"}, {"name":"x-moving"}] },
- { "name" : "fixed", "axes" : [{"name" : "y-fixed"}, {"name":"x-fixed"}] }
- ],
- "coordinateTransformations" : [
- {
- "type": "inverseOf",
- "transformation" : {
- "type": "displacements",
- "path": "path/to/displacements"
- },
- "input" : "moving",
- "output" : "fixed"
- }
- ]
-}
diff --git a/examples/transformations/mapAxis1.json b/examples/transformations/mapAxis1.json
index 6aeeca52..9bdb2883 100644
--- a/examples/transformations/mapAxis1.json
+++ b/examples/transformations/mapAxis1.json
@@ -8,14 +8,14 @@
{
"name": "equivalent to identity",
"type": "mapAxis",
- "mapAxis": { "x":"i", "y":"j" },
+ "mapAxis": [0, 1],
"input": "in",
"output": "out1"
},
{
"name": "permutation",
"type": "mapAxis",
- "mapAxis": { "y":"i", "x":"j" },
+ "mapAxis": [1, 0],
"input": "in",
"output": "out2"
}
diff --git a/examples/transformations/mapAxis2.json b/examples/transformations/mapAxis2.json
index 0c008475..db214a00 100644
--- a/examples/transformations/mapAxis2.json
+++ b/examples/transformations/mapAxis2.json
@@ -8,14 +8,14 @@
{
"name": "projection down",
"type": "mapAxis",
- "mapAxis": { "x": "b" },
+ "mapAxis": [1],
"input": "in",
"output": "out_down"
},
{
"name": "projection up",
"type": "mapAxis",
- "mapAxis": { "z": "b", "y": "b", "x": "a" },
+ "mapAxis": [1, 1, 0],
"input": "in",
"output": "out_up"
}
diff --git a/index.md b/index.md
index 105b0a77..4be755f6 100644
--- a/index.md
+++ b/index.md
@@ -137,6 +137,39 @@ A well group SHOULD NOT be present if there are no images in the well.
└── ... # Other rows
```
+### Scene
+(scene-format)=
+
+The following specification describes the hierarchy of Zarr groups for a scene dataset.
+The group above the images defines a scene, which is a collection of images that share a spatial relationship with each other (see [coordinate transformations metadata](#coord-trafo-md)).
+It MUST implement the [scene specification](#scene-md).
+
+For transformations that store data or parameters in a Zarr array,
+those Zarr arrays SHOULD be stored in a Zarr group on the same level as images called "coordinateTransformations".
+
+
+store.zarr # One scene dataset
+│
+├── zarr.json # coordinate transformations describing the relationship between two image coordinate systems
+│ # are stored in the "scene" dictionary here.
+│ # I.e., transformations between coordinate systems in the 'volume' and 'crop' multiscale images are stored here.
+│
+├── coordinateTransformations # transformations that use array storage for their parameters should go in a Zarr group named "coordinateTransformations".
+│ └── displacements # for example, a Zarr array containing a displacement field
+│ └── zarr.json
+│
+├── volume
+│ ├── zarr.json # group level attributes (multiscales)
+│ └── 0 # a group containing the 0th scale
+│ └── image # a Zarr array
+│ └── zarr.json # physical coordinate system and transformations here
+└── crop
+ ├── zarr.json # group level attributes (multiscales)
+ └── 0 # a group containing the 0th scale
+ └── image # a Zarr array
+ └── zarr.json # physical coordinate system and transformations here
+
+
## OME-Zarr Metadata
(metadata)=
@@ -199,14 +232,14 @@ refer to different physical entities and therefore should not be analyzed jointl
Tasks that require images, annotations, regions of interest, etc.,
SHOULD ensure that they are in the same coordinate system (same name and location within the Zarr hierarchy, with identical axes)
or can be transformed to the same coordinate system before doing analysis.
-See the [example below](#spec:example:coordinate_transformation).
+See the [example below](spec:example:coordinate_transformation).
#### "axes" metadata
"axes" describes the dimensions of a coordinate systems
and adds an interpretation to the samples along that dimension.
-It is a list of dictionaries,
+It is an array of dictionaries,
where each dictionary describes a dimension (axis) and:
- MUST contain the field "name" that gives the name for this dimension.
The values MUST be unique across all "name" fields in the same coordinate system.
@@ -225,8 +258,6 @@ where each dictionary describes a dimension (axis) and:
The value MUST be a string,
and can provide a longer name or description of an axis and its properties.
-The length of "axes" MUST be equal to the number of dimensions of the arrays that contain the image data.
-
Arrays are inherently discrete (see Array coordinate systems, below)
but are often used to store discrete samples of a continuous variable.
The continuous values "in between" discrete samples can be retrieved using an *interpolation* method.
@@ -274,7 +305,7 @@ As with all coordinate systems, the dimension names must be unique and non-null.
```
For example, if 0/zarr.json contains:
-```jsonc
+```json
{
"zarr_format": 3,
"node_type": "array",
@@ -287,7 +318,7 @@ Then `dim_0` has length 4, `dim_1` has length 3, and `dim_2` has length 5.
:::
-The axes and their order align with the shape of the corresponding zarr array,
+The axes and their order align with the shape of the corresponding Zarr array,
and whose data depends on the byte order used to store chunks.
As described in the [Zarr array metadata](https://zarr.readthedocs.io/en/stable/spec/v3.html#arrays),
the last dimension of an array in "C" order are stored contiguously on disk or in-memory when directly loaded.
@@ -396,7 +427,7 @@ Conforming readers:
### "coordinateTransformations" metadata
(coord-trafo-md)=
-"coordinateTransformations" describe the mapping between two coordinate systems (defined by [coordinateSystems](#coordinate-systems-md)).
+"coordinateTransformations" describe the mapping between two coordinate systems (defined by [`coordinateSystems`](#coordinate-systems-md)).
For example, to map an array's discrete coordinate system to its corresponding physical coordinates.
Coordinate transforms are in the "forward" direction.
This means they represent functions from *points* in the input space to *points* in the output space
@@ -407,27 +438,25 @@ They:
- MUST contain the field "type" (string).
- MUST contain any other fields required by the given "type" (see table below).
- MUST contain the field "output" (string),
- unless part of a `sequence` or `inverseOf` (see details).
+ unless part of a wrapper transform (, i.e., [`sequence`](#sequence-md), [`bijection`](#bijection-md), [`byDimension`](#bydimension-md), see details).
- MUST contain the field "input" (string),
- unless part of a `sequence` or `inverseOf` (see details).
+ unless part of a wrapper transform (, i.e., [`sequence`](#sequence-md), [`bijection`](#bijection-md), [`byDimension`](#bydimension-md), see details).
- MAY contain the field "name" (string).
- Its value MUST be unique across all "name" fields for coordinate transformations.
+ Its value MUST be unique across all "name" fields for all coordinate transformations in the same list.
- Parameter values MUST be compatible with input and output space dimensionality (see details).
-
The following transformations are supported:
| Type | Fields | Description |
|------|--------|-------------|
| [`identity`](#identity-md) | | The identity transformation is the do-nothing transformation and is typically not explicitly defined. |
| [`mapAxis`](#mapaxis-md) | `"mapAxis":List[number]` | an axis permutation as a transpose array of integer indices that refer to the ordering of the axes in the respective coordinate system. |
-| [`translation`](#translation-md) | one of:
`"translation":List[number]`,
`"path":str` | Translation vector, stored either as a list of numbers (`"translation"`) or as a zarr array at a location in this container (`path`). |
-| [`scale`](#scale-md) | one of:
`"scale":List[number]`,
`"path":str` | Scale vector, stored either as a list of numbers (`scale`) or as a zarr array at a location in this container (`path`). |
-| [`affine`](#affine-md) | one of:
`"affine":List[List[number]]`,
`"path":str` | 2D affine transformation matrix stored either with JSON (`affine`) or as a zarr array at a location in this container (`path`). |
-| [`rotation`](#rotation-md) | one of:
`"rotation":List[List[number]]`,
`"path":str` | 2D rotation transformation matrix stored as an array stored either with json (`rotation`) or as a zarr array at a location in this container (`path`).|
+| [`translation`](#translation-md) | one of:
`"translation":List[number]`,
`"path":str` | Translation vector, stored either as an array of numbers (`"translation"`) or as a Zarr array at a location in this container (`path`). |
+| [`scale`](#scale-md) | one of:
`"scale":List[number]`,
`"path":str` | Scale vector, stored either as an array of numbers (`scale`) or as a Zarr array at a location in this container (`path`). |
+| [`affine`](#affine-md) | one of:
`"affine":List[List[number]]`,
`"path":str` | 2D affine transformation matrix stored either with JSON (`affine`) or as a Zarr array at a location in this container (`path`). |
+| [`rotation`](#rotation-md) | one of:
`"rotation":List[List[number]]`,
`"path":str` | 2D rotation transformation matrix stored as an array stored either with json (`rotation`) or as a Zarr array at a location in this container (`path`).|
| [`sequence`](#sequence-md) | `"transformations":List[Transformation]` | sequence of transformations. Applying the sequence applies the composition of all transforms in the list, in order. |
-| [`displacements`](#coordinates-displacements-md) | `"path":str`
`"interpolation":str` | Displacement field transformation located at `path`. |
-| [`coordinates`](#coordinates-displacements-md) | `"path":str`
`"interpolation":str` | Coordinate field transformation located at `path`. |
-| [`inverseOf`](#inverseof-md) | `"transformation":Transformation` | The inverse of a transformation. Useful if a transform is not closed-form invertible. See forward and inverse of [bijections](#bijection-md) for details and examples. |
+| [`displacements`](#coordinates-displacements-md) | `"path":str` | Displacement field transformation located at `path`. |
+| [`coordinates`](#coordinates-displacements-md) | `"path":str` | Coordinate field transformation located at `path`. |
| [`bijection`](#bijection-md) | `"forward":Transformation`
`"inverse":Transformation` | An invertible transformation providing an explicit forward transformation and its inverse. |
| [`byDimension`](#bydimension-md) | `"transformations":List[Transformation]`,
`"input_axes": List[str]`,
`"output_axes": List[str]` | A high dimensional transformation using lower dimensional transformations on subsets of dimensions. |
@@ -472,161 +501,101 @@ Conforming readers:
- SHOULD be able to apply transformations to points;
- SHOULD be able to apply transformations to images;
-Coordinate transformations can be stored in multiple places to reflect different usecases.
+Coordinate transformations can be stored in multiple places to reflect different use cases.
-- Transformations in individual multiscale datasets represent a special case of transformations
- and are explained [below](#multiscales-md).
-- Additional transformations for single multiscale images MUST be stored under a field `coordinateTransformations`
- in the multiscales dictionaries.
- This `coordinateTransformations` field MUST contain a list of valid [transformations](#trafo-types-md).
-- Transformations between two or more images MUST be stored in the attributes of a parent zarr group.
- For transformations that store data or parameters in a zarr array,
- those zarr arrays SHOULD be stored in a zarr group called "coordinateTransformations".
-
+- **Inside `multiscales > datasets`**: `coordinateTransformations` herein MUST be restricted
+ to a single `scale`, `identity` or `sequence` of a scale followed by a translation transformation.
+ For more information, see [multiscales section below](#multiscales-md).
+- **Inside `multiscales > coordinateTransformations`**: Additional transformations for single multiscale images MAY be stored here.
+ The `coordinateTransformations` field MUST contain an array of valid [transformations](#trafo-types-md).
+ The input to every one of these transformations MUST be the intrinsic coordinate system.
+ The output can be another coordinate system defined under `multiscales > coordinateSystems`.
+
+- **Inside `scene > coordinateTransformations`**: Transformations between two or more images
+ MUST be stored in the attributes of a [`scene` dictionary](#scene-md) in a [scene Zarr group](#scene-format).
+ In this case, the `input` and `output` values are dictionaries
+ that refer to coordinate systems in the same zarr.json or in the metadata of multiscale image subgroups.
+
+This separation of transformations (inside `multiscales > datasets`, under `multiscales > coordinateTransformations` and under `scene > coordinateTransformations`) provides flexibility for different use cases while still maintaining a level of rigidity for implementations.
-
-store.zarr # Root folder of the zarr store
-│
-├── zarr.json # coordinate transformations describing the relationship between two image coordinate systems
-│ # are stored in the attributes of their parent group.
-│ # transformations between coordinate systems in the 'volume' and 'crop' multiscale images are stored here.
-│
-├── coordinateTransformations # transformations that use array storage for their parameters should go in a zarr group named "coordinateTransformations".
-│ └── displacements # for example, a zarr array containing a displacement field
-│ └── zarr.json
-│
-├── volume
-│ ├── zarr.json # group level attributes (multiscales)
-│ └── 0 # a group containing the 0th scale
-│ └── image # a zarr array
-│ └── zarr.json # physical coordinate system and transformations here
-└── crop
- ├── zarr.json # group level attributes (multiscales)
- └── 0 # a group containing the 0th scale
- └── image # a zarr array
- └── zarr.json # physical coordinate system and transformations here
-
+#### Additional details
-:::{dropdown} Example
-(spec:example:coordinate_transformation)=
-Two instruments simultaneously image the same sample from two different angles,
-and the 3D data from both instruments are calibrated to "micrometer" units.
-An analysis of sample A requires measurements from images taken from both instruments at certain points in space.
-Suppose a region of interest (ROI) is determined from the image obtained from instrument 2,
-but quantification from that region is needed for instrument 1.
-Since measurements were collected at different angles,
-a measurement by instrument 1 at the point with image array coordinates (x,y,z)
-may not correspond to the measurement at the same array coordinates in instrument 2
-(i.e., it may not be the same physical location in the sample).
-To analyze both images together, they must be transformed to a common coordinate system.
+**Omitting `input`/`output`**: Coordinate transformations MUST specify their input and output coordinate systems
+using the `input` and `output` fields.
+These fields MUST correspond to the name of a coordinate system or the path to a multiscales group.
+Exceptions are if the coordinate transformation is wrapped in another transformation,
+e.g. as part of a `sequence`, `byDimension` or `bijection`.
+In these cases, the `input` and `output` fields MAY be omitted or null.
-The set of coordinate transformations encodes relationships between coordinate systems,
-specifically, how to convert points from one coordinate system to another.
-Implementations can apply the coordinate transform to images or points
-in coordinate system "sampleA_instrument2" to bring them into the "sampleA_instrument1" coordinate system.
-In this case, image data within the ROI defined in image2 should be transformed to the "sampleA_image1" coordinate system,
-then used for quantification with the instrument 1 image.
+**Graph connectedness**: The coordinate systems defined in the [multiscales metadata](#multiscales-md)
+and the [`scene` metadata](#scene-md) combined with the coordinate transformations form a transformations graph.
+In this graph, coordinate systems represent nodes and coordinate transformations represent edges.
+The graph MUST be fully connected in the sense that any two coordinate systems in the metadata
+MUST be connected by a sequence of edges represented by coordinate transformations.
+Coordinate systems that are connected by a non-invertible transformation count as connected in this sense, even though graph traversal may not be closed-form computable in every direction.
-The `coordinateTransformations` in the parent-level metadata would contain the following data.
-The transformation parameters are stored in a separate zarr-group
-under `coordinateTransformations/sampleA_instrument2-to-instrument1` as shown above.
+Coordinate transformations are functions of *points* in the input space to *points* in the output space.
+We call this the "forward" direction.
+Points are ordered lists of coordinates,
+where a coordinate is the location/value of that point along its corresponding axis.
+The indexes of axis dimensions correspond to indexes into transformation parameter arrays (see examples).
+
+**Image rendering**: When rendering transformed images and interpolating,
+implementations may need the "inverse" transformation - from the fixed
+image's to the source image's coordinate system. This transformation may
+not explicitly exist, but might be the require computing the inverse
+(in closed form) of an explicitly specified forward transformation.
+
+Inverse transformations used for image rendering may be specified
+by specifying the inverse transform directly - with the `input` referring
+to the the fixed image's coordinate system and the `output` referring to
+the the source image's coordinate system. If an operation is requested
+that requires the inverse of a transformation that can not be inverted in
+closed-form, implementations MAY estimate an inverse, or MAY output a warning
+that the requested operation is unsupported.
-```json
-"coordinateTransformations": [
- {
- "type": "affine",
- "path": "coordinateTransformations/sampleA_instrument2-to-instrument1",
- "input": "sampleA_instrument2",
- "output": "sampleA_instrument1"
- }
-]
-```
+:::{dropdown} Example
-And the image at the path `sampleA_instrument1` would have the following as the first coordinate system:
+Implementations SHOULD be able to compute and apply the inverse of some coordinate
+transformations when they are computable in closed-form (as the
+[Transformation types](#trafo-types-md) section below indicates).
+Implementations should be able to render the moving image into the fixed
+image by computing the inverse of this transformation.
```json
-"coordinateSystems": [
- {
- "name": "sampleA-instrument1",
- "axes": [
- {"name": "z", "type": "space", "unit": "micrometer"},
- {"name": "y", "type": "space", "unit": "micrometer"},
- {"name": "x", "type": "space", "unit": "micrometer"}
- ]
- },
-]
+{
+ "type": "",
+ "input": "moving image",
+ "output": "fixed image"
+}
```
-The image at path `sampleA_instrument2` would have this as the first listed coordinate system:
+Software libraries that perform image registration often return the transformation
+from fixed image coordinates to moving image coordinates, because this "inverse"
+transformation is most often required when rendering the transformed moving image.
+Implementations should be able to render the moving image into the fixed image by
+applying this transformation directly.
```json
-[
- {
- "name": "sampleA-instrument2",
- "axes": [
- {"name": "z", "type": "space", "unit": "micrometer"},
- {"name": "y", "type": "space", "unit": "micrometer"},
- {"name": "x", "type": "space", "unit": "micrometer"}
- ]
- }
-],
+{
+ "type": "",
+ "input": "fixed image",
+ "output": "moving image"
+}
```
-:::
-#### Additional details
-
-Most coordinate transformations MUST specify their input and output coordinate systems
-using `input` and `output` with a string value
-that MUST correspond to the name of a coordinate system or the path to a multiscales group.
-Exceptions are if the coordinate transformation is wrapped in another transformation,
-e.g. as part of a `transformations` list of a `sequence` or
-as `transformation` of an `inverseOf` transformation.
-In these two cases input and output could, in some cases, be omitted (see below for details).
-If unused, the `input` and `output` fields MAY be null.
-
-If used in a parent-level zarr-group, the `input` and `output` fields
-can be the name of a `coordinateSystem` in the same parent-level group or the path to a multiscale image group.
-If either `input` or `output` is a path to a multiscale image group,
-the authoritative coordinate system for the respective image is the first `coordinateSystem` defined therein.
-If the names of `input` or `output` correspond to both an existing path to a multiscale image group
-and the name of a `coordinateSystem` defined in the same metadata document,
-the `coordinateSystem` MUST take precedent.
-
-For usage in multiscales, see [the multiscales section](#multiscales-md) for details.
-
-Coordinate transformations are functions of *points* in the input space to *points* in the output space.
-We call this the "forward" direction.
-Points are ordered lists of coordinates,
-where a coordinate is the location/value of that point along its corresponding axis.
-The indexes of axis dimensions correspond to indexes into transformation parameter arrays.
-
-When rendering transformed images and interpolating,
-implementations may need the "inverse" transformation -
-from the output to the input coordinate system.
-Inverse transformations will not be explicitly specified
-when they can be computed in closed form from the forward transformation.
-Inverse transformations used for image rendering may be specified using
-the `inverseOf` transformation type, for example:
+Implementations are not expected to be able to to render the moving image
+into the fixed image given this transformation. They may attempt
+to do so by estimating the transformations' inverse if they choose to.
```json
{
- "type": "inverseOf",
- "transformation" : {
- "type": "displacements",
- "path": "/path/to/displacements",
- },
- "input": "input_image",
- "output": "output_image",
+ "type": "",
+ "input": "moving image",
+ "output": "fixed image"
}
```
-
-Implementations SHOULD be able to compute and apply
-the inverse of some coordinate transformations when they are computable
-in closed-form (as the [Transformation types](#trafo-types-md) section below indicates).
-If an operation is requested that requires
-the inverse of a transformation that can not be inverted in closed-form,
-implementations MAY estimate an inverse,
-or MAY output a warning that the requested operation is unsupported.
+:::
#### Matrix transformations
(matrix-trafo-md)=
@@ -634,45 +603,11 @@ or MAY output a warning that the requested operation is unsupported.
Two transformation types ([affine](#affine-md) and [rotation](#rotation-md)) are parametrized by matrices.
Matrices are applied to column vectors that represent points in the input coordinate system.
The first and last axes in a coordinate system correspond to the top and bottom entries in the column vector, respectively.
-Matrices are stored as two-dimensional arrays, either as json or in a zarr array.
-When stored as a 2D zarr array, the first dimension indexes rows and the second dimension indexes columns
+Matrices are stored as two-dimensional arrays, either as json or in a Zarr array.
+When stored as a 2D Zarr array, the first dimension indexes rows and the second dimension indexes columns
(e.g., an array of `"shape":[3,4]` has 3 rows and 4 columns).
When stored as a 2D json array, the inner array contains rows (e.g. `[[1,2,3], [4,5,6]]` has 2 rows and 3 columns).
-:::{dropdown} Example
-
-For matrix transformations, points in the coordinate system:
-
-```json
-{
- "name" : "in",
- "axes" : [
- {"name" : "z"},
- {"name" : "y"},
- {"name":"x"}
- ]
-},
-```
-
-are represented as column vectors:
-
-```
-[z]
-[y]
-[x]
-```
-
-As a result, transforming the point `[z,y,x]=[1,2,3]` with the matrix `[[0,1,0],[-1,0,0],[0,0,-1]]` results in the point `[2,-1,3]`
-because it is computed with the matrix-vector multiplication:
-
-```
-[ 0 1 0] [1] [ 2]
-[-1 0 0] [2] = [-1]
-[ 0 0 -1] [3] [-3]
-```
-
-:::
-
#### Transformation types
(trafo-types-md)=
@@ -690,11 +625,7 @@ The position of the i-th axis of the output coordinate system
is set to the position of the ith axis of the input coordinate system.
`identity` transformations are invertible.
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
-
:::{dropdown} Example
-:animate: fade-in
```{literalinclude} examples/transformations/identity.json
:language: json
@@ -722,12 +653,11 @@ Each index MUST appear exactly once in the array.
The value at position `i` in the array indicates which input axis becomes the `i`-th output axis.
`mapAxis` transforms are invertible.
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
+**mapAxis**
+: The axis permutation stored as a JSON array of integers.
:::{dropdown} Example 1
-:animate: fade-in
```{literalinclude} examples/transformations/mapAxis1.json
:language: json
@@ -750,7 +680,6 @@ y = i
:::
:::{dropdown} Example 2
-:animate: fade-in
```{literalinclude} examples/transformations/mapAxis2.json
:language: json
@@ -780,19 +709,11 @@ Input and output dimensionality MUST be identical
and MUST equal the the length of the "translation" array (N).
`translation` transformations are invertible.
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
-
-path
-: The path to a zarr-array containing the translation parameters.
-The array at this path MUST be 1D, and its length MUST be `N`.
-
-translation
-: The translation parameters stored as a JSON list of numbers.
-The list MUST have length `N`.
+**translation**
+: The translation parameters stored as a JSON array of numbers.
+The array MUST have length `N`.
:::{dropdown} Example
-:animate: fade-in
```{literalinclude} examples/transformations/translation.json
:language: json
@@ -816,19 +737,11 @@ and MUST equal the the length of the "scale" array (N).
Values in the `scale` array SHOULD be non-zero;
in that case, `scale` transformations are invertible.
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
-
-path
-: The path to a zarr-array containing the scale parameters.
-The array at this path MUST be 1D, and its length MUST be `N`.
-
-scale
-: The scale parameters are stored as a JSON list of numbers.
-The list MUST have length `N`.
+**scale**
+: The scale parameters are stored as a JSON array of numbers.
+The array MUST have length `N`.
:::{dropdown} Example 1
-:animate: fade-in
```{literalinclude} examples/transformations/scale.json
:language: json
@@ -845,7 +758,6 @@ i.e., the mapping from the first input axis to the first output axis is determin
:::
:::{dropdown} Example 2
-:animate: fade-in
If the data contains discrete axes (e.g., channels),
these axes are typically not transformed, but must be represented in the scale parameters.
@@ -863,22 +775,18 @@ They are represented as the upper `(M)x(N+1)` sub-matrix of a `(M+1)x(N+1)` matr
coordinates](https://en.wikipedia.org/wiki/Homogeneous_coordinates) (see examples).
This transformation type may be (but is not necessarily) invertible
when `N` equals `M`.
-The matrix MUST be stored as a 2D array either as json or as a zarr array.
+The matrix MUST be stored as a 2D array either as json or as a Zarr array.
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
-
-path
-: The path to a zarr-array containing the affine parameters.
+**path**
+: The path to a Zarr-array containing the affine parameters.
The array at this path MUST be 2D whose shape MUST be `(M)x(N+1)`.
-affine
+**affine**
: The affine parameters stored in JSON.
The matrix MUST be stored as 2D nested array (an array of arrays of numbers)
where the outer array MUST be length `M` and the inner arrays MUST be length `N+1`.
:::{dropdown} Example 1
-:animate: fade-in
A 2D-2D example:
```{literalinclude} examples/transformations/affine2d2d.json
@@ -905,7 +813,6 @@ where the last row `[0 0 1]` is omitted in the JSON representation.
:::
:::{dropdown} Example 2
-:animate: fade-in
An example with two dimensional inputs and three dimensional outputs.
The affine transformation adds a translation by 1 along the new z-axis.
@@ -939,7 +846,6 @@ where the last row `[0 0 1]` is omitted in the JSON representation.
:::
:::{dropdown} Example 3
-:animate: fade-in
If the image data contains discrete axes (e.g., channels),
these axes are typically not transformed, but must be represented in the transformation matrix.
@@ -956,23 +862,19 @@ When possible, a rotation transformation SHOULD be used instead of an equivalent
Input and output dimensionality (N) MUST be identical.
Rotations are stored as `NxN` matrices, see below,
and MUST have determinant equal to one, with orthonormal rows and columns.
-The matrix MUST be stored as a 2D array either as json or in a zarr array.
+The matrix MUST be stored as a 2D array either as json or in a Zarr array.
`rotation` transformations are invertible.
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
-
-path
+**path**
: The path to an array containing the affine parameters.
The array at this path MUST be 2D whose shape MUST be `N x N`.
-rotation
+**rotation**
: The parameters stored in JSON.
The matrix MUST be stored as a 2D nested array (an array of arrays of numbers) where the outer array MUST be length `N`
and the inner arrays MUST be length `N`.
:::{dropdown} Example
-:animate: fade-in
A 2D example
```{literalinclude} examples/transformations/rotation.json
@@ -987,37 +889,6 @@ y = 1*i + 0*j
```
:::
-##### inverseOf
-(inverseOf-md)=
-
-An `inverseOf` transformation contains another transformation (often non-linear),
-and indicates that transforming points from output to input coordinate systems
-is possible using the contained transformation.
-Transforming points from the input to the output coordinate systems
-requires the inverse of the contained transformation (if it exists).
-
-The `input` and `output` fields MAY be omitted for `inverseOf` transformations
-if those fields may be omitted for the transformation it wraps.
-
-```{note}
-Software libraries that perform image registration
-often return the transformation from fixed image coordinates to moving image coordinates,
-because this "inverse" transformation is most often required
-when rendering the transformed moving image.
-Results such as this may be enclosed in an `inverseOf` transformation.
-This enables the "outer" coordinate transformation to specify the moving image coordinates
-as `input` and fixed image coordinates as `output`,
-a choice that many users and developers find intuitive.
-```
-
-:::{dropdown} Example
-:animate: fade-in
-
-```{literalinclude} examples/transformations/inverseOf.json
-:language: json
-```
-:::
-
##### sequence
(sequence-md)=
@@ -1025,15 +896,12 @@ A `sequence` transformation consists of an ordered array of coordinate transform
and is invertible if every coordinate transform in the array is invertible
(though could be invertible in other cases as well).
To apply a sequence transformation to a point in the input coordinate system,
-apply the first transformation in the list of transformations.
+apply the first transformation in the array of transformations.
Next, apply the second transformation to the result.
Repeat until every transformation has been applied.
The output of the last transformation is the result of the sequence.
-A sequence transformation MUST NOT be part of another sequence transformation.
-The `input` and `output` fields MUST be included for sequence transformations.
-
-transformations
+**transformations**
: A non-empty array of transformations.
:::{note}
@@ -1051,7 +919,6 @@ f2(f1(f0(x)))
:::
:::{dropdown} Example
-:animate: fade-in
This sequence:
@@ -1085,9 +952,6 @@ These transformation types refer to an array at location specified by the `"path
The input and output coordinate systems for these transformations ("input / output coordinate systems")
constrain the array size and the coordinate system metadata for the array ("field coordinate system").
-The `input` and `output` fields MAY be omitted if wrapped in another transformation that provides `input`/`output`
-(e.g., [`sequence`](#sequence-md), [`inverseOf`](#inverseof-md), ['byDimension](#bydimension-md) or [`bijection`](#bijection-md)).
-
* If the input coordinate system has `N` axes,
the array at location path MUST have `N+1` dimensions
* The field coordinate system MUST contain an axis identical to every axis
@@ -1105,20 +969,8 @@ of the `i`th output axis. See the example below.
but implementations MAY approximate their inverses.
Metadata for these coordinate transforms have the following fields:
-
- - path
- - The location of the coordinate array in this (or another) container.
- - interpolation
- - The
interpolation attributes MAY be provided.
- Its value indicates the interpolation to use
- if transforming points not on the array's discrete grid.
- Values could be:
-
- linear (default)
- nearest
- cubic
-
-
+**path**
+: The location of the coordinate array in this (or another) container.
For both `coordinates` and `displacements`,
@@ -1142,10 +994,9 @@ For `displacements`:
* `coordinateSystem` metadata MUST have exactly one axis with `"type" : "displacement"`
* the shape of the array along the "displacement" axis must be exactly `N`
-* `input` and `output` MUST have an equal number of dimensions.
+* input and output coordinate systems MUST have an equal number of dimensions.
:::{dropdown} Example 1
-:animate: fade-in
For example, in 1D:
```json
{
@@ -1192,7 +1043,6 @@ x =
:::
:::{dropdown} Example 2
-:animate: fade-in
A 1D example displacement field:
```json
{
@@ -1240,7 +1090,6 @@ hence the output is `1.0 + (-0.5) = 0.5`.
:::
:::{dropdown} Example 3
-:animate: fade-in
In this example, the array located at `"displacementField"` MUST have three dimensions.
One dimension MUST correspond to an axis with `type : displacement` (in this example, the last dimension),
@@ -1288,24 +1137,20 @@ I.e. the y-displacement is first, because the y-axis is the first element of the
`byDimension` transformations build a high dimensional transformation
using lower dimensional transformations on subsets of dimensions.
-The `input` and `output` fields MUST always be included for this transformations type.
-
-
- - transformations
- - Each child transformation MUST contain
input_axes and output_axes fields
- whose values are arrays of strings.
- Every axis name in a child transformation's input_axes
- MUST correspond to a name of some axis in this parent object's input coordinate system.
- Every axis name in the parent byDimension's output coordinate system
- MUST appear in exactly one child transformation's output_axes array.
- Each child transformation's input_axes and output_axes arrays
- MUST have the same length as that transformation's parameter arrays.
-
-
+**transformations**
+: MUST be an array of wrapped transformations.
+ Each item MUST contain `input_axes`, `output_axes` and `transformation` fields.
+ The values of `input_axes` and `output_axes` are arrays of integers.
+ The integer values in these arrays correspond to the axis indices in the `byDimension`'s or its parent's
+ `input` and `output` coordinate systems, respectively.
+ The value of `transformation` is a valid transformation object.
+ Every axis index in the parent byDimension's `output` coordinate system
+ MUST appear in exactly one child transformation's `output_axes` array.
+ The `input_axes` and `output_axes` arrays of each item
+ MUST have the same length as that transformation's parameter arrays.
:::{dropdown} Example 1
-:animate: fade-in
A valid `byDimension` transformation:
@@ -1315,7 +1160,6 @@ A valid `byDimension` transformation:
:::
:::{dropdown} Example 2
-:animate: fade-in
Another valid `byDimension` transformation:
@@ -1325,7 +1169,6 @@ Another valid `byDimension` transformation:
:::
:::{dropdown} Example 3
-:animate: fade-in
This is an **invalid** `byDimension` transform:
@@ -1340,7 +1183,6 @@ Second, the `x` axis of the `output` does not appear in the `output` of any chil
:::
:::{dropdown} Example 4
-:animate: fade-in
Another **invalid** `byDimension` transform:
@@ -1366,15 +1208,17 @@ in which case the `forward` transformation's `input` and `output` are understood
and the `inverse` transformation's `input` (`output`) matches the bijection's `output` (`input`),
see the example below.
-The `input` and `output` fields MAY be omitted for `bijection` transformations
-if the fields may be omitted for both its `forward` and `inverse` transformations
-
Practically, non-invertible transformations have finite extents,
so bijection transforms should only be expected to be correct / consistent for points that fall within those extents.
It may not be correct for any point of appropriate dimensionality.
+**forward**
+: The forward transformation.
+
+**inverse**
+: The inverse transformation.
+
:::{dropdown} Example
-:animate: fade-in
```{literalinclude} examples/transformations/bijection.json
:language: json
@@ -1395,15 +1239,11 @@ Here, "image" refers to 2 to 5 dimensional data representing image
or volumetric data with optional time or channel axes.
It is stored in a multiple resolution representation.
-`multiscales` contains a list of dictionaries where each entry describes a multiscale image.
+`multiscales` contains an array of dictionaries where each entry describes a multiscale image.
Each `multiscales` dictionary MUST contain the field "coordinateSystems",
whose value is an array containing coordinate system metadata
(see [coordinate systems](#coordinate-systems-md)).
-The last entry of this array is the "intrinsic" coordinate system
-and MUST contain axis information pertaining to physical coordinates.
-It should be used for viewing and processing unless a use case dictates otherwise.
-It will generally be a representation of the image in its native physical coordinate system.
The following MUST hold for all coordinate systems inside multiscales metadata.
The length of "axes" must be between 2 and 5
@@ -1418,7 +1258,7 @@ and images are stacked along the other (anisotropic) axis ("z"),
the spatial axes SHOULD be ordered as "zyx".
Each `multiscales` dictionary MUST contain the field `datasets`,
-which is a list of dictionaries describing the arrays storing the individual resolution levels.
+which is an array of dictionaries describing the arrays storing the individual resolution levels.
Each dictionary in `datasets` MUST contain the field `path`,
whose value is a string containing the path to the Zarr array for this resolution relative to the current Zarr group.
The `path`s MUST be ordered from largest (i.e. highest resolution) to smallest.
@@ -1427,17 +1267,18 @@ and MUST NOT have more than 5 dimensions.
The number of dimensions and order MUST correspond to number and order of `axes`.
Each dictionary in `datasets` MUST contain the field `coordinateTransformations`,
-whose value is a list of dictionaries that define a transformation
-that maps Zarr array coordinates for this resolution level to the "intrinsic" coordinate system
-(the last entry of the `coordinateSystems` array).
+whose value is an array of dictionaries that define a transformation
+that maps Zarr array coordinates for this resolution level to the "intrinsic" coordinate system.
The transformation is defined according to [transformations metadata](#trafo-types-md).
The transformation MUST take as input points in the array coordinate system
corresponding to the Zarr array at location `path`.
The value of "input" MUST equal the value of `path`,
implementations should always treat the value of `input` as if it were equal to the value of `path`.
-The value of the transformation’s `output` MUST be the name of the "intrinsic" [coordinate system](#coordinate-systems-md).
+The value of the transformation’s `output` coordinate system MUST be the same for every dataset in a single multiscales.
+This coordinate system (the "intrinsic" coordinate system) will generally be a representation of the image in its native physical coordinate system.
+It should be used for viewing and processing unless a use case dictates otherwise.
-This transformation MUST be one of the following:
+The transformation MUST be one of the following:
* A single scale or identity transformation
* A sequence transformation containing one scale and one translation transformation.
@@ -1466,7 +1307,6 @@ which contains a dictionary with additional information about the downscaling me
:::{dropdown} Example
-:animate: fade-in
A complete example of json-file for a 5D (TCZYX) multiscales with 3 resolution levels could look like this:
```{literalinclude} examples/multiscales_strict/multiscales_example.json
@@ -1736,6 +1576,144 @@ The first field is part of the first acquisition, and the second field is part o
```
:::
+### "scene" metadata
+(scene-md)=
+
+For images that share a spatial relationship,
+the `scene` metadata layout can be used to describe the relationship between images.
+
+The `scene` dictionary MUST contain the field `coordinateTransformations`,
+whose value MUST be an array of valid [transformations](#trafo-types-md).
+It MAY contain the field `coordinateSystems`,
+whose values MUST be an array of valid [coordinate systems](#coordinate-systems-md).
+
+If used inside "scene" metadata, the `input` and `output` fields of `coordinateTransformations` MUST contain a json object,
+which MUST contain either the `path` or the `name` field, or both.
+The value of the `path` field is the path to a multiscale image subgroup.
+The value of the `name` field is the name of a `coordinateSystem` either in the multiscale image subgroup specified by the path,
+or within the `scene` dictionary itself.
+If `name` refers to a coordinate system in the `scene` dictionary,
+the `path` value MAY be omitted or null.
+If `name` refers to a coordinate system in the multiscale image subgroup specified by `path`,
+both `path` and `name` MUST be provided.
+
+:::{dropdown} Example 1: Multiview fusion
+Two instruments simultaneously image the same sample from two different angles,
+and the 3D data from both instruments are calibrated to "micrometer" units.
+An analysis of sample A requires measurements from images taken from both instruments at certain points in space.
+Suppose a region of interest (ROI) is determined from the image obtained from instrument 2,
+but quantification from that region is needed for instrument 1.
+Since measurements were collected at different angles,
+a measurement by instrument 1 at the point with image array coordinates (x,y,z)
+may not correspond to the measurement at the same array coordinates in instrument 2
+(i.e., it may not be the same physical location in the sample).
+To analyze both images together, they must be transformed to a common coordinate system.
+
+The set of coordinate transformations encodes relationships between coordinate systems,
+specifically, how to convert points from one coordinate system to another.
+Implementations can apply the coordinate transform to images or points
+in coordinate system "sampleA_instrument2" to bring them into the "sampleA_instrument1" coordinate system.
+In this case, image data within the ROI defined in image2 should be transformed to the "sampleA_image1" coordinate system,
+then used for quantification with the instrument 1 image.
+
+The `coordinateTransformations` in the "scene" metadata would contain the following data.
+The transformation parameters are stored in a separate Zarr-group
+under `coordinateTransformations/sampleA_instrument2-to-instrument1` as shown above.
+
+```json
+"scene": {
+ "coordinateTransformations": [
+ {
+ "type": "affine",
+ "path": "coordinateTransformations/sampleA_instrument2-to-instrument1",
+ "input": {
+ "path": "sampleA_instrument2",
+ "name": "physical_instrument2"
+ },
+ "output": {
+ "path": "sampleA_instrument1",
+ "name": "physical_instrument1"
+ }
+ }
+ ]
+}
+```
+
+And the image at the path `sampleA_instrument1` would have the following as coordinate system:
+
+```json
+"coordinateSystems": [
+ {
+ "name": "physical_instrument1",
+ "axes": [
+ {"name": "z", "type": "space", "unit": "micrometer"},
+ {"name": "y", "type": "space", "unit": "micrometer"},
+ {"name": "x", "type": "space", "unit": "micrometer"}
+ ]
+ },
+]
+```
+
+The image at path `sampleA_instrument2` would have this as coordinate system:
+
+```json
+"coordinateSystems": [
+ {
+ "name": "physical_instrument2",
+ "axes": [
+ {"name": "z", "type": "space", "unit": "micrometer"},
+ {"name": "y", "type": "space", "unit": "micrometer"},
+ {"name": "x", "type": "space", "unit": "micrometer"}
+ ]
+ }
+],
+```
+:::
+
+:::{dropdown} Example 2: Multi-hop transformations
+Consider three instruments with strongly differing optical resolutions acquriring images of the same sample.
+The fields of view (FOV) of all instruments may differ by orders of magnitude.
+In this case, the FOV of instrument 1 (low-resolution) may entirely contain the FOVs of the other modalities. However, the alignment of instrument 3 with instrument 1 may be hard due to the lack of common landmark features.
+In such a case, it may be easier to align instrument 2 (medium-resolution) with instrument 1, and then instrument 3 with instrument 2.
+
+In this case, the "scene" metadata would contain the following coordinate transformations:
+
+```json
+"scene": {
+ "coordinateTransformations": [
+ {
+ "type": "affine",
+ "input": {
+ "path": "instrument1",
+ "name": "physical"
+ },
+ "output": {
+ "path": "instrument2",
+ "name": "physical"
+ },
+ "affine": [ [ ... ], [ ... ], [ ... ]] // 4x3 matrix stored in json
+ },
+ {
+ "type": "affine",
+ "input": {
+ "path": "instrument3",
+ "name": "physical"
+ },
+ "output": {
+ "path": "instrument2",
+ "name": "physical"
+ },
+ "affine": [ [ ... ], [ ... ], [ ... ] ] // 4x3 matrix stored in json
+ }
+ ]
+}
+```
+Both transformations (from instrument1 to instrument2, and from instrument3 to instrument2) refer to the "physical" coordinate systems of the respective images,
+which are defined in the `multiscales` attributes of the respective image groups.
+A transformation from instrument3 to instrument1 can be obtained
+by composing the two transformations above.
+:::
+
## Specification naming style
(naming-style)=
From e889e4cd615c791f2bdc0fe3ff637f9945943b32 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Fri, 16 Jan 2026 14:25:22 +0100
Subject: [PATCH 02/27] update scene metadata
---
.../coordinate_systems_and_transforms.schema | 47 -----------
schemas/coordinate_transformations.schema | 34 +++++++-
schemas/scene.schema | 81 +++++++++++++++++++
3 files changed, 113 insertions(+), 49 deletions(-)
delete mode 100644 schemas/coordinate_systems_and_transforms.schema
create mode 100644 schemas/scene.schema
diff --git a/schemas/coordinate_systems_and_transforms.schema b/schemas/coordinate_systems_and_transforms.schema
deleted file mode 100644
index 0b5b3e44..00000000
--- a/schemas/coordinate_systems_and_transforms.schema
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_systems_and_transforms.schema",
- "title": "Coordinate Systems and Transforms",
- "description": "OME-Zarr coordinate systems and transforms.",
- "type": "object",
- "properties": {
- "coordinateSystems": {
- "$ref": "coordinate_systems.schema",
- "description": "Coordinate systems to combine with transforms to define spatial relationships"
- },
- "coordinateTransformations": {
- "$ref": "coordinate_transformations.schema",
- "description": "Coordinate transformations defining spatial relationships between coordinate systems"
- },
- "arrayCoordinateSystem": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Name of coordinate space"
- },
- "axes": {
- "allOf": [
- {
- "$ref": "axes.schema"
- },
- {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "type": {
- "const": "array"
- }
- }
- }
- }
- ]
- }
- },
- "required": [
- "axes"
- ]
- }
- }
-}
diff --git a/schemas/coordinate_transformations.schema b/schemas/coordinate_transformations.schema
index f736a927..3ff57ae8 100644
--- a/schemas/coordinate_transformations.schema
+++ b/schemas/coordinate_transformations.schema
@@ -15,10 +15,40 @@
"type": "object",
"properties": {
"input": {
- "type": "string"
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ }
+ }
+ }
+ ]
},
"output": {
- "type": "string"
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ }
+ }
+ }
+ ]
}
},
"required": [
diff --git a/schemas/scene.schema b/schemas/scene.schema
new file mode 100644
index 00000000..f60263b5
--- /dev/null
+++ b/schemas/scene.schema
@@ -0,0 +1,81 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_systems_and_transforms.schema",
+ "title": "Scene",
+ "description": "Scene metadata combining coordinate systems and coordinate transformations to define spatial relationships",
+ "type": "object",
+ "properties": {
+ "coordinateSystems": {
+ "$ref": "coordinate_systems.schema",
+ "description": "Coordinate systems to combine with transforms to define spatial relationships"
+ },
+ "coordinateTransformations": {
+ "$comment": "Merge general coordinate transformations with constraints for scene metadata",
+ "allOf": [
+ {
+ "$ref": "coordinate_transformations.schema",
+ "description": "General coordinate transformations defining spatial relationships between coordinate systems"
+ },
+ {
+ "type": "array",
+ "items": {
+ "allOf": [
+ {
+ "properties": {
+ "input": {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "path": {"type": "string"}
+ },
+ "required": ["name"]
+ },
+ "output": {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "path": {"type": "string"}
+ },
+ "required": ["name"]
+ }
+ }
+ }
+ ]
+ },
+ "description": "Constrained input/output for coordinate transformations in scene metadata"
+ }
+ ]
+
+ },
+ "arrayCoordinateSystem": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of coordinate space"
+ },
+ "axes": {
+ "allOf": [
+ {
+ "$ref": "axes.schema"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "const": "array"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "required": [
+ "axes"
+ ]
+ }
+ }
+}
From 9e6a19bd69f1bb66a184226241dd96fe06f9e941 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Fri, 16 Jan 2026 14:33:57 +0100
Subject: [PATCH 03/27] remove inverseOf
---
schemas/coordinate_transformations.schema | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/schemas/coordinate_transformations.schema b/schemas/coordinate_transformations.schema
index 3ff57ae8..c7189852 100644
--- a/schemas/coordinate_transformations.schema
+++ b/schemas/coordinate_transformations.schema
@@ -96,9 +96,6 @@
{
"$ref": "#/$defs/rotation"
},
- {
- "$ref": "#/$defs/inverseOf"
- },
{
"$ref": "#/$defs/bijection"
},
@@ -317,21 +314,6 @@
}
]
},
- "inverseOf": {
- "type": "object",
- "properties": {
- "type": {
- "const": "inverseOf"
- },
- "transformation": {
- "$ref": "#/$defs/coordinateTransformation"
- }
- },
- "required": [
- "transformation"
- ],
- "description": "The inverse of another coordinate transformation."
- },
"bijection": {
"type": "object",
"properties": {
From c44cdeacd7e6c1a90dc96f062c78d7f3f2b8144d Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Fri, 16 Jan 2026 14:36:34 +0100
Subject: [PATCH 04/27] don't allow paths for scale/translation
---
schemas/coordinate_transformations.schema | 80 +++++++----------------
1 file changed, 23 insertions(+), 57 deletions(-)
diff --git a/schemas/coordinate_transformations.schema b/schemas/coordinate_transformations.schema
index c7189852..1a4f2739 100644
--- a/schemas/coordinate_transformations.schema
+++ b/schemas/coordinate_transformations.schema
@@ -165,45 +165,28 @@
"type": "integer"
},
"description": "An array of integers representing the new axis order as zero-based indices of the input axes."
- },
- "required": [
- "mapAxis"
- ]
- }
+ }
+ },
+ "required": [
+ "mapAxis"
+ ]
},
"scale": {
"type": "object",
"properties": {
"type": {
"const": "scale"
- }
- },
- "oneOf": [
- {
- "properties": {
- "path": {
- "type": "string",
- "description": "Path to a zarr array containing the scale factors."
- }
- },
- "required": [
- "path"
- ]
},
- {
- "properties": {
- "scale": {
- "type": "array",
- "items": {
- "type": "number",
- "exclusiveMinimum": 0
- }
- }
- },
- "required": [
- "scale"
- ]
+ "scale": {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "exclusiveMinimum": 0
+ }
}
+ },
+ "required": [
+ "scale"
]
},
"translation": {
@@ -211,33 +194,16 @@
"properties": {
"type": {
"const": "translation"
- }
- },
- "oneOf": [
- {
- "properties": {
- "path": {
- "type": "string",
- "description": "Path to a zarr array containing the translation vectors."
- }
- },
- "required": [
- "path"
- ]
},
- {
- "properties": {
- "translation": {
- "type": "array",
- "items": {
- "type": "number"
- }
- }
- },
- "required": [
- "translation"
- ]
- }
+ "translation": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ }
+ },
+ "required": [
+ "translation"
]
},
"affine": {
From a217cc7fc7c12f437818fd82e0bdfa3d36b16149 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Fri, 16 Jan 2026 16:57:56 +0100
Subject: [PATCH 05/27] add titles and descriptions
---
schemas/coordinate_transformations.schema | 32 ++++++++++++++++++-----
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/schemas/coordinate_transformations.schema b/schemas/coordinate_transformations.schema
index 1a4f2739..64cef407 100644
--- a/schemas/coordinate_transformations.schema
+++ b/schemas/coordinate_transformations.schema
@@ -150,11 +150,14 @@
"type": {
"const": "identity"
}
- }
+ },
+ "title": "Identity Transformation",
+ "description": "Identity transformation that maps input coordinates directly to output coordinates without modification."
},
"mapAxis": {
"type": "object",
- "description": "Permute axes by name",
+ "title": "Map Axis Transformation",
+ "description": "Permute axes by mapping input axes to output axes.",
"properties": {
"type": {
"const": "mapAxis"
@@ -173,6 +176,8 @@
},
"scale": {
"type": "object",
+ "title": "Scale Transformation",
+ "description": "Scale transformation that scales coordinates by specified factors along each axis.",
"properties": {
"type": {
"const": "scale"
@@ -191,6 +196,8 @@
},
"translation": {
"type": "object",
+ "title": "Translation Transformation",
+ "description": "Translation transformation that shifts coordinates by specified offsets along each axis.",
"properties": {
"type": {
"const": "translation"
@@ -208,6 +215,8 @@
},
"affine": {
"type": "object",
+ "title": "Affine Transformation",
+ "description": "Affine transformation represented by a transformation matrix.",
"properties": {
"type": {
"const": "affine"
@@ -245,6 +254,8 @@
},
"rotation": {
"type": "object",
+ "title": "Rotation Transformation",
+ "description": "Rotation transformation represented by a rotation matrix.",
"properties": {
"type": {
"const": "rotation"
@@ -282,6 +293,8 @@
},
"bijection": {
"type": "object",
+ "title": "Bijection Transformation",
+ "description": "A pair of forward and inverse coordinate transformations.",
"properties": {
"type": {
"const": "bijection"
@@ -295,11 +308,11 @@
},
"required": [
"forward", "inverse"
- ],
- "description": "A pair of forward and inverse coordinate transformations."
+ ]
},
"sequence": {
- "description": "A sequence of transformations",
+ "title": "Sequence Transformation",
+ "description": "A sequence of transformations applied in order.",
"type": "object",
"properties": {
"type": { "const": "sequence" },
@@ -316,6 +329,8 @@
},
"byDimension": {
"type": "object",
+ "title": "By Dimension Transformation",
+ "description": "A set of transformations applied independently to each dimension.",
"properties": {
"type": { "const": "byDimension" },
"transformations": {
@@ -327,11 +342,12 @@
},
"required": [
"transformations"
- ],
- "description": "A set of transformations applied independently to each dimension."
+ ]
},
"displacements": {
"type": "object",
+ "title": "Displacement Field Transformation",
+ "description": "Transformation defined by a displacement field stored in a zarr array.",
"properties": {
"type": { "const": "displacements" },
"path": {
@@ -351,6 +367,8 @@
},
"coordinates": {
"type": "object",
+ "title": "Coordinate Field Transformation",
+ "description": "Transformation defined by a coordinate field stored in a zarr array.",
"properties": {
"type": { "const": "coordinates" },
"path": {
From 2b20c8e7d02fa4ef497330c960ebe3e51ca97e49 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Mon, 19 Jan 2026 12:20:28 +0100
Subject: [PATCH 06/27] change schema title
---
schemas/coordinate_transformations.schema | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/schemas/coordinate_transformations.schema b/schemas/coordinate_transformations.schema
index 64cef407..009f6a84 100644
--- a/schemas/coordinate_transformations.schema
+++ b/schemas/coordinate_transformations.schema
@@ -1,8 +1,8 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_transformations.schema",
- "title": "Coordinate Systems and Transforms",
- "description": "OME-Zarr Coordinate Systems and transforms.",
+ "title": "Coordinate Transformations",
+ "description": "OME-Zarr Coordinate transforms.",
"type": "array",
"uniqueItems": true,
"minItems": 1,
From 406a826ea81109e9e15e65304e09761d86368679 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:22:03 +0100
Subject: [PATCH 07/27] add more test example json
---
tests/attributes/spec/valid/scene/scape.json | 36 ++++++++++
.../spec/valid/scene/tile_stitching.json | 66 +++++++++++++++++++
2 files changed, 102 insertions(+)
create mode 100644 tests/attributes/spec/valid/scene/scape.json
create mode 100644 tests/attributes/spec/valid/scene/tile_stitching.json
diff --git a/tests/attributes/spec/valid/scene/scape.json b/tests/attributes/spec/valid/scene/scape.json
new file mode 100644
index 00000000..7c75ddc3
--- /dev/null
+++ b/tests/attributes/spec/valid/scene/scape.json
@@ -0,0 +1,36 @@
+{
+ "ome": {
+ "version": "0.6.dev2",
+ "coordinateTransformations": [
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "stack", "name": "unskewed"},
+ "translation": [
+ 5882.2,
+ 44249.4
+ ],
+ "name": "stack to world"
+ }
+ ],
+ "coordinateSystems": [
+ {
+ "name": "world",
+ "axes": [
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/tests/attributes/spec/valid/scene/tile_stitching.json b/tests/attributes/spec/valid/scene/tile_stitching.json
new file mode 100644
index 00000000..3907da3c
--- /dev/null
+++ b/tests/attributes/spec/valid/scene/tile_stitching.json
@@ -0,0 +1,66 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "coordinateTransformations": [
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_0", "name": "physical"},
+ "translation": [
+ 0,
+ 0
+ ],
+ "name": "tile_0_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_1", "name": "physical"},
+ "translation": [
+ 0,
+ 348
+ ],
+ "name": "tile_1_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_2", "name": "physical"},
+ "translation": [
+ 276,
+ 0
+ ],
+ "name": "tile_2_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_3", "name": "physical"},
+ "translation": [
+ 276,
+ 348
+ ],
+ "name": "tile_3_mm to world"
+ }
+ ],
+ "coordinateSystems": [
+ {
+ "name": "world",
+ "axes": [
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
From 90db8e402d65ce5c612d4b77a97678ca47ee82c2 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:30:51 +0100
Subject: [PATCH 08/27] update version keys
---
_version.py | 2 +-
examples/bf2raw/image.json | 2 +-
examples/bf2raw/plate.json | 2 +-
examples/label_strict/colors_properties.json | 2 +-
.../multiscales_example.json | 2 +-
.../multiscales_example_relative.json | 2 +-
.../multiscales_transformations.json | 2 +-
examples/ome/series-2.json | 2 +-
examples/plate_strict/plate_2wells.json | 2 +-
examples/plate_strict/plate_6wells.json | 2 +-
examples/subspace/subspaceMultidim.json | 2 +-
examples/subspace/subspacePermute.json | 2 +-
examples/well_strict/well_2fields.json | 2 +-
examples/well_strict/well_4fields.json | 2 +-
index.md | 4 +-
schemas/_version.schema | 4 +-
schemas/axes.schema | 2 +-
schemas/bf2raw.schema | 4 +-
schemas/coordinate_systems.schema | 2 +-
schemas/coordinate_transformations.schema | 2 +-
schemas/image.schema | 19 +++---
schemas/label.schema | 4 +-
schemas/ome.schema | 4 +-
schemas/ome_zarr.schema | 14 ++---
schemas/plate.schema | 4 +-
schemas/scene.schema | 2 +-
schemas/strict_axes.schema | 4 +-
schemas/strict_coordinate_systems.schema | 2 +-
schemas/strict_image.schema | 4 +-
schemas/strict_label.schema | 4 +-
schemas/strict_ome_zarr.schema | 14 ++---
schemas/strict_plate.schema | 4 +-
schemas/strict_well.schema | 4 +-
schemas/well.schema | 4 +-
.../spec/invalid/image/duplicate_axes.json | 2 +-
.../spec/invalid/image/duplicate_scale.json | 2 +-
.../invalid/image/empty_transformations.json | 2 +-
.../invalid/image/invalid_axes_count.json | 2 +-
.../spec/invalid/image/invalid_axis_type.json | 2 +-
.../invalid/image/invalid_channels_color.json | 2 +-
.../image/invalid_channels_window.json | 2 +-
.../invalid_multiscales_transformations.json | 2 +-
.../spec/invalid/image/invalid_path.json | 2 +-
.../image/invalid_transformation_type.json | 2 +-
.../spec/invalid/image/missing_axes.json | 2 +-
.../spec/invalid/image/missing_axes_name.json | 2 +-
.../spec/invalid/image/missing_datasets.json | 2 +-
.../spec/invalid/image/missing_path.json | 2 +-
.../spec/invalid/image/missing_scale.json | 2 +-
.../invalid/image/missing_space_axes.json | 2 +-
.../image/missing_transformations.json | 2 +-
.../spec/invalid/image/no_axes.json | 2 +-
.../spec/invalid/image/no_datasets.json | 2 +-
.../spec/invalid/image/no_multiscales.json | 2 +-
.../spec/invalid/image/one_space_axes.json | 2 +-
.../spec/invalid/image/too_many_axes.json | 2 +-
.../invalid/image/too_many_space_axes.json | 2 +-
.../spec/invalid/label/colors_duplicate.json | 2 +-
.../invalid/label/colors_no_label_value.json | 2 +-
.../invalid/label/colors_rgba_length.json | 2 +-
.../spec/invalid/label/colors_rgba_type.json | 2 +-
.../spec/invalid/label/empty_colors.json | 2 +-
.../spec/invalid/label/empty_properties.json | 2 +-
.../label/properties_no_label_value.json | 2 +-
.../plate/acquisition_negative_starttime.json | 2 +-
.../plate/acquisition_noninteger_endtime.json | 2 +-
.../acquisition_noninteger_starttime.json | 2 +-
.../acquisition_zero_maximumfieldcount.json | 2 +-
.../spec/invalid/plate/duplicate_columns.json | 2 +-
.../spec/invalid/plate/duplicate_rows-2.json | 2 +-
.../spec/invalid/plate/duplicate_rows.json | 2 +-
.../spec/invalid/plate/empty_columns.json | 2 +-
.../spec/invalid/plate/empty_rows.json | 2 +-
.../spec/invalid/plate/empty_wells.json | 2 +-
.../invalid/plate/missing_acquisition_id.json | 2 +-
.../invalid/plate/missing_column_name.json | 2 +-
.../spec/invalid/plate/missing_columns.json | 2 +-
.../spec/invalid/plate/missing_row_name.json | 2 +-
.../spec/invalid/plate/missing_rows.json | 2 +-
.../plate/missing_well_columnIndex.json | 2 +-
.../spec/invalid/plate/missing_well_path.json | 2 +-
.../invalid/plate/missing_well_rowIndex.json | 2 +-
.../spec/invalid/plate/missing_wells.json | 2 +-
.../plate/negative_acquisition_id.json | 2 +-
.../spec/invalid/plate/negative_endtime.json | 2 +-
.../plate/non_alphanumeric_column.json | 2 +-
.../plate/non_integer_acquisition_id.json | 2 +-
...integer_acquisition_maximumfieldcount.json | 2 +-
.../spec/invalid/plate/well_1group.json | 2 +-
.../spec/invalid/plate/well_3groups.json | 2 +-
.../spec/invalid/plate/zero_field_count.json | 2 +-
.../spec/valid/image/custom_type_axes.json | 2 +-
.../spec/valid/image/invalid_axis_units.json | 2 +-
.../spec/valid/image/mismatch_axes_units.json | 2 +-
.../spec/valid/image/missing_name.json | 2 +-
.../spec/valid/image/untyped_axes.json | 2 +-
.../attributes/spec/valid/label/minimal.json | 2 +-
.../spec/valid/label/minimal_properties.json | 2 +-
.../valid/plate/minimal_acquisitions.json | 2 +-
.../valid/plate/minimal_no_acquisitions.json | 2 +-
.../valid/plate/non_alphanumeric_row.json | 2 +-
tests/attributes/spec/valid/scene/scape.json | 2 +-
.../spec/valid/well/minimal_acquisitions.json | 2 +-
.../valid/well/minimal_no_acquisition.json | 2 +-
.../strict/invalid/label/no_colors.json | 2 +-
...missing_acquisition_maximumfieldcount.json | 2 +-
.../plate/missing_acquisition_name.json | 2 +-
.../strict/invalid/plate/missing_name.json | 2 +-
.../attributes/strict/valid/image/image.json | 2 +-
.../strict/valid/image/image_metadata.json | 2 +-
.../strict/valid/image/image_omero.json | 4 +-
.../valid/image/multiscales_example.json | 2 +-
.../image/multiscales_transformations.json | 2 +-
.../valid/plate/strict_acquisitions.json | 2 +-
.../valid/plate/strict_no_acquisitions.json | 2 +-
.../valid/well/strict_acquisitions.json | 2 +-
.../valid/well/strict_no_acquisitions.json | 2 +-
tests/image_suite.json | 56 ++++++++---------
tests/label_suite.json | 18 +++---
tests/plate_suite.json | 60 +++++++++----------
tests/strict_image_suite.json | 12 ++--
tests/strict_label_suite.json | 2 +-
tests/strict_plate_suite.json | 10 ++--
tests/strict_well_suite.json | 4 +-
tests/test_validation.py | 4 +-
tests/well_suite.json | 4 +-
.../image/duplicate_axes.ome.zarr/zarr.json | 2 +-
.../image/duplicate_scale.ome.zarr/zarr.json | 2 +-
.../empty_transformations.ome.zarr/zarr.json | 2 +-
.../invalid_axes_count.ome.zarr/zarr.json | 2 +-
.../invalid_axis_type.ome.zarr/zarr.json | 2 +-
.../invalid_channels_color.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../image/invalid_path.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../image/missing_axes.ome.zarr/zarr.json | 2 +-
.../missing_axes_name.ome.zarr/zarr.json | 2 +-
.../image/missing_datasets.ome.zarr/zarr.json | 2 +-
.../image/missing_path.ome.zarr/zarr.json | 2 +-
.../image/missing_scale.ome.zarr/zarr.json | 2 +-
.../missing_space_axes.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../invalid/image/no_axes.ome.zarr/zarr.json | 2 +-
.../image/no_datasets.ome.zarr/zarr.json | 2 +-
.../image/no_multiscales.ome.zarr/zarr.json | 2 +-
.../image/one_space_axes.ome.zarr/zarr.json | 2 +-
.../image/too_many_axes.ome.zarr/zarr.json | 2 +-
.../too_many_space_axes.ome.zarr/zarr.json | 2 +-
.../label/colors_duplicate.ome.zarr/zarr.json | 2 +-
.../colors_no_label_value.ome.zarr/zarr.json | 2 +-
.../colors_rgba_length.ome.zarr/zarr.json | 2 +-
.../label/colors_rgba_type.ome.zarr/zarr.json | 2 +-
.../label/empty_colors.ome.zarr/zarr.json | 2 +-
.../label/empty_properties.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../duplicate_columns.ome.zarr/zarr.json | 2 +-
.../plate/duplicate_rows-2.ome.zarr/zarr.json | 2 +-
.../plate/duplicate_rows.ome.zarr/zarr.json | 2 +-
.../plate/empty_columns.ome.zarr/zarr.json | 2 +-
.../plate/empty_rows.ome.zarr/zarr.json | 2 +-
.../plate/empty_wells.ome.zarr/zarr.json | 2 +-
.../missing_acquisition_id.ome.zarr/zarr.json | 2 +-
.../missing_column_name.ome.zarr/zarr.json | 2 +-
.../plate/missing_columns.ome.zarr/zarr.json | 2 +-
.../plate/missing_row_name.ome.zarr/zarr.json | 2 +-
.../plate/missing_rows.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../missing_well_path.ome.zarr/zarr.json | 2 +-
.../missing_well_rowIndex.ome.zarr/zarr.json | 2 +-
.../plate/missing_wells.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../plate/negative_endtime.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../plate/well_1group.ome.zarr/zarr.json | 2 +-
.../plate/well_3groups.ome.zarr/zarr.json | 2 +-
.../plate/zero_field_count.ome.zarr/zarr.json | 2 +-
.../image/custom_type_axes.ome.zarr/zarr.json | 2 +-
.../invalid_axis_units.ome.zarr/zarr.json | 2 +-
.../mismatch_axes_units.ome.zarr/zarr.json | 2 +-
.../image/missing_name.ome.zarr/zarr.json | 2 +-
.../image/untyped_axes.ome.zarr/zarr.json | 2 +-
.../valid/label/minimal.ome.zarr/zarr.json | 2 +-
.../minimal_properties.ome.zarr/zarr.json | 2 +-
.../minimal_acquisitions.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../non_alphanumeric_row.ome.zarr/zarr.json | 2 +-
.../minimal_acquisitions.ome.zarr/zarr.json | 2 +-
.../minimal_no_acquisition.ome.zarr/zarr.json | 2 +-
.../label/no_colors.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../zarr.json | 2 +-
.../plate/missing_name.ome.zarr/zarr.json | 2 +-
.../valid/image/image.ome.zarr/zarr.json | 2 +-
.../image/image_metadata.ome.zarr/zarr.json | 2 +-
.../image/image_omero.ome.zarr/zarr.json | 4 +-
.../multiscales_example.ome.zarr/zarr.json | 2 +-
.../zarr.json | 2 +-
.../strict_acquisitions.ome.zarr/zarr.json | 2 +-
.../strict_no_acquisitions.ome.zarr/zarr.json | 2 +-
.../strict_acquisitions.ome.zarr/zarr.json | 2 +-
.../strict_no_acquisitions.ome.zarr/zarr.json | 2 +-
208 files changed, 319 insertions(+), 318 deletions(-)
diff --git a/_version.py b/_version.py
index b0e05a1b..2caf9630 100644
--- a/_version.py
+++ b/_version.py
@@ -1 +1 @@
-__version__ = '0.6.dev2'
+__version__ = '0.6.dev3'
diff --git a/examples/bf2raw/image.json b/examples/bf2raw/image.json
index 7b8d55d7..68511a57 100644
--- a/examples/bf2raw/image.json
+++ b/examples/bf2raw/image.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"bioformats2raw.layout": 3
}
}
diff --git a/examples/bf2raw/plate.json b/examples/bf2raw/plate.json
index de46be20..5d5590e9 100644
--- a/examples/bf2raw/plate.json
+++ b/examples/bf2raw/plate.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"bioformats2raw.layout": 3,
"plate": {
"columns": [
diff --git a/examples/label_strict/colors_properties.json b/examples/label_strict/colors_properties.json
index b787e500..7b97a496 100644
--- a/examples/label_strict/colors_properties.json
+++ b/examples/label_strict/colors_properties.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/examples/multiscales_strict/multiscales_example.json b/examples/multiscales_strict/multiscales_example.json
index 9fa8e1c4..0d16fde9 100644
--- a/examples/multiscales_strict/multiscales_example.json
+++ b/examples/multiscales_strict/multiscales_example.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"name": "example",
diff --git a/examples/multiscales_strict/multiscales_example_relative.json b/examples/multiscales_strict/multiscales_example_relative.json
index fabf5957..bc51998c 100644
--- a/examples/multiscales_strict/multiscales_example_relative.json
+++ b/examples/multiscales_strict/multiscales_example_relative.json
@@ -1,7 +1,7 @@
{
"multiscales": [
{
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"name": "example",
"coordinateSystems" : [
{
diff --git a/examples/multiscales_strict/multiscales_transformations.json b/examples/multiscales_strict/multiscales_transformations.json
index 338faab8..49876785 100644
--- a/examples/multiscales_strict/multiscales_transformations.json
+++ b/examples/multiscales_strict/multiscales_transformations.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/examples/ome/series-2.json b/examples/ome/series-2.json
index b14d7692..14e2f70e 100644
--- a/examples/ome/series-2.json
+++ b/examples/ome/series-2.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"series": ["0", "1"]
}
}
diff --git a/examples/plate_strict/plate_2wells.json b/examples/plate_strict/plate_2wells.json
index de4868fd..abe64e9d 100644
--- a/examples/plate_strict/plate_2wells.json
+++ b/examples/plate_strict/plate_2wells.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/examples/plate_strict/plate_6wells.json b/examples/plate_strict/plate_6wells.json
index 5f585e03..cfae0e9e 100644
--- a/examples/plate_strict/plate_6wells.json
+++ b/examples/plate_strict/plate_6wells.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/examples/subspace/subspaceMultidim.json b/examples/subspace/subspaceMultidim.json
index 6264ab51..6f381685 100644
--- a/examples/subspace/subspaceMultidim.json
+++ b/examples/subspace/subspaceMultidim.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"name": "multiscales",
diff --git a/examples/subspace/subspacePermute.json b/examples/subspace/subspacePermute.json
index c2752b83..7051b6a3 100644
--- a/examples/subspace/subspacePermute.json
+++ b/examples/subspace/subspacePermute.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"name": "multiscales",
diff --git a/examples/well_strict/well_2fields.json b/examples/well_strict/well_2fields.json
index 274a4c89..a01f495a 100644
--- a/examples/well_strict/well_2fields.json
+++ b/examples/well_strict/well_2fields.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/examples/well_strict/well_4fields.json b/examples/well_strict/well_4fields.json
index 032d09ba..54fd5203 100644
--- a/examples/well_strict/well_4fields.json
+++ b/examples/well_strict/well_4fields.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/index.md b/index.md
index 4be755f6..9d4ba9cb 100644
--- a/index.md
+++ b/index.md
@@ -186,7 +186,7 @@ The OME-Zarr Metadata version MUST be consistent within a hierarchy.
// ...
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
// ...
}
}
@@ -1402,7 +1402,7 @@ For example:
{
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"labels": [
"cell_space_segmentation"
]
diff --git a/schemas/_version.schema b/schemas/_version.schema
index b4d0603e..4ba61526 100644
--- a/schemas/_version.schema
+++ b/schemas/_version.schema
@@ -1,10 +1,10 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema",
"title": "OME-Zarr version",
"description": "OME-Zarr version.",
"type": "string",
"enum": [
- "0.6.dev2"
+ "0.6.dev3"
]
}
diff --git a/schemas/axes.schema b/schemas/axes.schema
index bf91a384..f24ddde1 100644
--- a/schemas/axes.schema
+++ b/schemas/axes.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/axes.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/axes.schema",
"title": "Axes",
"description": "OME-Zarr Axes.",
"type": "array",
diff --git a/schemas/bf2raw.schema b/schemas/bf2raw.schema
index e37e5305..06604db5 100644
--- a/schemas/bf2raw.schema
+++ b/schemas/bf2raw.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/bf2raw.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/bf2raw.schema",
"title": "bioformats2raw",
"description": "OME-Zarr bioformats2raw metadata.",
"type": "object",
@@ -17,7 +17,7 @@
]
},
"version": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema"
}
},
"required": [
diff --git a/schemas/coordinate_systems.schema b/schemas/coordinate_systems.schema
index 405dfcff..8d76a6a6 100644
--- a/schemas/coordinate_systems.schema
+++ b/schemas/coordinate_systems.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_systems.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_systems.schema",
"title": "Coordinate systems",
"description": "OME-Zarr coordinate system.",
"type": "array",
diff --git a/schemas/coordinate_transformations.schema b/schemas/coordinate_transformations.schema
index 009f6a84..bfd1e666 100644
--- a/schemas/coordinate_transformations.schema
+++ b/schemas/coordinate_transformations.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_transformations.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_transformations.schema",
"title": "Coordinate Transformations",
"description": "OME-Zarr Coordinate transforms.",
"type": "array",
diff --git a/schemas/image.schema b/schemas/image.schema
index 9513c430..0ef4c86d 100644
--- a/schemas/image.schema
+++ b/schemas/image.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/image.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/image.schema",
"title": "Image",
"description": "OME-Zarr image.",
"type": "object",
@@ -16,7 +16,7 @@
"$ref": "#/$defs/multiscales"
},
"version": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema"
}
},
"required": [
@@ -51,7 +51,7 @@
"type": "array",
"uniqueItems": true,
"items": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/image.schema#/$defs/multiscale_coordinateTransformations"
+ "$ref": "#/$defs/multiscale_coordinateTransformations"
},
"minItems": 1,
"maxItems": 1
@@ -66,21 +66,21 @@
"version": {
"type": "string",
"enum": [
- "0.6.dev2"
+ "0.6.dev3"
]
},
"coordinateSystems": {
"type": "array",
"minItems": 1,
"items": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_systems.schema#/$defs/coordinateSystem"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_systems.schema#/$defs/coordinateSystem"
}
},
"coordinateTransformations": {
"type": "array",
"minItems": 1,
"items": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_transformations.schema#/$defs/coordinateTransformation"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_transformations.schema#/$defs/coordinateTransformation"
}
}
},
@@ -94,7 +94,8 @@
"multiscale_coordinateTransformations": {
"description": "OME-NGFF coordinate transformation for multiscale resolution level datasets (only scale or scale & translate).",
"oneOf": [
- {"$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_transformations.schema#/$defs/scale"},
+ {"$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_transformations.schema#/$defs/scale"},
+ {"$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_transformations.schema#/$defs/identity"},
{
"type": "object",
"properties": {
@@ -103,8 +104,8 @@
"type": "array",
"items": {
"oneOf": [
- {"$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_transformations.schema#/$defs/scale"},
- {"$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_transformations.schema#/$defs/translation"}
+ {"$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_transformations.schema#/$defs/scale"},
+ {"$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_transformations.schema#/$defs/translation"}
]
},
"minItems": 2,
diff --git a/schemas/label.schema b/schemas/label.schema
index 14be8236..4a32a869 100644
--- a/schemas/label.schema
+++ b/schemas/label.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/label.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/label.schema",
"title": "Label",
"description": "OME-Zarr label.",
"type": "object",
@@ -13,7 +13,7 @@
"$ref": "#/$defs/image-label"
},
"version": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema"
}
},
"required": [
diff --git a/schemas/ome.schema b/schemas/ome.schema
index bd23d458..6374131f 100644
--- a/schemas/ome.schema
+++ b/schemas/ome.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/ome.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/ome.schema",
"title": "OME",
"description": "OME-Zarr OME metadata.",
"type": "object",
@@ -18,7 +18,7 @@
"minContains": 1
},
"version": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema"
}
},
"required": [
diff --git a/schemas/ome_zarr.schema b/schemas/ome_zarr.schema
index fd841027..c7381be4 100644
--- a/schemas/ome_zarr.schema
+++ b/schemas/ome_zarr.schema
@@ -1,26 +1,26 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/ome_zarr.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/ome_zarr.schema",
"title": "OME-Zarr",
"description": "Any OME-Zarr dataset.",
"anyOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/bf2raw.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/bf2raw.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/image.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/image.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/label.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/label.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/ome.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/ome.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/plate.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/plate.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/well.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/well.schema"
}
]
}
diff --git a/schemas/plate.schema b/schemas/plate.schema
index 22efd0c4..88905188 100644
--- a/schemas/plate.schema
+++ b/schemas/plate.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/plate.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/plate.schema",
"title": "Plate",
"description": "OME-Zarr plate.",
"type": "object",
@@ -138,7 +138,7 @@
]
},
"version": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema"
}
},
"required": [
diff --git a/schemas/scene.schema b/schemas/scene.schema
index f60263b5..32fd4d99 100644
--- a/schemas/scene.schema
+++ b/schemas/scene.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/coordinate_systems_and_transforms.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_systems_and_transforms.schema",
"title": "Scene",
"description": "Scene metadata combining coordinate systems and coordinate transformations to define spatial relationships",
"type": "object",
diff --git a/schemas/strict_axes.schema b/schemas/strict_axes.schema
index 7420293d..562f0eb3 100644
--- a/schemas/strict_axes.schema
+++ b/schemas/strict_axes.schema
@@ -1,11 +1,11 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_axes.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_axes.schema",
"title": "NGFF Strict Axes",
"description": "JSON from OME-NGFF .zattrs",
"allOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/axes.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/axes.schema"
},
{
"items": {
diff --git a/schemas/strict_coordinate_systems.schema b/schemas/strict_coordinate_systems.schema
index 7f160fda..fb19eea5 100644
--- a/schemas/strict_coordinate_systems.schema
+++ b/schemas/strict_coordinate_systems.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_coordinate_systems.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_coordinate_systems.schema",
"allOf" : [
{
"$ref": "coordinate_systems.schema"
diff --git a/schemas/strict_image.schema b/schemas/strict_image.schema
index 5207e3bd..fe5448bf 100644
--- a/schemas/strict_image.schema
+++ b/schemas/strict_image.schema
@@ -1,9 +1,9 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_image.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_image.schema",
"allOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/image.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/image.schema"
},
{
"properties": {
diff --git a/schemas/strict_label.schema b/schemas/strict_label.schema
index 7557420c..36e1573a 100644
--- a/schemas/strict_label.schema
+++ b/schemas/strict_label.schema
@@ -1,9 +1,9 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_label.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_label.schema",
"allOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/label.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/label.schema"
},
{
"properties": {
diff --git a/schemas/strict_ome_zarr.schema b/schemas/strict_ome_zarr.schema
index 187a962f..ec88d998 100644
--- a/schemas/strict_ome_zarr.schema
+++ b/schemas/strict_ome_zarr.schema
@@ -1,24 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_ome_zarr.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_ome_zarr.schema",
"anyOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/bf2raw.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/bf2raw.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_image.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_image.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_label.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_label.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/ome.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/ome.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_plate.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_plate.schema"
},
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_well.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_well.schema"
}
]
}
diff --git a/schemas/strict_plate.schema b/schemas/strict_plate.schema
index 666dd65b..0627de21 100644
--- a/schemas/strict_plate.schema
+++ b/schemas/strict_plate.schema
@@ -1,9 +1,9 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_plate.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_plate.schema",
"allOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/plate.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/plate.schema"
},
{
"properties": {
diff --git a/schemas/strict_well.schema b/schemas/strict_well.schema
index 3ed4a084..37c43cb4 100644
--- a/schemas/strict_well.schema
+++ b/schemas/strict_well.schema
@@ -1,9 +1,9 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_well.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_well.schema",
"allOf": [
{
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/well.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/well.schema"
}
]
}
diff --git a/schemas/well.schema b/schemas/well.schema
index 73784763..86139a05 100644
--- a/schemas/well.schema
+++ b/schemas/well.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/well.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/well.schema",
"title": "Well",
"description": "OME-Zarr well.",
"type": "object",
@@ -41,7 +41,7 @@
]
},
"version": {
- "$ref": "https://ngff.openmicroscopy.org/0.6.dev2/schemas/_version.schema"
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/_version.schema"
}
},
"required": [
diff --git a/tests/attributes/spec/invalid/image/duplicate_axes.json b/tests/attributes/spec/invalid/image/duplicate_axes.json
index 4337829f..48e41522 100644
--- a/tests/attributes/spec/invalid/image/duplicate_axes.json
+++ b/tests/attributes/spec/invalid/image/duplicate_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/duplicate_scale.json b/tests/attributes/spec/invalid/image/duplicate_scale.json
index f97c0885..714dd770 100644
--- a/tests/attributes/spec/invalid/image/duplicate_scale.json
+++ b/tests/attributes/spec/invalid/image/duplicate_scale.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/empty_transformations.json b/tests/attributes/spec/invalid/image/empty_transformations.json
index e55bc5c6..708e9a9f 100644
--- a/tests/attributes/spec/invalid/image/empty_transformations.json
+++ b/tests/attributes/spec/invalid/image/empty_transformations.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_axes_count.json b/tests/attributes/spec/invalid/image/invalid_axes_count.json
index 29f37b1a..98891124 100644
--- a/tests/attributes/spec/invalid/image/invalid_axes_count.json
+++ b/tests/attributes/spec/invalid/image/invalid_axes_count.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_axis_type.json b/tests/attributes/spec/invalid/image/invalid_axis_type.json
index 1110d0bb..15e5cb33 100644
--- a/tests/attributes/spec/invalid/image/invalid_axis_type.json
+++ b/tests/attributes/spec/invalid/image/invalid_axis_type.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_channels_color.json b/tests/attributes/spec/invalid/image/invalid_channels_color.json
index 20b2e23c..e3d0fa8b 100644
--- a/tests/attributes/spec/invalid/image/invalid_channels_color.json
+++ b/tests/attributes/spec/invalid/image/invalid_channels_color.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_channels_window.json b/tests/attributes/spec/invalid/image/invalid_channels_window.json
index d58680bd..9f1ea7f3 100644
--- a/tests/attributes/spec/invalid/image/invalid_channels_window.json
+++ b/tests/attributes/spec/invalid/image/invalid_channels_window.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json b/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json
index c969888f..e6b0cac9 100644
--- a/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json
+++ b/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_path.json b/tests/attributes/spec/invalid/image/invalid_path.json
index e3f5f2f7..bbb9281b 100644
--- a/tests/attributes/spec/invalid/image/invalid_path.json
+++ b/tests/attributes/spec/invalid/image/invalid_path.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/invalid_transformation_type.json b/tests/attributes/spec/invalid/image/invalid_transformation_type.json
index 59d7a024..0a39cf8e 100644
--- a/tests/attributes/spec/invalid/image/invalid_transformation_type.json
+++ b/tests/attributes/spec/invalid/image/invalid_transformation_type.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/missing_axes.json b/tests/attributes/spec/invalid/image/missing_axes.json
index 0df61b60..3b130f26 100644
--- a/tests/attributes/spec/invalid/image/missing_axes.json
+++ b/tests/attributes/spec/invalid/image/missing_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"datasets": [
diff --git a/tests/attributes/spec/invalid/image/missing_axes_name.json b/tests/attributes/spec/invalid/image/missing_axes_name.json
index 8d44e9a2..7cbbf2c1 100644
--- a/tests/attributes/spec/invalid/image/missing_axes_name.json
+++ b/tests/attributes/spec/invalid/image/missing_axes_name.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/missing_datasets.json b/tests/attributes/spec/invalid/image/missing_datasets.json
index 367f797a..56680770 100644
--- a/tests/attributes/spec/invalid/image/missing_datasets.json
+++ b/tests/attributes/spec/invalid/image/missing_datasets.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/missing_path.json b/tests/attributes/spec/invalid/image/missing_path.json
index 085f5aeb..a02dc3e3 100644
--- a/tests/attributes/spec/invalid/image/missing_path.json
+++ b/tests/attributes/spec/invalid/image/missing_path.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/missing_scale.json b/tests/attributes/spec/invalid/image/missing_scale.json
index 1c58f1ca..84f0e0d7 100644
--- a/tests/attributes/spec/invalid/image/missing_scale.json
+++ b/tests/attributes/spec/invalid/image/missing_scale.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/missing_space_axes.json b/tests/attributes/spec/invalid/image/missing_space_axes.json
index 32689446..fd148c83 100644
--- a/tests/attributes/spec/invalid/image/missing_space_axes.json
+++ b/tests/attributes/spec/invalid/image/missing_space_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/missing_transformations.json b/tests/attributes/spec/invalid/image/missing_transformations.json
index 2d4f9a4c..71f98e08 100644
--- a/tests/attributes/spec/invalid/image/missing_transformations.json
+++ b/tests/attributes/spec/invalid/image/missing_transformations.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/no_axes.json b/tests/attributes/spec/invalid/image/no_axes.json
index 7d92fa49..1681a6ba 100644
--- a/tests/attributes/spec/invalid/image/no_axes.json
+++ b/tests/attributes/spec/invalid/image/no_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"axes": [],
diff --git a/tests/attributes/spec/invalid/image/no_datasets.json b/tests/attributes/spec/invalid/image/no_datasets.json
index 894092d9..3fafed8b 100644
--- a/tests/attributes/spec/invalid/image/no_datasets.json
+++ b/tests/attributes/spec/invalid/image/no_datasets.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/no_multiscales.json b/tests/attributes/spec/invalid/image/no_multiscales.json
index 34970d7c..4f805a5b 100644
--- a/tests/attributes/spec/invalid/image/no_multiscales.json
+++ b/tests/attributes/spec/invalid/image/no_multiscales.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": []
},
"_conformance": {
diff --git a/tests/attributes/spec/invalid/image/one_space_axes.json b/tests/attributes/spec/invalid/image/one_space_axes.json
index 2ecd9fbe..0d5fe47d 100644
--- a/tests/attributes/spec/invalid/image/one_space_axes.json
+++ b/tests/attributes/spec/invalid/image/one_space_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/too_many_axes.json b/tests/attributes/spec/invalid/image/too_many_axes.json
index bc606714..9b565e8a 100644
--- a/tests/attributes/spec/invalid/image/too_many_axes.json
+++ b/tests/attributes/spec/invalid/image/too_many_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/image/too_many_space_axes.json b/tests/attributes/spec/invalid/image/too_many_space_axes.json
index 82f0b810..b764d233 100644
--- a/tests/attributes/spec/invalid/image/too_many_space_axes.json
+++ b/tests/attributes/spec/invalid/image/too_many_space_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev22",
+ "version": "0.6.dev32",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/invalid/label/colors_duplicate.json b/tests/attributes/spec/invalid/label/colors_duplicate.json
index 0f73138b..c729d61c 100644
--- a/tests/attributes/spec/invalid/label/colors_duplicate.json
+++ b/tests/attributes/spec/invalid/label/colors_duplicate.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/attributes/spec/invalid/label/colors_no_label_value.json b/tests/attributes/spec/invalid/label/colors_no_label_value.json
index 07dcc8d0..98f9f74f 100644
--- a/tests/attributes/spec/invalid/label/colors_no_label_value.json
+++ b/tests/attributes/spec/invalid/label/colors_no_label_value.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/attributes/spec/invalid/label/colors_rgba_length.json b/tests/attributes/spec/invalid/label/colors_rgba_length.json
index 650600b6..537a8754 100644
--- a/tests/attributes/spec/invalid/label/colors_rgba_length.json
+++ b/tests/attributes/spec/invalid/label/colors_rgba_length.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/attributes/spec/invalid/label/colors_rgba_type.json b/tests/attributes/spec/invalid/label/colors_rgba_type.json
index 88a83d03..55077532 100644
--- a/tests/attributes/spec/invalid/label/colors_rgba_type.json
+++ b/tests/attributes/spec/invalid/label/colors_rgba_type.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/attributes/spec/invalid/label/empty_colors.json b/tests/attributes/spec/invalid/label/empty_colors.json
index a360561e..c7dc04d4 100644
--- a/tests/attributes/spec/invalid/label/empty_colors.json
+++ b/tests/attributes/spec/invalid/label/empty_colors.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": []
}
diff --git a/tests/attributes/spec/invalid/label/empty_properties.json b/tests/attributes/spec/invalid/label/empty_properties.json
index 3c493d57..03f6ff92 100644
--- a/tests/attributes/spec/invalid/label/empty_properties.json
+++ b/tests/attributes/spec/invalid/label/empty_properties.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"properties": []
}
diff --git a/tests/attributes/spec/invalid/label/properties_no_label_value.json b/tests/attributes/spec/invalid/label/properties_no_label_value.json
index 0abf0551..9b2153e5 100644
--- a/tests/attributes/spec/invalid/label/properties_no_label_value.json
+++ b/tests/attributes/spec/invalid/label/properties_no_label_value.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"properties": [
{
diff --git a/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json b/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json
index 1823ff51..655c6ab5 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json b/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json
index 1f6d5dd2..2b982d9c 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json b/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json
index 2f7bef5a..8a273caa 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json b/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json
index b5529829..518d74cc 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/duplicate_columns.json b/tests/attributes/spec/invalid/plate/duplicate_columns.json
index 2ff06f52..fb4e5bb9 100644
--- a/tests/attributes/spec/invalid/plate/duplicate_columns.json
+++ b/tests/attributes/spec/invalid/plate/duplicate_columns.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/duplicate_rows-2.json b/tests/attributes/spec/invalid/plate/duplicate_rows-2.json
index 77261e8a..92ca3ea8 100644
--- a/tests/attributes/spec/invalid/plate/duplicate_rows-2.json
+++ b/tests/attributes/spec/invalid/plate/duplicate_rows-2.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/duplicate_rows.json b/tests/attributes/spec/invalid/plate/duplicate_rows.json
index 71096f06..36c903ee 100644
--- a/tests/attributes/spec/invalid/plate/duplicate_rows.json
+++ b/tests/attributes/spec/invalid/plate/duplicate_rows.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/empty_columns.json b/tests/attributes/spec/invalid/plate/empty_columns.json
index 8ab54742..11df185c 100644
--- a/tests/attributes/spec/invalid/plate/empty_columns.json
+++ b/tests/attributes/spec/invalid/plate/empty_columns.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [],
"rows": [
diff --git a/tests/attributes/spec/invalid/plate/empty_rows.json b/tests/attributes/spec/invalid/plate/empty_rows.json
index 2cb4b245..eb810ed2 100644
--- a/tests/attributes/spec/invalid/plate/empty_rows.json
+++ b/tests/attributes/spec/invalid/plate/empty_rows.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/empty_wells.json b/tests/attributes/spec/invalid/plate/empty_wells.json
index 82e1ddd6..4db2f924 100644
--- a/tests/attributes/spec/invalid/plate/empty_wells.json
+++ b/tests/attributes/spec/invalid/plate/empty_wells.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_acquisition_id.json b/tests/attributes/spec/invalid/plate/missing_acquisition_id.json
index 569dfd57..5e087fd1 100644
--- a/tests/attributes/spec/invalid/plate/missing_acquisition_id.json
+++ b/tests/attributes/spec/invalid/plate/missing_acquisition_id.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_column_name.json b/tests/attributes/spec/invalid/plate/missing_column_name.json
index 427df0db..e2d30353 100644
--- a/tests/attributes/spec/invalid/plate/missing_column_name.json
+++ b/tests/attributes/spec/invalid/plate/missing_column_name.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_columns.json b/tests/attributes/spec/invalid/plate/missing_columns.json
index 733d18ad..7c68c662 100644
--- a/tests/attributes/spec/invalid/plate/missing_columns.json
+++ b/tests/attributes/spec/invalid/plate/missing_columns.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"rows": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_row_name.json b/tests/attributes/spec/invalid/plate/missing_row_name.json
index c55d00f7..4b23f96e 100644
--- a/tests/attributes/spec/invalid/plate/missing_row_name.json
+++ b/tests/attributes/spec/invalid/plate/missing_row_name.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_rows.json b/tests/attributes/spec/invalid/plate/missing_rows.json
index 39bbdbdb..ae0dd276 100644
--- a/tests/attributes/spec/invalid/plate/missing_rows.json
+++ b/tests/attributes/spec/invalid/plate/missing_rows.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json b/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json
index 9402fd6c..0f5b3769 100644
--- a/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json
+++ b/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_well_path.json b/tests/attributes/spec/invalid/plate/missing_well_path.json
index e7cd7baf..33ded0ed 100644
--- a/tests/attributes/spec/invalid/plate/missing_well_path.json
+++ b/tests/attributes/spec/invalid/plate/missing_well_path.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json b/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json
index fcea35f9..37f1951d 100644
--- a/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json
+++ b/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/missing_wells.json b/tests/attributes/spec/invalid/plate/missing_wells.json
index 24822633..ea437dbc 100644
--- a/tests/attributes/spec/invalid/plate/missing_wells.json
+++ b/tests/attributes/spec/invalid/plate/missing_wells.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/negative_acquisition_id.json b/tests/attributes/spec/invalid/plate/negative_acquisition_id.json
index 412e463f..f91d3a58 100644
--- a/tests/attributes/spec/invalid/plate/negative_acquisition_id.json
+++ b/tests/attributes/spec/invalid/plate/negative_acquisition_id.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/negative_endtime.json b/tests/attributes/spec/invalid/plate/negative_endtime.json
index 8bc64165..a539cb4d 100644
--- a/tests/attributes/spec/invalid/plate/negative_endtime.json
+++ b/tests/attributes/spec/invalid/plate/negative_endtime.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json b/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json
index 973d961b..52d78821 100644
--- a/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json
+++ b/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json b/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json
index 0e01a452..d4c0e4bb 100644
--- a/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json
+++ b/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json b/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json
index b44042fa..267f24ee 100644
--- a/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json
+++ b/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/invalid/plate/well_1group.json b/tests/attributes/spec/invalid/plate/well_1group.json
index d3119201..bbd969c1 100644
--- a/tests/attributes/spec/invalid/plate/well_1group.json
+++ b/tests/attributes/spec/invalid/plate/well_1group.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/well_3groups.json b/tests/attributes/spec/invalid/plate/well_3groups.json
index c4c74e9d..577f8d02 100644
--- a/tests/attributes/spec/invalid/plate/well_3groups.json
+++ b/tests/attributes/spec/invalid/plate/well_3groups.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/invalid/plate/zero_field_count.json b/tests/attributes/spec/invalid/plate/zero_field_count.json
index 0cb80325..15509019 100644
--- a/tests/attributes/spec/invalid/plate/zero_field_count.json
+++ b/tests/attributes/spec/invalid/plate/zero_field_count.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/valid/image/custom_type_axes.json b/tests/attributes/spec/valid/image/custom_type_axes.json
index 594046b2..4561cc96 100644
--- a/tests/attributes/spec/valid/image/custom_type_axes.json
+++ b/tests/attributes/spec/valid/image/custom_type_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev22",
+ "version": "0.6.dev32",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/valid/image/invalid_axis_units.json b/tests/attributes/spec/valid/image/invalid_axis_units.json
index c36ca483..2a3eced5 100644
--- a/tests/attributes/spec/valid/image/invalid_axis_units.json
+++ b/tests/attributes/spec/valid/image/invalid_axis_units.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/valid/image/mismatch_axes_units.json b/tests/attributes/spec/valid/image/mismatch_axes_units.json
index d6cde0bc..bab72851 100644
--- a/tests/attributes/spec/valid/image/mismatch_axes_units.json
+++ b/tests/attributes/spec/valid/image/mismatch_axes_units.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/valid/image/missing_name.json b/tests/attributes/spec/valid/image/missing_name.json
index eafef43d..0850829a 100644
--- a/tests/attributes/spec/valid/image/missing_name.json
+++ b/tests/attributes/spec/valid/image/missing_name.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"datasets": [
diff --git a/tests/attributes/spec/valid/image/untyped_axes.json b/tests/attributes/spec/valid/image/untyped_axes.json
index 2db86407..ee20ceff 100644
--- a/tests/attributes/spec/valid/image/untyped_axes.json
+++ b/tests/attributes/spec/valid/image/untyped_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/valid/label/minimal.json b/tests/attributes/spec/valid/label/minimal.json
index 613d9322..a9ad949d 100644
--- a/tests/attributes/spec/valid/label/minimal.json
+++ b/tests/attributes/spec/valid/label/minimal.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/attributes/spec/valid/label/minimal_properties.json b/tests/attributes/spec/valid/label/minimal_properties.json
index 845664d6..8469d694 100644
--- a/tests/attributes/spec/valid/label/minimal_properties.json
+++ b/tests/attributes/spec/valid/label/minimal_properties.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/attributes/spec/valid/plate/minimal_acquisitions.json b/tests/attributes/spec/valid/plate/minimal_acquisitions.json
index 5c98cf35..39f2c757 100644
--- a/tests/attributes/spec/valid/plate/minimal_acquisitions.json
+++ b/tests/attributes/spec/valid/plate/minimal_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/spec/valid/plate/minimal_no_acquisitions.json b/tests/attributes/spec/valid/plate/minimal_no_acquisitions.json
index 038adbb5..cea8c250 100644
--- a/tests/attributes/spec/valid/plate/minimal_no_acquisitions.json
+++ b/tests/attributes/spec/valid/plate/minimal_no_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/valid/plate/non_alphanumeric_row.json b/tests/attributes/spec/valid/plate/non_alphanumeric_row.json
index 7438a56e..584b8763 100644
--- a/tests/attributes/spec/valid/plate/non_alphanumeric_row.json
+++ b/tests/attributes/spec/valid/plate/non_alphanumeric_row.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/spec/valid/scene/scape.json b/tests/attributes/spec/valid/scene/scape.json
index 7c75ddc3..5901178c 100644
--- a/tests/attributes/spec/valid/scene/scape.json
+++ b/tests/attributes/spec/valid/scene/scape.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"coordinateTransformations": [
{
"type": "translation",
diff --git a/tests/attributes/spec/valid/well/minimal_acquisitions.json b/tests/attributes/spec/valid/well/minimal_acquisitions.json
index 82d5b464..2bd6d5da 100644
--- a/tests/attributes/spec/valid/well/minimal_acquisitions.json
+++ b/tests/attributes/spec/valid/well/minimal_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/attributes/spec/valid/well/minimal_no_acquisition.json b/tests/attributes/spec/valid/well/minimal_no_acquisition.json
index 76730bcc..f4202221 100644
--- a/tests/attributes/spec/valid/well/minimal_no_acquisition.json
+++ b/tests/attributes/spec/valid/well/minimal_no_acquisition.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/attributes/strict/invalid/label/no_colors.json b/tests/attributes/strict/invalid/label/no_colors.json
index a7bce28d..39d29f4b 100644
--- a/tests/attributes/strict/invalid/label/no_colors.json
+++ b/tests/attributes/strict/invalid/label/no_colors.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {}
},
"_conformance": {
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
index ad30883e..1de76dcf 100644
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
+++ b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev22",
+ "version": "0.6.dev32",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
index f8ecec5c..b0fe45ff 100644
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
+++ b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/strict/invalid/plate/missing_name.json b/tests/attributes/strict/invalid/plate/missing_name.json
index 662cfb21..7385c889 100644
--- a/tests/attributes/strict/invalid/plate/missing_name.json
+++ b/tests/attributes/strict/invalid/plate/missing_name.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev22",
+ "version": "0.6.dev32",
"plate": {
"columns": [
{
diff --git a/tests/attributes/strict/valid/image/image.json b/tests/attributes/strict/valid/image/image.json
index 30a7d181..d68dfd0c 100644
--- a/tests/attributes/strict/valid/image/image.json
+++ b/tests/attributes/strict/valid/image/image.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/strict/valid/image/image_metadata.json b/tests/attributes/strict/valid/image/image_metadata.json
index 8bfbd253..f4613cf2 100644
--- a/tests/attributes/strict/valid/image/image_metadata.json
+++ b/tests/attributes/strict/valid/image/image_metadata.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"@id": "top",
"@type": "ngff:Image",
"multiscales": [
diff --git a/tests/attributes/strict/valid/image/image_omero.json b/tests/attributes/strict/valid/image/image_omero.json
index 20913cd6..682168ee 100644
--- a/tests/attributes/strict/valid/image/image_omero.json
+++ b/tests/attributes/strict/valid/image/image_omero.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -155,7 +155,7 @@
"defaultZ": 2,
"model": "color"
},
- "version": "0.6.dev2"
+ "version": "0.6.dev3"
}
},
"_conformance": {
diff --git a/tests/attributes/strict/valid/image/multiscales_example.json b/tests/attributes/strict/valid/image/multiscales_example.json
index b31ea4d3..254726fb 100644
--- a/tests/attributes/strict/valid/image/multiscales_example.json
+++ b/tests/attributes/strict/valid/image/multiscales_example.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"name": "example",
diff --git a/tests/attributes/strict/valid/image/multiscales_transformations.json b/tests/attributes/strict/valid/image/multiscales_transformations.json
index 1c01493b..d0878f0d 100644
--- a/tests/attributes/strict/valid/image/multiscales_transformations.json
+++ b/tests/attributes/strict/valid/image/multiscales_transformations.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/strict/valid/plate/strict_acquisitions.json b/tests/attributes/strict/valid/plate/strict_acquisitions.json
index 61d6cde1..ae7dfe38 100644
--- a/tests/attributes/strict/valid/plate/strict_acquisitions.json
+++ b/tests/attributes/strict/valid/plate/strict_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/attributes/strict/valid/plate/strict_no_acquisitions.json b/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
index da63097d..4aee1c58 100644
--- a/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
+++ b/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/attributes/strict/valid/well/strict_acquisitions.json b/tests/attributes/strict/valid/well/strict_acquisitions.json
index 06932128..59fd1314 100644
--- a/tests/attributes/strict/valid/well/strict_acquisitions.json
+++ b/tests/attributes/strict/valid/well/strict_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/attributes/strict/valid/well/strict_no_acquisitions.json b/tests/attributes/strict/valid/well/strict_no_acquisitions.json
index 989def6b..6a7decef 100644
--- a/tests/attributes/strict/valid/well/strict_no_acquisitions.json
+++ b/tests/attributes/strict/valid/well/strict_no_acquisitions.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/image_suite.json b/tests/image_suite.json
index 71d099ef..7cd03887 100644
--- a/tests/image_suite.json
+++ b/tests/image_suite.json
@@ -9,7 +9,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -58,7 +58,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -105,7 +105,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -150,7 +150,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"datasets": [
@@ -203,7 +203,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -251,7 +251,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -296,7 +296,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -338,7 +338,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -382,7 +382,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -426,7 +426,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -484,7 +484,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -545,7 +545,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -587,7 +587,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -626,7 +626,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -672,7 +672,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -716,7 +716,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -766,7 +766,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -802,7 +802,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -834,7 +834,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -865,7 +865,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"datasets": [
@@ -892,7 +892,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -936,7 +936,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -986,7 +986,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"axes": [],
@@ -1014,7 +1014,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -1064,7 +1064,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": []
}
},
@@ -1075,7 +1075,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -1136,7 +1136,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -1174,7 +1174,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/label_suite.json b/tests/label_suite.json
index 493431a5..8fcc7f0a 100644
--- a/tests/label_suite.json
+++ b/tests/label_suite.json
@@ -8,7 +8,7 @@
"formerly": "image-label/minimal",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
@@ -25,7 +25,7 @@
"formerly": "image-label/minimal_properties",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
@@ -47,7 +47,7 @@
"formerly": "image-label/empty_colors",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": []
}
@@ -59,7 +59,7 @@
"formerly": "image-label/empty_properties",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"properties": []
}
@@ -71,7 +71,7 @@
"formerly": "image-label/colors_no_label_value",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
@@ -87,7 +87,7 @@
"formerly": "image-label/properties_no_label_value",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"properties": [
{
@@ -103,7 +103,7 @@
"formerly": "image-label/colors_rgba_length",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
@@ -120,7 +120,7 @@
"formerly": "image-label/colors_rgba_type",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
@@ -137,7 +137,7 @@
"formerly": "image-label/colors_duplicate",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/plate_suite.json b/tests/plate_suite.json
index c8c9cd71..aea56a8a 100644
--- a/tests/plate_suite.json
+++ b/tests/plate_suite.json
@@ -8,7 +8,7 @@
"formerly": "plate/minimal_no_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -36,7 +36,7 @@
"formerly": "plate/minimal_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -69,7 +69,7 @@
"formerly": "plate/missing_rows",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -92,7 +92,7 @@
"formerly": "plate/empty_rows",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -116,7 +116,7 @@
"formerly": "plate/duplicate_rows",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -147,7 +147,7 @@
"formerly": "plate/missing_columns",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"rows": [
{
@@ -170,7 +170,7 @@
"formerly": "plate/empty_columns",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [],
"rows": [
@@ -194,7 +194,7 @@
"formerly": "plate/duplicate_columns",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -225,7 +225,7 @@
"formerly": "plate/missing_wells",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -246,7 +246,7 @@
"formerly": "plate/empty_wells",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -268,7 +268,7 @@
"formerly": "plate/duplicate_rows",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -304,7 +304,7 @@
"formerly": "plate/missing_column_name",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -332,7 +332,7 @@
"formerly": "plate/missing_row_name",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -360,7 +360,7 @@
"formerly": "plate/missing_well_path",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -387,7 +387,7 @@
"formerly": "plate/missing_well_rowIndex",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -414,7 +414,7 @@
"formerly": "plate/missing_well_columnIndex",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -441,7 +441,7 @@
"formerly": "plate/well_1group",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -468,7 +468,7 @@
"formerly": "plate/well_3groups",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -495,7 +495,7 @@
"formerly": "plate/non_alphanumeric_column",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -523,7 +523,7 @@
"formerly": "plate/non_alphanumeric_row",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -551,7 +551,7 @@
"formerly": "plate/missing_acquisition_id",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -584,7 +584,7 @@
"formerly": "plate/non_integer_acquisition_id",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -617,7 +617,7 @@
"formerly": "plate/negative_acquisition_id",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -650,7 +650,7 @@
"formerly": "plate/non_integer_acquisition_maximumfieldcount",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -684,7 +684,7 @@
"formerly": "plate/acquisition_zero_maximumfieldcount",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -718,7 +718,7 @@
"formerly": "plate/acquisition_noninteger_starttime",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -752,7 +752,7 @@
"formerly": "plate/acquisition_negative_starttime",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -786,7 +786,7 @@
"formerly": "plate/acquisition_noninteger_endtime",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -820,7 +820,7 @@
"formerly": "plate/negative_endtime",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -854,7 +854,7 @@
"formerly": "plate/zero_field_count",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/strict_image_suite.json b/tests/strict_image_suite.json
index e0a335c5..52bce7a3 100644
--- a/tests/strict_image_suite.json
+++ b/tests/strict_image_suite.json
@@ -9,7 +9,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"name": "example",
@@ -138,7 +138,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -210,7 +210,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"@id": "top",
"@type": "ngff:Image",
"multiscales": [
@@ -267,7 +267,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -316,7 +316,7 @@
"description": "TBD",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -453,7 +453,7 @@
"defaultZ": 2,
"model": "color"
},
- "version": "0.6.dev2"
+ "version": "0.6.dev3"
}
}
},
diff --git a/tests/strict_label_suite.json b/tests/strict_label_suite.json
index 2e52fea6..bd4659c6 100644
--- a/tests/strict_label_suite.json
+++ b/tests/strict_label_suite.json
@@ -8,7 +8,7 @@
"formerly": "image-label/no_colors",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {}
}
},
diff --git a/tests/strict_plate_suite.json b/tests/strict_plate_suite.json
index 1537ec9d..4a2b56a0 100644
--- a/tests/strict_plate_suite.json
+++ b/tests/strict_plate_suite.json
@@ -8,7 +8,7 @@
"formerly": "plate/strict_no_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -37,7 +37,7 @@
"formerly": "plate/missing_name",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
@@ -65,7 +65,7 @@
"formerly": "plate/strict_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -101,7 +101,7 @@
"formerly": "plate/missing_acquisition_name",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
@@ -136,7 +136,7 @@
"formerly": "plate/missing_acquisition_maximumfieldcount",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/strict_well_suite.json b/tests/strict_well_suite.json
index 4f0c92de..46a7bd83 100644
--- a/tests/strict_well_suite.json
+++ b/tests/strict_well_suite.json
@@ -8,7 +8,7 @@
"formerly": "well/strict_no_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
@@ -24,7 +24,7 @@
"formerly": "plate/strict_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/test_validation.py b/tests/test_validation.py
index 4926188b..1d9ac02f 100644
--- a/tests/test_validation.py
+++ b/tests/test_validation.py
@@ -17,10 +17,10 @@
schema_store[schema["$id"]] = schema
GENERIC_SCHEMA = schema_store[
- "https://ngff.openmicroscopy.org/0.6.dev2/schemas/ome_zarr.schema"
+ "https://ngff.openmicroscopy.org/0.6.dev3/schemas/ome_zarr.schema"
]
GENERIC_STRICT_SCHEMA = schema_store[
- "https://ngff.openmicroscopy.org/0.6.dev2/schemas/strict_ome_zarr.schema"
+ "https://ngff.openmicroscopy.org/0.6.dev3/schemas/strict_ome_zarr.schema"
]
diff --git a/tests/well_suite.json b/tests/well_suite.json
index 6dccd3ba..158c706b 100644
--- a/tests/well_suite.json
+++ b/tests/well_suite.json
@@ -8,7 +8,7 @@
"formerly": "well/minimal_no_acquisition",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
@@ -24,7 +24,7 @@
"formerly": "well/minimal_acquisitions",
"data": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json
index e1af509d..3981c5bd 100644
--- a/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json
index 5d095704..a144322a 100644
--- a/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json
index e61b0fb7..c2073565 100644
--- a/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json
index c4b81eda..1aaf1b4e 100644
--- a/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json
index 9b0a3ea0..abb6b6d0 100644
--- a/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json
index 2625855d..1ec5864b 100644
--- a/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json
index f2ad3d8f..f23a5759 100644
--- a/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json
index 0eb3d104..42c35651 100644
--- a/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json
index b8083f51..6d3db2bd 100644
--- a/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json
index 1ce84e8e..f0b8dea2 100644
--- a/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json
index b573036e..459eee76 100644
--- a/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"datasets": [
diff --git a/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json
index e17a2447..550f6fe8 100644
--- a/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json
index 4bbbf312..7866baf9 100644
--- a/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json
index 63ffab03..5bfacfac 100644
--- a/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json
index 692b2847..cd0b5515 100644
--- a/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json
index d837998f..c3c23c0a 100644
--- a/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json
index 1da42df1..de9f2f2a 100644
--- a/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json
index b54ce9a9..609ba137 100644
--- a/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"axes": [],
diff --git a/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json
index d840848a..407110f7 100644
--- a/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json
index d6e9485c..32be6622 100644
--- a/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": []
},
"_conformance": {
diff --git a/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json
index bcb60200..42e7d70b 100644
--- a/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json
index b71b7456..7cf4a9a1 100644
--- a/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json
index 18c3c9db..3d7c209a 100644
--- a/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json
index 0880bf76..eae55d47 100644
--- a/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json
index 7f37f2b4..efc993f8 100644
--- a/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json
index 85d029b9..50966238 100644
--- a/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json
index b7fced99..60631f49 100644
--- a/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json
index 06382686..1367d0bc 100644
--- a/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": []
}
diff --git a/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json
index a62e8d7f..5026f4d7 100644
--- a/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"properties": []
}
diff --git a/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json
index f0cdbe54..5be47bb9 100644
--- a/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"properties": [
{
diff --git a/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json
index e89e1eef..d08ebc0f 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json
index 2bcfbaa2..42de8897 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json
index 3de9e511..d88b42ac 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json
index 7047b3fa..c8055d99 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json
index 5f584398..b9156949 100644
--- a/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json
index 7d838dff..dc1fe5e4 100644
--- a/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json
index a3272b5d..84303e2f 100644
--- a/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json
index 87322fa5..3715dc49 100644
--- a/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [],
"rows": [
diff --git a/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json
index 2c486bf1..9b723efd 100644
--- a/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json
index be4d3a84..0dd1670d 100644
--- a/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json
index 861ff932..cb80c599 100644
--- a/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json
index e656eaec..57d395b6 100644
--- a/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json
index 5fd4dad1..4b2262a5 100644
--- a/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"rows": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json
index 69642ca9..fee7d718 100644
--- a/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json
index 8a00f901..5a8d8551 100644
--- a/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json
index 8b76a13b..675a1332 100644
--- a/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json
index 50ba914b..78e23bf0 100644
--- a/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json
index f8b24478..d2bbb36a 100644
--- a/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json
index ad8004a7..a99d3e71 100644
--- a/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json
index 37084fcb..e965f1e4 100644
--- a/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json
index 916b89ad..01d6b3e0 100644
--- a/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json
index b12c4022..1c0eea6f 100644
--- a/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json
index a8c8b136..f8a49cfd 100644
--- a/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json
index 3b7406eb..78dc6976 100644
--- a/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json
index 21329407..84e6bac5 100644
--- a/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json
index 0f17e8e6..c14e7dde 100644
--- a/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json
index f7cf0770..f7c71abc 100644
--- a/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/valid/image/custom_type_axes.ome.zarr/zarr.json b/tests/zarr/spec/valid/image/custom_type_axes.ome.zarr/zarr.json
index 74397653..e2cad304 100644
--- a/tests/zarr/spec/valid/image/custom_type_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/image/custom_type_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/valid/image/invalid_axis_units.ome.zarr/zarr.json b/tests/zarr/spec/valid/image/invalid_axis_units.ome.zarr/zarr.json
index 61514ef5..5355c03f 100644
--- a/tests/zarr/spec/valid/image/invalid_axis_units.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/image/invalid_axis_units.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/valid/image/mismatch_axes_units.ome.zarr/zarr.json b/tests/zarr/spec/valid/image/mismatch_axes_units.ome.zarr/zarr.json
index 26b59f2b..24bfe457 100644
--- a/tests/zarr/spec/valid/image/mismatch_axes_units.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/image/mismatch_axes_units.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/valid/image/missing_name.ome.zarr/zarr.json b/tests/zarr/spec/valid/image/missing_name.ome.zarr/zarr.json
index a2acf372..e40e2342 100644
--- a/tests/zarr/spec/valid/image/missing_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/image/missing_name.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"datasets": [
diff --git a/tests/zarr/spec/valid/image/untyped_axes.ome.zarr/zarr.json b/tests/zarr/spec/valid/image/untyped_axes.ome.zarr/zarr.json
index 58bb6bbb..cb0a6638 100644
--- a/tests/zarr/spec/valid/image/untyped_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/image/untyped_axes.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/spec/valid/label/minimal.ome.zarr/zarr.json b/tests/zarr/spec/valid/label/minimal.ome.zarr/zarr.json
index c22346fd..749e88f2 100644
--- a/tests/zarr/spec/valid/label/minimal.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/label/minimal.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/zarr/spec/valid/label/minimal_properties.ome.zarr/zarr.json b/tests/zarr/spec/valid/label/minimal_properties.ome.zarr/zarr.json
index 8225ddd8..2ac3197c 100644
--- a/tests/zarr/spec/valid/label/minimal_properties.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/label/minimal_properties.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {
"colors": [
{
diff --git a/tests/zarr/spec/valid/plate/minimal_acquisitions.ome.zarr/zarr.json b/tests/zarr/spec/valid/plate/minimal_acquisitions.ome.zarr/zarr.json
index a63abedd..419ce93a 100644
--- a/tests/zarr/spec/valid/plate/minimal_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/plate/minimal_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/spec/valid/plate/minimal_no_acquisitions.ome.zarr/zarr.json b/tests/zarr/spec/valid/plate/minimal_no_acquisitions.ome.zarr/zarr.json
index 8d9732c2..15f91e06 100644
--- a/tests/zarr/spec/valid/plate/minimal_no_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/plate/minimal_no_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/valid/plate/non_alphanumeric_row.ome.zarr/zarr.json b/tests/zarr/spec/valid/plate/non_alphanumeric_row.ome.zarr/zarr.json
index 16567d19..95bd9ebd 100644
--- a/tests/zarr/spec/valid/plate/non_alphanumeric_row.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/plate/non_alphanumeric_row.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/spec/valid/well/minimal_acquisitions.ome.zarr/zarr.json b/tests/zarr/spec/valid/well/minimal_acquisitions.ome.zarr/zarr.json
index 029edc63..db27a57e 100644
--- a/tests/zarr/spec/valid/well/minimal_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/well/minimal_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/zarr/spec/valid/well/minimal_no_acquisition.ome.zarr/zarr.json b/tests/zarr/spec/valid/well/minimal_no_acquisition.ome.zarr/zarr.json
index 655bbda2..038dfec6 100644
--- a/tests/zarr/spec/valid/well/minimal_no_acquisition.ome.zarr/zarr.json
+++ b/tests/zarr/spec/valid/well/minimal_no_acquisition.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json b/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
index de9c608c..5c1a00d2 100644
--- a/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"image-label": {}
},
"_conformance": {
diff --git a/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
index 993c7b37..1401fc0d 100644
--- a/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
index 47359ab3..3994a02c 100644
--- a/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
index 3fa24271..85330424 100644
--- a/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json
index 4ac1879b..34e82110 100644
--- a/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json
index 49566bb7..0d9b34bf 100644
--- a/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"@id": "top",
"@type": "ngff:Image",
"multiscales": [
diff --git a/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json
index 6365fcb4..71612149 100644
--- a/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
@@ -158,7 +158,7 @@
"defaultZ": 2,
"model": "color"
},
- "version": "0.6.dev2"
+ "version": "0.6.dev3"
}
},
"_conformance": {
diff --git a/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json
index 913851a9..6a5c0e77 100644
--- a/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"name": "example",
diff --git a/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json
index 2b0ef508..96daf552 100644
--- a/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json
index 7318a1e4..5cdda77a 100644
--- a/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"acquisitions": [
{
diff --git a/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json
index 8b1bd45c..8198c3a6 100644
--- a/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"plate": {
"columns": [
{
diff --git a/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json
index 593a736d..006b8a09 100644
--- a/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
diff --git a/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json
index deb56388..597daf37 100644
--- a/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json
+++ b/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json
@@ -3,7 +3,7 @@
"node_type": "group",
"attributes": {
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"well": {
"images": [
{
From 2fbd81720453858d5d26b141554d7e8737c69827 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:37:08 +0100
Subject: [PATCH 09/27] update changelog
---
version_history.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/version_history.md b/version_history.md
index 6e24feba..dc334931 100644
--- a/version_history.md
+++ b/version_history.md
@@ -8,6 +8,21 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+## [0.6.dev3] - 2026-01-21
+
+### Changed
+
+Implemented feedback from Hackathon:
+- Renamed top-level group for transformations to "Scene"
+- Transformations in scene metadata must be object with fields "name" and "path"
+- Made syntax of `mapAxis` and `byDimension` transforms consistent with other transforms
+- For detailed set of changes see [complete overview](https://ngff.openmicroscopy.org/rfc/5/responses/2/index.html)
+- Zarr parameter storage no longer allowed for scale/translation
+
+### Removed
+
+- Removed `inverseOf` transformation
+
## [0.6.dev2] - 2025-12-02
### Changed
From f1852f3fef9681747b30003a652444219a6d0026 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:37:20 +0100
Subject: [PATCH 10/27] fix valid/invalid scene metadata
---
.../spec/invalid/scene/tile_stitching.json | 66 +++++++++++++++++++
tests/attributes/spec/valid/scene/scape.json | 36 ----------
.../spec/valid/scene/tile_stitching.json | 8 +--
3 files changed, 70 insertions(+), 40 deletions(-)
create mode 100644 tests/attributes/spec/invalid/scene/tile_stitching.json
delete mode 100644 tests/attributes/spec/valid/scene/scape.json
diff --git a/tests/attributes/spec/invalid/scene/tile_stitching.json b/tests/attributes/spec/invalid/scene/tile_stitching.json
new file mode 100644
index 00000000..3907da3c
--- /dev/null
+++ b/tests/attributes/spec/invalid/scene/tile_stitching.json
@@ -0,0 +1,66 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "coordinateTransformations": [
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_0", "name": "physical"},
+ "translation": [
+ 0,
+ 0
+ ],
+ "name": "tile_0_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_1", "name": "physical"},
+ "translation": [
+ 0,
+ 348
+ ],
+ "name": "tile_1_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_2", "name": "physical"},
+ "translation": [
+ 276,
+ 0
+ ],
+ "name": "tile_2_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_3", "name": "physical"},
+ "translation": [
+ 276,
+ 348
+ ],
+ "name": "tile_3_mm to world"
+ }
+ ],
+ "coordinateSystems": [
+ {
+ "name": "world",
+ "axes": [
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/tests/attributes/spec/valid/scene/scape.json b/tests/attributes/spec/valid/scene/scape.json
deleted file mode 100644
index 5901178c..00000000
--- a/tests/attributes/spec/valid/scene/scape.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "ome": {
- "version": "0.6.dev3",
- "coordinateTransformations": [
- {
- "type": "translation",
- "output": "world",
- "input": {"path": "stack", "name": "unskewed"},
- "translation": [
- 5882.2,
- 44249.4
- ],
- "name": "stack to world"
- }
- ],
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "type": "space",
- "name": "x",
- "unit": "micrometer",
- "discrete": false
- },
- {
- "type": "space",
- "name": "y",
- "unit": "micrometer",
- "discrete": false
- }
- ]
- }
- ]
- }
-}
diff --git a/tests/attributes/spec/valid/scene/tile_stitching.json b/tests/attributes/spec/valid/scene/tile_stitching.json
index 3907da3c..0aaf3a7e 100644
--- a/tests/attributes/spec/valid/scene/tile_stitching.json
+++ b/tests/attributes/spec/valid/scene/tile_stitching.json
@@ -4,7 +4,7 @@
"coordinateTransformations": [
{
"type": "translation",
- "output": "world",
+ "output": {"name": "world"},
"input": {"path": "tile_0", "name": "physical"},
"translation": [
0,
@@ -14,7 +14,7 @@
},
{
"type": "translation",
- "output": "world",
+ "output": {"name": "world"},
"input": {"path": "tile_1", "name": "physical"},
"translation": [
0,
@@ -24,7 +24,7 @@
},
{
"type": "translation",
- "output": "world",
+ "output": {"name": "world"},
"input": {"path": "tile_2", "name": "physical"},
"translation": [
276,
@@ -34,7 +34,7 @@
},
{
"type": "translation",
- "output": "world",
+ "output": {"name": "world"},
"input": {"path": "tile_3", "name": "physical"},
"translation": [
276,
From 728d519a9e84eb96fde30ad5299097edc827130e Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:42:02 +0100
Subject: [PATCH 11/27] append schema pointer to test json
---
tests/attributes/spec/invalid/scene/tile_stitching.json | 6 ++++++
tests/attributes/spec/valid/scene/tile_stitching.json | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/tests/attributes/spec/invalid/scene/tile_stitching.json b/tests/attributes/spec/invalid/scene/tile_stitching.json
index 3907da3c..36026658 100644
--- a/tests/attributes/spec/invalid/scene/tile_stitching.json
+++ b/tests/attributes/spec/invalid/scene/tile_stitching.json
@@ -62,5 +62,11 @@
]
}
]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/scene.schema"
+ },
+ "description": "Tests for the scene JSON schema: "
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/valid/scene/tile_stitching.json b/tests/attributes/spec/valid/scene/tile_stitching.json
index 0aaf3a7e..4c2348e7 100644
--- a/tests/attributes/spec/valid/scene/tile_stitching.json
+++ b/tests/attributes/spec/valid/scene/tile_stitching.json
@@ -62,5 +62,11 @@
]
}
]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/scene.schema"
+ },
+ "description": "Tests for the scene JSON schema: "
}
}
\ No newline at end of file
From fcce3200033d2f01a16521052ae1917013a479e4 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 14:53:33 +0100
Subject: [PATCH 12/27] add function to test attributes
---
tests/test_attributes.py | 72 ++++++++++++++++++++++++++++++++++++++++
tests/test_validation.py | 14 ++++++--
2 files changed, 83 insertions(+), 3 deletions(-)
create mode 100644 tests/test_attributes.py
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
new file mode 100644
index 00000000..8d4a32db
--- /dev/null
+++ b/tests/test_attributes.py
@@ -0,0 +1,72 @@
+from pathlib import Path
+from typing import Any
+import json
+
+import pytest
+
+from jsonschema import RefResolver, Draft202012Validator as Validator
+from jsonschema.exceptions import ValidationError
+
+here = Path(__file__).resolve().parent
+schema_dir = here.parent.joinpath("schemas")
+attrs_dir = here / "attributes"
+
+schema_store = {}
+version = None
+for schema_path in schema_dir.glob("*.schema*"):
+ schema = json.loads(schema_path.read_text())
+ schema_store[schema["$id"]] = schema
+ if schema_path.stem == "_version":
+ version = schema["enum"][0]
+
+assert version is not None
+
+GENERIC_SCHEMA = schema_store[
+ f"https://ngff.openmicroscopy.org/{version}/schemas/ome_zarr.schema"
+]
+STRICT_SCHEMA = schema_store[
+ f"https://ngff.openmicroscopy.org/{version}/schemas/strict_ome_zarr.schema"
+]
+
+case_fnames = sorted(attrs_dir.rglob("*.json"))
+
+xfails = set()
+
+
+def fname_to_id(fpath: Path) -> str:
+ return str(fpath.relative_to(attrs_dir).with_suffix(""))
+
+
+@pytest.mark.parametrize("case_fname", case_fnames, ids=fname_to_id)
+def test_attributes(case_fname: Path):
+ if fname_to_id(case_fname) in xfails:
+ pytest.xfail("known JSON Schema limitation")
+
+ case_obj: dict[str, Any] = json.loads(case_fname.read_text())
+
+ conformance = case_obj.get("_conformance", {})
+ valid = conformance.get("valid", True)
+ strict = conformance.get("strict", False)
+
+ if strict:
+ schema = STRICT_SCHEMA
+ else:
+ schema = GENERIC_SCHEMA
+
+ resolver = RefResolver.from_schema(
+ schema,
+ store=schema_store,
+ )
+
+ validator_cls = Validator
+
+ validator = validator_cls(
+ schema,
+ resolver=resolver,
+ )
+
+ if valid:
+ validator.validate(case_obj)
+ else:
+ with pytest.raises(ValidationError):
+ validator.validate(case_obj)
\ No newline at end of file
diff --git a/tests/test_validation.py b/tests/test_validation.py
index 1d9ac02f..53364240 100644
--- a/tests/test_validation.py
+++ b/tests/test_validation.py
@@ -9,12 +9,16 @@
from jsonschema import RefResolver, Draft202012Validator as Validator
from jsonschema.exceptions import ValidationError
+from pathlib import Path
+
+os.chdir(Path(__file__).parent.parent)
schema_store = {}
for schema_filename in glob.glob("schemas/*"):
- with open(schema_filename) as f:
- schema = json.load(f)
- schema_store[schema["$id"]] = schema
+ if schema_filename.endswith('.schema'):
+ with open(schema_filename) as f:
+ schema = json.load(f)
+ schema_store[schema["$id"]] = schema
GENERIC_SCHEMA = schema_store[
"https://ngff.openmicroscopy.org/0.6.dev3/schemas/ome_zarr.schema"
@@ -124,3 +128,7 @@ def test_example_configs():
missing.append(subdir[0])
if missing:
raise Exception(f"Directories missing configs: {missing}")
+
+
+if __name__ == '__main__':
+ pytest.main([__file__])
\ No newline at end of file
From 677f65afe412879f42fc8f8e5a846b5c45142d1b Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 14:53:33 +0100
Subject: [PATCH 13/27] add function to test attributes
---
tests/test_attributes.py | 72 ++++++++++++++++++++++++++++++++++++++++
tests/test_validation.py | 14 ++++++--
2 files changed, 83 insertions(+), 3 deletions(-)
create mode 100644 tests/test_attributes.py
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
new file mode 100644
index 00000000..8d4a32db
--- /dev/null
+++ b/tests/test_attributes.py
@@ -0,0 +1,72 @@
+from pathlib import Path
+from typing import Any
+import json
+
+import pytest
+
+from jsonschema import RefResolver, Draft202012Validator as Validator
+from jsonschema.exceptions import ValidationError
+
+here = Path(__file__).resolve().parent
+schema_dir = here.parent.joinpath("schemas")
+attrs_dir = here / "attributes"
+
+schema_store = {}
+version = None
+for schema_path in schema_dir.glob("*.schema*"):
+ schema = json.loads(schema_path.read_text())
+ schema_store[schema["$id"]] = schema
+ if schema_path.stem == "_version":
+ version = schema["enum"][0]
+
+assert version is not None
+
+GENERIC_SCHEMA = schema_store[
+ f"https://ngff.openmicroscopy.org/{version}/schemas/ome_zarr.schema"
+]
+STRICT_SCHEMA = schema_store[
+ f"https://ngff.openmicroscopy.org/{version}/schemas/strict_ome_zarr.schema"
+]
+
+case_fnames = sorted(attrs_dir.rglob("*.json"))
+
+xfails = set()
+
+
+def fname_to_id(fpath: Path) -> str:
+ return str(fpath.relative_to(attrs_dir).with_suffix(""))
+
+
+@pytest.mark.parametrize("case_fname", case_fnames, ids=fname_to_id)
+def test_attributes(case_fname: Path):
+ if fname_to_id(case_fname) in xfails:
+ pytest.xfail("known JSON Schema limitation")
+
+ case_obj: dict[str, Any] = json.loads(case_fname.read_text())
+
+ conformance = case_obj.get("_conformance", {})
+ valid = conformance.get("valid", True)
+ strict = conformance.get("strict", False)
+
+ if strict:
+ schema = STRICT_SCHEMA
+ else:
+ schema = GENERIC_SCHEMA
+
+ resolver = RefResolver.from_schema(
+ schema,
+ store=schema_store,
+ )
+
+ validator_cls = Validator
+
+ validator = validator_cls(
+ schema,
+ resolver=resolver,
+ )
+
+ if valid:
+ validator.validate(case_obj)
+ else:
+ with pytest.raises(ValidationError):
+ validator.validate(case_obj)
\ No newline at end of file
diff --git a/tests/test_validation.py b/tests/test_validation.py
index 4926188b..0b7d8a1a 100644
--- a/tests/test_validation.py
+++ b/tests/test_validation.py
@@ -9,12 +9,16 @@
from jsonschema import RefResolver, Draft202012Validator as Validator
from jsonschema.exceptions import ValidationError
+from pathlib import Path
+
+os.chdir(Path(__file__).parent.parent)
schema_store = {}
for schema_filename in glob.glob("schemas/*"):
- with open(schema_filename) as f:
- schema = json.load(f)
- schema_store[schema["$id"]] = schema
+ if schema_filename.endswith('.schema'):
+ with open(schema_filename) as f:
+ schema = json.load(f)
+ schema_store[schema["$id"]] = schema
GENERIC_SCHEMA = schema_store[
"https://ngff.openmicroscopy.org/0.6.dev2/schemas/ome_zarr.schema"
@@ -124,3 +128,7 @@ def test_example_configs():
missing.append(subdir[0])
if missing:
raise Exception(f"Directories missing configs: {missing}")
+
+
+if __name__ == '__main__':
+ pytest.main([__file__])
\ No newline at end of file
From 59f14e313b28af5984efad78ae17eb992a519658 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 15:08:51 +0100
Subject: [PATCH 14/27] retrieve valid state from path
---
tests/test_attributes.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
index 8d4a32db..f3fcf607 100644
--- a/tests/test_attributes.py
+++ b/tests/test_attributes.py
@@ -45,7 +45,7 @@ def test_attributes(case_fname: Path):
case_obj: dict[str, Any] = json.loads(case_fname.read_text())
conformance = case_obj.get("_conformance", {})
- valid = conformance.get("valid", True)
+ valid = 'valid' in case_obj
strict = conformance.get("strict", False)
if strict:
@@ -69,4 +69,4 @@ def test_attributes(case_fname: Path):
validator.validate(case_obj)
else:
with pytest.raises(ValidationError):
- validator.validate(case_obj)
\ No newline at end of file
+ validator.validate(case_obj)
From 02e73b5c1720c55345cb71c7c89da52010c644c2 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 16:01:58 +0100
Subject: [PATCH 15/27] add valid: false for invalid-marked examples
---
tests/attributes/spec/invalid/image/duplicate_axes.json | 3 ++-
tests/attributes/spec/invalid/image/duplicate_scale.json | 3 ++-
.../spec/invalid/image/empty_transformations.json | 3 ++-
tests/attributes/spec/invalid/image/invalid_axes_count.json | 3 ++-
tests/attributes/spec/invalid/image/invalid_axis_type.json | 3 ++-
.../spec/invalid/image/invalid_channels_color.json | 3 ++-
.../spec/invalid/image/invalid_channels_window.json | 3 ++-
.../invalid/image/invalid_multiscales_transformations.json | 3 ++-
tests/attributes/spec/invalid/image/invalid_path.json | 3 ++-
.../spec/invalid/image/invalid_transformation_type.json | 3 ++-
tests/attributes/spec/invalid/image/missing_axes.json | 3 ++-
tests/attributes/spec/invalid/image/missing_axes_name.json | 3 ++-
tests/attributes/spec/invalid/image/missing_datasets.json | 3 ++-
tests/attributes/spec/invalid/image/missing_path.json | 3 ++-
tests/attributes/spec/invalid/image/missing_scale.json | 3 ++-
tests/attributes/spec/invalid/image/missing_space_axes.json | 3 ++-
.../spec/invalid/image/missing_transformations.json | 3 ++-
tests/attributes/spec/invalid/image/no_axes.json | 3 ++-
tests/attributes/spec/invalid/image/no_datasets.json | 3 ++-
tests/attributes/spec/invalid/image/no_multiscales.json | 3 ++-
tests/attributes/spec/invalid/image/one_space_axes.json | 3 ++-
tests/attributes/spec/invalid/image/too_many_axes.json | 3 ++-
.../attributes/spec/invalid/image/too_many_space_axes.json | 3 ++-
tests/attributes/spec/invalid/label/colors_duplicate.json | 3 ++-
.../spec/invalid/label/colors_no_label_value.json | 3 ++-
tests/attributes/spec/invalid/label/colors_rgba_length.json | 3 ++-
tests/attributes/spec/invalid/label/colors_rgba_type.json | 3 ++-
tests/attributes/spec/invalid/label/empty_colors.json | 3 ++-
tests/attributes/spec/invalid/label/empty_properties.json | 3 ++-
.../spec/invalid/label/properties_no_label_value.json | 3 ++-
.../spec/invalid/plate/acquisition_negative_starttime.json | 3 ++-
.../spec/invalid/plate/acquisition_noninteger_endtime.json | 3 ++-
.../invalid/plate/acquisition_noninteger_starttime.json | 3 ++-
.../invalid/plate/acquisition_zero_maximumfieldcount.json | 3 ++-
tests/attributes/spec/invalid/plate/duplicate_columns.json | 3 ++-
tests/attributes/spec/invalid/plate/duplicate_rows-2.json | 3 ++-
tests/attributes/spec/invalid/plate/duplicate_rows.json | 3 ++-
tests/attributes/spec/invalid/plate/empty_columns.json | 3 ++-
tests/attributes/spec/invalid/plate/empty_rows.json | 3 ++-
tests/attributes/spec/invalid/plate/empty_wells.json | 3 ++-
.../spec/invalid/plate/missing_acquisition_id.json | 3 ++-
.../attributes/spec/invalid/plate/missing_column_name.json | 3 ++-
tests/attributes/spec/invalid/plate/missing_columns.json | 3 ++-
tests/attributes/spec/invalid/plate/missing_row_name.json | 3 ++-
tests/attributes/spec/invalid/plate/missing_rows.json | 3 ++-
.../spec/invalid/plate/missing_well_columnIndex.json | 3 ++-
tests/attributes/spec/invalid/plate/missing_well_path.json | 3 ++-
.../spec/invalid/plate/missing_well_rowIndex.json | 3 ++-
tests/attributes/spec/invalid/plate/missing_wells.json | 3 ++-
.../spec/invalid/plate/negative_acquisition_id.json | 3 ++-
tests/attributes/spec/invalid/plate/negative_endtime.json | 3 ++-
.../spec/invalid/plate/non_alphanumeric_column.json | 3 ++-
.../spec/invalid/plate/non_integer_acquisition_id.json | 3 ++-
.../plate/non_integer_acquisition_maximumfieldcount.json | 3 ++-
tests/attributes/spec/invalid/plate/well_1group.json | 3 ++-
tests/attributes/spec/invalid/plate/well_3groups.json | 3 ++-
tests/attributes/spec/invalid/plate/zero_field_count.json | 3 ++-
tests/attributes/spec/invalid/well/duplicate_images.json | 3 ++-
tests/attributes/spec/invalid/well/empty_images.json | 3 ++-
.../spec/invalid/well/non_integer_acquisition_id.json | 3 ++-
tests/attributes/spec/valid/plate/minimal_acquisitions.json | 3 ++-
tests/attributes/strict/invalid/label/no_colors.json | 3 ++-
.../plate/missing_acquisition_maximumfieldcount.json | 3 ++-
.../strict/invalid/plate/missing_acquisition_name.json | 3 ++-
tests/attributes/strict/invalid/plate/missing_name.json | 3 ++-
tests/test_attributes.py | 6 +++++-
.../spec/invalid/image/duplicate_axes.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/duplicate_scale.ome.zarr/zarr.json | 3 ++-
.../invalid/image/empty_transformations.ome.zarr/zarr.json | 3 ++-
.../invalid/image/invalid_axes_count.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json | 3 ++-
.../invalid/image/invalid_channels_color.ome.zarr/zarr.json | 3 ++-
.../image/invalid_channels_window.ome.zarr/zarr.json | 3 ++-
.../invalid_multiscales_transformations.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json | 3 ++-
.../image/invalid_transformation_type.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/missing_axes_name.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/missing_datasets.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/missing_scale.ome.zarr/zarr.json | 3 ++-
.../invalid/image/missing_space_axes.ome.zarr/zarr.json | 3 ++-
.../image/missing_transformations.ome.zarr/zarr.json | 3 ++-
tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/no_multiscales.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/one_space_axes.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/image/too_many_axes.ome.zarr/zarr.json | 3 ++-
.../invalid/image/too_many_space_axes.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/label/colors_duplicate.ome.zarr/zarr.json | 3 ++-
.../invalid/label/colors_no_label_value.ome.zarr/zarr.json | 3 ++-
.../invalid/label/colors_rgba_length.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/label/empty_properties.ome.zarr/zarr.json | 3 ++-
.../label/properties_no_label_value.ome.zarr/zarr.json | 3 ++-
.../plate/acquisition_negative_starttime.ome.zarr/zarr.json | 3 ++-
.../plate/acquisition_noninteger_endtime.ome.zarr/zarr.json | 3 ++-
.../acquisition_noninteger_starttime.ome.zarr/zarr.json | 3 ++-
.../acquisition_zero_maximumfieldcount.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/empty_columns.ome.zarr/zarr.json | 3 ++-
tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json | 3 ++-
.../invalid/plate/missing_acquisition_id.ome.zarr/zarr.json | 3 ++-
.../invalid/plate/missing_column_name.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/missing_columns.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/missing_row_name.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json | 3 ++-
.../plate/missing_well_columnIndex.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/missing_well_path.ome.zarr/zarr.json | 3 ++-
.../invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/missing_wells.ome.zarr/zarr.json | 3 ++-
.../plate/negative_acquisition_id.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/negative_endtime.ome.zarr/zarr.json | 3 ++-
.../plate/non_alphanumeric_column.ome.zarr/zarr.json | 3 ++-
.../plate/non_integer_acquisition_id.ome.zarr/zarr.json | 3 ++-
.../zarr.json | 3 ++-
.../zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/plate/zero_field_count.ome.zarr/zarr.json | 3 ++-
.../spec/invalid/well/duplicate_images.ome.zarr/zarr.json | 3 ++-
.../zarr/spec/invalid/well/empty_images.ome.zarr/zarr.json | 3 ++-
.../well/non_integer_acquisition_id.ome.zarr/zarr.json | 3 ++-
.../zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json | 3 ++-
.../zarr.json | 3 ++-
.../plate/missing_acquisition_name.ome.zarr/zarr.json | 3 ++-
.../strict/invalid/plate/missing_name.ome.zarr/zarr.json | 3 ++-
130 files changed, 263 insertions(+), 130 deletions(-)
diff --git a/tests/attributes/spec/invalid/image/duplicate_axes.json b/tests/attributes/spec/invalid/image/duplicate_axes.json
index 4337829f..c2f27a1d 100644
--- a/tests/attributes/spec/invalid/image/duplicate_axes.json
+++ b/tests/attributes/spec/invalid/image/duplicate_axes.json
@@ -42,6 +42,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/duplicate_scale.json b/tests/attributes/spec/invalid/image/duplicate_scale.json
index f97c0885..405d50f5 100644
--- a/tests/attributes/spec/invalid/image/duplicate_scale.json
+++ b/tests/attributes/spec/invalid/image/duplicate_scale.json
@@ -51,6 +51,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/empty_transformations.json b/tests/attributes/spec/invalid/image/empty_transformations.json
index e55bc5c6..b4c5d967 100644
--- a/tests/attributes/spec/invalid/image/empty_transformations.json
+++ b/tests/attributes/spec/invalid/image/empty_transformations.json
@@ -33,5 +33,6 @@
"schema": {
"id": "schemas/image.schema"
}
- }
+ },
+ "valid": false
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_axes_count.json b/tests/attributes/spec/invalid/image/invalid_axes_count.json
index 29f37b1a..0b1346f0 100644
--- a/tests/attributes/spec/invalid/image/invalid_axes_count.json
+++ b/tests/attributes/spec/invalid/image/invalid_axes_count.json
@@ -37,6 +37,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_axis_type.json b/tests/attributes/spec/invalid/image/invalid_axis_type.json
index 1110d0bb..f004b7b0 100644
--- a/tests/attributes/spec/invalid/image/invalid_axis_type.json
+++ b/tests/attributes/spec/invalid/image/invalid_axis_type.json
@@ -42,6 +42,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_channels_color.json b/tests/attributes/spec/invalid/image/invalid_channels_color.json
index 20b2e23c..c91ce42b 100644
--- a/tests/attributes/spec/invalid/image/invalid_channels_color.json
+++ b/tests/attributes/spec/invalid/image/invalid_channels_color.json
@@ -59,6 +59,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_channels_window.json b/tests/attributes/spec/invalid/image/invalid_channels_window.json
index d58680bd..98e28fe7 100644
--- a/tests/attributes/spec/invalid/image/invalid_channels_window.json
+++ b/tests/attributes/spec/invalid/image/invalid_channels_window.json
@@ -59,6 +59,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json b/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json
index c969888f..5379e631 100644
--- a/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json
+++ b/tests/attributes/spec/invalid/image/invalid_multiscales_transformations.json
@@ -50,6 +50,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_path.json b/tests/attributes/spec/invalid/image/invalid_path.json
index e3f5f2f7..e1f74bd4 100644
--- a/tests/attributes/spec/invalid/image/invalid_path.json
+++ b/tests/attributes/spec/invalid/image/invalid_path.json
@@ -42,6 +42,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/invalid_transformation_type.json b/tests/attributes/spec/invalid/image/invalid_transformation_type.json
index 59d7a024..96fc9d11 100644
--- a/tests/attributes/spec/invalid/image/invalid_transformation_type.json
+++ b/tests/attributes/spec/invalid/image/invalid_transformation_type.json
@@ -42,6 +42,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_axes.json b/tests/attributes/spec/invalid/image/missing_axes.json
index 0df61b60..e86d3cc6 100644
--- a/tests/attributes/spec/invalid/image/missing_axes.json
+++ b/tests/attributes/spec/invalid/image/missing_axes.json
@@ -25,6 +25,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_axes_name.json b/tests/attributes/spec/invalid/image/missing_axes_name.json
index 8d44e9a2..13f0a7ac 100644
--- a/tests/attributes/spec/invalid/image/missing_axes_name.json
+++ b/tests/attributes/spec/invalid/image/missing_axes_name.json
@@ -40,6 +40,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_datasets.json b/tests/attributes/spec/invalid/image/missing_datasets.json
index 367f797a..a4c81e5d 100644
--- a/tests/attributes/spec/invalid/image/missing_datasets.json
+++ b/tests/attributes/spec/invalid/image/missing_datasets.json
@@ -26,6 +26,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_path.json b/tests/attributes/spec/invalid/image/missing_path.json
index 085f5aeb..5d4c4ad1 100644
--- a/tests/attributes/spec/invalid/image/missing_path.json
+++ b/tests/attributes/spec/invalid/image/missing_path.json
@@ -41,6 +41,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_scale.json b/tests/attributes/spec/invalid/image/missing_scale.json
index 1c58f1ca..1a547087 100644
--- a/tests/attributes/spec/invalid/image/missing_scale.json
+++ b/tests/attributes/spec/invalid/image/missing_scale.json
@@ -42,6 +42,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_space_axes.json b/tests/attributes/spec/invalid/image/missing_space_axes.json
index 32689446..c52179e2 100644
--- a/tests/attributes/spec/invalid/image/missing_space_axes.json
+++ b/tests/attributes/spec/invalid/image/missing_space_axes.json
@@ -40,6 +40,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/missing_transformations.json b/tests/attributes/spec/invalid/image/missing_transformations.json
index 2d4f9a4c..310bdd6d 100644
--- a/tests/attributes/spec/invalid/image/missing_transformations.json
+++ b/tests/attributes/spec/invalid/image/missing_transformations.json
@@ -31,6 +31,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/no_axes.json b/tests/attributes/spec/invalid/image/no_axes.json
index 7d92fa49..c7203996 100644
--- a/tests/attributes/spec/invalid/image/no_axes.json
+++ b/tests/attributes/spec/invalid/image/no_axes.json
@@ -26,6 +26,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/no_datasets.json b/tests/attributes/spec/invalid/image/no_datasets.json
index 894092d9..58c5bd78 100644
--- a/tests/attributes/spec/invalid/image/no_datasets.json
+++ b/tests/attributes/spec/invalid/image/no_datasets.json
@@ -27,6 +27,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/no_multiscales.json b/tests/attributes/spec/invalid/image/no_multiscales.json
index 34970d7c..d88ba452 100644
--- a/tests/attributes/spec/invalid/image/no_multiscales.json
+++ b/tests/attributes/spec/invalid/image/no_multiscales.json
@@ -6,6 +6,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/one_space_axes.json b/tests/attributes/spec/invalid/image/one_space_axes.json
index 2ecd9fbe..10e39bb6 100644
--- a/tests/attributes/spec/invalid/image/one_space_axes.json
+++ b/tests/attributes/spec/invalid/image/one_space_axes.json
@@ -45,6 +45,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/too_many_axes.json b/tests/attributes/spec/invalid/image/too_many_axes.json
index bc606714..e376ebeb 100644
--- a/tests/attributes/spec/invalid/image/too_many_axes.json
+++ b/tests/attributes/spec/invalid/image/too_many_axes.json
@@ -60,6 +60,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/image/too_many_space_axes.json b/tests/attributes/spec/invalid/image/too_many_space_axes.json
index 82f0b810..b8ff7aa9 100644
--- a/tests/attributes/spec/invalid/image/too_many_space_axes.json
+++ b/tests/attributes/spec/invalid/image/too_many_space_axes.json
@@ -50,6 +50,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/colors_duplicate.json b/tests/attributes/spec/invalid/label/colors_duplicate.json
index 0f73138b..3bd23543 100644
--- a/tests/attributes/spec/invalid/label/colors_duplicate.json
+++ b/tests/attributes/spec/invalid/label/colors_duplicate.json
@@ -28,6 +28,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/colors_no_label_value.json b/tests/attributes/spec/invalid/label/colors_no_label_value.json
index 07dcc8d0..489ba554 100644
--- a/tests/attributes/spec/invalid/label/colors_no_label_value.json
+++ b/tests/attributes/spec/invalid/label/colors_no_label_value.json
@@ -18,6 +18,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/colors_rgba_length.json b/tests/attributes/spec/invalid/label/colors_rgba_length.json
index 650600b6..bd97b4e0 100644
--- a/tests/attributes/spec/invalid/label/colors_rgba_length.json
+++ b/tests/attributes/spec/invalid/label/colors_rgba_length.json
@@ -18,6 +18,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/colors_rgba_type.json b/tests/attributes/spec/invalid/label/colors_rgba_type.json
index 88a83d03..44f2a096 100644
--- a/tests/attributes/spec/invalid/label/colors_rgba_type.json
+++ b/tests/attributes/spec/invalid/label/colors_rgba_type.json
@@ -19,6 +19,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/empty_colors.json b/tests/attributes/spec/invalid/label/empty_colors.json
index a360561e..96838763 100644
--- a/tests/attributes/spec/invalid/label/empty_colors.json
+++ b/tests/attributes/spec/invalid/label/empty_colors.json
@@ -9,6 +9,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/empty_properties.json b/tests/attributes/spec/invalid/label/empty_properties.json
index 3c493d57..00df37fd 100644
--- a/tests/attributes/spec/invalid/label/empty_properties.json
+++ b/tests/attributes/spec/invalid/label/empty_properties.json
@@ -9,6 +9,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/label/properties_no_label_value.json b/tests/attributes/spec/invalid/label/properties_no_label_value.json
index 0abf0551..9e8d8659 100644
--- a/tests/attributes/spec/invalid/label/properties_no_label_value.json
+++ b/tests/attributes/spec/invalid/label/properties_no_label_value.json
@@ -13,6 +13,7 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json b/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json
index 1823ff51..8e6deec1 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_negative_starttime.json
@@ -31,6 +31,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json b/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json
index 1f6d5dd2..c92fad77 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_noninteger_endtime.json
@@ -31,6 +31,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json b/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json
index 2f7bef5a..0273f2cb 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_noninteger_starttime.json
@@ -31,6 +31,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json b/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json
index b5529829..5f1c4a25 100644
--- a/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json
+++ b/tests/attributes/spec/invalid/plate/acquisition_zero_maximumfieldcount.json
@@ -31,6 +31,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/duplicate_columns.json b/tests/attributes/spec/invalid/plate/duplicate_columns.json
index 2ff06f52..048ee055 100644
--- a/tests/attributes/spec/invalid/plate/duplicate_columns.json
+++ b/tests/attributes/spec/invalid/plate/duplicate_columns.json
@@ -28,6 +28,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/duplicate_rows-2.json b/tests/attributes/spec/invalid/plate/duplicate_rows-2.json
index 77261e8a..88df1308 100644
--- a/tests/attributes/spec/invalid/plate/duplicate_rows-2.json
+++ b/tests/attributes/spec/invalid/plate/duplicate_rows-2.json
@@ -33,6 +33,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/duplicate_rows.json b/tests/attributes/spec/invalid/plate/duplicate_rows.json
index 71096f06..272cd9e7 100644
--- a/tests/attributes/spec/invalid/plate/duplicate_rows.json
+++ b/tests/attributes/spec/invalid/plate/duplicate_rows.json
@@ -28,6 +28,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/empty_columns.json b/tests/attributes/spec/invalid/plate/empty_columns.json
index 8ab54742..06343c63 100644
--- a/tests/attributes/spec/invalid/plate/empty_columns.json
+++ b/tests/attributes/spec/invalid/plate/empty_columns.json
@@ -21,6 +21,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/empty_rows.json b/tests/attributes/spec/invalid/plate/empty_rows.json
index 2cb4b245..da29f75d 100644
--- a/tests/attributes/spec/invalid/plate/empty_rows.json
+++ b/tests/attributes/spec/invalid/plate/empty_rows.json
@@ -21,6 +21,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/empty_wells.json b/tests/attributes/spec/invalid/plate/empty_wells.json
index 82e1ddd6..221eea76 100644
--- a/tests/attributes/spec/invalid/plate/empty_wells.json
+++ b/tests/attributes/spec/invalid/plate/empty_wells.json
@@ -19,6 +19,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_acquisition_id.json b/tests/attributes/spec/invalid/plate/missing_acquisition_id.json
index 569dfd57..632bf4c0 100644
--- a/tests/attributes/spec/invalid/plate/missing_acquisition_id.json
+++ b/tests/attributes/spec/invalid/plate/missing_acquisition_id.json
@@ -30,6 +30,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_column_name.json b/tests/attributes/spec/invalid/plate/missing_column_name.json
index 427df0db..b718b9b6 100644
--- a/tests/attributes/spec/invalid/plate/missing_column_name.json
+++ b/tests/attributes/spec/invalid/plate/missing_column_name.json
@@ -25,6 +25,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_columns.json b/tests/attributes/spec/invalid/plate/missing_columns.json
index 733d18ad..1c519bf1 100644
--- a/tests/attributes/spec/invalid/plate/missing_columns.json
+++ b/tests/attributes/spec/invalid/plate/missing_columns.json
@@ -20,6 +20,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_row_name.json b/tests/attributes/spec/invalid/plate/missing_row_name.json
index c55d00f7..c5aade81 100644
--- a/tests/attributes/spec/invalid/plate/missing_row_name.json
+++ b/tests/attributes/spec/invalid/plate/missing_row_name.json
@@ -25,6 +25,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_rows.json b/tests/attributes/spec/invalid/plate/missing_rows.json
index 39bbdbdb..0e893900 100644
--- a/tests/attributes/spec/invalid/plate/missing_rows.json
+++ b/tests/attributes/spec/invalid/plate/missing_rows.json
@@ -20,6 +20,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json b/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json
index 9402fd6c..cb566075 100644
--- a/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json
+++ b/tests/attributes/spec/invalid/plate/missing_well_columnIndex.json
@@ -24,6 +24,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_well_path.json b/tests/attributes/spec/invalid/plate/missing_well_path.json
index e7cd7baf..089617b3 100644
--- a/tests/attributes/spec/invalid/plate/missing_well_path.json
+++ b/tests/attributes/spec/invalid/plate/missing_well_path.json
@@ -24,6 +24,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json b/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json
index fcea35f9..b1971241 100644
--- a/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json
+++ b/tests/attributes/spec/invalid/plate/missing_well_rowIndex.json
@@ -24,6 +24,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/missing_wells.json b/tests/attributes/spec/invalid/plate/missing_wells.json
index 24822633..14bc4296 100644
--- a/tests/attributes/spec/invalid/plate/missing_wells.json
+++ b/tests/attributes/spec/invalid/plate/missing_wells.json
@@ -18,6 +18,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/negative_acquisition_id.json b/tests/attributes/spec/invalid/plate/negative_acquisition_id.json
index 412e463f..502ecee2 100644
--- a/tests/attributes/spec/invalid/plate/negative_acquisition_id.json
+++ b/tests/attributes/spec/invalid/plate/negative_acquisition_id.json
@@ -30,6 +30,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/negative_endtime.json b/tests/attributes/spec/invalid/plate/negative_endtime.json
index 8bc64165..56ba3da3 100644
--- a/tests/attributes/spec/invalid/plate/negative_endtime.json
+++ b/tests/attributes/spec/invalid/plate/negative_endtime.json
@@ -31,6 +31,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json b/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json
index 973d961b..df36d1ce 100644
--- a/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json
+++ b/tests/attributes/spec/invalid/plate/non_alphanumeric_column.json
@@ -25,6 +25,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json b/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json
index 0e01a452..8b49dede 100644
--- a/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json
+++ b/tests/attributes/spec/invalid/plate/non_integer_acquisition_id.json
@@ -30,6 +30,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json b/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json
index b44042fa..5c0496ad 100644
--- a/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json
+++ b/tests/attributes/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.json
@@ -31,6 +31,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/well_1group.json b/tests/attributes/spec/invalid/plate/well_1group.json
index d3119201..e034330f 100644
--- a/tests/attributes/spec/invalid/plate/well_1group.json
+++ b/tests/attributes/spec/invalid/plate/well_1group.json
@@ -24,6 +24,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/well_3groups.json b/tests/attributes/spec/invalid/plate/well_3groups.json
index c4c74e9d..79c1489b 100644
--- a/tests/attributes/spec/invalid/plate/well_3groups.json
+++ b/tests/attributes/spec/invalid/plate/well_3groups.json
@@ -24,6 +24,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/plate/zero_field_count.json b/tests/attributes/spec/invalid/plate/zero_field_count.json
index 0cb80325..e699da0c 100644
--- a/tests/attributes/spec/invalid/plate/zero_field_count.json
+++ b/tests/attributes/spec/invalid/plate/zero_field_count.json
@@ -26,6 +26,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/well/duplicate_images.json b/tests/attributes/spec/invalid/well/duplicate_images.json
index 3978b0a1..d4a6e751 100644
--- a/tests/attributes/spec/invalid/well/duplicate_images.json
+++ b/tests/attributes/spec/invalid/well/duplicate_images.json
@@ -13,6 +13,7 @@
"schema": {
"id": "schemas/well.schema"
},
- "description": "Tests for the well JSON schema: "
+ "description": "Tests for the well JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/well/empty_images.json b/tests/attributes/spec/invalid/well/empty_images.json
index ef0ccce1..b4eb93e4 100644
--- a/tests/attributes/spec/invalid/well/empty_images.json
+++ b/tests/attributes/spec/invalid/well/empty_images.json
@@ -6,6 +6,7 @@
"schema": {
"id": "schemas/well.schema"
},
- "description": "Tests for the well JSON schema: "
+ "description": "Tests for the well JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/well/non_integer_acquisition_id.json b/tests/attributes/spec/invalid/well/non_integer_acquisition_id.json
index c3855a3f..8193e214 100644
--- a/tests/attributes/spec/invalid/well/non_integer_acquisition_id.json
+++ b/tests/attributes/spec/invalid/well/non_integer_acquisition_id.json
@@ -11,6 +11,7 @@
"schema": {
"id": "schemas/well.schema"
},
- "description": "Tests for the well JSON schema: "
+ "description": "Tests for the well JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/valid/plate/minimal_acquisitions.json b/tests/attributes/spec/valid/plate/minimal_acquisitions.json
index 5c98cf35..6b9d798f 100644
--- a/tests/attributes/spec/valid/plate/minimal_acquisitions.json
+++ b/tests/attributes/spec/valid/plate/minimal_acquisitions.json
@@ -30,6 +30,7 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/label/no_colors.json b/tests/attributes/strict/invalid/label/no_colors.json
index a7bce28d..08ba4e66 100644
--- a/tests/attributes/strict/invalid/label/no_colors.json
+++ b/tests/attributes/strict/invalid/label/no_colors.json
@@ -7,6 +7,7 @@
"schema": {
"id": "schemas/strict_label.schema"
},
- "description": "Tests for the strict image-label JSON schema: "
+ "description": "Tests for the strict image-label JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
index ad30883e..4ab057e1 100644
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
+++ b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
@@ -32,6 +32,7 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
index f8ecec5c..f5925f0b 100644
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
+++ b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
@@ -32,6 +32,7 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_name.json b/tests/attributes/strict/invalid/plate/missing_name.json
index 662cfb21..39e777d6 100644
--- a/tests/attributes/strict/invalid/plate/missing_name.json
+++ b/tests/attributes/strict/invalid/plate/missing_name.json
@@ -25,6 +25,7 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
index f3fcf607..406aaefc 100644
--- a/tests/test_attributes.py
+++ b/tests/test_attributes.py
@@ -45,7 +45,7 @@ def test_attributes(case_fname: Path):
case_obj: dict[str, Any] = json.loads(case_fname.read_text())
conformance = case_obj.get("_conformance", {})
- valid = 'valid' in case_obj
+ valid = conformance.get("valid", True)
strict = conformance.get("strict", False)
if strict:
@@ -70,3 +70,7 @@ def test_attributes(case_fname: Path):
else:
with pytest.raises(ValidationError):
validator.validate(case_obj)
+
+
+if __name__ == '__main__':
+ pytest.main([__file__])
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json
index e1af509d..a5dd7ce0 100644
--- a/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/duplicate_axes.ome.zarr/zarr.json
@@ -45,7 +45,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json
index 5d095704..68845515 100644
--- a/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/duplicate_scale.ome.zarr/zarr.json
@@ -54,7 +54,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json
index e61b0fb7..c85487f6 100644
--- a/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/empty_transformations.ome.zarr/zarr.json
@@ -35,7 +35,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json
index c4b81eda..5ac2f031 100644
--- a/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_axes_count.ome.zarr/zarr.json
@@ -40,7 +40,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json
index 9b0a3ea0..53c19450 100644
--- a/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_axis_type.ome.zarr/zarr.json
@@ -45,7 +45,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json
index 2625855d..09b09b9a 100644
--- a/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_channels_color.ome.zarr/zarr.json
@@ -62,7 +62,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json
index f2ad3d8f..55f532be 100644
--- a/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_channels_window.ome.zarr/zarr.json
@@ -62,7 +62,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json
index 0eb3d104..406ac452 100644
--- a/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_multiscales_transformations.ome.zarr/zarr.json
@@ -53,7 +53,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json
index b8083f51..b6005757 100644
--- a/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_path.ome.zarr/zarr.json
@@ -45,7 +45,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json
index 1ce84e8e..7502a58e 100644
--- a/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/invalid_transformation_type.ome.zarr/zarr.json
@@ -45,7 +45,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json
index b573036e..8a2e8310 100644
--- a/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_axes.ome.zarr/zarr.json
@@ -28,7 +28,8 @@
"_conformance": {
"schema": {
"id": "age.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json
index e17a2447..8af1ebd0 100644
--- a/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_axes_name.ome.zarr/zarr.json
@@ -43,7 +43,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json
index 4bbbf312..60599d33 100644
--- a/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_datasets.ome.zarr/zarr.json
@@ -29,7 +29,8 @@
"_conformance": {
"schema": {
"id": "age.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json
index 63ffab03..5c1aa8c4 100644
--- a/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_path.ome.zarr/zarr.json
@@ -44,7 +44,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json
index 692b2847..60b56d1f 100644
--- a/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_scale.ome.zarr/zarr.json
@@ -45,7 +45,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json
index d837998f..57904b8c 100644
--- a/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_space_axes.ome.zarr/zarr.json
@@ -43,7 +43,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json
index 1da42df1..b70d2f1d 100644
--- a/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/missing_transformations.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json
index b54ce9a9..cd7b41f5 100644
--- a/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/no_axes.ome.zarr/zarr.json
@@ -29,7 +29,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json
index d840848a..7e8a97db 100644
--- a/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/no_datasets.ome.zarr/zarr.json
@@ -30,7 +30,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json
index d6e9485c..c3c66fdf 100644
--- a/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/no_multiscales.ome.zarr/zarr.json
@@ -9,7 +9,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json
index bcb60200..0636e4bf 100644
--- a/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/one_space_axes.ome.zarr/zarr.json
@@ -48,7 +48,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json
index b71b7456..7b50dadf 100644
--- a/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/too_many_axes.ome.zarr/zarr.json
@@ -63,7 +63,8 @@
"_conformance": {
"schema": {
"id": "age.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json b/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json
index 18c3c9db..bcc66218 100644
--- a/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/image/too_many_space_axes.ome.zarr/zarr.json
@@ -53,7 +53,8 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
+ },
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json
index 0880bf76..627df6fd 100644
--- a/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_duplicate.ome.zarr/zarr.json
@@ -31,7 +31,8 @@
"schema": {
"id": "bel.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json
index 7f37f2b4..38abab8c 100644
--- a/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_no_label_value.ome.zarr/zarr.json
@@ -21,7 +21,8 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json
index 85d029b9..23aae035 100644
--- a/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_rgba_length.ome.zarr/zarr.json
@@ -21,7 +21,8 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json
index b7fced99..a3588403 100644
--- a/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/colors_rgba_type.ome.zarr/zarr.json
@@ -22,7 +22,8 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json
index 06382686..ca182b88 100644
--- a/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/empty_colors.ome.zarr/zarr.json
@@ -12,7 +12,8 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json
index a62e8d7f..adf4486d 100644
--- a/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/empty_properties.ome.zarr/zarr.json
@@ -12,7 +12,8 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json b/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json
index f0cdbe54..4a23d83b 100644
--- a/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/label/properties_no_label_value.ome.zarr/zarr.json
@@ -16,7 +16,8 @@
"schema": {
"id": "schemas/label.schema"
},
- "description": "Tests for the image-label JSON schema: "
+ "description": "Tests for the image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json
index e89e1eef..85564032 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_negative_starttime.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json
index 2bcfbaa2..3ad6322a 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_noninteger_endtime.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json
index 3de9e511..6846d4c8 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_noninteger_starttime.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json
index 7047b3fa..38e5b823 100644
--- a/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/acquisition_zero_maximumfieldcount.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"schema": {
"id": "ate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json
index 5f584398..bf3712a2 100644
--- a/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/duplicate_columns.ome.zarr/zarr.json
@@ -31,7 +31,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json
index 7d838dff..9fa66670 100644
--- a/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/duplicate_rows-2.ome.zarr/zarr.json
@@ -36,7 +36,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json
index a3272b5d..2e03fc82 100644
--- a/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/duplicate_rows.ome.zarr/zarr.json
@@ -31,7 +31,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json
index 87322fa5..1c17db2e 100644
--- a/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/empty_columns.ome.zarr/zarr.json
@@ -24,7 +24,8 @@
"schema": {
"id": "ate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json
index 2c486bf1..b4abf354 100644
--- a/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/empty_rows.ome.zarr/zarr.json
@@ -24,7 +24,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json
index be4d3a84..9ccc2e3e 100644
--- a/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/empty_wells.ome.zarr/zarr.json
@@ -22,7 +22,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json
index 861ff932..6fd0eb78 100644
--- a/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_acquisition_id.ome.zarr/zarr.json
@@ -33,7 +33,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json
index e656eaec..9c14531e 100644
--- a/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_column_name.ome.zarr/zarr.json
@@ -28,7 +28,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json
index 5fd4dad1..b14157f0 100644
--- a/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_columns.ome.zarr/zarr.json
@@ -23,7 +23,8 @@
"schema": {
"id": "ate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json
index 69642ca9..2ade098e 100644
--- a/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_row_name.ome.zarr/zarr.json
@@ -28,7 +28,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json
index 8a00f901..b075cfa2 100644
--- a/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_rows.ome.zarr/zarr.json
@@ -23,7 +23,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json
index 8b76a13b..b853593a 100644
--- a/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_well_columnIndex.ome.zarr/zarr.json
@@ -27,7 +27,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json
index 50ba914b..7f282faa 100644
--- a/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_well_path.ome.zarr/zarr.json
@@ -27,7 +27,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json
index f8b24478..27e7e7c1 100644
--- a/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_well_rowIndex.ome.zarr/zarr.json
@@ -27,7 +27,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json
index ad8004a7..43f0f344 100644
--- a/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/missing_wells.ome.zarr/zarr.json
@@ -21,7 +21,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json
index 37084fcb..51ae0578 100644
--- a/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/negative_acquisition_id.ome.zarr/zarr.json
@@ -33,7 +33,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json
index 916b89ad..1e32799d 100644
--- a/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/negative_endtime.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json
index b12c4022..76fc2355 100644
--- a/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/non_alphanumeric_column.ome.zarr/zarr.json
@@ -28,7 +28,8 @@
"schema": {
"id": ""
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json
index a8c8b136..21d5ba2c 100644
--- a/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/non_integer_acquisition_id.ome.zarr/zarr.json
@@ -33,7 +33,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json
index 3b7406eb..d69e666f 100644
--- a/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/non_integer_acquisition_maximumfieldcount.ome.zarr/zarr.json
@@ -34,7 +34,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json
index 21329407..bbfecc3f 100644
--- a/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/well_1group.ome.zarr/zarr.json
@@ -27,7 +27,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json
index 0f17e8e6..e443cfd1 100644
--- a/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/well_3groups.ome.zarr/zarr.json
@@ -27,7 +27,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json b/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json
index f7cf0770..ccca5776 100644
--- a/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/plate/zero_field_count.ome.zarr/zarr.json
@@ -29,7 +29,8 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: "
+ "description": "Tests for the plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/well/duplicate_images.ome.zarr/zarr.json b/tests/zarr/spec/invalid/well/duplicate_images.ome.zarr/zarr.json
index e673272c..1d643118 100644
--- a/tests/zarr/spec/invalid/well/duplicate_images.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/well/duplicate_images.ome.zarr/zarr.json
@@ -16,7 +16,8 @@
"schema": {
"id": "schemas/well.schema"
},
- "description": "Tests for the well JSON schema: "
+ "description": "Tests for the well JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/well/empty_images.ome.zarr/zarr.json b/tests/zarr/spec/invalid/well/empty_images.ome.zarr/zarr.json
index e76374be..8b5bacb9 100644
--- a/tests/zarr/spec/invalid/well/empty_images.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/well/empty_images.ome.zarr/zarr.json
@@ -9,7 +9,8 @@
"schema": {
"id": "schemas/well.schema"
},
- "description": "Tests for the well JSON schema: "
+ "description": "Tests for the well JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/spec/invalid/well/non_integer_acquisition_id.ome.zarr/zarr.json b/tests/zarr/spec/invalid/well/non_integer_acquisition_id.ome.zarr/zarr.json
index 48e25dc6..45fcf75d 100644
--- a/tests/zarr/spec/invalid/well/non_integer_acquisition_id.ome.zarr/zarr.json
+++ b/tests/zarr/spec/invalid/well/non_integer_acquisition_id.ome.zarr/zarr.json
@@ -14,7 +14,8 @@
"schema": {
"id": "schemas/well.schema"
},
- "description": "Tests for the well JSON schema: "
+ "description": "Tests for the well JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json b/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
index de9c608c..7ca473ad 100644
--- a/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
@@ -10,7 +10,8 @@
"schema": {
"id": "schemas/strict_label.schema"
},
- "description": "Tests for the strict image-label JSON schema: "
+ "description": "Tests for the strict image-label JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
index 993c7b37..a85154e4 100644
--- a/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
@@ -35,7 +35,8 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
index 47359ab3..2b0b0c36 100644
--- a/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
@@ -35,7 +35,8 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
index 3fa24271..09df63a8 100644
--- a/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
+++ b/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
@@ -28,7 +28,8 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "valid": false
}
}
}
\ No newline at end of file
From 1258c25e06d800bd86dad82e0ebf671e1918fa72 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 16:22:49 +0100
Subject: [PATCH 16/27] add strict/valid fields to conformance json object
---
.../spec/invalid/image/empty_transformations.json | 6 +++---
tests/attributes/spec/valid/image/custom_type_axes.json | 2 +-
tests/attributes/spec/valid/plate/minimal_acquisitions.json | 3 +--
tests/attributes/strict/invalid/label/no_colors.json | 3 ++-
.../plate/missing_acquisition_maximumfieldcount.json | 3 ++-
.../strict/invalid/plate/missing_acquisition_name.json | 3 ++-
tests/attributes/strict/invalid/plate/missing_name.json | 3 ++-
tests/attributes/strict/valid/image/image.json | 3 ++-
tests/attributes/strict/valid/image/image_metadata.json | 3 ++-
tests/attributes/strict/valid/image/image_omero.json | 3 ++-
.../attributes/strict/valid/image/multiscales_example.json | 3 ++-
.../strict/valid/image/multiscales_transformations.json | 3 ++-
.../attributes/strict/valid/plate/strict_acquisitions.json | 3 ++-
.../strict/valid/plate/strict_no_acquisitions.json | 3 ++-
tests/attributes/strict/valid/well/strict_acquisitions.json | 3 ++-
.../strict/valid/well/strict_no_acquisitions.json | 3 ++-
16 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/tests/attributes/spec/invalid/image/empty_transformations.json b/tests/attributes/spec/invalid/image/empty_transformations.json
index b4c5d967..fb27049a 100644
--- a/tests/attributes/spec/invalid/image/empty_transformations.json
+++ b/tests/attributes/spec/invalid/image/empty_transformations.json
@@ -32,7 +32,7 @@
"_conformance": {
"schema": {
"id": "schemas/image.schema"
- }
- },
- "valid": false
+ },
+ "valid": false
+ }
}
\ No newline at end of file
diff --git a/tests/attributes/spec/valid/image/custom_type_axes.json b/tests/attributes/spec/valid/image/custom_type_axes.json
index 594046b2..afad10fb 100644
--- a/tests/attributes/spec/valid/image/custom_type_axes.json
+++ b/tests/attributes/spec/valid/image/custom_type_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev22",
+ "version": "0.6.dev2",
"multiscales": [
{
"coordinateSystems": [
diff --git a/tests/attributes/spec/valid/plate/minimal_acquisitions.json b/tests/attributes/spec/valid/plate/minimal_acquisitions.json
index 6b9d798f..5c98cf35 100644
--- a/tests/attributes/spec/valid/plate/minimal_acquisitions.json
+++ b/tests/attributes/spec/valid/plate/minimal_acquisitions.json
@@ -30,7 +30,6 @@
"schema": {
"id": "schemas/plate.schema"
},
- "description": "Tests for the plate JSON schema: ",
- "valid": false
+ "description": "Tests for the plate JSON schema: "
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/label/no_colors.json b/tests/attributes/strict/invalid/label/no_colors.json
index 08ba4e66..8b5788fe 100644
--- a/tests/attributes/strict/invalid/label/no_colors.json
+++ b/tests/attributes/strict/invalid/label/no_colors.json
@@ -8,6 +8,7 @@
"id": "schemas/strict_label.schema"
},
"description": "Tests for the strict image-label JSON schema: ",
- "valid": false
+ "valid": false,
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
index 4ab057e1..960bf690 100644
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
+++ b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
@@ -33,6 +33,7 @@
"id": "schemas/strict_plate.schema"
},
"description": "Tests for the strict plate JSON schema: ",
- "valid": false
+ "valid": false,
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
index f5925f0b..bb97baf8 100644
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
+++ b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
@@ -33,6 +33,7 @@
"id": "schemas/strict_plate.schema"
},
"description": "Tests for the strict plate JSON schema: ",
- "valid": false
+ "valid": false,
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_name.json b/tests/attributes/strict/invalid/plate/missing_name.json
index 39e777d6..fcd4e5cb 100644
--- a/tests/attributes/strict/invalid/plate/missing_name.json
+++ b/tests/attributes/strict/invalid/plate/missing_name.json
@@ -26,6 +26,7 @@
"id": "schemas/strict_plate.schema"
},
"description": "Tests for the strict plate JSON schema: ",
- "valid": false
+ "valid": false,
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/image.json b/tests/attributes/strict/valid/image/image.json
index 30a7d181..5a356acd 100644
--- a/tests/attributes/strict/valid/image/image.json
+++ b/tests/attributes/strict/valid/image/image.json
@@ -47,6 +47,7 @@
"_conformance": {
"schema": {
"id": "schemas/strict_image.schema"
- }
+ },
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/image_metadata.json b/tests/attributes/strict/valid/image/image_metadata.json
index 8bfbd253..07aae3fe 100644
--- a/tests/attributes/strict/valid/image/image_metadata.json
+++ b/tests/attributes/strict/valid/image/image_metadata.json
@@ -58,6 +58,7 @@
"_conformance": {
"schema": {
"id": "schemas/strict_image.schema"
- }
+ },
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/image_omero.json b/tests/attributes/strict/valid/image/image_omero.json
index 20913cd6..ecd3951a 100644
--- a/tests/attributes/strict/valid/image/image_omero.json
+++ b/tests/attributes/strict/valid/image/image_omero.json
@@ -161,6 +161,7 @@
"_conformance": {
"schema": {
"id": "schemas/strict_image.schema"
- }
+ },
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/multiscales_example.json b/tests/attributes/strict/valid/image/multiscales_example.json
index b31ea4d3..e15aec8d 100644
--- a/tests/attributes/strict/valid/image/multiscales_example.json
+++ b/tests/attributes/strict/valid/image/multiscales_example.json
@@ -147,6 +147,7 @@
"_conformance": {
"schema": {
"id": "schemas/strict_image.schema"
- }
+ },
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/multiscales_transformations.json b/tests/attributes/strict/valid/image/multiscales_transformations.json
index 1c01493b..979f8427 100644
--- a/tests/attributes/strict/valid/image/multiscales_transformations.json
+++ b/tests/attributes/strict/valid/image/multiscales_transformations.json
@@ -73,6 +73,7 @@
"_conformance": {
"schema": {
"id": "schemas/strict_image.schema"
- }
+ },
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/plate/strict_acquisitions.json b/tests/attributes/strict/valid/plate/strict_acquisitions.json
index 61d6cde1..2102142f 100644
--- a/tests/attributes/strict/valid/plate/strict_acquisitions.json
+++ b/tests/attributes/strict/valid/plate/strict_acquisitions.json
@@ -33,6 +33,7 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/plate/strict_no_acquisitions.json b/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
index da63097d..3d67870e 100644
--- a/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
+++ b/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
@@ -26,6 +26,7 @@
"schema": {
"id": "schemas/strict_plate.schema"
},
- "description": "Tests for the strict plate JSON schema: "
+ "description": "Tests for the strict plate JSON schema: ",
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/well/strict_acquisitions.json b/tests/attributes/strict/valid/well/strict_acquisitions.json
index 06932128..bec64f28 100644
--- a/tests/attributes/strict/valid/well/strict_acquisitions.json
+++ b/tests/attributes/strict/valid/well/strict_acquisitions.json
@@ -14,6 +14,7 @@
"schema": {
"id": "schemas/strict_well.schema"
},
- "description": "Tests for the strict well JSON schema: "
+ "description": "Tests for the strict well JSON schema: ",
+ "strict": true
}
}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/well/strict_no_acquisitions.json b/tests/attributes/strict/valid/well/strict_no_acquisitions.json
index 989def6b..6c98269c 100644
--- a/tests/attributes/strict/valid/well/strict_no_acquisitions.json
+++ b/tests/attributes/strict/valid/well/strict_no_acquisitions.json
@@ -13,6 +13,7 @@
"schema": {
"id": "schemas/strict_well.schema"
},
- "description": "Tests for the strict well JSON schema: "
+ "description": "Tests for the strict well JSON schema: ",
+ "strict": true
}
}
\ No newline at end of file
From 1c9c63a789c455bb29b1146401021f0b055217dd Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 16:23:01 +0100
Subject: [PATCH 17/27] remove unused main
---
tests/test_attributes.py | 4 ----
1 file changed, 4 deletions(-)
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
index 406aaefc..8e1e51b1 100644
--- a/tests/test_attributes.py
+++ b/tests/test_attributes.py
@@ -70,7 +70,3 @@ def test_attributes(case_fname: Path):
else:
with pytest.raises(ValidationError):
validator.validate(case_obj)
-
-
-if __name__ == '__main__':
- pytest.main([__file__])
\ No newline at end of file
From 0a856e1665da91bc3c84f5f00d5e3ad8e05e5332 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 16:44:35 +0100
Subject: [PATCH 18/27] update examples
---
tests/attributes/spec/invalid/scene/tile_stitching.json | 3 ++-
tests/attributes/spec/valid/image/custom_type_axes.json | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/attributes/spec/invalid/scene/tile_stitching.json b/tests/attributes/spec/invalid/scene/tile_stitching.json
index 36026658..614fa565 100644
--- a/tests/attributes/spec/invalid/scene/tile_stitching.json
+++ b/tests/attributes/spec/invalid/scene/tile_stitching.json
@@ -67,6 +67,7 @@
"schema": {
"id": "schemas/scene.schema"
},
- "description": "Tests for the scene JSON schema: "
+ "description": "Tests for the scene JSON schema: ",
+ "valid": false
}
}
\ No newline at end of file
diff --git a/tests/attributes/spec/valid/image/custom_type_axes.json b/tests/attributes/spec/valid/image/custom_type_axes.json
index afad10fb..f4938ea0 100644
--- a/tests/attributes/spec/valid/image/custom_type_axes.json
+++ b/tests/attributes/spec/valid/image/custom_type_axes.json
@@ -1,6 +1,6 @@
{
"ome": {
- "version": "0.6.dev2",
+ "version": "0.6.dev3",
"multiscales": [
{
"coordinateSystems": [
From 4cc3a6ff01f4d046bff051c89c7542aaeeed419d Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 16:54:41 +0100
Subject: [PATCH 19/27] add scene to all schemas
---
schemas/ome_zarr.schema | 3 +++
schemas/scene.schema | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/schemas/ome_zarr.schema b/schemas/ome_zarr.schema
index c7381be4..71a5b115 100644
--- a/schemas/ome_zarr.schema
+++ b/schemas/ome_zarr.schema
@@ -21,6 +21,9 @@
},
{
"$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/well.schema"
+ },
+ {
+ "$ref": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/scene.schema"
}
]
}
diff --git a/schemas/scene.schema b/schemas/scene.schema
index 32fd4d99..337aef8e 100644
--- a/schemas/scene.schema
+++ b/schemas/scene.schema
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/coordinate_systems_and_transforms.schema",
+ "$id": "https://ngff.openmicroscopy.org/0.6.dev3/schemas/scene.schema",
"title": "Scene",
"description": "Scene metadata combining coordinate systems and coordinate transformations to define spatial relationships",
"type": "object",
From 758638d40ec508800fe902943dff4ace36d21978 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Wed, 21 Jan 2026 17:09:11 +0100
Subject: [PATCH 20/27] require coordinateTransformations in scene
---
schemas/scene.schema | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/schemas/scene.schema b/schemas/scene.schema
index 337aef8e..40c29454 100644
--- a/schemas/scene.schema
+++ b/schemas/scene.schema
@@ -77,5 +77,6 @@
"axes"
]
}
- }
+ },
+ "required": ["coordinateTransformations"]
}
From 1fb211085be22e07c02fe03026355b7692e2a4b7 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 09:27:57 +0100
Subject: [PATCH 21/27] complete scene schema
---
schemas/scene.schema | 120 +++++++++++++++++++++++--------------------
1 file changed, 63 insertions(+), 57 deletions(-)
diff --git a/schemas/scene.schema b/schemas/scene.schema
index 40c29454..95fa7db1 100644
--- a/schemas/scene.schema
+++ b/schemas/scene.schema
@@ -5,78 +5,84 @@
"description": "Scene metadata combining coordinate systems and coordinate transformations to define spatial relationships",
"type": "object",
"properties": {
- "coordinateSystems": {
- "$ref": "coordinate_systems.schema",
- "description": "Coordinate systems to combine with transforms to define spatial relationships"
- },
- "coordinateTransformations": {
- "$comment": "Merge general coordinate transformations with constraints for scene metadata",
- "allOf": [
- {
- "$ref": "coordinate_transformations.schema",
- "description": "General coordinate transformations defining spatial relationships between coordinate systems"
- },
- {
- "type": "array",
- "items": {
- "allOf": [
- {
- "properties": {
- "input": {
- "type": "object",
- "properties": {
- "name": {"type": "string"},
- "path": {"type": "string"}
- },
- "required": ["name"]
- },
- "output": {
- "type": "object",
- "properties": {
- "name": {"type": "string"},
- "path": {"type": "string"}
- },
- "required": ["name"]
- }
- }
- }
- ]
- },
- "description": "Constrained input/output for coordinate transformations in scene metadata"
- }
- ]
-
- },
- "arrayCoordinateSystem": {
+ "ome": {
"type": "object",
"properties": {
- "name": {
- "type": "string",
- "description": "Name of coordinate space"
+ "coordinateSystems": {
+ "$ref": "coordinate_systems.schema",
+ "description": "Coordinate systems to combine with transforms to define spatial relationships"
},
- "axes": {
+ "coordinateTransformations": {
+ "$comment": "Merge general coordinate transformations with constraints for scene metadata",
"allOf": [
{
- "$ref": "axes.schema"
+ "$ref": "coordinate_transformations.schema",
+ "description": "General coordinate transformations defining spatial relationships between coordinate systems"
},
{
"type": "array",
"items": {
- "type": "object",
- "properties": {
- "type": {
- "const": "array"
+ "allOf": [
+ {
+ "properties": {
+ "input": {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "path": {"type": "string"}
+ },
+ "required": ["name"]
+ },
+ "output": {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "path": {"type": "string"}
+ },
+ "required": ["name"]
+ }
+ }
+ }
+ ]
+ },
+ "description": "Constrained input/output for coordinate transformations in scene metadata"
+ }
+ ]
+
+ },
+ "arrayCoordinateSystem": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of coordinate space"
+ },
+ "axes": {
+ "allOf": [
+ {
+ "$ref": "axes.schema"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "const": "array"
+ }
+ }
}
}
- }
+ ]
}
+ },
+ "required": [
+ "axes"
]
}
},
- "required": [
- "axes"
- ]
+ "required": ["coordinateTransformations"]
}
},
- "required": ["coordinateTransformations"]
+ "required": ["ome"]
}
From 5b9acb6088dc6507fca9acc8c1c690f635fe2b14 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 09:28:05 +0100
Subject: [PATCH 22/27] rename example
---
.../scene/scene_input_output_not_object.json | 75 +++++++++++++++++++
.../spec/invalid/scene/tile_stitching.json | 73 ------------------
2 files changed, 75 insertions(+), 73 deletions(-)
create mode 100644 tests/attributes/spec/invalid/scene/scene_input_output_not_object.json
delete mode 100644 tests/attributes/spec/invalid/scene/tile_stitching.json
diff --git a/tests/attributes/spec/invalid/scene/scene_input_output_not_object.json b/tests/attributes/spec/invalid/scene/scene_input_output_not_object.json
new file mode 100644
index 00000000..251acdfe
--- /dev/null
+++ b/tests/attributes/spec/invalid/scene/scene_input_output_not_object.json
@@ -0,0 +1,75 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "scene": {
+ "coordinateTransformations": [
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_0", "name": "physical"},
+ "translation": [
+ 0,
+ 0
+ ],
+ "name": "tile_0_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_1", "name": "physical"},
+ "translation": [
+ 0,
+ 348
+ ],
+ "name": "tile_1_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_2", "name": "physical"},
+ "translation": [
+ 276,
+ 0
+ ],
+ "name": "tile_2_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": "world",
+ "input": {"path": "tile_3", "name": "physical"},
+ "translation": [
+ 276,
+ 348
+ ],
+ "name": "tile_3_mm to world"
+ }
+ ],
+ "coordinateSystems": [
+ {
+ "name": "world",
+ "axes": [
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/scene.schema"
+ },
+ "description": "Tests for the scene JSON schema: ",
+ "valid": false
+ }
+}
\ No newline at end of file
diff --git a/tests/attributes/spec/invalid/scene/tile_stitching.json b/tests/attributes/spec/invalid/scene/tile_stitching.json
deleted file mode 100644
index 614fa565..00000000
--- a/tests/attributes/spec/invalid/scene/tile_stitching.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "ome": {
- "version": "0.6.dev3",
- "coordinateTransformations": [
- {
- "type": "translation",
- "output": "world",
- "input": {"path": "tile_0", "name": "physical"},
- "translation": [
- 0,
- 0
- ],
- "name": "tile_0_mm to world"
- },
- {
- "type": "translation",
- "output": "world",
- "input": {"path": "tile_1", "name": "physical"},
- "translation": [
- 0,
- 348
- ],
- "name": "tile_1_mm to world"
- },
- {
- "type": "translation",
- "output": "world",
- "input": {"path": "tile_2", "name": "physical"},
- "translation": [
- 276,
- 0
- ],
- "name": "tile_2_mm to world"
- },
- {
- "type": "translation",
- "output": "world",
- "input": {"path": "tile_3", "name": "physical"},
- "translation": [
- 276,
- 348
- ],
- "name": "tile_3_mm to world"
- }
- ],
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "type": "space",
- "name": "x",
- "unit": "micrometer",
- "discrete": false
- },
- {
- "type": "space",
- "name": "y",
- "unit": "micrometer",
- "discrete": false
- }
- ]
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/scene.schema"
- },
- "description": "Tests for the scene JSON schema: ",
- "valid": false
- }
-}
\ No newline at end of file
From 2259f770b427976f0150e5c46a6448eaa5645401 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 11:00:33 +0100
Subject: [PATCH 23/27] do not require version under multiscales
---
schemas/image.schema | 6 ------
1 file changed, 6 deletions(-)
diff --git a/schemas/image.schema b/schemas/image.schema
index 0ef4c86d..750acdaa 100644
--- a/schemas/image.schema
+++ b/schemas/image.schema
@@ -63,12 +63,6 @@
]
}
},
- "version": {
- "type": "string",
- "enum": [
- "0.6.dev3"
- ]
- },
"coordinateSystems": {
"type": "array",
"minItems": 1,
From 3dd4c59f1f2c00c8c4bd9b2173d5ec1bf21b6acf Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 11:00:58 +0100
Subject: [PATCH 24/27] name should be allowed field in multiscale transform
---
schemas/image.schema | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/schemas/image.schema b/schemas/image.schema
index 750acdaa..8b9d1478 100644
--- a/schemas/image.schema
+++ b/schemas/image.schema
@@ -106,7 +106,8 @@
"maxItems": 2
},
"input": {"type": "string"},
- "output": {"type": "string"}
+ "output": {"type": "string"},
+ "name": {"type": "string"}
},
"required": ["type", "transformations", "input", "output"]
}
From 2782fe5c0f46dc3b5ba6bb7fb02d7309c7e549d3 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 11:01:05 +0100
Subject: [PATCH 25/27] code style
---
schemas/image.schema | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/schemas/image.schema b/schemas/image.schema
index 8b9d1478..a5c2bab3 100644
--- a/schemas/image.schema
+++ b/schemas/image.schema
@@ -79,7 +79,8 @@
}
},
"required": [
- "datasets", "coordinateSystems"
+ "datasets",
+ "coordinateSystems"
]
},
"minItems": 1,
From 4759c4e2b8784ce2d0513525a5a35cb00c134ecd Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 11:01:15 +0100
Subject: [PATCH 26/27] patch in scene field requirement
---
schemas/scene.schema | 122 +++++++++++++++++++++++--------------------
1 file changed, 64 insertions(+), 58 deletions(-)
diff --git a/schemas/scene.schema b/schemas/scene.schema
index 95fa7db1..7eec7a6b 100644
--- a/schemas/scene.schema
+++ b/schemas/scene.schema
@@ -8,80 +8,86 @@
"ome": {
"type": "object",
"properties": {
- "coordinateSystems": {
- "$ref": "coordinate_systems.schema",
- "description": "Coordinate systems to combine with transforms to define spatial relationships"
- },
- "coordinateTransformations": {
- "$comment": "Merge general coordinate transformations with constraints for scene metadata",
- "allOf": [
- {
- "$ref": "coordinate_transformations.schema",
- "description": "General coordinate transformations defining spatial relationships between coordinate systems"
- },
- {
- "type": "array",
- "items": {
- "allOf": [
- {
- "properties": {
- "input": {
- "type": "object",
- "properties": {
- "name": {"type": "string"},
- "path": {"type": "string"}
- },
- "required": ["name"]
- },
- "output": {
- "type": "object",
- "properties": {
- "name": {"type": "string"},
- "path": {"type": "string"}
- },
- "required": ["name"]
- }
- }
- }
- ]
- },
- "description": "Constrained input/output for coordinate transformations in scene metadata"
- }
- ]
-
- },
- "arrayCoordinateSystem": {
- "type": "object",
+ "scene":{
"properties": {
- "name": {
- "type": "string",
- "description": "Name of coordinate space"
+ "coordinateSystems": {
+ "$ref": "coordinate_systems.schema",
+ "description": "Coordinate systems to combine with transforms to define spatial relationships"
},
- "axes": {
+ "coordinateTransformations": {
+ "$comment": "Merge general coordinate transformations with constraints for scene metadata",
"allOf": [
{
- "$ref": "axes.schema"
+ "$ref": "coordinate_transformations.schema",
+ "description": "General coordinate transformations defining spatial relationships between coordinate systems"
},
{
"type": "array",
"items": {
- "type": "object",
- "properties": {
- "type": {
- "const": "array"
+ "allOf": [
+ {
+ "properties": {
+ "input": {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "path": {"type": "string"}
+ },
+ "required": ["name"]
+ },
+ "output": {
+ "type": "object",
+ "properties": {
+ "name": {"type": "string"},
+ "path": {"type": "string"}
+ },
+ "required": ["name"]
+ }
+ }
+ }
+ ]
+ },
+ "description": "Constrained input/output for coordinate transformations in scene metadata"
+ }
+ ]
+
+ },
+ "arrayCoordinateSystem": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of coordinate space"
+ },
+ "axes": {
+ "allOf": [
+ {
+ "$ref": "axes.schema"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "const": "array"
+ }
+ }
}
}
- }
+ ]
}
+ },
+ "required": [
+ "axes"
]
}
},
- "required": [
- "axes"
- ]
+ "type": "object",
+ "required": ["coordinateTransformations"]
}
},
- "required": ["coordinateTransformations"]
+ "required": ["scene"]
}
},
"required": ["ome"]
From b0a9fc2017503a89b3b45e720aff245690418158 Mon Sep 17 00:00:00 2001
From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com>
Date: Thu, 22 Jan 2026 11:01:27 +0100
Subject: [PATCH 27/27] add/update more examples
---
.../multiscales_transform_forbidden.json | 72 +++++++++++
.../multiscales_transform_missing_params.json | 99 ++++++++++++++++
...multiscales_transform_no_input_output.json | 70 +++++++++++
...ultiscales_transform_no_input_output2.json | 79 ++++++++++++
...ltiscales_transform_additional_affine.json | 103 ++++++++++++++++
...ales_transform_additional_affine_path.json | 99 ++++++++++++++++
...ales_transform_additional_translation.json | 99 ++++++++++++++++
.../image/multiscales_transform_sequence.json | 71 +++++++++++
.../spec/valid/scene/tile_stitching.json | 112 +++++++++---------
9 files changed, 749 insertions(+), 55 deletions(-)
create mode 100644 tests/attributes/spec/invalid/image/multiscales_transform_forbidden.json
create mode 100644 tests/attributes/spec/invalid/image/multiscales_transform_missing_params.json
create mode 100644 tests/attributes/spec/invalid/image/multiscales_transform_no_input_output.json
create mode 100644 tests/attributes/spec/invalid/image/multiscales_transform_no_input_output2.json
create mode 100644 tests/attributes/spec/valid/image/multiscales_transform_additional_affine.json
create mode 100644 tests/attributes/spec/valid/image/multiscales_transform_additional_affine_path.json
create mode 100644 tests/attributes/spec/valid/image/multiscales_transform_additional_translation.json
create mode 100644 tests/attributes/spec/valid/image/multiscales_transform_sequence.json
diff --git a/tests/attributes/spec/invalid/image/multiscales_transform_forbidden.json b/tests/attributes/spec/invalid/image/multiscales_transform_forbidden.json
new file mode 100644
index 00000000..7ab54ea6
--- /dev/null
+++ b/tests/attributes/spec/invalid/image/multiscales_transform_forbidden.json
@@ -0,0 +1,72 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "output": "physical",
+ "input": "array",
+ "transformations": [
+ {
+ "type": "rotation",
+ "rotation": [
+ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1]
+ ]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ },
+ "valid": false
+ }
+}
diff --git a/tests/attributes/spec/invalid/image/multiscales_transform_missing_params.json b/tests/attributes/spec/invalid/image/multiscales_transform_missing_params.json
new file mode 100644
index 00000000..09f92ffc
--- /dev/null
+++ b/tests/attributes/spec/invalid/image/multiscales_transform_missing_params.json
@@ -0,0 +1,99 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ },
+ {
+ "name": "output",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "input": "array",
+ "output": "physical",
+ "transformations": [
+ {
+ "type": "scale",
+ "scale": [1, 1, 1]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ],
+ "coordinateTransformations": [
+ {
+ "type": "affine",
+ "name": "some_additional_transform",
+ "input": "physical",
+ "output": "output"
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ },
+ "valid": false
+ }
+}
diff --git a/tests/attributes/spec/invalid/image/multiscales_transform_no_input_output.json b/tests/attributes/spec/invalid/image/multiscales_transform_no_input_output.json
new file mode 100644
index 00000000..185c1ce5
--- /dev/null
+++ b/tests/attributes/spec/invalid/image/multiscales_transform_no_input_output.json
@@ -0,0 +1,70 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "transformations": [
+ {
+ "type": "rotation",
+ "rotation": [
+ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1]
+ ]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ },
+ "valid": false
+ }
+}
diff --git a/tests/attributes/spec/invalid/image/multiscales_transform_no_input_output2.json b/tests/attributes/spec/invalid/image/multiscales_transform_no_input_output2.json
new file mode 100644
index 00000000..3d9ba788
--- /dev/null
+++ b/tests/attributes/spec/invalid/image/multiscales_transform_no_input_output2.json
@@ -0,0 +1,79 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "input": "array",
+ "output": "physical",
+ "transformations": [
+ {
+ "type": "rotation",
+ "rotation": [
+ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1]
+ ]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ],
+ "coordinateTransformations": [
+ {
+ "type": "translation",
+ "translation": [1, 1, 1],
+ "name": "some_additional_transform"
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ },
+ "valid": false
+ }
+}
diff --git a/tests/attributes/spec/valid/image/multiscales_transform_additional_affine.json b/tests/attributes/spec/valid/image/multiscales_transform_additional_affine.json
new file mode 100644
index 00000000..2ab29911
--- /dev/null
+++ b/tests/attributes/spec/valid/image/multiscales_transform_additional_affine.json
@@ -0,0 +1,103 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ },
+ {
+ "name": "output",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "input": "array",
+ "output": "physical",
+ "transformations": [
+ {
+ "type": "scale",
+ "scale": [1, 1, 1]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ],
+ "coordinateTransformations": [
+ {
+ "type": "affine",
+ "affine": [
+ [1, 1, 0, 0],
+ [0, 1, 0, 0],
+ [0, 0, 1, 0]
+ ],
+ "name": "some_additional_transform",
+ "input": "physical",
+ "output": "output"
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ }
+ }
+}
diff --git a/tests/attributes/spec/valid/image/multiscales_transform_additional_affine_path.json b/tests/attributes/spec/valid/image/multiscales_transform_additional_affine_path.json
new file mode 100644
index 00000000..1c1fa186
--- /dev/null
+++ b/tests/attributes/spec/valid/image/multiscales_transform_additional_affine_path.json
@@ -0,0 +1,99 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ },
+ {
+ "name": "output",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "input": "array",
+ "output": "physical",
+ "transformations": [
+ {
+ "type": "scale",
+ "scale": [1, 1, 1]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ],
+ "coordinateTransformations": [
+ {
+ "type": "affine",
+ "path": "some_path_to_affine_matrix",
+ "name": "some_additional_transform",
+ "input": "physical",
+ "output": "output"
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ }
+ }
+}
diff --git a/tests/attributes/spec/valid/image/multiscales_transform_additional_translation.json b/tests/attributes/spec/valid/image/multiscales_transform_additional_translation.json
new file mode 100644
index 00000000..c6e4f907
--- /dev/null
+++ b/tests/attributes/spec/valid/image/multiscales_transform_additional_translation.json
@@ -0,0 +1,99 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ },
+ {
+ "name": "output",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "input": "array",
+ "output": "physical",
+ "transformations": [
+ {
+ "type": "scale",
+ "scale": [1, 1, 1]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ],
+ "coordinateTransformations": [
+ {
+ "type": "translation",
+ "translation": [1, 1, 1],
+ "name": "some_additional_transform",
+ "input": "physical",
+ "output": "output"
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ }
+ }
+}
diff --git a/tests/attributes/spec/valid/image/multiscales_transform_sequence.json b/tests/attributes/spec/valid/image/multiscales_transform_sequence.json
new file mode 100644
index 00000000..cd45168c
--- /dev/null
+++ b/tests/attributes/spec/valid/image/multiscales_transform_sequence.json
@@ -0,0 +1,71 @@
+{
+ "ome": {
+ "version": "0.6.dev3",
+ "multiscales": [
+ {
+ "name": "multiscales",
+ "coordinateSystems": [
+ {
+ "name": "physical",
+ "axes": [
+ {
+ "type": "space",
+ "name": "z",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
+ }
+ ],
+ "datasets": [
+ {
+ "path": "array",
+ "coordinateTransformations": [
+ {
+ "type": "sequence",
+ "output": "physical",
+ "input": "array",
+ "transformations": [
+ {
+ "type": "scale",
+ "scale": [
+ 4,
+ 3,
+ 2
+ ]
+ },
+ {
+ "type": "translation",
+ "translation": [
+ 30,
+ 20,
+ 10
+ ]
+ }
+ ],
+ "name": "transform-name"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "_conformance": {
+ "schema": {
+ "id": "schemas/image.schema"
+ }
+ }
+}
diff --git a/tests/attributes/spec/valid/scene/tile_stitching.json b/tests/attributes/spec/valid/scene/tile_stitching.json
index 4c2348e7..aa641667 100644
--- a/tests/attributes/spec/valid/scene/tile_stitching.json
+++ b/tests/attributes/spec/valid/scene/tile_stitching.json
@@ -1,67 +1,69 @@
{
"ome": {
"version": "0.6.dev3",
- "coordinateTransformations": [
- {
- "type": "translation",
- "output": {"name": "world"},
- "input": {"path": "tile_0", "name": "physical"},
- "translation": [
- 0,
- 0
- ],
- "name": "tile_0_mm to world"
- },
- {
- "type": "translation",
- "output": {"name": "world"},
- "input": {"path": "tile_1", "name": "physical"},
- "translation": [
- 0,
- 348
- ],
- "name": "tile_1_mm to world"
- },
- {
- "type": "translation",
- "output": {"name": "world"},
- "input": {"path": "tile_2", "name": "physical"},
- "translation": [
- 276,
- 0
- ],
- "name": "tile_2_mm to world"
- },
- {
- "type": "translation",
- "output": {"name": "world"},
- "input": {"path": "tile_3", "name": "physical"},
- "translation": [
- 276,
- 348
- ],
- "name": "tile_3_mm to world"
- }
- ],
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
+ "scene":{
+ "coordinateTransformations": [
{
- "type": "space",
- "name": "x",
- "unit": "micrometer",
- "discrete": false
+ "type": "translation",
+ "output": {"name": "world"},
+ "input": {"path": "tile_0", "name": "physical"},
+ "translation": [
+ 0,
+ 0
+ ],
+ "name": "tile_0_mm to world"
},
{
- "type": "space",
- "name": "y",
- "unit": "micrometer",
- "discrete": false
+ "type": "translation",
+ "output": {"name": "world"},
+ "input": {"path": "tile_1", "name": "physical"},
+ "translation": [
+ 0,
+ 348
+ ],
+ "name": "tile_1_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": {"name": "world"},
+ "input": {"path": "tile_2", "name": "physical"},
+ "translation": [
+ 276,
+ 0
+ ],
+ "name": "tile_2_mm to world"
+ },
+ {
+ "type": "translation",
+ "output": {"name": "world"},
+ "input": {"path": "tile_3", "name": "physical"},
+ "translation": [
+ 276,
+ 348
+ ],
+ "name": "tile_3_mm to world"
+ }
+ ],
+ "coordinateSystems": [
+ {
+ "name": "world",
+ "axes": [
+ {
+ "type": "space",
+ "name": "x",
+ "unit": "micrometer",
+ "discrete": false
+ },
+ {
+ "type": "space",
+ "name": "y",
+ "unit": "micrometer",
+ "discrete": false
+ }
+ ]
}
]
}
- ]
},
"_conformance": {
"schema": {