Skip to content

Commit 959a71e

Browse files
authored
Merge pull request #51 from asfadmin/bbarton/PR-7400
Implement horizontal_spatial_domain factory
2 parents 3295248 + c26b180 commit 959a71e

3 files changed

Lines changed: 29 additions & 3 deletions

File tree

‎mandible/umm_classes/factory.py‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
ArchiveAndDistributionInformation,
99
CollectionReference,
1010
DataGranule,
11+
Geometry,
1112
HorizontalSpatialDomain,
1213
Identifier,
1314
Instrument,
@@ -58,6 +59,32 @@ def data_granule(
5859
return obj
5960

6061

62+
def horizontal_spatial_domain(
63+
zone_identifier: Optional[str] = None,
64+
geometry: Optional[Geometry] = None,
65+
# TODO(reweeden): Implement typing
66+
orbit: Optional[dict[str, Any]] = None,
67+
# TODO(reweeden): Implement typing
68+
track: Optional[dict[str, Any]] = None,
69+
) -> HorizontalSpatialDomain:
70+
obj: HorizontalSpatialDomain = {}
71+
if zone_identifier is not None:
72+
obj["ZoneIdentifier"] = zone_identifier
73+
if geometry is not None:
74+
obj["Geometry"] = geometry
75+
if orbit is not None:
76+
obj["Orbit"] = orbit
77+
if track is not None:
78+
obj["Track"] = track
79+
80+
if orbit is None and track is None:
81+
raise ValueError(
82+
"one of 'orbit' or 'track' is required",
83+
)
84+
85+
return obj
86+
87+
6188
def identifier(
6289
type: str,
6390
identifier: str,

‎mandible/umm_classes/types.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,7 @@ class HorizontalSpatialDomain(TypedDict):
183183
https://git.earthdata.nasa.gov/projects/EMFD/repos/unified-metadata-model/browse/granule/v1.6.5/umm-g-json-schema.json#497
184184
"""
185185

186-
# TODO(reweeden): Implement
187-
ZoneIdentifier: NotRequired[dict[str, Any]]
186+
ZoneIdentifier: NotRequired[str]
188187
Geometry: NotRequired[Geometry]
189188
# TODO(reweeden): Implement
190189
Orbit: NotRequired[dict[str, Any]]

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "mandible"
3-
version = "0.10.3"
3+
version = "0.10.4"
44
description = "A generic framework for writing satellite data ingest systems"
55
authors = ["Rohan Weeden <reweeden@alaska.edu>", "Matt Perry <mperry37@alaska.edu>"]
66
license = "APACHE-2"

0 commit comments

Comments
 (0)