-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Zarr v3 #206
Zarr v3 #206
Conversation
# Conflicts: # latest/index.bs
* define pixel center coordinate system * add input/output_axes * add transform inverse flag * add affine transform type
* flesh out array space * define array indexing * add more transformation types * start transformation details section and examples * update example
# Conflicts: # latest/index.bs
* use "input" and "output" rather than '*Space' and '*Axes'
* reorder details * clean up table * add rotation * details for sequence * describe inverses * wrap examples
* rephrase matrix storage
* change to "coordinates", removing "Field" * change to "displacements", removing "Field"
* add details for transformation types * (identity, inverseOf, bijection) * describe inputAxes and outputAxes * add new examples
…amples * some clean up
* add mapIndex, mapAXis * add examples * affine stored as flat array only
* sequence does not have by-dimension behavior
* flesh out some examples
* multiscales dataset-level * xarray like coordinates / byDimension
# Conflicts: # latest/index.bs
* move bijection examples to separate files * add axis types to xarrayLike example
* add an example
Automated Review URLs |
Thank you for this! |
This pull request has been mentioned on Image.sc Forum. There might be relevant details there: |
After a quick read, @normanrz, here are my initial thoughts (where not simply a big 👍):
These two together make me wonder whether or not the key couldn't be something more sophisticated, like the version itself:
It's somewhat non standard to use a more complicated key like that, but it's a value that we will have in memory anyway to load the schema files, etc.
The
I know this is a constant source of confusion/frustration, but I think we might want to reconsider this. |
Fine with me. It is a bit more verbose, but we could get rid of the additional
Also, fine with me to split it out. But I really think label images in OME-Zarr need to be reworked.
That is certainly up for debate. But my preference would be to go with |
### Array coordinate systems | ||
|
||
Every array has a default coordinate system whose parameters need not be explicitly defined. Its name is the path to the array | ||
in the container, its axes have `"type":"array"`, are unitless, and have default "name"s. The ith axis has `"name":"dim_i"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the default names be those specified by the zarr v3 dimension_names
property?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see this is kind of addressed in the paragraph above, but it still might be helpful to clarify here.
} | ||
} | ||
``` | ||
</div> | ||
|
||
"bioformats2raw.layout" (transitional) {#bf2raw} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this section should be moved to the end since it seems like it may not be of interest to most ome-zarr and is not an ideal starting point for the specification given how specialized it is.
@@ -331,24 +338,1010 @@ Conforming readers: | |||
- MAY ignore other groups or arrays under the root of the hierarchy. | |||
|
|||
|
|||
"coordinateSystems" metadata {#coord-sys-md} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would help to clarify exactly where this is specified within the zarr attribute structure. The example could include the top-level "ome" key to clarify. If this isn't intended as a top-level member of the "ome" object, then perhaps it should be described in a later section, after describing its "parent" object, in order to make the specification clearer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this could be addressed in #138, which this PR is based on.
Closing this in favor of #227. Discussion will continue there. |
This PR proposes to adopt the version 3 of the Zarr format for OME-Zarr.
Main changes:
zarr.json
files. This is the same for arrays and groups. Attributes are now stored in aattributes
object within thezarr.json
files.chunk_key_encoding
of the Zarr arrays are respected instead of mandating the/
dimension separator. Basically all Zarr features are available in OME-Zarr as they get approved through the ZEP process.ome
namespace within thezarr.json
attributes.version
fields frommultiscale
,plate
,well
etc. up into theome
object.labels
group into themultiscale
group.OME-Zarr specification
This PR is currently in a draft status and builds upon the #138 PR by @bogovicj.
Check this link for a more convenient review: https://github.com/ome/ngff/pull/206/files/b92f540dc95440f2d6b7012185b09c2b862aa744..HEAD