You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -206,10 +206,10 @@ object that MUST contain a `version` key, the value of which MUST be a string sp
206
206
### "coordinateSystems" metadata
207
207
(coordinate-systems-md)=
208
208
209
-
A `coordinateSystem` is a JSON object with a `name` field and a `axes` field.
209
+
A coordinate system is a JSON object with a `name` field and a `axes` field.
210
210
Every coordinate system:
211
211
- MUST contain the field `name`.
212
-
The value MUST be a non-empty string that is unique among all entries under `coordinateSystems`.
212
+
The value MUST be a non-empty string that is unique among all entries in a `coordinateSystems` array.
213
213
- MUST contain the field `axes`, whose value is an array of valid `axes` (see below).
214
214
The elements of `axes` correspond to the index of each array dimension and coordinates for points in that coordinate system.
215
215
For the below example, the `x` dimension is the last dimension.
@@ -235,7 +235,7 @@ Coordinate Systems metadata example
235
235
The axes of a coordinate system (see below) give information
236
236
about the types, units, and other properties of the coordinate system's dimensions.
237
237
Axis names may contain semantically meaningful information, but can be arbitrary.
238
-
As a result, two coordinate systems that have identical axes in the same order
238
+
As a result, two coordinate systems that have identical axes in the same order
239
239
may not be "the same" in the sense that measurements at the same point
240
240
refer to different physical entities and therefore should not be analyzed jointly.
241
241
Tasks that require images, annotations, regions of interest, etc.,
@@ -333,7 +333,7 @@ Then `dim_0` has length 4, `dim_1` has length 3, and `dim_2` has length 5.
333
333
The axes and their order align with the shape of the corresponding Zarr array,
334
334
and whose data depends on the byte order used to store chunks.
335
335
As described in the [Zarr array metadata](https://zarr.readthedocs.io/en/stable/spec/v3.html#arrays),
336
-
the last dimension of an array in "C" order are stored contiguously on disk or in-memory when directly loaded.
336
+
the last dimension of an array in "C" order are stored contiguously on disk or in-memory when directly loaded.
337
337
338
338
The name and axes names MAY be customized by including a `arrayCoordinateSystem` field
339
339
in the user-defined attributes of the array whose value is a coordinate system object.
@@ -472,7 +472,7 @@ The following transformations are supported:
472
472
|[`byDimension`](#bydimension-md)|`"transformations":List[Transformation]`.<br>Transformations in the array MUST have<br>`"input_axes": List[number]`, <br> and `"output_axes": List[number]`| A high dimensional transformation using lower dimensional transformations on subsets of dimensions. |
473
473
474
474
Implementations SHOULD prefer to store transformations as a sequence of less expressive transformations where possible
475
-
(e.g., sequence[translation, rotation], instead of affine transformation with translation/rotation).
475
+
(e.g., sequence[translation, rotation], instead of affine transformation with translation/rotation).
476
476
477
477
:::{dropdown} Example
478
478
(spec:example:coordinate_transformation_scale)=
@@ -483,7 +483,7 @@ Implementations SHOULD prefer to store transformations as a sequence of less exp
@@ -1254,18 +1254,18 @@ It is stored in a multiple resolution representation.
1254
1254
Each `multiscales` object MUST contain the field `coordinateSystems`,
1255
1255
whose value is an array containing coordinate system metadata
1256
1256
(see [coordinate systems](#coordinate-systems-md)).
1257
+
The following conditions apply to all coordinate systems inside multiscales metadata:
1258
+
1259
+
- The length of `axes` must be between 2 and 5 and MUST be equal to the dimensionality of the Zarr arrays storing the image data (see `datasets:path`).
1260
+
-`axes` MUST contain 2 or 3 entries of `type:space`
1261
+
-`axes` MAY contain one additional entry of `type:time`
1262
+
-`axes` MAY contain one additional entry of `type:channel` or a null / custom type.
1263
+
-`axes` entries MUST be ordered by `type` where the `time` axis must come first (if present),
1264
+
followed by the `channel` or custom axis (if present) and the axes of type `space`.
1265
+
- If there are three spatial axes where two correspond to the image plane (`yx`)
1266
+
and images are stacked along the other (anisotropic) axis (`z`),
1267
+
the spatial axes SHOULD be ordered as `zyx`.
1257
1268
1258
-
The following MUST hold for all coordinate systems inside multiscales metadata.
1259
-
The length of `axes` must be between 2 and 5
1260
-
and MUST be equal to the dimensionality of the Zarr arrays storing the image data (see `datasets:path`).
1261
-
The `axes` MUST contain 2 or 3 entries of `type:space`
1262
-
and MAY contain one additional entry of `type:time`
1263
-
and MAY contain one additional entry of `type:channel` or a null / custom type.
1264
-
In addition, the entries MUST be ordered by `type` where the `time` axis must come first (if present),
1265
-
followed by the `channel` or custom axis (if present) and the axes of type `space`.
1266
-
If there are three spatial axes where two correspond to the image plane (`yx`)
1267
-
and images are stacked along the other (anisotropic) axis (`z`),
1268
-
the spatial axes SHOULD be ordered as `zyx`.
1269
1269
Each `multiscales` object MUST contain the field `datasets`,
1270
1270
which is an array of objects describing the arrays storing the individual resolution levels.
1271
1271
Each object in `datasets` MUST contain the field `path`,
@@ -1281,7 +1281,7 @@ that maps Zarr array coordinates for this resolution level to the "intrinsic" co
1281
1281
The transformation is defined according to [transformations metadata](#trafo-types-md).
1282
1282
The transformation MUST take as input points in the array coordinate system
1283
1283
corresponding to the Zarr array at location `path`.
1284
-
The value of `input` MUST equal the value of `path`,
1284
+
The value of `input` MUST equal the value of `path`,
1285
1285
implementations should always treat the value of `input` as if it were equal to the value of `path`.
1286
1286
The value of the transformation’s `output` coordinate system MUST be the same for every dataset in a single multiscales.
1287
1287
This coordinate system (the "intrinsic" coordinate system) will generally be a representation of the image in its native physical coordinate system.
@@ -1304,8 +1304,9 @@ If applications require additional transformations,
1304
1304
each `multiscales` object MAY contain the field `coordinateTransformations`,
1305
1305
describing transformations that are applied to all resolution levels in the same manner.
1306
1306
The value of `input` MUST equal the name of the "intrinsic" coordinate system.
1307
-
The value of `output` MUST be the name of the output coordinate System
1308
-
which is different from the "intrinsic" coordinate system.
1307
+
The value of `output` MUST be the name of a coordinate system
1308
+
which is different from the "intrinsic" coordinate system
1309
+
and which is defined in the `coordinateSystems` field of the `multiscales` metadata.
1309
1310
1310
1311
Each `multiscales` object SHOULD contain the field `name`.
1311
1312
@@ -1450,7 +1451,7 @@ denoting arbitrary metadata associated with that label.
1450
1451
Label-value objects within the `properties` array do not need to have the same keys.
1451
1452
1452
1453
The value of the `source` key MUST be a JSON object containing information about the original image from which the label image derives.
1453
-
This object MAY include a key `image`, whose value MUST be a string specifying the relative path to a Zarr image group.
1454
+
This object MAY include a key `image`, whose value MUST be a string specifying the relative path to a Zarr image group.
1454
1455
The default value is `../../` since most labeled images are stored in a "labels" group that is nested within the original image group.
1455
1456
1456
1457
@@ -1557,10 +1558,10 @@ whose value MUST be an array of JSON objects specifying all fields of views for
1557
1558
Each image object MUST contain a `path` key
1558
1559
whose value MUST be a string specifying the path to the field of view.
1559
1560
The `path` MUST be case-sensitive, and MUST NOT be a duplicate of any other `path` in the `images` list.
1560
-
The `path` MUST follow [Zarr node name naming conventions](https://github.com/zarr-developers/zarr-specs/blob/main/docs/v3/core/index.rst#node-names) including the recommended limitations of characters to ensure consistency across different storage systems and programming languages.
1561
-
Specifically: The `path` MUST NOT consist only of periods (like `.` or `..`) or start with the reserved prefix `__`;
1562
-
The `path` MUST NOT be an empty string and MUST NOT contain `/` characters;
1563
-
The `path` MUST only use characters in the sets `a-z`, `A-Z`, `0-9`, `-`, `_`, `.`.
1561
+
The `path` MUST follow [Zarr node name naming conventions](https://github.com/zarr-developers/zarr-specs/blob/main/docs/v3/core/index.rst#node-names) including the recommended limitations of characters to ensure consistency across different storage systems and programming languages.
1562
+
Specifically: The `path` MUST NOT consist only of periods (like `.` or `..`) or start with the reserved prefix `__`;
1563
+
The `path` MUST NOT be an empty string and MUST NOT contain `/` characters;
1564
+
The `path` MUST only use characters in the sets `a-z`, `A-Z`, `0-9`, `-`, `_`, `.`.
1564
1565
If multiple acquisitions were performed in the plate,
1565
1566
it MUST contain an `acquisition` key whose value MUST be an integer identifying the acquisition
1566
1567
which MUST match one of the acquisition JSON objects defined in the [plate metadata](#plate-md).
@@ -1737,11 +1738,29 @@ but they should be updated in due course.
1737
1738
1738
1739
See [Tools](https://ngff.openmicroscopy.org/tools/index.html).
1739
1740
1741
+
## License
1742
+
1743
+
This specification is derived from the [Community Specification Template](https://www.w3.org/People/Schepers/unoffical_template.html) provided by W3C,
1744
+
under [the following terms](https://www.w3.org/copyright/software-license-2023/):
1745
+
1746
+
> By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions:
1747
+
> Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
1748
+
>
1749
+
> The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
1750
+
> Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
1751
+
> Notice of any changes or modifications, through a copyright statement on the new code or document such as:
0 commit comments