3 Created on Fri May 8 05:59:04 2020
11 from efo.rule
import RuleBase
12 from efo.lookup
import LkupTblAnn
13 from efo.time
import TimeBase
25 if cls
is RuleFloodBase:
27 if set(cls.__abstractmethods__) <= attrs:
33 def __init__(self, name, time, constants, hypso, monDayHr, guideCurve, *,
34 typ='interp', timeUnit=None, isElev=True):
36 super().
__init__(name, time, constants)
40 guideCurve = np.interp(guideCurve, hypso.elev, hypso.stor)
43 typ=typ, timeUnit=timeUnit)
47 typ='interp', timeUnit=None):
50 self.
guideCurveTblguideCurveTbl = LkupTblAnn(name+
'_guideCurve', time, monDayHr, guideCurve,
51 typ=typ, timeUnit=timeUnit)
53 def calc_release(self, rlsProposed, rlsUnCtrl, stor, rlsPrev=None, qIn=None):
55 rlsProposed, rlsPrev=rlsPrev, rlsUnCtrl=rlsUnCtrl, stor=stor, qIn=qIn)
57 self.release[self.T.step] = 0.
61 self.release[self.T.step] = (
63 return max(self.release[self.T.step], rlsProposed)
def __subclasshook__(cls, C)
def __init__(self, name, time, constants)
def set_guide_curve(self, name, time, monDayHr, guideCurve, *typ='interp', timeUnit=None)
def calc_release(self, rlsProposed, rlsUnCtrl, stor, rlsPrev=None, qIn=None)
def __init__(self, name, time, constants, hypso, monDayHr, guideCurve, *typ='interp', timeUnit=None, isElev=True)