Skip to content

Commit 64de934

Browse files
author
Stevenray Janke
committed
Bugfix, add new properties for basin file assets
1 parent 49886ef commit 64de934

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

hecstac/hms/parser.py

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,10 +250,19 @@ def files(self):
250250
@property
251251
def dss_files(self):
252252
"""Return dss files."""
253-
files = set(
254-
[gage.attrs["Variant"]["Variant-1"]["DSS File Name"] for gage in self.gage.elements.elements.values()]
255-
+ [pdata.attrs["DSS File"] for pdata in self.pdata.elements.elements.values()]
256-
)
253+
files = set()
254+
if self.gage:
255+
files.update(
256+
[gage.attrs["Variant"]["Variant-1"]["DSS File Name"] for gage in self.gage.elements.elements.values()]
257+
)
258+
else:
259+
logging.warning("No gage file to extract gages from.")
260+
261+
if self.pdata:
262+
files.update([pdata.attrs["DSS File"] for pdata in self.pdata.elements.elements.values()])
263+
else:
264+
logging.warning("No pdata files found.")
265+
257266
if self.grid:
258267
files.update(
259268
[
@@ -716,6 +725,31 @@ def subbasin_bc_lines(self):
716725
gdf = gpd.GeoDataFrame(df, geometry="geometry", crs=self.crs)
717726
return gdf
718727

728+
@property
729+
@lru_cache
730+
def hms_methods(self):
731+
"""Extract unique HMS methods from Subbasins and Reaches."""
732+
733+
methods = {
734+
"Canopy": set(),
735+
"Discretization": set(),
736+
"Begin Snow": set(),
737+
"Surface": set(),
738+
"LossRate": set(),
739+
"Transform": set(),
740+
"Baseflow": set(),
741+
"Route": set(),
742+
}
743+
744+
for subbasin in self.subbasins:
745+
for key in methods.keys():
746+
if key in subbasin.attrs:
747+
methods[key].add(subbasin.attrs[key])
748+
for reach in self.reaches:
749+
if "Route" in reach.attrs:
750+
methods["Route"].add(reach.attrs["Route"])
751+
return {f"hms_methods:{key.replace(' ', '_')}": list(values) for key, values in methods.items()}
752+
719753

720754
class MetFile(BaseTextFile):
721755
"""Class for parsing HEC-HMS meteorology files."""

0 commit comments

Comments
 (0)