diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml new file mode 100644 index 00000000..2e2ab584 --- /dev/null +++ b/.github/workflows/validation.yml @@ -0,0 +1,16 @@ +name: Validation +on: + push: + pull_request: + +jobs: + validate: + name: Validation + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - run: python -mpip install --upgrade wheel tox + - run: tox \ No newline at end of file diff --git a/ngff_spec/examples/multiscales_strict/multiscales_example.json b/ngff_spec/examples/multiscales_strict/multiscales_example.json index 55799eb2..a07d34d1 100644 --- a/ngff_spec/examples/multiscales_strict/multiscales_example.json +++ b/ngff_spec/examples/multiscales_strict/multiscales_example.json @@ -57,7 +57,7 @@ "input": "2", "output": "physical" } - ] + ] } ], "type": "gaussian", diff --git a/ngff_spec/examples/multiscales_strict/multiscales_example_relative.json b/ngff_spec/examples/multiscales_strict/multiscales_example_relative.json index 5b83bd4b..8bd828c9 100644 --- a/ngff_spec/examples/multiscales_strict/multiscales_example_relative.json +++ b/ngff_spec/examples/multiscales_strict/multiscales_example_relative.json @@ -1,21 +1,21 @@ { "multiscales": [ { - "version": "0.5-dev", + "version": "0.6dev2", "name": "example", "coordinateSystems" : [ { - "name" : "exampleCoordinateSystem", - "axes": [ - {"name": "t", "type": "time", "unit": "millisecond"}, - {"name": "c", "type": "channel"}, - {"name": "z", "type": "space", "unit": "micrometer"}, - {"name": "y", "type": "space", "unit": "micrometer"}, - {"name": "x", "type": "space", "unit": "micrometer"} - ] + "name" : "world", + "axes": { + "t": {"type": "time", "unit": "millisecond"}, + "c": {"type": "channel"}, + "z": {"type": "space", "unit": "micrometer"}, + "y": {"type": "space", "unit": "micrometer"}, + "x": {"type": "space", "unit": "micrometer"} + } }, { - "name" : "array_0", + "name" : "intrinsic", "axes": [ {"name": "t", "type": "time", "unit": "millisecond"}, {"name": "c", "type": "channel"}, @@ -27,12 +27,14 @@ ], "datasets": [ { - "path": "0", - // the transformation of other arrays are defined relative to this, the highest resolution, array + "path": "s0", + // the transformation of other arrays are + // defined relative to this, the highest resolution, array "coordinateTransformations": [{ - "type": "identity", - "input": "/0", - "output": "array_0" + "type": "scale", + "scale": [1, 1, 1, 1, 1], + "input": "s0", + "output": "intrinsic" }] }, { @@ -56,21 +58,15 @@ }] } ], - "coordinateTransformations": [{ - // the time unit (0.1 milliseconds), the voxel size for all spatial axes of "0" (0.5 micrometers) - "type": "scale", - "scale": [0.1, 1.0, 0.5, 0.5, 0.5], - "input" : "array_0", - "output" : "exampleCoordinateSystem" - }], - "type": "gaussian", - "metadata": { - "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given", - "method": "skimage.transform.pyramid_gaussian", - "version": "0.16.1", - "args": "[true]", - "kwargs": {"multichannel": true} - } + "coordinateTransformations": [ + { + "name": "additional_translation", + "type": "translation", + "translation": [0, 0, 10, 20, 30], + "input": "intrinsic", + "output": "world" + } + ] } ] } diff --git a/ngff_spec/examples/multiscales_strict/multiscales_transformations.json b/ngff_spec/examples/multiscales_strict/multiscales_transformations.json index e4eb742a..14304c0a 100644 --- a/ngff_spec/examples/multiscales_strict/multiscales_transformations.json +++ b/ngff_spec/examples/multiscales_strict/multiscales_transformations.json @@ -3,19 +3,39 @@ "node_type": "group", "attributes": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" + "name": "physical", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] }, { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -24,7 +44,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -32,7 +54,9 @@ "coordinateTransformations": [ { "scale": [10, 10], - "type": "scale" + "type": "scale", + "input": "intrinsic", + "output": "physical" } ], "name": "image_with_coordinateTransformations", diff --git a/ngff_spec/schemas/_version.schema b/ngff_spec/schemas/_version.schema index 3845691c..b20a6702 100644 --- a/ngff_spec/schemas/_version.schema +++ b/ngff_spec/schemas/_version.schema @@ -1,10 +1,10 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema", "title": "OME-Zarr Metadata version", "description": "The version of the OME-Zarr Metadata", "type": "string", "enum": [ - "0.6.dev1" + "0.6dev2" ] } diff --git a/ngff_spec/schemas/axes.schema b/ngff_spec/schemas/axes.schema index 56b447f2..3ed096da 100644 --- a/ngff_spec/schemas/axes.schema +++ b/ngff_spec/schemas/axes.schema @@ -1,11 +1,12 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/latest/schemas/axes.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/axes.schema", "title": "NGFF Axes", "description": "JSON from OME-NGFF .zattrs", "type": "array", "uniqueItems": true, "minItems": 1, + "maxItems": 5, "items": { "$ref": "#/$defs/axis" }, @@ -27,7 +28,7 @@ } } }, - "minContains": 0, + "minContains": 2, "maxContains": 3, "$defs": { "axis": { @@ -35,7 +36,8 @@ "properties": { "name": { "type": "string", - "description": "Name of the axis" + "minLength": 1, + "description": "Name of the axis. Must be unique within the coordinate system." }, "longName": { "type": "string", @@ -43,7 +45,7 @@ }, "type": { "type": "string", - "description": "Dimension of the axis" + "description": "Type of the axis. Can be a predefined type or custom type." }, "discrete": { "type": "boolean", diff --git a/ngff_spec/schemas/bf2raw.schema b/ngff_spec/schemas/bf2raw.schema index bb42ea87..edcfaaac 100644 --- a/ngff_spec/schemas/bf2raw.schema +++ b/ngff_spec/schemas/bf2raw.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/bf2raw.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/bf2raw.schema", "title": "OME-Zarr container produced by bioformats2raw", "description": "The zarr.json attributes key", "type": "object", @@ -17,7 +17,7 @@ ] }, "version": { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema" } }, "required": [ diff --git a/ngff_spec/schemas/coordinate_systems.schema b/ngff_spec/schemas/coordinate_systems.schema index 583d9941..f42d5b9a 100644 --- a/ngff_spec/schemas/coordinate_systems.schema +++ b/ngff_spec/schemas/coordinate_systems.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/latest/schemas/coordinate_systems.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_systems.schema", "title": "NGFF CoordinateSystem", "description": "JSON from OME-NGFF .zattrs", "type": "array", @@ -15,7 +15,8 @@ "properties": { "name": { "type": "string", - "description": "Name of coordinate system" + "minLength": 1, + "description": "Name of coordinate system. Must be unique among all coordinate systems." }, "axes": { "$ref": "axes.schema" diff --git a/ngff_spec/schemas/coordinate_systems_and_transforms.schema b/ngff_spec/schemas/coordinate_systems_and_transforms.schema index 3b6a4606..fd6b4b15 100644 --- a/ngff_spec/schemas/coordinate_systems_and_transforms.schema +++ b/ngff_spec/schemas/coordinate_systems_and_transforms.schema @@ -1,15 +1,17 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/latest/schemas/coordinate_systems_and_transforms.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_systems_and_transforms.schema", "title": "NGFF Coordinate Systems and Transforms", "description": "Coordinate Systems and transforms for OME-NGFF", "type": "object", "properties": { "coordinateSystems": { - "$ref": "coordinate_systems.schema" + "$ref": "coordinate_systems.schema", + "description": "Coordinate systems to combine with transforms to define spatial relationships" }, "coordinateTransformations": { - "$ref": "coordinate_transformations.schema" + "$ref": "coordinate_transformations.schema", + "description": "Coordinate transformations defining spatial relationships between coordinate systems" }, "arrayCoordinateSystem": { "type": "object", diff --git a/ngff_spec/schemas/coordinate_transformations.schema b/ngff_spec/schemas/coordinate_transformations.schema index 413b9815..20dce275 100644 --- a/ngff_spec/schemas/coordinate_transformations.schema +++ b/ngff_spec/schemas/coordinate_transformations.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/latest/schemas/coordinate_transformations.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_transformations.schema", "title": "NGFF Coordinate Systems and Transforms", "description": "Coordinate Systems and transforms for OME-NGFF", "type": "array", @@ -29,22 +29,6 @@ ] }, "$defs": { - "path_w_url": { - "description": "Path specification. Schema local solution until https://github.com/ome/ngff/issues/144 is resolved.", - "type": "object", - "properties": { - "path": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "path" - ] - }, "coordinateTransformation": { "description": "OME-NGFF coordinate transformation.", "allOf": [ @@ -111,22 +95,27 @@ { "$ref": "#/$defs/coordinateTransformation" }, { "properties": { - "input": { + "input_axes": { "type": "array", "items": { "type": "string" - } + }, + "description": "Names of the input axes for this transformation." }, - "output": { + "output_axes": { "type": "array", "items": { "type": "string" - } + }, + "description": "Names of the output axes for this transformation." } - } + }, + "required": [ + "input_axes", + "output_axes" + ] } - ], - "required": ["input", "output"] + ] }, "identity": { "type": "object", @@ -144,12 +133,11 @@ "const": "mapAxis" }, "mapAxis": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } + "type": "array", + "items": { + "type": "integer" + }, + "description": "An array of integers representing the new axis order as zero-based indices of the input axes." }, "required": [ "mapAxis" @@ -165,7 +153,15 @@ }, "oneOf": [ { - "$ref": "#/$defs/path_w_url" + "properties": { + "path": { + "type": "string", + "description": "Path to a zarr array containing the scale factors." + } + }, + "required": [ + "path" + ] }, { "properties": { @@ -192,7 +188,15 @@ }, "oneOf": [ { - "$ref": "#/$defs/path_w_url" + "properties": { + "path": { + "type": "string", + "description": "Path to a zarr array containing the translation vectors." + } + }, + "required": [ + "path" + ] }, { "properties": { @@ -218,7 +222,15 @@ }, "oneOf": [ { - "$ref": "#/$defs/path_w_url" + "properties": { + "path": { + "type": "string", + "description": "Path to a zarr array containing the affine matrix." + } + }, + "required": [ + "path" + ] }, { "properties": { @@ -230,11 +242,11 @@ "type": "number" } } - }, - "required": [ - "affine" - ] - } + } + }, + "required": [ + "affine" + ] } ] }, @@ -247,7 +259,15 @@ }, "oneOf": [ { - "$ref": "#/$defs/path_w_url" + "properties": { + "path": { + "type": "string", + "description": "Path to a zarr array containing the rotation matrix." + } + }, + "required": [ + "path" + ] }, { "properties": { @@ -259,11 +279,11 @@ "type": "number" } } - }, - "required": [ - "rotation" - ] - } + } + }, + "required": [ + "rotation" + ] } ] }, @@ -279,7 +299,8 @@ }, "required": [ "transformation" - ] + ], + "description": "The inverse of another coordinate transformation." }, "bijection": { "type": "object", @@ -296,7 +317,8 @@ }, "required": [ "forward", "inverse" - ] + ], + "description": "A pair of forward and inverse coordinate transformations." }, "sequence": { "description": "A sequence of transformations", @@ -309,7 +331,10 @@ "$ref": "#/$defs/coordinateTransformation" } } - } + }, + "required": [ + "transformations" + ] }, "byDimension": { "type": "object", @@ -321,19 +346,49 @@ "$ref": "#/$defs/byDimensionTransformation" } } - } + }, + "required": [ + "transformations" + ], + "description": "A set of transformations applied independently to each dimension." }, "displacements": { "type": "object", "properties": { - "type": { "const": "displacements" } - } + "type": { "const": "displacements" }, + "path": { + "type": "string", + "description": "Path to the zarr array containing the displacement field." + }, + "interpolation": { + "type": "string", + "enum": ["nearest", "linear", "cubic"], + "default": "linear", + "description": "Interpolation method to use when applying the displacement field." + } + }, + "required": [ + "path" + ] }, "coordinates": { "type": "object", "properties": { - "type": { "const": "coordinates" } - } + "type": { "const": "coordinates" }, + "path": { + "type": "string", + "description": "Path to the zarr array containing the coordinate field." + }, + "interpolation": { + "type": "string", + "enum": ["nearest", "linear", "cubic"], + "default": "linear", + "description": "Interpolation method to use when applying the coordinate field." + } + }, + "required": [ + "path" + ] } } } diff --git a/ngff_spec/schemas/image.schema b/ngff_spec/schemas/image.schema index 4623f826..d7324d93 100644 --- a/ngff_spec/schemas/image.schema +++ b/ngff_spec/schemas/image.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/image.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/image.schema", "title": "OME-Zarr Image", "description": "The zarr.json attributes key", "type": "object", @@ -10,13 +10,13 @@ "type": "object", "properties": { "multiscales": { - "$ref": "#/$defs/multiscales" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/image.schema#/$defs/multiscales" }, "omero": { - "$ref": "#/$defs/omero" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/image.schema#/$defs/omero" }, "version": { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema" } }, "required": [ @@ -48,7 +48,13 @@ "type": "string" }, "coordinateTransformations": { - "$ref": "coordinate_transformations.schema" + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/image.schema#/$defs/multiscale_coordinateTransformations" + }, + "minItems": 1, + "maxItems": 1 } }, "required": [ @@ -60,14 +66,22 @@ "version": { "type": "string", "enum": [ - "0.6.dev1" + "0.6dev2" ] }, "coordinateSystems": { - "$ref": "coordinate_systems.schema" + "type": "array", + "minItems": 1, + "items": { + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_systems.schema#/$defs/coordinateSystem" + } }, "coordinateTransformations": { - "$ref": "coordinate_transformations.schema" + "type": "array", + "minItems": 1, + "items": { + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_transformations.schema#/$defs/coordinateTransformation" + } } }, "required": [ @@ -77,6 +91,32 @@ "minItems": 1, "uniqueItems": true }, + "multiscale_coordinateTransformations": { + "description": "OME-NGFF coordinate transformation for multiscale resolution level datasets (only scale or scale & translate).", + "oneOf": [ + {"$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_transformations.schema#/$defs/scale"}, + { + "type": "object", + "properties": { + "type": {"const": "sequence"}, + "transformations": { + "type": "array", + "items": { + "oneOf": [ + {"$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_transformations.schema#/$defs/scale"}, + {"$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/coordinate_transformations.schema#/$defs/translation"} + ] + }, + "minItems": 2, + "maxItems": 2 + }, + "input": {"type": "string"}, + "output": {"type": "string"} + }, + "required": ["type", "transformations", "input", "output"] + } + ] + }, "omero": { "type": "object", "properties": { diff --git a/ngff_spec/schemas/label.schema b/ngff_spec/schemas/label.schema index 5692edca..7f234ed8 100644 --- a/ngff_spec/schemas/label.schema +++ b/ngff_spec/schemas/label.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/label.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/label.schema", "title": "OME-Zarr labelled image schema", "description": "The zarr.json attributes key", "type": "object", @@ -13,7 +13,7 @@ "$ref": "#/$defs/image-label" }, "version": { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema" } }, "required": [ diff --git a/ngff_spec/schemas/ome.schema b/ngff_spec/schemas/ome.schema index 2a3e5fa2..9a44f6bc 100644 --- a/ngff_spec/schemas/ome.schema +++ b/ngff_spec/schemas/ome.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/ome.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/ome.schema", "title": "OME-Zarr group produced by bioformats2raw to contain OME metadata", "description": "The zarr.json attributes key", "type": "object", @@ -18,7 +18,7 @@ "minContains": 1 }, "version": { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema" } }, "required": [ diff --git a/ngff_spec/schemas/ome_zarr.schema b/ngff_spec/schemas/ome_zarr.schema index 632d0192..2ce06ac6 100644 --- a/ngff_spec/schemas/ome_zarr.schema +++ b/ngff_spec/schemas/ome_zarr.schema @@ -1,24 +1,24 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/ome_zarr.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/ome_zarr.schema", "anyOf": [ { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/bf2raw.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/bf2raw.schema" }, { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/image.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/image.schema" }, { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/label.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/label.schema" }, { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/ome.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/ome.schema" }, { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/plate.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/plate.schema" }, { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/well.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/well.schema" } ] } diff --git a/ngff_spec/schemas/plate.schema b/ngff_spec/schemas/plate.schema index e1626a27..06d7edb0 100644 --- a/ngff_spec/schemas/plate.schema +++ b/ngff_spec/schemas/plate.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/plate.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/plate.schema", "title": "OME-Zarr plate schema", "description": "The zarr.json attributes key", "type": "object", @@ -138,7 +138,7 @@ ] }, "version": { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema" } }, "required": [ diff --git a/ngff_spec/schemas/strict_axes.schema b/ngff_spec/schemas/strict_axes.schema index 522602d2..f6bab275 100644 --- a/ngff_spec/schemas/strict_axes.schema +++ b/ngff_spec/schemas/strict_axes.schema @@ -1,11 +1,11 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/latest/schemas/strict_axes.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/strict_axes.schema", "title": "NGFF Strict Axes", "description": "JSON from OME-NGFF .zattrs", "allOf": [ { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/axes.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/axes.schema" }, { "items": { diff --git a/ngff_spec/schemas/strict_coordinate_systems.schema b/ngff_spec/schemas/strict_coordinate_systems.schema index 425ccbe5..99474ce0 100644 --- a/ngff_spec/schemas/strict_coordinate_systems.schema +++ b/ngff_spec/schemas/strict_coordinate_systems.schema @@ -1,5 +1,5 @@ { - "$id": "https://ngff.openmicroscopy.org/latest/schemas/strict_coordinate_systems.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/strict_coordinate_systems.schema", "allOf" : [ { "$ref": "coordinate_systems.schema" diff --git a/ngff_spec/schemas/strict_image.schema b/ngff_spec/schemas/strict_image.schema index 4c51c95e..812f706f 100644 --- a/ngff_spec/schemas/strict_image.schema +++ b/ngff_spec/schemas/strict_image.schema @@ -1,8 +1,8 @@ { - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/strict_image.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/strict_image.schema", "allOf": [ { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/image.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/image.schema" }, { "properties": { diff --git a/ngff_spec/schemas/strict_label.schema b/ngff_spec/schemas/strict_label.schema index 90e510c0..90daf564 100644 --- a/ngff_spec/schemas/strict_label.schema +++ b/ngff_spec/schemas/strict_label.schema @@ -1,8 +1,8 @@ { - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/strict_label.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/strict_label.schema", "allOf": [ { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/label.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/label.schema" }, { "properties": { diff --git a/ngff_spec/schemas/strict_plate.schema b/ngff_spec/schemas/strict_plate.schema index 2fe258ce..7b91ff38 100644 --- a/ngff_spec/schemas/strict_plate.schema +++ b/ngff_spec/schemas/strict_plate.schema @@ -1,8 +1,8 @@ { - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/strict_plate.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/strict_plate.schema", "allOf": [ { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/plate.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/plate.schema" }, { "properties": { diff --git a/ngff_spec/schemas/strict_well.schema b/ngff_spec/schemas/strict_well.schema index df7ad6c8..1192acda 100644 --- a/ngff_spec/schemas/strict_well.schema +++ b/ngff_spec/schemas/strict_well.schema @@ -1,8 +1,8 @@ { - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/strict_well.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/strict_well.schema", "allOf": [ { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/well.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/well.schema" } ] } diff --git a/ngff_spec/schemas/well.schema b/ngff_spec/schemas/well.schema index f623adc4..f81fafa9 100644 --- a/ngff_spec/schemas/well.schema +++ b/ngff_spec/schemas/well.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/well.schema", + "$id": "https://ngff.openmicroscopy.org/0.6dev2/schemas/well.schema", "title": "OME-Zarr well schema", "description": "JSON from OME-Zarr zarr.json", "type": "object", @@ -41,7 +41,7 @@ ] }, "version": { - "$ref": "https://ngff.openmicroscopy.org/0.6.dev1/schemas/_version.schema" + "$ref": "https://ngff.openmicroscopy.org/0.6dev2/schemas/_version.schema" } }, "required": [ diff --git a/tests/image_suite.json b/tests/image_suite.json index df359ce4..ee80509b 100644 --- a/tests/image_suite.json +++ b/tests/image_suite.json @@ -1,7 +1,7 @@ { "description": "TBD", "schema": { - "id": "schemas/image.schema" + "id": "ngff_spec/schemas/image.schema" }, "tests": [ { @@ -9,24 +9,29 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "t", - "type": "time", - "unit": "micrometer" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "t", + "type": "time", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -35,7 +40,9 @@ "coordinateTransformations": [ { "scale": [0.13, 0.13], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -51,22 +58,27 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "angle" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "angle" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -75,6 +87,8 @@ "coordinateTransformations": [ { "scale": [1, 1, 1], + "input": "0", + "output": "intrinsic", "type": "scale" } ] @@ -91,27 +105,35 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micron" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micron" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], + "datasets": [ { "path": "0", "coordinateTransformations": [ { "scale": [0.13, 0.13], + "input": "0", + "output": "intrinsic", "type": "scale" } ] @@ -128,7 +150,7 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { "datasets": [ @@ -137,7 +159,9 @@ "coordinateTransformations": [ { "type": "scale", - "scale": [1, 1] + "scale": [1, 1], + "input": "path/to/0", + "output": "intrinsic" } ] } @@ -151,16 +175,21 @@ "multichannel": true } }, - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ] } @@ -174,23 +203,28 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "angle", - "type": "custom" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "angle", + "type": "custom" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -199,6 +233,8 @@ "coordinateTransformations": [ { "scale": [1, 1, 1], + "input": "0", + "output": "intrinsic", "type": "scale" } ] @@ -215,28 +251,36 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "x", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], + "datasets": [ { "path": "0", "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -252,26 +296,33 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "t", - "type": "time" - }, + "coordinateSystems": [ { - "name": "c", - "type": "channel" + "name": "intrinsic", + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + } + ] } - ], + ], "datasets": [ { "path": "0", "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -287,19 +338,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -308,7 +364,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "translation" + "type": "translation", + "input": "0", + "output": "intrinsic" } ] } @@ -324,19 +382,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -345,7 +408,9 @@ "coordinateTransformations": [ { "translation": [1, 1], - "type": "translation" + "type": "translation", + "input": "0", + "output": "intrinsice" } ] } @@ -361,33 +426,38 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "angle", - "type": "custom" - }, - { - "name": "t", - "type": "time" - }, - { - "name": "c", - "type": "channel" - }, - { - "name": "z", - "type": "space" - }, - { - "name": "y", - "type": "space" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space" + "name": "intrinsic", + "axes": [ + { + "name": "angle", + "type": "custom" + }, + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ] } ], "datasets": [ @@ -396,7 +466,9 @@ "coordinateTransformations": [ { "scale": [1, 1, 1, 1, 1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -412,19 +484,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -433,7 +510,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -466,17 +545,22 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "type": "space", - "unit": "micron" - }, + "coordinateSystems": [ { - "type": "space", - "unit": "micron" + "name": "intrinsic", + "axes": [ + { + "type": "space", + "unit": "micrometer" + }, + { + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -485,7 +569,9 @@ "coordinateTransformations": [ { "scale": [0.13, 0.13], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -501,14 +587,19 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -517,7 +608,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -533,21 +626,26 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "t", - "type": "time" - }, + "coordinateSystems": [ { - "name": "c", - "type": "channel" - }, - { - "name": "x", - "type": "space" + "name": "intrinsic", + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "x", + "type": "space" + } + ] } ], "datasets": [ @@ -556,7 +654,9 @@ "coordinateTransformations": [ { "scale": [1, 1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -572,19 +672,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -593,7 +698,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": 0, + "output": "intrinsic" } ] } @@ -609,19 +716,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -630,7 +742,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -652,19 +766,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -683,19 +802,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [] @@ -710,19 +834,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ] } @@ -736,7 +865,7 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { "datasets": [ @@ -745,7 +874,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -761,19 +892,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "invalid", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "invalid", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -782,7 +918,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -798,19 +936,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -819,11 +962,15 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" }, { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -839,7 +986,7 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { "axes": [], @@ -849,7 +996,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -865,25 +1014,30 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "X", - "type": "space" - }, - { - "name": "z", - "type": "space" - }, + "coordinateSystems": [ { - "name": "y", - "type": "space" - }, - { - "name": "x", - "type": "space" + "name": "intrinsic", + "axes": [ + { + "name": "X", + "type": "space" + }, + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ] } ], "datasets": [ @@ -892,7 +1046,9 @@ "coordinateTransformations": [ { "scale": [1, 1, 1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -908,7 +1064,7 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [] } }, @@ -919,19 +1075,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -940,7 +1101,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } @@ -973,21 +1136,27 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } - ], + ] + , "datasets": [ { "path": "0", @@ -1005,19 +1174,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -1025,7 +1199,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "intrinsic" } ] } diff --git a/tests/label_suite.json b/tests/label_suite.json index 66a2d35d..ceeb9842 100644 --- a/tests/label_suite.json +++ b/tests/label_suite.json @@ -1,14 +1,14 @@ { "description": "Tests for the image-label JSON schema", "schema": { - "id": "schemas/label.schema" + "id": "ngff_spec/schemas/label.schema" }, "tests": [ { "formerly": "image-label/minimal", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [ { @@ -25,7 +25,7 @@ "formerly": "image-label/minimal_properties", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [ { @@ -47,7 +47,7 @@ "formerly": "image-label/empty_colors", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [] } @@ -59,7 +59,7 @@ "formerly": "image-label/empty_properties", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "properties": [] } @@ -71,7 +71,7 @@ "formerly": "image-label/colors_no_label_value", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [ { @@ -87,7 +87,7 @@ "formerly": "image-label/properties_no_label_value", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "properties": [ { @@ -103,7 +103,7 @@ "formerly": "image-label/colors_rgba_length", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [ { @@ -120,7 +120,7 @@ "formerly": "image-label/colors_rgba_type", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [ { @@ -137,7 +137,7 @@ "formerly": "image-label/colors_duplicate", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": { "colors": [ { diff --git a/tests/plate_suite.json b/tests/plate_suite.json index 3db70de7..70bbf3ff 100644 --- a/tests/plate_suite.json +++ b/tests/plate_suite.json @@ -1,14 +1,14 @@ { "description": "Tests for the plate JSON schema", "schema": { - "id": "schemas/plate.schema" + "id": "ngff_spec/schemas/plate.schema" }, "tests": [ { "formerly": "plate/minimal_no_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -36,7 +36,7 @@ "formerly": "plate/minimal_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -69,7 +69,7 @@ "formerly": "plate/missing_rows", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -92,7 +92,7 @@ "formerly": "plate/empty_rows", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -116,7 +116,7 @@ "formerly": "plate/duplicate_rows", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -147,7 +147,7 @@ "formerly": "plate/missing_columns", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "rows": [ { @@ -170,7 +170,7 @@ "formerly": "plate/empty_columns", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [], "rows": [ @@ -194,7 +194,7 @@ "formerly": "plate/duplicate_columns", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -225,7 +225,7 @@ "formerly": "plate/missing_wells", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -246,7 +246,7 @@ "formerly": "plate/empty_wells", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -268,7 +268,7 @@ "formerly": "plate/duplicate_rows", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -304,7 +304,7 @@ "formerly": "plate/missing_column_name", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -332,7 +332,7 @@ "formerly": "plate/missing_row_name", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -360,7 +360,7 @@ "formerly": "plate/missing_well_path", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -387,7 +387,7 @@ "formerly": "plate/missing_well_rowIndex", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -414,7 +414,7 @@ "formerly": "plate/missing_well_columnIndex", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -441,7 +441,7 @@ "formerly": "plate/well_1group", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -468,7 +468,7 @@ "formerly": "plate/well_3groups", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -495,7 +495,7 @@ "formerly": "plate/non_alphanumeric_column", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -523,7 +523,7 @@ "formerly": "plate/non_alphanumeric_row", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -551,7 +551,7 @@ "formerly": "plate/missing_acquisition_id", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -584,7 +584,7 @@ "formerly": "plate/non_integer_acquisition_id", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -617,7 +617,7 @@ "formerly": "plate/negative_acquisition_id", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -650,7 +650,7 @@ "formerly": "plate/non_integer_acquisition_maximumfieldcount", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -684,7 +684,7 @@ "formerly": "plate/acquisition_zero_maximumfieldcount", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -718,7 +718,7 @@ "formerly": "plate/acquisition_noninteger_starttime", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -752,7 +752,7 @@ "formerly": "plate/acquisition_negative_starttime", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -786,7 +786,7 @@ "formerly": "plate/acquisition_noninteger_endtime", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -820,7 +820,7 @@ "formerly": "plate/negative_endtime", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -854,7 +854,7 @@ "formerly": "plate/zero_field_count", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { diff --git a/tests/strict_image_suite.json b/tests/strict_image_suite.json index b52fd2d3..486f936c 100644 --- a/tests/strict_image_suite.json +++ b/tests/strict_image_suite.json @@ -1,7 +1,7 @@ { "description": "TBD", "schema": { - "id": "schemas/strict_image.schema" + "id": "ngff_spec/schemas/strict_image.schema" }, "tests": [ { @@ -9,43 +9,80 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { "name": "example", - "axes": [ + "coordinateSystems": [ { - "name": "t", - "type": "time", - "unit": "millisecond" - }, - { - "name": "c", - "type": "channel" - }, - { - "name": "z", - "type": "space", - "unit": "micrometer" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" + "name": "world", + "axes": [ + { + "name": "t", + "type": "time", + "unit": "millisecond" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] }, { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "intrinsic", + "axes": [ + { + "name": "t", + "type": "time", + "unit": "millisecond" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } - ], + ] + , "datasets": [ { "path": "0", "coordinateTransformations": [ { "type": "scale", - "scale": [1.0, 1.0, 0.5, 0.5, 0.5] + "scale": [1.0, 1.0, 0.5, 0.5, 0.5], + "input": "0", + "output": "intrinsic" } ] }, @@ -54,7 +91,9 @@ "coordinateTransformations": [ { "type": "scale", - "scale": [1.0, 1.0, 1.0, 1.0, 1.0] + "scale": [1.0, 1.0, 1.0, 1.0, 1.0], + "input": "1", + "output": "intrinsic" } ] }, @@ -63,7 +102,9 @@ "coordinateTransformations": [ { "type": "scale", - "scale": [1.0, 1.0, 2.0, 2.0, 2.0] + "scale": [1.0, 1.0, 2.0, 2.0, 2.0], + "input": "2", + "output": "intrinsic" } ] } @@ -71,7 +112,9 @@ "coordinateTransformations": [ { "type": "scale", - "scale": [0.1, 1.0, 1.0, 1.0, 1.0] + "scale": [0.1, 1.0, 1.0, 1.0, 1.0], + "input": "world", + "output": "intrinsic" } ], "type": "gaussian", @@ -95,19 +138,39 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" + "name": "world", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] }, { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "physical", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -116,7 +179,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "physical" } ] } @@ -124,7 +189,9 @@ "coordinateTransformations": [ { "scale": [10, 10], - "type": "scale" + "type": "scale", + "input": "physical", + "output": "world" } ], "name": "image_with_coordinateTransformations", @@ -143,7 +210,7 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "@id": "top", "@type": "ngff:Image", "multiscales": [ @@ -156,7 +223,9 @@ "coordinateTransformations": [ { "type": "scale", - "scale": [1, 1] + "scale": [1, 1], + "input": "path/to/0", + "output": "physical" } ] } @@ -170,16 +239,21 @@ "multichannel": true } }, - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, + "coordinateSystems": [ { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "physical", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ] } @@ -193,19 +267,24 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ + "coordinateSystems": [ { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "physical", + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -214,7 +293,9 @@ "coordinateTransformations": [ { "scale": [1, 1], - "type": "scale" + "type": "scale", + "input": "0", + "output": "physical" } ] } @@ -235,32 +316,65 @@ "description": "TBD", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "multiscales": [ { - "axes": [ - { - "name": "t", - "type": "time" - }, - { - "name": "c", - "type": "channel" - }, + "coordinateSystems": [ { - "name": "z", - "type": "space", - "unit": "micrometer" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" + "name": "world", + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] }, { - "name": "x", - "type": "space", - "unit": "micrometer" + "name": "physical", + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] } ], "datasets": [ @@ -269,11 +383,9 @@ "coordinateTransformations": [ { "scale": [1, 1, 0.5, 0.13, 0.13], - "type": "scale" - }, - { - "translation": [0, 9, 0.5, 25.74, 21.58], - "type": "translation" + "type": "scale", + "input": "0", + "output": "physical" } ] }, @@ -282,11 +394,21 @@ "coordinateTransformations": [ { "scale": [1, 1, 1, 0.26, 0.26], - "type": "scale" + "type": "scale", + "input": "1", + "output": "physical" } ] } ], + "coordinateTransformations": [ + { + "translation": [0, 9, 0.5, 25.74, 21.58], + "type": "translation", + "input": "intrinsic", + "output": "world" + } + ], "name": "image_with_omero_metadata", "type": "foo", "metadata": { @@ -331,7 +453,7 @@ "defaultZ": 2, "model": "color" }, - "version": "0.5-dev" + "version": "0.6dev2" } } }, diff --git a/tests/strict_label_suite.json b/tests/strict_label_suite.json index 1b3535c2..d72dc241 100644 --- a/tests/strict_label_suite.json +++ b/tests/strict_label_suite.json @@ -1,14 +1,14 @@ { "description": "Tests for the strict image-label JSON schema", "schema": { - "id": "schemas/strict_label.schema" + "id": "ngff_spec/schemas/strict_label.schema" }, "tests": [ { "formerly": "image-label/no_colors", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "image-label": {} } }, diff --git a/tests/strict_plate_suite.json b/tests/strict_plate_suite.json index 7cea0747..7a994108 100644 --- a/tests/strict_plate_suite.json +++ b/tests/strict_plate_suite.json @@ -1,14 +1,14 @@ { "description": "Tests for the strict plate JSON schema", "schema": { - "id": "schemas/strict_plate.schema" + "id": "ngff_spec/schemas/strict_plate.schema" }, "tests": [ { "formerly": "plate/strict_no_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -37,7 +37,7 @@ "formerly": "plate/missing_name", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "columns": [ { @@ -65,7 +65,7 @@ "formerly": "plate/strict_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -101,7 +101,7 @@ "formerly": "plate/missing_acquisition_name", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { @@ -136,7 +136,7 @@ "formerly": "plate/missing_acquisition_maximumfieldcount", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "plate": { "acquisitions": [ { diff --git a/tests/strict_well_suite.json b/tests/strict_well_suite.json index f56b6c24..ee10a2c0 100644 --- a/tests/strict_well_suite.json +++ b/tests/strict_well_suite.json @@ -1,14 +1,14 @@ { "description": "Tests for the strict well JSON schema", "schema": { - "id": "schemas/strict_well.schema" + "id": "ngff_spec/schemas/strict_well.schema" }, "tests": [ { "formerly": "well/strict_no_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "well": { "images": [ { @@ -24,7 +24,7 @@ "formerly": "plate/strict_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "well": { "images": [ { diff --git a/tests/test_validation.py b/tests/test_validation.py index c2844f1a..5de3ecb7 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -11,13 +11,13 @@ from jsonschema.exceptions import ValidationError schema_store = {} -for schema_filename in glob.glob("schemas/*"): +for schema_filename in glob.glob("ngff_spec/schemas/*"): with open(schema_filename) as f: schema = json.load(f) schema_store[schema["$id"]] = schema GENERIC_SCHEMA = schema_store[ - "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema" + "https://ngff.openmicroscopy.org/0.6dev2/schemas/ome_zarr.schema" ] print(schema_store) @@ -61,7 +61,7 @@ def pytest_generate_tests(metafunc): suites: List[Schema] = [] ids: List[str] = [] schema_store = {} - for filename in glob.glob("schemas/*.schema"): + for filename in glob.glob("ngff_spec/schemas/*.schema"): with open(filename) as o: schema = json.load(o) schema_store[schema["$id"]] = schema @@ -121,7 +121,7 @@ def test_example_configs(): Test that all example folders have a config file """ missing = [] - for subdir in os.walk("examples"): + for subdir in os.walk("ngff_spec/examples"): has_examples = glob.glob(f"{subdir[0]}/*.json") has_config = glob.glob(f"{subdir[0]}/.config.json") if has_examples and not has_config: diff --git a/tests/well_suite.json b/tests/well_suite.json index 7fbf8ca2..9f9fe663 100644 --- a/tests/well_suite.json +++ b/tests/well_suite.json @@ -1,14 +1,14 @@ { "description": "Tests for the well JSON schema", "schema": { - "id": "schemas/well.schema" + "id": "ngff_spec/schemas/well.schema" }, "tests": [ { "formerly": "well/minimal_no_acquisition", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "well": { "images": [ { @@ -24,7 +24,7 @@ "formerly": "well/minimal_acquisitions", "data": { "ome": { - "version": "0.5", + "version": "0.6dev2", "well": { "images": [ {