diff --git a/covjsonkit/__init__.py b/covjsonkit/__init__.py index 99fa791..e69de29 100644 --- a/covjsonkit/__init__.py +++ b/covjsonkit/__init__.py @@ -1,7 +0,0 @@ -import covjsonkit.api -import covjsonkit.decoder.TimeSeries -import covjsonkit.decoder.VerticalProfile -import covjsonkit.encoder.TimeSeries -import covjsonkit.encoder.VerticalProfile - -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 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/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/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 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":