Skip to content
@zarr-conventions

Zarr Conventions

This organisation contains documentation and tooling to help define and share Zarr Adoption Conventions.

Zarr Adoption Conventions

Feedback is very welcome on about this framework for Zarr Conventions. Please join the discussion on V1 of the Zarr Conventions Framework.

This organisation contains documentation and tooling to help define and share Zarr Adoption Conventions.

What is a Zarr Adoption Convention?

A Zarr Adoption Convention (Zarr convention, for short) is simply a way of using Zarr to store data for a particular domain, application or purpose. For example, a Zarr Convention can define a set of attributes for storing specific metadata that helps downstream applications provide special behaviour and users interpret the data.

Define your own convention

To define and share your own convention:

  1. Create a new GitHub repo using the zarr-conventions template
  2. Create a UUID to use as a globally-unique identifier for your convention.
  3. Edit the README.md in your repo to describe your usage convention for developers and users.
  4. Edit or remove the schema.json file in your repo to define validation constraints on your metadata.
  5. Commit your changes and make a GitHub release so you have a stable version of your spec and schema to point to.
  6. Share your convention with the community (see below).

Convention Maturity

We have adapted the maturity classification system used by the STAC ecosystem. There are many conventions being built with Zarr, but they have varying degrees of maturity. All community conventions listed here included must include a maturity classification, so that Zarr conventions users can easily get a sense of how much they can count on the convention. Currently, it's recommended that convention developers self-assess the maturity in their README. We may evolve to a more centralized maturity assignment process in the future.

Maturity ClassificationMin Impl #DescriptionStability
Proposal0An idea put forward by a community member to gather feedbackNot stable - breaking changes almost guaranteed as implementers try out the idea.
Pilot1Idea is fleshed out, with examples and a JSON schema, and implemented in one or more libraries. Additional implementations encouraged to help give feedbackApproaching stability - breaking changes are not anticipated but can easily come from additional feedback.
Candidate3A number of implementers are using it and are standing behind it as a solid convention. User can generally count on an convention at this maturity level.Mostly stable, breaking changes require a new version and minor changes are unlikely. The convention has a code owner, designated in its README.
Stable6Highest current level of maturity. The community of convention maintainers commits to a Zarr review process for any changes, which are not made lightly. The process for this review will be established in 2026.Completely stable, all changes require a new version number and review process.
DeprecatedN/AA previous convention that has likely been superseded by a newer one or did not work out for some reason.DO NOT USE, is not supported

Maturity mostly comes through diverse implementations, so the minimum number of implementations column is the main gating function for an convention to mature. But convention authors can also choose to hold back the maturity advancement if they don't feel they are yet ready to commit to the less breaking changes of the next level.

Share your convention

If you have published a Zarr convention, please add it to the table below:

NameDescriptionUUIDRepository
projCoordinate reference system information for geospatial dataf17cb550-5864-4468-aeb7-f3180cfb622fhttps://github.com/zarr-conventions/proj
spatialSpatial coordinate information689b58e2-cf7b-45e0-9fff-9cfc0883d6b4https://github.com/zarr-conventions/spatial
multiscalesMultiscale layout of zarr datasetsd35379db-88df-4056-af3a-620245f8e347https://github.com/zarr-conventions/multiscales
licenseLicense specifier for Zarr datab77365e5-2b0c-4141-b917-c03b7c68e935https://github.com/clbarnes/zarr-convention-license
uomUnits of measurement for Zarr arrays3bbe438d-df37-49fe-8e2b-739296d46dfbhttps://github.com/clbarnes/zarr-convention-uom
refReferencing external objects from a Zarr array or groupd89b30cf-ed8c-43d5-9a16-b492f0cd8786https://github.com/R-CF/zarr_convention_ref
nzNetCDF - Zarr Conventiond0a980b5-c644-4dcc-85a1-283799a58f40https://github.com/zarr-conventions/nz
geolocationConvention for storing geolocation arraysbb9ee930-8c60-4c47-ad6b-8daa558987edhttps://github.com/R-CF/zarr_convention_geolocation
csCoordinate set for n-dimensional arrayse4dbf0b7-7a00-4ce6-b23e-484292014ab4https://github.com/R-CF/zarr_conventions_cs
coordsIndex-to-coordinate mapping6ca4454a-658a-4348-a667-b39ced0e58cbhttps://github.com/christophenoel/zarr-coords
cfCF semantic metadata0c0a02d2-8a95-4303-8b62-16a50b439d74https://github.com/christophenoel/zarr-cf
dggsDiscrete Global Grid Systems7b255807-140c-42ca-97f6-7a1cfecdbc38https://github.com/zarr-conventions/dggs

Popular repositories Loading

  1. multiscales multiscalesPublic

    Domain-agnostic Zarr convention for encoding multiscale pyramid information

    JavaScript 24 5

  2. spatial spatialPublic

    Zarr Convention for describing the relationship between positional indexes and spatial coordinates

    JavaScript 19 4

  3. dggs dggsPublic

    Zarr Convention for Discrete Global Grid Systems (DGGS)

    Python 15 2

  4. zarr-cm zarr-cmPublic

    Python implementation of Zarr Conventions Metadata

    Python 15 2

  5. proj projPublic

    Datum and coordinate reference system convention

    JavaScript 14 2

  6. zarr-conventions-spec zarr-conventions-specPublic

    Specification for Zarr conventions

    12 5

Repositories

Showing 10 of 16 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…