From 9472330b916c75f7e337e56b61c275d3fff9b5b4 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 4 Jun 2026 11:14:59 -0400 Subject: [PATCH 1/4] RFC-4: Clarify subject-local orientation and add layered-tissue terms Address review 3 (Dave Horsfall / Hannifa Lab, ome/ngff#435). Add a "Subject-Local vs. Patient-Global Orientation" clarification explaining that the orientation "subject" may be a local tissue structure (e.g. a biopsy or histology slide) rather than a whole organism. This makes the field applicable to spatial transcriptomics and histopathology without requiring whole-organism or atlas registration. Expand the anatomical controlled vocabulary with six terms for layered and polarized tissues: - superficial-to-deep / deep-to-superficial (skin, gut, cortex) - apical-to-basal / basal-to-apical (epithelial layers, polarized cells) - apex-to-base / base-to-apex (organs such as the heart or lungs) The values are added consistently to the LinkML source (orientation.yml) and its derived artifacts (orientation.schema.json, orientation.py, orientation.ts, markdown/AnatomicalOrientationValues.md) and to every representation embedded in index.md (vocabulary list, permissible-values table, JSON-Schema, Pydantic, and TypeScript). The now-redundant "histological: basal/apical" future-domain example is removed, since those values are now part of the anatomical vocabulary. Co-Authored-By: Claude Opus 4.8 (1M context) --- rfc/4/index.md | 56 ++++++++++++++++++- rfc/4/markdown/AnatomicalOrientationValues.md | 6 ++ rfc/4/orientation.py | 24 ++++++++ rfc/4/orientation.schema.json | 8 ++- rfc/4/orientation.ts | 12 ++++ rfc/4/orientation.yml | 6 ++ 6 files changed, 109 insertions(+), 3 deletions(-) diff --git a/rfc/4/index.md b/rfc/4/index.md index e56021df..a9368191 100644 --- a/rfc/4/index.md +++ b/rfc/4/index.md @@ -89,6 +89,14 @@ This metadata MUST only be used in cases where there is a single subject in the The `orientation` field is structured as an object and MUST have a `type` field that specifies the orientation domain (e.g., "anatomical") and MUST have a `value` field that specifies the specific orientation within that domain. Valid `type` strings are defined in this document -- currently only `"anatomical"`. +### Subject-Local vs. Patient-Global Orientation + +The "subject" referenced above need not be a whole organism. It MAY be a local anatomical structure, such as a tissue biopsy, histology slide, or dissected organ. The `orientation` field describes the orientation of whatever structure is present in the acquired image or extracted region-of-interest, at whatever spatial scale. + +This distinction matters for fields such as spatial transcriptomics and histopathology, where the sample is frequently a tissue specimen whose position and orientation relative to the whole donor (its "patient-global" orientation) is unknown, but whose internal ("subject-local") orientation is well defined. For example, the depth axis of a skin biopsy is `superficial-to-deep` regardless of where on the body the biopsy was taken or how the specimen happened to be placed on the slide. In these cases the requirement that the subject be "roughly aligned to the imaging axes" applies to the local tissue structure rather than to a whole-organism coordinate frame. + +Supporting subject-local orientation makes this metadata applicable to the tissue-profiling community without requiring registration of the specimen to a whole-organism or atlas coordinate system. When such a registration is available, it can be expressed with RFC-5 coordinate transformations relating the subject-local axes to a patient-global or atlas coordinate system (see the *Interaction with RFC-5* section below). + ### Coordinate Direction Convention The directional orientation values (e.g., "anterior-to-posterior", "left-to-right") specify the direction from lowest to highest coordinates along the axis. For example, an axis with `"orientation": {"type": "anatomical", "value": "anterior-to-posterior"}` indicates that: @@ -135,7 +143,6 @@ This RFC focuses on anatomical orientation as the primary use case, but the stru - engineering/microfluidics: upstream/downstream (flow direction) - geographical: north/south, east/west - oceanographic: increasing-depth -- histological: basal/apical For anatomical orientation, the controlled vocabulary for the `orientation` field's `value` will include: @@ -163,6 +170,14 @@ For anatomical orientation, the controlled vocabulary for the `orientation` fiel - `dorsal-to-ventral` (back/top-to-belly/bottom) - `ventral-to-dorsal` (belly/bottom-to-back/top) +**For layered and polarized tissues (subject-local):** +- `superficial-to-deep` (outer surface to inner depth, e.g. skin, gut, cortex) +- `deep-to-superficial` (inner depth to outer surface) +- `apical-to-basal` (apical to basal surface, e.g. epithelial layers, polarized cells) +- `basal-to-apical` (basal to apical surface) +- `apex-to-base` (tip to broad base, e.g. heart, lungs) +- `base-to-apex` (broad base to tip) + Note: In bipeds, the terms rostral/caudal and dorsal/ventral are ambiguous because their orientation depends on the anatomical structure. For example, these directions are orthogonal when describing the human brain versus the spinal cord. Therefore, the unambiguous terms anterior/posterior and inferior/superior (sometimes referred to as head/foot) are generally preferred for bipeds. A set of NGFF `axes` MUST only have one of the set `{ "left-to-right", "right-to-left" }` or `{ "anterior-to-posterior", "posterior-to-anterior" }` or the remaining values. @@ -204,6 +219,12 @@ Anatomical orientation refers to the specific arrangement and directional alignm | caudal-to-cranial | Describes the directional orientation from the tail (caudal) to the head (cranial) end of an anatomical structure or body. | | | | proximal-to-distal | Describes the directional orientation from the center of the body to the periphery of an anatomical structure or limb. | | | | distal-to-proximal | Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. | | | +| superficial-to-deep | Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. | | | +| deep-to-superficial | Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. | | | +| apical-to-basal | Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. | | | +| basal-to-apical | Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. | | | +| apex-to-base | Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. | | | +| base-to-apex | Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. | | | ## Requirements @@ -291,7 +312,13 @@ In JSON-Schema: "cranial-to-caudal", "caudal-to-cranial", "proximal-to-distal", - "distal-to-proximal" + "distal-to-proximal", + "superficial-to-deep", + "deep-to-superficial", + "apical-to-basal", + "basal-to-apical", + "apex-to-base", + "base-to-apex" ] } }, @@ -355,6 +382,18 @@ class AnatomicalOrientationValue(str, Enum): proximal_to_distal = "proximal-to-distal" # Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. distal_to_proximal = "distal-to-proximal" + # Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. + superficial_to_deep = "superficial-to-deep" + # Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. + deep_to_superficial = "deep-to-superficial" + # Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. + apical_to_basal = "apical-to-basal" + # Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. + basal_to_apical = "basal-to-apical" + # Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. + apex_to_base = "apex-to-base" + # Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. + base_to_apex = "base-to-apex" class Orientation(BaseModel): """ @@ -421,6 +460,18 @@ enum AnatomicalOrientationValue { proximal_to_distal = "proximal-to-distal", /** Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. */ distal_to_proximal = "distal-to-proximal", + /** Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. */ + superficial_to_deep = "superficial-to-deep", + /** Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. */ + deep_to_superficial = "deep-to-superficial", + /** Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. */ + apical_to_basal = "apical-to-basal", + /** Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. */ + basal_to_apical = "basal-to-apical", + /** Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. */ + apex_to_base = "apex-to-base", + /** Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. */ + base_to_apex = "base-to-apex", } ``` @@ -507,3 +558,4 @@ End-user applications SHOULD display the encoded information with, for example, | 2025-07-23 | Clarify that the type fields are MUST's and the only currently defined value is "anatomical". | [https://github.com/ome/ngff/pull/329](https://github.com/ome/ngff/pull/329) | | 2025-07-23 | Use a Pydantic Literal for anatomical type | [https://github.com/ome/ngff/pull/330](https://github.com/ome/ngff/pull/330) | | 2026-01-20 | Clarify coordinate direction convention | [https://github.com/ome/ngff/pull/428](https://github.com/ome/ngff/pull/428) | +| 2026-06-03 | Clarify subject-local vs. patient-global orientation and expand the controlled vocabulary with layered- and polarized-tissue terms (superficial/deep, apical/basal, apex/base), per [review 3](./reviews/3/index). | [https://github.com/ome/ngff/pull/435](https://github.com/ome/ngff/pull/435) | diff --git a/rfc/4/markdown/AnatomicalOrientationValues.md b/rfc/4/markdown/AnatomicalOrientationValues.md index fd7e57b2..52b145c1 100644 --- a/rfc/4/markdown/AnatomicalOrientationValues.md +++ b/rfc/4/markdown/AnatomicalOrientationValues.md @@ -31,4 +31,10 @@ URI: [ngff:AnatomicalOrientationValues](https://w3id.org/ome/ngff/AnatomicalOrie | caudal-to-cranial | Describes the directional orientation from the tail (caudal) to the head (cranial) end of an anatomical structure or body. | | | | proximal-to-distal | Describes the directional orientation from the center of the body to the periphery of an anatomical structure or limb. | | | | distal-to-proximal | Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. | | | +| superficial-to-deep | Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. | | | +| deep-to-superficial | Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. | | | +| apical-to-basal | Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. | | | +| basal-to-apical | Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. | | | +| apex-to-base | Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. | | | +| base-to-apex | Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. | | | diff --git a/rfc/4/orientation.py b/rfc/4/orientation.py index 805a9f24..fe67266c 100644 --- a/rfc/4/orientation.py +++ b/rfc/4/orientation.py @@ -275,6 +275,30 @@ class AnatomicalOrientationValues(str, Enum): """ Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. """ + superficial_to_deep = "superficial-to-deep" + """ + Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. + """ + deep_to_superficial = "deep-to-superficial" + """ + Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. + """ + apical_to_basal = "apical-to-basal" + """ + Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. + """ + basal_to_apical = "basal-to-apical" + """ + Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. + """ + apex_to_base = "apex-to-base" + """ + Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. + """ + base_to_apex = "base-to-apex" + """ + Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. + """ diff --git a/rfc/4/orientation.schema.json b/rfc/4/orientation.schema.json index 5914a92e..eb2d4cae 100644 --- a/rfc/4/orientation.schema.json +++ b/rfc/4/orientation.schema.json @@ -38,7 +38,13 @@ "cranial-to-caudal", "caudal-to-cranial", "proximal-to-distal", - "distal-to-proximal" + "distal-to-proximal", + "superficial-to-deep", + "deep-to-superficial", + "apical-to-basal", + "basal-to-apical", + "apex-to-base", + "base-to-apex" ], "title": "AnatomicalOrientationValues", "type": "string" diff --git a/rfc/4/orientation.ts b/rfc/4/orientation.ts index 8ca2c583..36ea306f 100644 --- a/rfc/4/orientation.ts +++ b/rfc/4/orientation.ts @@ -133,6 +133,18 @@ export enum AnatomicalOrientationValues { proximal_to_distal = "proximal-to-distal", /** Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. */ distal_to_proximal = "distal-to-proximal", + /** Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. */ + superficial_to_deep = "superficial-to-deep", + /** Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. */ + deep_to_superficial = "deep-to-superficial", + /** Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. */ + apical_to_basal = "apical-to-basal", + /** Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. */ + basal_to_apical = "basal-to-apical", + /** Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. */ + apex_to_base = "apex-to-base", + /** Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. */ + base_to_apex = "base-to-apex", }; diff --git a/rfc/4/orientation.yml b/rfc/4/orientation.yml index f64c6870..ef97dbce 100644 --- a/rfc/4/orientation.yml +++ b/rfc/4/orientation.yml @@ -328,3 +328,9 @@ enums: caudal-to-cranial: Describes the directional orientation from the tail (caudal) to the head (cranial) end of an anatomical structure or body. proximal-to-distal: Describes the directional orientation from the center of the body to the periphery of an anatomical structure or limb. distal-to-proximal: Describes the directional orientation from the periphery of an anatomical structure or limb to the center of the body. + superficial-to-deep: Describes the directional orientation from the outer surface (superficial) to the inner depth (deep) of a layered tissue such as skin, gut, or cortex. + deep-to-superficial: Describes the directional orientation from the inner depth (deep) to the outer surface (superficial) of a layered tissue such as skin, gut, or cortex. + apical-to-basal: Describes the directional orientation from the apical surface (apical) to the basal surface (basal) of an epithelial layer or polarized cell structure. + basal-to-apical: Describes the directional orientation from the basal surface (basal) to the apical surface (apical) of an epithelial layer or polarized cell structure. + apex-to-base: Describes the directional orientation from the tip (apex) to the broad base (base) of an organ such as the heart or lung. + base-to-apex: Describes the directional orientation from the broad base (base) to the tip (apex) of an organ such as the heart or lung. From 254c1b2d14e175577aca20705247a0b91b789677 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 4 Jun 2026 11:57:59 -0400 Subject: [PATCH 2/4] RFC-4: Clarify that absent and null orientation are equivalent An axis with no `orientation` field and an axis with an explicit `"orientation": null` are equivalent: in both cases the orientation is undefined, with no implicit default. This matches the OME-Zarr convention that only fields which are present carry meaning, and the reference implementation's behavior of culling a null orientation rather than serializing it. Add the clarification to the "Default Value" section and a changelog entry referencing fideus-labs/ngff-zarr#523. Co-Authored-By: Claude Opus 4.8 (1M context) --- rfc/4/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rfc/4/index.md b/rfc/4/index.md index a9368191..3a85c90a 100644 --- a/rfc/4/index.md +++ b/rfc/4/index.md @@ -188,6 +188,8 @@ For images of biped or quadruped subjects, anatomical `orientation` SHOULD be ex If no orientation is specified, there is no implicit default value. Applications MAY assume a default orientation but SHOULD warn users that orientation metadata is expected but missing. +An axis with no `orientation` field and an axis whose `orientation` is `null` are equivalent: in both cases the orientation of that axis is undefined. Consistent with the OME-Zarr convention that only fields which are present carry meaning, there is no semantic difference between an absent `orientation` and an explicit `null`, and neither implies a default value. Writers SHOULD omit the field rather than serialize `"orientation": null`. + ## Coding Scheme We define the [LinkML encoding scheme](./orientation.yml) to enumerate the possible values @@ -559,3 +561,4 @@ End-user applications SHOULD display the encoded information with, for example, | 2025-07-23 | Use a Pydantic Literal for anatomical type | [https://github.com/ome/ngff/pull/330](https://github.com/ome/ngff/pull/330) | | 2026-01-20 | Clarify coordinate direction convention | [https://github.com/ome/ngff/pull/428](https://github.com/ome/ngff/pull/428) | | 2026-06-03 | Clarify subject-local vs. patient-global orientation and expand the controlled vocabulary with layered- and polarized-tissue terms (superficial/deep, apical/basal, apex/base), per [review 3](./reviews/3/index). | [https://github.com/ome/ngff/pull/435](https://github.com/ome/ngff/pull/435) | +| 2026-06-04 | Clarify that an absent `orientation` and an explicit `null` `orientation` are equivalent and leave the orientation undefined. | [https://github.com/fideus-labs/ngff-zarr/pull/523](https://github.com/fideus-labs/ngff-zarr/pull/523) | From 3912bced422db5d37ae9fed938e4c2833a83e037 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Fri, 12 Jun 2026 05:14:01 -0400 Subject: [PATCH 3/4] RFC-4: Note primary orientation and future vector annotations Per the most recent PR #528 discussion, clarify that the orientation field describes a single, primary (subject-local) orientation and that additional/secondary orientations (e.g. a biopsy's position within the whole donor body) are not supported at this time. Note that if a generic vector data structure is added to OME-Zarr, these orientation annotations could be applied to such vectors, allowing multiple orientations where anatomical orientation only makes sense locally. Record the primary-vs-secondary modeling decision in the alternatives section and add a changelog entry. Co-Authored-By: Claude Opus 4.8 (1M context) --- rfc/4/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rfc/4/index.md b/rfc/4/index.md index 3a85c90a..292a9f79 100644 --- a/rfc/4/index.md +++ b/rfc/4/index.md @@ -97,6 +97,8 @@ This distinction matters for fields such as spatial transcriptomics and histopat Supporting subject-local orientation makes this metadata applicable to the tissue-profiling community without requiring registration of the specimen to a whole-organism or atlas coordinate system. When such a registration is available, it can be expressed with RFC-5 coordinate transformations relating the subject-local axes to a patient-global or atlas coordinate system (see the *Interaction with RFC-5* section below). +A single subject may carry more than one meaningful orientation. For example, a biopsy taken from a whole-body cleared specimen has both a local tissue orientation and a secondary orientation within the donor's whole body. The `orientation` field defined here describes a single, *primary* orientation of the structure in the image. Additional (secondary) orientations are not supported at this time. If a generic vector data structure is added to the OME-Zarr standard in the future, these orientation annotations could be applied to such vectors, allowing multiple orientations to be expressed where anatomical orientation only makes sense locally (for example, an image containing multiple organs or multiple organisms). + ### Coordinate Direction Convention The directional orientation values (e.g., "anterior-to-posterior", "left-to-right") specify the direction from lowest to highest coordinates along the axis. For example, an axis with `"orientation": {"type": "anatomical", "value": "anterior-to-posterior"}` indicates that: @@ -482,6 +484,7 @@ enum AnatomicalOrientationValue { - **Costs:** This will add another field to the axes metadata. While some implementers do not deal with anatomical orientation, this field is optional. - **Risks:** Incorrect implementation or interpretation of the new field could lead to data misalignment. - **Alternatives:** Continue using existing methods with assumed or undefined orientations, which is error-prone. +- **Primary vs. secondary orientation:** Modeling a subject as carrying both a primary (subject-local) and a secondary (e.g. patient-global) orientation simultaneously was considered. A single subject can have more than one meaningful orientation — for example, a biopsy taken from a whole-body cleared specimen has a local tissue orientation as well as a secondary orientation within the donor's whole body. Supporting multiple orientations per axis was judged to be overkill for the current emerging use cases, so the `orientation` field describes only a single, primary orientation and additional orientations are not supported at this time. If a generic vector data structure is added to the OME-Zarr standard in the future, these orientation annotations could instead be applied to such vectors, allowing multiple orientations to be expressed where anatomical orientation only makes sense locally (for example, an image containing multiple organs or multiple organisms). ## Abandoned Ideas @@ -562,3 +565,4 @@ End-user applications SHOULD display the encoded information with, for example, | 2026-01-20 | Clarify coordinate direction convention | [https://github.com/ome/ngff/pull/428](https://github.com/ome/ngff/pull/428) | | 2026-06-03 | Clarify subject-local vs. patient-global orientation and expand the controlled vocabulary with layered- and polarized-tissue terms (superficial/deep, apical/basal, apex/base), per [review 3](./reviews/3/index). | [https://github.com/ome/ngff/pull/435](https://github.com/ome/ngff/pull/435) | | 2026-06-04 | Clarify that an absent `orientation` and an explicit `null` `orientation` are equivalent and leave the orientation undefined. | [https://github.com/fideus-labs/ngff-zarr/pull/523](https://github.com/fideus-labs/ngff-zarr/pull/523) | +| 2026-06-12 | Clarify that `orientation` describes a single, primary orientation; note that secondary orientations are not supported and could be expressed via a future generic vector data structure, and record the primary-vs-secondary alternative considered. | [https://github.com/ome/ngff/pull/528](https://github.com/ome/ngff/pull/528) | From b926c6e05cba9731b5d5644d7ed995a33561400c Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Fri, 12 Jun 2026 06:01:25 -0400 Subject: [PATCH 4/4] RFC-4: Patient/Subject naming fix Co-authored-by: Wouter-Michiel Vierdag --- rfc/4/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfc/4/index.md b/rfc/4/index.md index 292a9f79..a93cf73d 100644 --- a/rfc/4/index.md +++ b/rfc/4/index.md @@ -89,7 +89,7 @@ This metadata MUST only be used in cases where there is a single subject in the The `orientation` field is structured as an object and MUST have a `type` field that specifies the orientation domain (e.g., "anatomical") and MUST have a `value` field that specifies the specific orientation within that domain. Valid `type` strings are defined in this document -- currently only `"anatomical"`. -### Subject-Local vs. Patient-Global Orientation +### Subject-Local vs. Subject-Global Orientation The "subject" referenced above need not be a whole organism. It MAY be a local anatomical structure, such as a tissue biopsy, histology slide, or dissected organ. The `orientation` field describes the orientation of whatever structure is present in the acquired image or extracted region-of-interest, at whatever spatial scale.