From 53df2a086a62ce2124bfbdd60c2f5934509c9371 Mon Sep 17 00:00:00 2001 From: Jan Gleixner Date: Wed, 4 Nov 2026 21:06:07 +0100 Subject: [PATCH 1/3] Versions: NGFF column lists the recorded version string instead of claiming an NGFF version --- storage-format-versions.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/storage-format-versions.md b/storage-format-versions.md index a6075b2..668fbf0 100644 --- a/storage-format-versions.md +++ b/storage-format-versions.md @@ -62,12 +62,12 @@ Candidate changes for storage format 0.5 (container format 0.3); none is agreed Each row is a storage format version: what a `spatialdata` release writes, and the version of the abstract data model it encodes. -| Storage format | Data model | `spatialdata` writes | container | raster | shapes | points | tables | Zarr | OME-Zarr (NGFF) | -|----------------|------------|----------------------|-----------|--------|--------|--------|--------|------|-----------------| -| **0.4** | **1.0** | ≥ 0.6.0 (default) | **0.2** | **0.3** | **0.3** | **0.2** | **0.2** | v3 | 0.5 (`"0.5-dev-spatialdata"`) | -| 0.3 | 1.0 | 0.4.0 – 0.5.x; ≥ 0.6.0 (container 0.1 on request, deprecated) | 0.1 | 0.2 | 0.2 | 0.1 | 0.1 | v2 | 0.4 (`"0.4-dev-spatialdata"`) | -| 0.2 | 1.0 | 0.2.2 – 0.3.x | 0.1 (recorded from 0.3.0) | 0.1 | 0.2 | 0.1 | 0.1 | v2 | 0.4 (`"0.4"`) | -| 0.1 | 1.0 | < 0.2.2 | 0.1 (not recorded) | 0.1 | 0.1 | 0.1 | 0.1 | v2 | 0.4 (`"0.4"`) | +| Storage format | Data model | `spatialdata` writes | container | raster | shapes | points | tables | Zarr | NGFF version string | +|----------------|------------|----------------------|-----------|--------|--------|--------|--------|------|---------------------| +| **0.4** | **1.0** | ≥ 0.6.0 (default) | **0.2** | **0.3** | **0.3** | **0.2** | **0.2** | v3 | `"0.5-dev-spatialdata"` | +| 0.3 | 1.0 | 0.4.0 – 0.5.x; ≥ 0.6.0 (container 0.1 on request, deprecated) | 0.1 | 0.2 | 0.2 | 0.1 | 0.1 | v2 | `"0.4-dev-spatialdata"` | +| 0.2 | 1.0 | 0.2.2 – 0.3.x | 0.1 (recorded from 0.3.0) | 0.1 | 0.2 | 0.1 | 0.1 | v2 | `"0.4"` | +| 0.1 | 1.0 | < 0.2.2 | 0.1 (not recorded) | 0.1 | 0.1 | 0.1 | 0.1 | v2 | `"0.4"` | A container 0.2 store holds only the element versions in the first row. A container 0.1 store can hold any of the element versions in the other rows; stores without a container version are read as From 83a939d7062d0970016dae721604a6c31740e129 Mon Sep 17 00:00:00 2001 From: Jan Gleixner Date: Thu, 5 Nov 2026 16:06:19 +0100 Subject: [PATCH 2/3] Versions: NGFF cells add what the metadata is below the recorded string --- storage-format-versions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/storage-format-versions.md b/storage-format-versions.md index 668fbf0..7181d18 100644 --- a/storage-format-versions.md +++ b/storage-format-versions.md @@ -64,10 +64,10 @@ abstract data model it encodes. | Storage format | Data model | `spatialdata` writes | container | raster | shapes | points | tables | Zarr | NGFF version string | |----------------|------------|----------------------|-----------|--------|--------|--------|--------|------|---------------------| -| **0.4** | **1.0** | ≥ 0.6.0 (default) | **0.2** | **0.3** | **0.3** | **0.2** | **0.2** | v3 | `"0.5-dev-spatialdata"` | -| 0.3 | 1.0 | 0.4.0 – 0.5.x; ≥ 0.6.0 (container 0.1 on request, deprecated) | 0.1 | 0.2 | 0.2 | 0.1 | 0.1 | v2 | `"0.4-dev-spatialdata"` | -| 0.2 | 1.0 | 0.2.2 – 0.3.x | 0.1 (recorded from 0.3.0) | 0.1 | 0.2 | 0.1 | 0.1 | v2 | `"0.4"` | -| 0.1 | 1.0 | < 0.2.2 | 0.1 (not recorded) | 0.1 | 0.1 | 0.1 | 0.1 | v2 | `"0.4"` | +| **0.4** | **1.0** | ≥ 0.6.0 (default) | **0.2** | **0.3** | **0.3** | **0.2** | **0.2** | v3 | `"0.5-dev-spatialdata"`
NGFF 0.5 with RFC-5 draft transformations | +| 0.3 | 1.0 | 0.4.0 – 0.5.x; ≥ 0.6.0 (container 0.1 on request, deprecated) | 0.1 | 0.2 | 0.2 | 0.1 | 0.1 | v2 | `"0.4-dev-spatialdata"`
NGFF 0.4 with RFC-5 draft transformations | +| 0.2 | 1.0 | 0.2.2 – 0.3.x | 0.1 (recorded from 0.3.0) | 0.1 | 0.2 | 0.1 | 0.1 | v2 | `"0.4"`
NGFF 0.4 with RFC-5 draft transformations (not NGFF 0.4 compliant) | +| 0.1 | 1.0 | < 0.2.2 | 0.1 (not recorded) | 0.1 | 0.1 | 0.1 | 0.1 | v2 | `"0.4"`
NGFF 0.4 with RFC-5 draft transformations (not NGFF 0.4 compliant) | A container 0.2 store holds only the element versions in the first row. A container 0.1 store can hold any of the element versions in the other rows; stores without a container version are read as From dde5895710c2ccad66d3bdcb91df15a8f6fd4404 Mon Sep 17 00:00:00 2001 From: Jan Gleixner Date: Thu, 5 Nov 2026 19:41:56 +0100 Subject: [PATCH 3/3] Versions: NGFF cells read 'NGFF 0.x + draft RFC-5 (transformations)' with a footnote on compliance --- storage-format-versions.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/storage-format-versions.md b/storage-format-versions.md index 7181d18..feaae09 100644 --- a/storage-format-versions.md +++ b/storage-format-versions.md @@ -64,15 +64,21 @@ abstract data model it encodes. | Storage format | Data model | `spatialdata` writes | container | raster | shapes | points | tables | Zarr | NGFF version string | |----------------|------------|----------------------|-----------|--------|--------|--------|--------|------|---------------------| -| **0.4** | **1.0** | ≥ 0.6.0 (default) | **0.2** | **0.3** | **0.3** | **0.2** | **0.2** | v3 | `"0.5-dev-spatialdata"`
NGFF 0.5 with RFC-5 draft transformations | -| 0.3 | 1.0 | 0.4.0 – 0.5.x; ≥ 0.6.0 (container 0.1 on request, deprecated) | 0.1 | 0.2 | 0.2 | 0.1 | 0.1 | v2 | `"0.4-dev-spatialdata"`
NGFF 0.4 with RFC-5 draft transformations | -| 0.2 | 1.0 | 0.2.2 – 0.3.x | 0.1 (recorded from 0.3.0) | 0.1 | 0.2 | 0.1 | 0.1 | v2 | `"0.4"`
NGFF 0.4 with RFC-5 draft transformations (not NGFF 0.4 compliant) | -| 0.1 | 1.0 | < 0.2.2 | 0.1 (not recorded) | 0.1 | 0.1 | 0.1 | 0.1 | v2 | `"0.4"`
NGFF 0.4 with RFC-5 draft transformations (not NGFF 0.4 compliant) | +| **0.4** | **1.0** | ≥ 0.6.0 (default) | **0.2** | **0.3** | **0.3** | **0.2** | **0.2** | v3 | `"0.5-dev-spatialdata"`
NGFF 0.5 + draft RFC-5 (transformations)[^ngff-compliance] | +| 0.3 | 1.0 | 0.4.0 – 0.5.x; ≥ 0.6.0 (container 0.1 on request, deprecated) | 0.1 | 0.2 | 0.2 | 0.1 | 0.1 | v2 | `"0.4-dev-spatialdata"`
NGFF 0.4 + draft RFC-5 (transformations)[^ngff-compliance] | +| 0.2 | 1.0 | 0.2.2 – 0.3.x | 0.1 (recorded from 0.3.0) | 0.1 | 0.2 | 0.1 | 0.1 | v2 | `"0.4"`
NGFF 0.4 + draft RFC-5 (transformations)[^ngff-compliance] | +| 0.1 | 1.0 | < 0.2.2 | 0.1 (not recorded) | 0.1 | 0.1 | 0.1 | 0.1 | v2 | `"0.4"`
NGFF 0.4 + draft RFC-5 (transformations)[^ngff-compliance] | A container 0.2 store holds only the element versions in the first row. A container 0.1 store can hold any of the element versions in the other rows; stores without a container version are read as container 0.1. `spatialdata` reads every combination listed here. +[^ngff-compliance]: Not compliant with any released NGFF version: the raster metadata follows the + listed NGFF version except for the coordinate transformations, which follow the draft of RFC-5. + The recorded `"0.4"` of raster 0.1 therefore overstates compliance; from raster 0.2 the + `-dev-spatialdata` suffix marks the deviation. We aim for compliance with NGFF 0.6, which is + expected to adopt RFC-5 (see {ref}`storage-next`). + Storage format 0.3 is written by `spatialdata` 0.4.0 – 0.5.x and, on request, by `spatialdata` 0.6.0 and later. Both write the same container, element, Zarr and NGFF versions; stores written by the later releases differ only in ways that change no version, such as per-level translations,