@fideus-labs/ngff-zarr 0.19.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm/io/from_ngff_zarr-browser.d.ts +1 -1
- package/esm/io/from_ngff_zarr-browser.d.ts.map +1 -1
- package/esm/io/from_ngff_zarr-browser.js +33 -0
- package/esm/io/from_ngff_zarr-browser.js.map +1 -1
- package/esm/io/from_ngff_zarr.d.ts +1 -1
- package/esm/io/from_ngff_zarr.d.ts.map +1 -1
- package/esm/io/from_ngff_zarr.js +14 -6
- package/esm/io/from_ngff_zarr.js.map +1 -1
- package/esm/io/to_ngff_zarr-browser.d.ts +1 -5
- package/esm/io/to_ngff_zarr-browser.d.ts.map +1 -1
- package/esm/io/to_ngff_zarr-browser.js +55 -34
- package/esm/io/to_ngff_zarr-browser.js.map +1 -1
- package/esm/io/to_ngff_zarr.d.ts +2 -5
- package/esm/io/to_ngff_zarr.d.ts.map +1 -1
- package/esm/io/to_ngff_zarr.js +58 -37
- package/esm/io/to_ngff_zarr.js.map +1 -1
- package/esm/io/to_ngff_zarr_ozx_common.d.ts +8 -9
- package/esm/io/to_ngff_zarr_ozx_common.d.ts.map +1 -1
- package/esm/io/to_ngff_zarr_ozx_common.js +22 -18
- package/esm/io/to_ngff_zarr_ozx_common.js.map +1 -1
- package/esm/mod.d.ts +1 -1
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -1
- package/esm/mod.js.map +1 -1
- package/esm/process/to_multiscales-shared.d.ts +9 -0
- package/esm/process/to_multiscales-shared.d.ts.map +1 -1
- package/esm/process/to_multiscales-shared.js +19 -3
- package/esm/process/to_multiscales-shared.js.map +1 -1
- package/esm/schemas/coordinate_systems.d.ts +2 -2
- package/esm/schemas/rfc4.d.ts +9 -9
- package/esm/schemas/rfc4.d.ts.map +1 -1
- package/esm/schemas/rfc4.js +6 -0
- package/esm/schemas/rfc4.js.map +1 -1
- package/esm/types/rfc4.d.ts +15 -5
- package/esm/types/rfc4.d.ts.map +1 -1
- package/esm/types/rfc4.js +37 -6
- package/esm/types/rfc4.js.map +1 -1
- package/esm/types/supported_versions.d.ts +23 -1
- package/esm/types/supported_versions.d.ts.map +1 -1
- package/esm/types/supported_versions.js +27 -1
- package/esm/types/supported_versions.js.map +1 -1
- package/esm/types/zarr_metadata.d.ts +93 -1
- package/esm/types/zarr_metadata.d.ts.map +1 -1
- package/esm/types/zarr_metadata.js +30 -0
- package/esm/types/zarr_metadata.js.map +1 -1
- package/esm/utils/from_zarr_attrs.d.ts +12 -0
- package/esm/utils/from_zarr_attrs.d.ts.map +1 -1
- package/esm/utils/from_zarr_attrs.js +239 -3
- package/esm/utils/from_zarr_attrs.js.map +1 -1
- package/esm/utils/parse_metadata.d.ts.map +1 -1
- package/esm/utils/parse_metadata.js +7 -1
- package/esm/utils/parse_metadata.js.map +1 -1
- package/esm/utils/rfc4_validation.d.ts.map +1 -1
- package/esm/utils/rfc4_validation.js +23 -1
- package/esm/utils/rfc4_validation.js.map +1 -1
- package/esm/utils/structural_validation.d.ts +46 -0
- package/esm/utils/structural_validation.d.ts.map +1 -1
- package/esm/utils/structural_validation.js +69 -0
- package/esm/utils/structural_validation.js.map +1 -1
- package/esm/utils/v06_metadata.d.ts +44 -0
- package/esm/utils/v06_metadata.d.ts.map +1 -0
- package/esm/utils/v06_metadata.js +293 -0
- package/esm/utils/v06_metadata.js.map +1 -0
- package/package.json +1 -1
|
@@ -53,6 +53,10 @@ export const SpecRule = {
|
|
|
53
53
|
AxisOrientationConsistentType: "axis-orientation-consistent-type",
|
|
54
54
|
/** If any spatial axis declares an orientation, all spatial axes do. */
|
|
55
55
|
AxisOrientationCompleteness: "axis-orientation-completeness",
|
|
56
|
+
/** A v0.5 entry implies a Zarr v3 store: a leaked `zarr_format` must be 3. */
|
|
57
|
+
ZarrFormat: "zarr-format",
|
|
58
|
+
/** A v0.5 entry must not retain a group-level `ome`/`multiscales` wrapper. */
|
|
59
|
+
OmeNamespace: "ome-namespace",
|
|
56
60
|
/** Each well's rowIndex/columnIndex agrees with the row/column in its path. */
|
|
57
61
|
PlateRowIndexConsistency: "plate-row-index-consistency",
|
|
58
62
|
/** Each well image references an acquisition when the plate declares many. */
|
|
@@ -530,6 +534,64 @@ function pyRepr(value) {
|
|
|
530
534
|
const escaped = value.replaceAll("\\", "\\\\").replaceAll(quote, `\\${quote}`);
|
|
531
535
|
return `${quote}${escaped}${quote}`;
|
|
532
536
|
}
|
|
537
|
+
/**
|
|
538
|
+
* Validate that a v0.5 multiscales entry implies a Zarr v3 store.
|
|
539
|
+
*
|
|
540
|
+
* OME-Zarr v0.5 metadata MUST be backed by a Zarr v3 store
|
|
541
|
+
* (`zarr_format === 3`). A v0.4 dataset is always Zarr v2 and carries no
|
|
542
|
+
* `zarr_format`, so this rule is inert below v0.5. The parsed {@link Metadata}
|
|
543
|
+
* does not surface the group's `zarr_format` byte -- its authoritative on-disk
|
|
544
|
+
* verification is a store-backed concern -- but a `zarr_format` mis-embedded
|
|
545
|
+
* *inside* the multiscale entry (captured in {@link Metadata.extra}) is
|
|
546
|
+
* reachable here: it belongs on the enclosing Zarr v3 group, never on the entry,
|
|
547
|
+
* and any value other than `3` is incompatible with v0.5.
|
|
548
|
+
*
|
|
549
|
+
* @param metadata - The parsed multiscales metadata to validate.
|
|
550
|
+
* @throws {ValidationError} With {@link SpecRule.ZarrFormat} when v0.5 metadata
|
|
551
|
+
* carries a `zarr_format` other than `3` in its `extra` passthrough; location
|
|
552
|
+
* `multiscales[0]`.
|
|
553
|
+
*/
|
|
554
|
+
export function validateZarrFormatForVersion(metadata) {
|
|
555
|
+
if (metadata.version !== "0.5") {
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
558
|
+
const zarrFormat = metadata.extra?.zarr_format;
|
|
559
|
+
if (zarrFormat !== undefined && zarrFormat !== 3) {
|
|
560
|
+
throw new ValidationError(SpecRule.ZarrFormat, `OME-Zarr v0.5 requires a Zarr v3 store (zarr_format == 3), but ` +
|
|
561
|
+
`the entry declares zarr_format = ${String(zarrFormat)}.`, "multiscales[0]");
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Validate that a v0.5 multiscales entry is not double-namespaced.
|
|
566
|
+
*
|
|
567
|
+
* At v0.5 the multiscales metadata lives under the top-level `ome` namespace key
|
|
568
|
+
* of the group's `zarr.json` attributes, with the spec `version` hoisted to
|
|
569
|
+
* `ome.version`. The reader unwraps that namespace into this {@link Metadata}, so
|
|
570
|
+
* the group-level wrapper keys -- `ome` itself and the `multiscales` array --
|
|
571
|
+
* must never reappear *inside* a multiscale entry. A surviving wrapper key
|
|
572
|
+
* (captured in {@link Metadata.extra}) means the document is double-namespaced,
|
|
573
|
+
* was not unwrapped, or is otherwise malformed with respect to the v0.5 `ome`
|
|
574
|
+
* namespacing. A v0.4 store keeps multiscales at the `.zattrs` top level with no
|
|
575
|
+
* `ome` wrapper, so this rule is inert below v0.5.
|
|
576
|
+
*
|
|
577
|
+
* @param metadata - The parsed multiscales metadata to validate.
|
|
578
|
+
* @throws {ValidationError} With {@link SpecRule.OmeNamespace} when v0.5 metadata
|
|
579
|
+
* retains a group-level `ome` or `multiscales` key in its `extra` passthrough;
|
|
580
|
+
* location `multiscales[0]`.
|
|
581
|
+
*/
|
|
582
|
+
export function validateOmeNamespace(metadata) {
|
|
583
|
+
if (metadata.version !== "0.5") {
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
const extra = metadata.extra ?? {};
|
|
587
|
+
for (const wrapperKey of ["ome", "multiscales"]) {
|
|
588
|
+
if (wrapperKey in extra) {
|
|
589
|
+
throw new ValidationError(SpecRule.OmeNamespace, `v0.5 metadata entry retains the group-level '${wrapperKey}' ` +
|
|
590
|
+
`key; the 'ome' namespace wraps the group attributes, not each ` +
|
|
591
|
+
`multiscale entry.`, "multiscales[0]");
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
533
595
|
/**
|
|
534
596
|
* Validate each plate well's recorded indices against its `path`.
|
|
535
597
|
*
|
|
@@ -627,6 +689,11 @@ export function validateWellAcquisition(plate, well) {
|
|
|
627
689
|
* 8. {@link validateDatasetOrder}
|
|
628
690
|
* 9. {@link validateOmeroColorHex}
|
|
629
691
|
* 10. {@link validateAxisOrientation}
|
|
692
|
+
* 11. {@link validateZarrFormatForVersion}
|
|
693
|
+
* 12. {@link validateOmeNamespace}
|
|
694
|
+
*
|
|
695
|
+
* Rules 11 and 12 are the OME-Zarr v0.5 namespacing checks; they fire only for
|
|
696
|
+
* v0.5 metadata and are inert (a no-op) for v0.4.
|
|
630
697
|
*
|
|
631
698
|
* Under {@link ValidationLevel.SchemaOnly} this function returns immediately
|
|
632
699
|
* without running any structural rule -- shape/schema validation is the
|
|
@@ -664,6 +731,8 @@ export function validateStructural(metadata, options) {
|
|
|
664
731
|
validateDatasetOrder(metadata);
|
|
665
732
|
validateOmeroColorHex(metadata);
|
|
666
733
|
validateAxisOrientation(metadata);
|
|
734
|
+
validateZarrFormatForVersion(metadata);
|
|
735
|
+
validateOmeNamespace(metadata);
|
|
667
736
|
}
|
|
668
737
|
/**
|
|
669
738
|
* Run the structural HCS plate rules in canonical specification order.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural_validation.js","sourceRoot":"","sources":["../../src/utils/structural_validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structural_validation.js","sourceRoot":"","sources":["../../src/utils/structural_validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RFC 5 / OME-Zarr v0.6 coordinate-transformation serialization helpers.
|
|
3
|
+
*
|
|
4
|
+
* The in-memory {@link MetadataInterface} model is version-agnostic: axes plus a
|
|
5
|
+
* per-dataset scale and translation. On the wire, v0.6 instead carries
|
|
6
|
+
* `coordinateSystems` and represents each dataset's mapping into the implicit
|
|
7
|
+
* "intrinsic" system as a `sequence` of scale + translation. These helpers
|
|
8
|
+
* convert between the two, mirroring `py/ngff_zarr/v06/zarr_metadata.py`.
|
|
9
|
+
*/
|
|
10
|
+
import type { MetadataInterface, Transform, V06Transform } from "../types/zarr_metadata.js";
|
|
11
|
+
/**
|
|
12
|
+
* Build the on-disk v0.6 `multiscales[0]` entry from the version-agnostic
|
|
13
|
+
* in-memory metadata. `processedAxes` are the RFC-processed axes (orientation
|
|
14
|
+
* filtered per enabled RFCs); they back the intrinsic coordinate system so v0.6
|
|
15
|
+
* matches the v0.4/v0.5 writers.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildV06MultiscalesEntry(metadata: MetadataInterface, processedAxes: Array<Record<string, unknown>>): Record<string, unknown>;
|
|
18
|
+
/** Serialize a single v0.6 transformation to its on-disk dictionary form. */
|
|
19
|
+
export declare function serializeV06Transform(transform: V06Transform): Record<string, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Parse a list of (possibly nested) v0.6 transformation dictionaries into typed
|
|
22
|
+
* {@link V06Transform}s. `coordinateSystemNames` gates which `input`/`output`
|
|
23
|
+
* `name` references are retained, matching the Python `_parse_transforms`: a
|
|
24
|
+
* `name` is kept only when it identifies a known coordinate system, while a
|
|
25
|
+
* `path` (a dataset array reference) is always kept.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseV06Transforms(raw: Array<Record<string, unknown>>, coordinateSystemNames: string[]): V06Transform[];
|
|
28
|
+
/**
|
|
29
|
+
* Extract the effective scale and translation from a dataset's v0.6
|
|
30
|
+
* transformations (unwrapping a `sequence`), defaulting to identity. Mirrors
|
|
31
|
+
* the convenience extraction in the Python `_from_zarr_attrs`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function extractScaleTranslation(transforms: V06Transform[], dims: string[]): {
|
|
34
|
+
scale: number[];
|
|
35
|
+
translation: number[];
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Reduce v0.6 top-level transformations to the simple scale/translation subset
|
|
39
|
+
* permitted by v0.4/v0.5, dropping richer transforms (rotation, affine,
|
|
40
|
+
* sequence) and the coordinate-system references they carry. Used when writing
|
|
41
|
+
* a value read at v0.6 back out at an older version.
|
|
42
|
+
*/
|
|
43
|
+
export declare function legacyTopLevelTransforms(transforms: V06Transform[] | undefined): Transform[] | undefined;
|
|
44
|
+
//# sourceMappingURL=v06_metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v06_metadata.d.ts","sourceRoot":"","sources":["../../src/utils/v06_metadata.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,iBAAiB,EACjB,SAAS,EACT,YAAY,EACb,MAAM,2BAA2B,CAAC;AAGnC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsEzB;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,YAAY,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+CzB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,qBAAqB,EAAE,MAAM,EAAE,GAC9B,YAAY,EAAE,CAEhB;AAyED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,YAAY,EAAE,EAC1B,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAgC5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,GACrC,SAAS,EAAE,GAAG,SAAS,CAazB"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
import { INTRINSIC_COORDINATE_SYSTEM_NAME } from "../types/zarr_metadata.js";
|
|
4
|
+
/**
|
|
5
|
+
* Build the on-disk v0.6 `multiscales[0]` entry from the version-agnostic
|
|
6
|
+
* in-memory metadata. `processedAxes` are the RFC-processed axes (orientation
|
|
7
|
+
* filtered per enabled RFCs); they back the intrinsic coordinate system so v0.6
|
|
8
|
+
* matches the v0.4/v0.5 writers.
|
|
9
|
+
*/
|
|
10
|
+
export function buildV06MultiscalesEntry(metadata, processedAxes) {
|
|
11
|
+
const coordinateSystems = metadata.coordinateSystems && metadata.coordinateSystems.length > 0
|
|
12
|
+
? metadata.coordinateSystems
|
|
13
|
+
: [{ name: INTRINSIC_COORDINATE_SYSTEM_NAME, axes: metadata.axes }];
|
|
14
|
+
const intrinsicName = coordinateSystems[0].name;
|
|
15
|
+
// The first (intrinsic) coordinate system uses the RFC-processed axes; any
|
|
16
|
+
// additional systems (e.g. a user-supplied output space) are serialized
|
|
17
|
+
// verbatim.
|
|
18
|
+
const serializedCoordinateSystems = coordinateSystems.map((cs, index) => ({
|
|
19
|
+
name: cs.name,
|
|
20
|
+
axes: index === 0 ? processedAxes : cs.axes,
|
|
21
|
+
}));
|
|
22
|
+
const datasets = metadata.datasets.map((ds, index) => {
|
|
23
|
+
let scale;
|
|
24
|
+
let translation;
|
|
25
|
+
for (const transform of ds.coordinateTransformations) {
|
|
26
|
+
if (transform.type === "scale") {
|
|
27
|
+
scale = transform.scale;
|
|
28
|
+
}
|
|
29
|
+
else if (transform.type === "translation") {
|
|
30
|
+
translation = transform.translation;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const transformations = [];
|
|
34
|
+
if (scale !== undefined) {
|
|
35
|
+
transformations.push({ type: "scale", scale });
|
|
36
|
+
}
|
|
37
|
+
if (translation !== undefined) {
|
|
38
|
+
transformations.push({ type: "translation", translation });
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
path: ds.path,
|
|
42
|
+
coordinateTransformations: [
|
|
43
|
+
{
|
|
44
|
+
type: "sequence",
|
|
45
|
+
name: `scale${index}_to_${intrinsicName}`,
|
|
46
|
+
input: { path: ds.path },
|
|
47
|
+
output: { name: intrinsicName },
|
|
48
|
+
transformations,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
const entry = {
|
|
54
|
+
name: metadata.name,
|
|
55
|
+
coordinateSystems: serializedCoordinateSystems,
|
|
56
|
+
datasets,
|
|
57
|
+
};
|
|
58
|
+
if (metadata.coordinateTransformations &&
|
|
59
|
+
metadata.coordinateTransformations.length > 0) {
|
|
60
|
+
entry.coordinateTransformations = metadata.coordinateTransformations.map(serializeV06Transform);
|
|
61
|
+
}
|
|
62
|
+
if (metadata.type !== undefined) {
|
|
63
|
+
entry.type = metadata.type;
|
|
64
|
+
}
|
|
65
|
+
if (metadata.metadata !== undefined) {
|
|
66
|
+
entry.metadata = metadata.metadata;
|
|
67
|
+
}
|
|
68
|
+
return entry;
|
|
69
|
+
}
|
|
70
|
+
/** Serialize a single v0.6 transformation to its on-disk dictionary form. */
|
|
71
|
+
export function serializeV06Transform(transform) {
|
|
72
|
+
const out = { type: transform.type };
|
|
73
|
+
if (transform.name !== undefined) {
|
|
74
|
+
out.name = transform.name;
|
|
75
|
+
}
|
|
76
|
+
if (transform.input !== undefined) {
|
|
77
|
+
const input = identifierToDict(transform.input);
|
|
78
|
+
if (input !== undefined) {
|
|
79
|
+
out.input = input;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (transform.output !== undefined) {
|
|
83
|
+
const output = identifierToDict(transform.output);
|
|
84
|
+
if (output !== undefined) {
|
|
85
|
+
out.output = output;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
switch (transform.type) {
|
|
89
|
+
case "identity":
|
|
90
|
+
break;
|
|
91
|
+
case "scale":
|
|
92
|
+
out.scale = transform.scale;
|
|
93
|
+
break;
|
|
94
|
+
case "translation":
|
|
95
|
+
out.translation = transform.translation;
|
|
96
|
+
break;
|
|
97
|
+
case "rotation":
|
|
98
|
+
out.rotation = transform.rotation;
|
|
99
|
+
if (transform.path !== undefined) {
|
|
100
|
+
out.path = transform.path;
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
case "affine":
|
|
104
|
+
out.affine = transform.affine;
|
|
105
|
+
if (transform.path !== undefined) {
|
|
106
|
+
out.path = transform.path;
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
case "sequence":
|
|
110
|
+
out.transformations = transform.transformations.map(serializeV06Transform);
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
return out;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Parse a list of (possibly nested) v0.6 transformation dictionaries into typed
|
|
117
|
+
* {@link V06Transform}s. `coordinateSystemNames` gates which `input`/`output`
|
|
118
|
+
* `name` references are retained, matching the Python `_parse_transforms`: a
|
|
119
|
+
* `name` is kept only when it identifies a known coordinate system, while a
|
|
120
|
+
* `path` (a dataset array reference) is always kept.
|
|
121
|
+
*/
|
|
122
|
+
export function parseV06Transforms(raw, coordinateSystemNames) {
|
|
123
|
+
return raw.map((entry) => parseV06Transform(entry, coordinateSystemNames));
|
|
124
|
+
}
|
|
125
|
+
function parseV06Transform(entry, coordinateSystemNames) {
|
|
126
|
+
const type = String(entry.type);
|
|
127
|
+
let transform;
|
|
128
|
+
switch (type) {
|
|
129
|
+
case "identity":
|
|
130
|
+
transform = { type: "identity" };
|
|
131
|
+
break;
|
|
132
|
+
case "scale":
|
|
133
|
+
transform = { type: "scale", scale: asNumberArray(entry.scale, "scale") };
|
|
134
|
+
break;
|
|
135
|
+
case "translation":
|
|
136
|
+
transform = {
|
|
137
|
+
type: "translation",
|
|
138
|
+
translation: asNumberArray(entry.translation, "translation"),
|
|
139
|
+
};
|
|
140
|
+
break;
|
|
141
|
+
case "rotation":
|
|
142
|
+
transform = {
|
|
143
|
+
type: "rotation",
|
|
144
|
+
rotation: asNumberMatrix(entry.rotation, "rotation"),
|
|
145
|
+
};
|
|
146
|
+
if (typeof entry.path === "string") {
|
|
147
|
+
transform.path = entry.path;
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
case "affine":
|
|
151
|
+
transform = {
|
|
152
|
+
type: "affine",
|
|
153
|
+
affine: asNumberMatrix(entry.affine, "affine"),
|
|
154
|
+
};
|
|
155
|
+
if (typeof entry.path === "string") {
|
|
156
|
+
transform.path = entry.path;
|
|
157
|
+
}
|
|
158
|
+
break;
|
|
159
|
+
case "sequence":
|
|
160
|
+
if (!Array.isArray(entry.transformations)) {
|
|
161
|
+
throw new Error("Invalid sequence transform: 'transformations' must be an array");
|
|
162
|
+
}
|
|
163
|
+
transform = {
|
|
164
|
+
type: "sequence",
|
|
165
|
+
transformations: parseV06Transforms(entry.transformations, coordinateSystemNames),
|
|
166
|
+
};
|
|
167
|
+
break;
|
|
168
|
+
default:
|
|
169
|
+
throw new Error(`Unsupported transform type: ${type}`);
|
|
170
|
+
}
|
|
171
|
+
const input = dictToIdentifier(entry.input, coordinateSystemNames);
|
|
172
|
+
if (input !== undefined) {
|
|
173
|
+
transform.input = input;
|
|
174
|
+
}
|
|
175
|
+
const output = dictToIdentifier(entry.output, coordinateSystemNames);
|
|
176
|
+
if (output !== undefined) {
|
|
177
|
+
transform.output = output;
|
|
178
|
+
}
|
|
179
|
+
if (typeof entry.name === "string") {
|
|
180
|
+
transform.name = entry.name;
|
|
181
|
+
}
|
|
182
|
+
return transform;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Extract the effective scale and translation from a dataset's v0.6
|
|
186
|
+
* transformations (unwrapping a `sequence`), defaulting to identity. Mirrors
|
|
187
|
+
* the convenience extraction in the Python `_from_zarr_attrs`.
|
|
188
|
+
*/
|
|
189
|
+
export function extractScaleTranslation(transforms, dims) {
|
|
190
|
+
let scale = dims.map(() => 1.0);
|
|
191
|
+
let translation = dims.map(() => 0.0);
|
|
192
|
+
for (const transform of transforms) {
|
|
193
|
+
if (transform.type === "sequence") {
|
|
194
|
+
for (const sub of transform.transformations) {
|
|
195
|
+
if (sub.type === "scale") {
|
|
196
|
+
scale = sub.scale;
|
|
197
|
+
}
|
|
198
|
+
else if (sub.type === "identity") {
|
|
199
|
+
// Within a sequence an identity resets only the scale, not the
|
|
200
|
+
// translation, matching the Python reference `_from_zarr_attrs`. A
|
|
201
|
+
// sibling translation composes with the identity (identity ∘
|
|
202
|
+
// translation = translation), so it must be preserved. Spec-conformant
|
|
203
|
+
// dataset sequences are `[scale, translation]` and never include an
|
|
204
|
+
// identity, so this branch is defensive.
|
|
205
|
+
scale = dims.map(() => 1.0);
|
|
206
|
+
}
|
|
207
|
+
else if (sub.type === "translation") {
|
|
208
|
+
translation = sub.translation;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else if (transform.type === "scale") {
|
|
213
|
+
scale = transform.scale;
|
|
214
|
+
}
|
|
215
|
+
else if (transform.type === "translation") {
|
|
216
|
+
translation = transform.translation;
|
|
217
|
+
}
|
|
218
|
+
else if (transform.type === "identity") {
|
|
219
|
+
scale = dims.map(() => 1.0);
|
|
220
|
+
translation = dims.map(() => 0.0);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return { scale, translation };
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Reduce v0.6 top-level transformations to the simple scale/translation subset
|
|
227
|
+
* permitted by v0.4/v0.5, dropping richer transforms (rotation, affine,
|
|
228
|
+
* sequence) and the coordinate-system references they carry. Used when writing
|
|
229
|
+
* a value read at v0.6 back out at an older version.
|
|
230
|
+
*/
|
|
231
|
+
export function legacyTopLevelTransforms(transforms) {
|
|
232
|
+
if (!transforms) {
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
235
|
+
const simple = [];
|
|
236
|
+
for (const transform of transforms) {
|
|
237
|
+
if (transform.type === "scale") {
|
|
238
|
+
simple.push({ type: "scale", scale: transform.scale });
|
|
239
|
+
}
|
|
240
|
+
else if (transform.type === "translation") {
|
|
241
|
+
simple.push({ type: "translation", translation: transform.translation });
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return simple.length > 0 ? simple : undefined;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Validate that a parsed transform field is a flat array of numbers. The reader
|
|
248
|
+
* consumes untrusted on-disk metadata, so a malformed value (missing, a string,
|
|
249
|
+
* a nested array) is rejected with a clear message rather than passed through an
|
|
250
|
+
* unchecked `as number[]` cast that surfaces as a confusing error downstream.
|
|
251
|
+
*/
|
|
252
|
+
function asNumberArray(value, field) {
|
|
253
|
+
if (!Array.isArray(value) || !value.every((v) => typeof v === "number")) {
|
|
254
|
+
throw new Error(`Invalid ${field} transform: '${field}' must be an array of numbers`);
|
|
255
|
+
}
|
|
256
|
+
return value;
|
|
257
|
+
}
|
|
258
|
+
/** Validate that a parsed transform field is a 2D array of numbers. */
|
|
259
|
+
function asNumberMatrix(value, field) {
|
|
260
|
+
if (!Array.isArray(value) ||
|
|
261
|
+
!value.every((row) => Array.isArray(row) && row.every((v) => typeof v === "number"))) {
|
|
262
|
+
throw new Error(`Invalid ${field} transform: '${field}' must be a 2D array of numbers`);
|
|
263
|
+
}
|
|
264
|
+
return value;
|
|
265
|
+
}
|
|
266
|
+
function identifierToDict(id) {
|
|
267
|
+
const out = {};
|
|
268
|
+
if (id.path !== undefined) {
|
|
269
|
+
out.path = id.path;
|
|
270
|
+
}
|
|
271
|
+
if (id.name !== undefined) {
|
|
272
|
+
out.name = id.name;
|
|
273
|
+
}
|
|
274
|
+
// An identifier carrying neither `path` nor `name` is meaningless and invalid
|
|
275
|
+
// per the v0.6 schema (input requires a path, output requires a name); omit
|
|
276
|
+
// it rather than emitting `input: {}` / `output: {}`.
|
|
277
|
+
return out.path !== undefined || out.name !== undefined ? out : undefined;
|
|
278
|
+
}
|
|
279
|
+
function dictToIdentifier(value, coordinateSystemNames) {
|
|
280
|
+
if (value === null || typeof value !== "object") {
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
const dict = value;
|
|
284
|
+
const id = {};
|
|
285
|
+
if (typeof dict.name === "string" && coordinateSystemNames.includes(dict.name)) {
|
|
286
|
+
id.name = dict.name;
|
|
287
|
+
}
|
|
288
|
+
if (typeof dict.path === "string") {
|
|
289
|
+
id.path = dict.path;
|
|
290
|
+
}
|
|
291
|
+
return id.name !== undefined || id.path !== undefined ? id : undefined;
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=v06_metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v06_metadata.js","sourceRoot":"","sources":["../../src/utils/v06_metadata.ts"],"names":[],"mappings":"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"}
|