- UUID: 3bbe438d-df37-49fe-8e2b-739296d46dfb
- Name: Units of Measure
- Schema URL: "https://raw.githubusercontent.com/clbarnes/zarr-convention-uom/refs/tags/v1/schema.json"
- Spec URL: "https://github.com/clbarnes/zarr-convention-uom/blob/v1/README.md"
- Scope: Array, Group
- Extension Maturity Classification: Pilot
- Owner: @clbarnes
This convention defines how to communicate the units of the data contained in a numeric Zarr array.
The license metadata exists in a field called uom at the root attributes level following the Zarr Conventions Specification.
Communicating the units of measure used by numeric is applicable across ecosystems and applications, and should be made as low-friction as possible to facilitate re-use of FAIR data.
Units MUST be defined on each array individually. Related arrays sharing a unit SHOULD validated at the application level.
- Examples:
- Comparability: Units of measure are an essential piece of data for comparing raw data
- Not crashing your mars orbiter
The convention must be registered in zarr_conventions:
{
"zarr_conventions": [
{
"schema_url": "https://raw.githubusercontent.com/clbarnes/zarr-convention-uom/refs/tags/v1/schema.json",
"spec_url": "https://github.com/clbarnes/zarr-convention-uom/blob/v1/README.md",
"uuid": "3bbe438d-df37-49fe-8e2b-739296d46dfb",
"name": "uom",
"description": "Units of measurement for Zarr arrays"
}
]
}This convention can be used with these parts of the Zarr hierarchy:
- Group
- Array
The uom key at the root attributes level MUST be an object.
Convention metadata name: uom
| Field Name | Required | Type | Description |
|---|---|---|---|
| uom | yes | UOM Object |
Example:
{
"attributes": {
"zarr_conventions": [
{ "name": "uom", "uuid": "3bbe438d-df37-49fe-8e2b-739296d46dfb" }
],
"uom": {
"ucum": {
"version": "2.2",
"unit": "kg"
},
"description": "apple count as weight equivalent of one bushel"
}
}
}| Field Name | Required | Type | Description |
|---|---|---|---|
| ucum | yes | UCUM Object | |
| description | no, default "" |
Free text description of the measurement |
| Field Name | Required | Type | Description |
|---|---|---|---|
| unit | no, default "1" |
string | UCUM unit string |
| version | no, default most recent supported | string | Version of UCUM specification |
This MUST be a valid case-sensitive unit according to the Unified Code for Units of Measure.
By default (field omitted or set to null) the unit MUST be considered arbitrary.
- zarrs_conventions_uom - zarrs / zarrs_conventions implementation
- Language: Rust
- Status: Experimental
- Maintainer: @clbarnes
- Since: 2026-01-07
If you implement or use this convention, please add your implementation to this list by submitting a pull request.
This template is based on the STAC extensions template.