From 6737fd1bcccd302e8f592f5fbb7632b1f2a5f80c Mon Sep 17 00:00:00 2001 From: awarde96 Date: Tue, 17 Mar 2026 10:21:37 +0000 Subject: [PATCH 1/4] If hdate in tree use hdate instead of date --- covjsonkit/encoder/TimeSeries.py | 6 ++++++ covjsonkit/encoder/encoder.py | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/covjsonkit/encoder/TimeSeries.py b/covjsonkit/encoder/TimeSeries.py index b6c0413..9e925fe 100644 --- a/covjsonkit/encoder/TimeSeries.py +++ b/covjsonkit/encoder/TimeSeries.py @@ -145,6 +145,12 @@ def from_polytope(self, result): start = time.time() logging.debug("Tree walking starts at: %s", start) # noqa: E501 self.walk_tree(result, fields, coords, mars_metadata, range_dict) + print("coords: ", coords) + print("fields: ", fields) + print("mars_metadata: ", mars_metadata) + print("range_dict: ", range_dict) + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") end = time.time() delta = end - start logging.debug("Tree walking ends at: %s", end) # noqa: E501 diff --git a/covjsonkit/encoder/encoder.py b/covjsonkit/encoder/encoder.py index b45cf42..f597523 100644 --- a/covjsonkit/encoder/encoder.py +++ b/covjsonkit/encoder/encoder.py @@ -173,6 +173,13 @@ def handle_specific_axes(child): coords[date]["composite"] = [] coords[date]["t"] = [date] return dates + if child.axis.name == "hdate": + hdates = [f"{hdate}Z" for hdate in child.values] + for hdate in hdates: + coords[hdate] = {} + coords[hdate]["composite"] = [] + coords[hdate]["t"] = [hdate] + return hdates if child.axis.name == "number": return child.values if child.axis.name == "step": @@ -202,6 +209,8 @@ def append_composite_coords(dates, tree_values, lat, coords): fields["l"].extend(result) elif child.axis.name == "param": fields["param"] = result + elif child.axis.name in "hdate": + fields["dates"].extend(result) elif child.axis.name in ["date", "time"]: fields["dates"].extend(result) elif child.axis.name == "number": From 287222ed398abc4bbce04d54027124a63b33e66a Mon Sep 17 00:00:00 2001 From: awarde96 Date: Tue, 17 Mar 2026 10:50:02 +0000 Subject: [PATCH 2/4] Fix ruff --- covjsonkit/__init__.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/covjsonkit/__init__.py b/covjsonkit/__init__.py index 99fa791..58f3ace 100644 --- a/covjsonkit/__init__.py +++ b/covjsonkit/__init__.py @@ -1,7 +1 @@ -import covjsonkit.api -import covjsonkit.decoder.TimeSeries -import covjsonkit.decoder.VerticalProfile -import covjsonkit.encoder.TimeSeries -import covjsonkit.encoder.VerticalProfile - from .version import __version__ From 19be3702d25cfa2f3550a284f89084f44c3bd5c8 Mon Sep 17 00:00:00 2001 From: awarde96 Date: Tue, 17 Mar 2026 10:54:26 +0000 Subject: [PATCH 3/4] Fix bounding box with hdate --- covjsonkit/__init__.py | 1 - covjsonkit/encoder/BoundingBox.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/covjsonkit/__init__.py b/covjsonkit/__init__.py index 58f3ace..e69de29 100644 --- a/covjsonkit/__init__.py +++ b/covjsonkit/__init__.py @@ -1 +0,0 @@ -from .version import __version__ diff --git a/covjsonkit/encoder/BoundingBox.py b/covjsonkit/encoder/BoundingBox.py index a2e1502..283f871 100644 --- a/covjsonkit/encoder/BoundingBox.py +++ b/covjsonkit/encoder/BoundingBox.py @@ -131,7 +131,8 @@ def from_polytope(self, result): fields["levels"] = [0] self.walk_tree(result, fields, coords, mars_metadata, range_dict) - + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") logging.debug("The values returned from walking tree: %s", range_dict) # noqa: E501 logging.debug("The coordinates returned from walking tree: %s", coords) # noqa: E501 From deeffa7030d14100d29e1a7dd69ac048abfc4575 Mon Sep 17 00:00:00 2001 From: awarde96 Date: Tue, 17 Mar 2026 12:38:06 +0000 Subject: [PATCH 4/4] Add hdate for all features --- covjsonkit/encoder/Circle.py | 2 ++ covjsonkit/encoder/Frame.py | 2 ++ covjsonkit/encoder/Grid.py | 2 ++ covjsonkit/encoder/Path.py | 2 ++ covjsonkit/encoder/Position.py | 3 +++ covjsonkit/encoder/Shapefile.py | 3 +++ covjsonkit/encoder/VerticalProfile.py | 3 +++ 7 files changed, 17 insertions(+) diff --git a/covjsonkit/encoder/Circle.py b/covjsonkit/encoder/Circle.py index 8061351..265d097 100644 --- a/covjsonkit/encoder/Circle.py +++ b/covjsonkit/encoder/Circle.py @@ -129,6 +129,8 @@ def from_polytope(self, result): self.walk_tree(result, fields, coords, mars_metadata, range_dict) + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") logging.debug("The values returned from walking tree: %s", range_dict) # noqa: E501 logging.debug("The coordinates returned from walking tree: %s", coords) # noqa: E501 diff --git a/covjsonkit/encoder/Frame.py b/covjsonkit/encoder/Frame.py index 89e5af8..06fbddd 100644 --- a/covjsonkit/encoder/Frame.py +++ b/covjsonkit/encoder/Frame.py @@ -129,6 +129,8 @@ def from_polytope(self, result): self.walk_tree(result, fields, coords, mars_metadata, range_dict) + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") logging.debug("The values returned from walking tree: %s", range_dict) # noqa: E501 logging.debug("The coordinates returned from walking tree: %s", coords) # noqa: E501 diff --git a/covjsonkit/encoder/Grid.py b/covjsonkit/encoder/Grid.py index d5774f4..ed9aec5 100644 --- a/covjsonkit/encoder/Grid.py +++ b/covjsonkit/encoder/Grid.py @@ -135,6 +135,8 @@ def from_polytope(self, result): self.walk_tree(result, fields, coords, mars_metadata, range_dict) + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") logging.debug("The values returned from walking tree: %s", range_dict) # noqa: E501 logging.debug("The coordinates returned from walking tree: %s", coords) # noqa: E501 diff --git a/covjsonkit/encoder/Path.py b/covjsonkit/encoder/Path.py index f4f65ea..d8b6d76 100644 --- a/covjsonkit/encoder/Path.py +++ b/covjsonkit/encoder/Path.py @@ -131,6 +131,8 @@ def from_polytope(self, result): self.walk_tree(result, fields, coords, mars_metadata, range_dict) + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") if len(fields["l"]) == 0: fields["l"] = [0] diff --git a/covjsonkit/encoder/Position.py b/covjsonkit/encoder/Position.py index c255605..d354972 100644 --- a/covjsonkit/encoder/Position.py +++ b/covjsonkit/encoder/Position.py @@ -150,6 +150,9 @@ def from_polytope(self, result): logging.debug("Tree walking ends at: %s", end) # noqa: E501 logging.debug("Tree walking takes: %s", delta) # noqa: E501 + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") + start = time.time() logging.debug("Coords creation: %s", start) # noqa: E501 diff --git a/covjsonkit/encoder/Shapefile.py b/covjsonkit/encoder/Shapefile.py index 2657f34..64a0681 100644 --- a/covjsonkit/encoder/Shapefile.py +++ b/covjsonkit/encoder/Shapefile.py @@ -129,6 +129,9 @@ def from_polytope(self, result): self.walk_tree(result, fields, coords, mars_metadata, range_dict) + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") + logging.debug("The values returned from walking tree: %s", range_dict) # noqa: E501 logging.debug("The coordinates returned from walking tree: %s", coords) # noqa: E501 diff --git a/covjsonkit/encoder/VerticalProfile.py b/covjsonkit/encoder/VerticalProfile.py index d7bd5ce..a964c89 100644 --- a/covjsonkit/encoder/VerticalProfile.py +++ b/covjsonkit/encoder/VerticalProfile.py @@ -141,6 +141,9 @@ def from_polytope(self, result): logging.debug("Tree walking ends at: %s", end) # noqa: E501 logging.debug("Tree walking takes: %s", delta) # noqa: E501 + if "hdate" in mars_metadata: + fields["dates"].remove(mars_metadata["Forecast date"] + "Z") + start = time.time() logging.debug("Coords creation: %s", start) # noqa: E501