Source code for hydroflows.methods.dummy.postprocess_dummy_event
"""Dummy methods for testing and user documentation."""
from pathlib import Path
from hydroflows.workflow import Method, Parameters
[docs]
class PostprocessDummyEventInput(Parameters):
"""Input files for the PostprocessDummyEvent method."""
model_nc: Path
"""Model output netcdf file"""
[docs]
class PostprocessDummyEventOutput(Parameters):
"""Output files for the PostprocessDummyEvent method."""
postprocessed_nc: Path
"""Postprocessed netcdf file"""
[docs]
class PostprocessDummyEventParams(Parameters):
"""Parameters for the PostprocessDummyEvent method."""
output_dir: Path
"""The output directory"""
event_name: str
"""The event name"""
[docs]
class PostprocessDummyEvent(Method):
"""Postprocess a dummy event.
Parameters
----------
model_nc : Path
Model output netcdf file
output_dir : Path
The output directory
event_name : str, optional
The event name, by default None
"""
input: PostprocessDummyEventInput
output: PostprocessDummyEventOutput
params: PostprocessDummyEventParams
name = "postprocess_dummy_event"
_test_kwargs = {
"model_nc": "model.nc",
"output_dir": "output",
}
def __init__(
self,
model_nc: Path,
output_dir: Path,
event_name: str | None = None,
):
self.input = PostprocessDummyEventInput(model_nc=model_nc)
if event_name is None:
event_name = self.input.model_nc.stem
self.params = PostprocessDummyEventParams(
output_dir=output_dir, event_name=event_name
)
self.output = PostprocessDummyEventOutput(
postprocessed_nc=self.params.output_dir
/ f"event_{event_name}_postprocessed.nc"
)
def _run(self):
# Run model and save output
self.output.postprocessed_nc.touch()