Repository navigation
NGFF specification 0.6
We are happy to release the 0.6 version of the NGFF specification. NGFF - next generation file format - is a community-driven standardization initiative for a cloud-native file format for bio-image data and metadata.
For more information, resources and documentation, please visit out website, https://ngff.openmicroscopy.org
Highlights
Coordinate transformations:
The 0.6 specification codifies a big community effort to standardize the concept of coordinate transformations, which allow to attach information about the spatial whereabouts of an image directly to the image metadata. The following transformation types are supported:
- translation: Translation transformations as a single translation vector
- scale: Scale-transformations as a per-axis scale factor
- rotation: Express rotations as a 2d rotation matrix
- affine: Express affine transformations (shearing, etc) as a 2d affine matrix
- mapAxis: Permutate image axes
- sequence: Express complicated transformations as a series of simpler transformations
- displacements/coordinates: Non-linear transformations defined by displacement vectors or coordinate pairs
- projectAxis: Project images into higher- or lower-dimensional spaces
- byDimension: Apply a single transformation along a given axis of an image
- bijection: Explicitly specify a forward and an inverse transformation for a non-invertible transformation
Coordinate systems
The concept of axes metadata is expanded towards named sets of axes, which are refered to as coordinate systems. These can be connected by transformations to build entire graphs of transformations. Coordinate systems can be referenced through a joint reference interface object consisting of a path and a name field, that allows to reference coordinate systems at different locations in a zarr hierarchy.
The scene
The newly introduced scene field provides a field in a top-level zarr group that contains coordinate transformations or systems that can bind together coordinate systems from different images, providing standardized metadata fields for applications like image registration or stitching.
NGFF RFC process
This release concludes the proposal and adoption of RFC5. We sincerely thank all authors, reviewers and commenters for their dedication and work on the project.
Other improvements:
NGFF 0.6 concludes the transition from the bikeshed markdown format towards the more common myst-md markdown dialect. This makes the specification text easier to navigate, browse and improve findability of example metadata or schemas in the repository. I.e., json metadata can simply be linked from external sources, tables are formatted and cross-referenced easily and examples can be collapsed into the text to improve the reading experience.
What's Changed
- Fix transformations examples by @btbest in #175
- Minor: Fix array coordinates example by @btbest in #173
- Minor fixes to version
0.6rc0spec by @kabilar in #174 - fix: allow 0.6 as version in 0.6rcX by @jo-mueller in #186
- Fix version strings in two v0.6 zarr tests by @DragaDoncila in #193
- remove warning about experimental nature by @jo-mueller in #189
- fix: describe byDimension axes as indices, and a typo in image.schema by @vboussot in #195
- Change input name from 'intrinsic' to 'physical' by @clbarnes in #199
- Fix table formatting for multiscale image metadata by @lubianat in #185
- schema: fix reference to axes to use URLs, too by @jo-mueller in #203
- Prepend anchors 0.6 by @jo-mueller in #205
- bump version to 0.6 by @jo-mueller in #202
0.6rc0:
- Add authors to project metadata by @jo-mueller in #31
- Update version history for changes to the labels specification by @sbesson in #131
- Minor formatting fixes by @btbest in #135
- add rfc8 authors to RFC contrib section by @jo-mueller in #136
- Minor: Update stitching scene example to 0.6.dev4 by @btbest in #152
- docs: add recommendation for coordinate system by @jo-mueller in #144
- spec: Hint on expectations on multiscale transforms by @jo-mueller in #146
- cleanup: remove arrayCoordinateSystems by @jo-mueller in #151
- fix: correct typo and add fcollman orcid by @lubianat in #133
- scene.coordinateTransformations path optional for input and output by @will-moore in #149
- add Assa Diabira as author by @assadiab in #154
- Displacements are multiscales by @jo-mueller in #145
- examples: add
typeto axes metadata in examples by @jo-mueller in #161 - schema: require version by @jo-mueller in #164
- Update authors by @jo-mueller in #157
- Add wrapper transforms to requirements by @clbarnes in #153
- spec: removed invalid mapAxis example by @jo-mueller in #129
- spec: tighten rules for metadata on displacements by @jo-mueller in #158
- spec: clearer wording around graph connectedness by @jo-mueller in #165
- refactor: use camelCase in byDimension transform by @jo-mueller in #166
- Add projectAxis transform by @jo-mueller in #130
- Streamline input output constraints by @jo-mueller in #137
- More and fixed cross refs by @jo-mueller in #169
- 0.6rc0 release bump by @jo-mueller in #167
- update github icon link by @jo-mueller in #172
0.6.dev4
- fix: avoid non-unicode characters (dev) by @jo-mueller in #121
- specification: Tie down possible output for coordinate transformation… by @jo-mueller in #109
- Improve readability of multiscales section by @dstansby in #106
- Add copyright note by @jo-mueller in #29
- Minor language improvements for coordinate system by @dstansby in #105
- Fix link to specification text in README by @jo-mueller in #120
- Replace
arrayCoordinateSystemwith explanation on how to express dimensionless transforms in pixel coordinates by @jo-mueller in #118 - specification: Clarify
coordinatesanddisplacementstransformations by @jo-mueller in #108 - Unify input output by @jo-mueller in #117
- chore: update version in changelog by @jo-mueller in #126
- docs: updated examples to include translations by @jo-mueller in #125
- fix: correct outputs in displacement field transform examples by @jo-mueller in #127
- Chore: Complete version history by @jo-mueller in #128
0.6.dev3
- Splash ngff spec by @jo-mueller in #38
- Add release checklist by @jo-mueller in #39
- change header levels by @jo-mueller in #41
- Change admonition syntax by @jo-mueller in #43
- update header for development by @jo-mueller in #44
- Fix references in image schema by @dstansby in #49
- Tidy up schema titles and descriptions by @dstansby in #45
- Fix 404 link to built spec by @will-moore in #55
- Fix title formatting by @jo-mueller in #58
- add more syntax hints to contrib guide by @jo-mueller in #57
- Backticks everywhere by @jo-mueller in #73
- do not require version inside multiscales by @jo-mueller in #72
- update doi and date for latest on references.bib by @lubianat in #66
- update version keys by @jo-mueller in #50
- .editorconfig by @clbarnes in #76
- Fix remaining backticks by @jo-mueller in #74
- Adjust layout to suit ngff page embedding by @jo-mueller in #77
- JSON terminology instead of Python by @jo-mueller in #85
- do not require version keys in plate/well/labels by @jo-mueller in #84
- add function to test attributes by @jo-mueller in #70
- Port RFC5 updated proposal to ngff-spec by @jo-mueller in #67
- Relax the allowed names of images in wells by @jluethi in #71
- fix: remove
pathfrom scale/translation transforms in table by @jo-mueller in #91 - Fix failing
welltests by @jo-mueller in #96 - Minor text styling options by @jo-mueller in #93
- Update strict_well.schema by @jo-mueller in #86
- By dimension input axes number by @will-moore in #97
- markdown style fixes and correct links by @jo-mueller in #88
- Fix multiscale examples by @jo-mueller in #24
- Require same datatype in multiscales by @jo-mueller in #100
- Add an issue template form by @lubianat in #101
- Mandate that axis field names are strings by @dstansby in #60
- Updated version history for 0.6.dev3 release by @jo-mueller in #102
- Update date in version history by @jo-mueller in #104
0.6.dev2
- RFC5: coordinate systems and transformations by @jo-mueller and @bogovicj in #17
- update changelog to 0.6.dev2 by @jo-mueller in #34
- No local version in setuptools_scm by @jo-mueller in #32
- Hardcode version by @jo-mueller in #33
0.6.dev1
- Configure joint webpage layout for spec/examples/schemas by @jo-mueller in #4
- SemBr and KeepAChangelog reorganize-repo branch by @clbarnes in #15
- re-organized repo by @jo-mueller in #14
- added codespell and review workflows by @jo-mueller in #21
- Upgrade to jupyter book 2 by @jo-mueller in #20
- remove U. Dundee from footer by @jo-mueller in #23
- Add CFF citation support and contribution instructions by @jo-mueller in #25
- Add RFC5 to version history by @jo-mueller in #28
New Contributors
- @kabilar made their first contribution in #174
- @DragaDoncila made their first contribution in #193
- @vboussot made their first contribution in #195
- @btbest made their first contribution in #135
- @assadiab made their first contribution in #154
- @dstansby made their first contribution in #49
- @will-moore made their first contribution in #55
- @jluethi made their first contribution in #71
- @jo-mueller made their first contribution in #4
- @clbarnes made their first contribution in #15
Full Changelog: 0.5...0.6