Skip to content

Commit f3e8731

Browse files
Refine GeoZarr mini-spec to exclusively target Zarr V3, updating DataArray definitions and removing Zarr V2 references.
1 parent 32205a3 commit f3e8731

File tree

1 file changed

+11
-56
lines changed

1 file changed

+11
-56
lines changed

docs/geozarr-minispec.md

Lines changed: 11 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -47,75 +47,30 @@ GeoZarr defines a Zarr hierarchy — a particular arrangement of Zarr arrays and
4747
their attributes. This document defines that hierarchy from the bottom-up, starting with arrays
4848
and their attributes before moving to higher-level structures like groups and their attributes.
4949

50-
The GeoZarr specification can be implemented in Zarr V2 and V3. The main difference between the Zarr V2 and V3 implementations is how the dimension names of an array are specified. The Zarr conventions described in this document (geo-proj, spatial, multiscales) are **Zarr V3 only**; the DataArray rules for Zarr V2 remain as documented.
50+
This specification targets **Zarr V3** exclusively. The geo-proj, spatial, and multiscales conventions are all Zarr V3.
5151

5252
## DataArray
5353

54-
A DataArray is a Zarr array with named axes. The structure of a DataArray depends on the Zarr format.
54+
A DataArray is a Zarr V3 array with named axes.
5555

56-
This section contains the rules for *individual* DataArrays. Additional
57-
constraints on groups of DataArrays are defined in the section on [Datasets](#dataset)
56+
This section contains the rules for *individual* DataArrays. Additional
57+
constraints on groups of DataArrays are defined in the section on [Datasets](#dataset).
5858

59-
### Zarr V2
60-
61-
#### Attributes
62-
63-
| key | type | required | notes |
64-
| ----------------- | ------------------------------------------------------------ | -------- | -------------------------------------------- |
65-
| _ARRAY_DIMENSIONS | array of strings, length matches number of axes of the array | yes | xarray convention for naming axes in Zarr V2 |
66-
67-
#### Array metadata
68-
69-
Zarr V2 DataArrays must have at least 1 dimension, i.e. scalar Zarr V2 DataArrays are not allowed.
70-
71-
In tabular form:
72-
73-
| attribute | constraint | notes |
74-
| --------- | ------------------ | ------------------------ |
75-
| `shape` | at least 1 element | No scalar arrays allowed |
76-
77-
#### Example
78-
79-
```json
80-
{
81-
".zarray": {
82-
"zarr_format": 2,
83-
"dtype": "|u1",
84-
"shape": [10,11,12],
85-
"chunks": [10,11,12],
86-
"filters": null,
87-
"compressor": null,
88-
"order": "C",
89-
"dimension_separator": "/"
90-
},
91-
".zattrs": {
92-
"_ARRAY_DIMENSIONS": ["lat", "lon", "time"]
93-
}
94-
95-
}
96-
```
97-
98-
### Zarr V3
99-
100-
#### Attributes
101-
102-
No particular attributes are required for Zarr V3 DataArrays.
59+
### Attributes
10360

104-
#### Array metadata
61+
No particular attributes are required for DataArrays.
10562

106-
Zarr V3 DataArrays must have at least 1 dimension, i.e. scalar Zarr V3 DataArrays are not allowed. The
107-
`dimension_names` attribute of a Zarr V3 DataArray must be set, the elements of `dimension_names` must
108-
all be strings, and they must all be unique.
63+
### Array metadata
10964

110-
In tabular form:
65+
DataArrays must have at least 1 dimension — scalar arrays are not allowed. The
66+
`dimension_names` field must be set, all elements must be strings, and they must all be unique.
11167

11268
| attribute | constraint | notes |
11369
| ----------------- | -------------------------- | -------------------------------------- |
11470
| `shape` | at least 1 element | No scalar arrays allowed |
115-
| `dimension_names` | an array of unique strings | all array axes must be uniquely named. |
116-
71+
| `dimension_names` | an array of unique strings | All array axes must be uniquely named |
11772

118-
#### Example
73+
### Example
11974

12075
```json
12176
{

0 commit comments

Comments
 (0)