arma¶
The HydPy-A base model provides features to implement flood routing models based on autoregressive (AR) and moving-average (MA) methods.
Method Features¶
-
class
hydpy.models.arma.arma_model.
Model
[source]¶ Bases:
hydpy.core.modeltools.AdHocModel
Base model ARMA.
- The following “inlet update methods” are called in the given sequence at the beginning of each simulation step:
Pick_Q_V1
Update inflow.
- The following “run methods” are called in the given sequence during each simulation step:
Calc_QPIn_V1
Calculate the input discharge portions of the different response functions.Update_LogIn_V1
Refresh the input log sequence for the different MA processes.Calc_QMA_V1
Calculate the discharge responses of the different MA processes.Calc_QAR_V1
Calculate the discharge responses of the different AR processes.Calc_QPOut_V1
Calculate the ARMA results for the different response functions.Update_LogOut_V1
Refresh the log sequence for the different AR processes.Calc_QOut_V1
Sum up the results of the different response functions.
- The following “outlet update methods” are called in the given sequence at the end of each simulation step:
Pass_Q_V1
Update outflow.
-
class
hydpy.models.arma.arma_model.
Calc_QPIn_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Calculate the input discharge portions of the different response functions.
- Requires the derived parameters:
- Requires the flux sequence:
- Calculates the flux sequence:
Examples:
Initialise an
arma
model with three different response functions:>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb = 3 >>> derived.maxq.shape = 3 >>> derived.diffq.shape = 2 >>> fluxes.qpin.shape = 3
Define the maximum discharge value of the respective response functions and their successive differences:
>>> derived.maxq(0.0, 2.0, 6.0) >>> derived.diffq(2.0, 4.0)
The first seven examples deal with inflow values ranging from -1 to 12 m³/s (note that
arma
even routes negative discharges, which are below the 0 m²/s threshold):>>> from hydpy import UnitTest >>> test = UnitTest( ... model, model.calc_qpin_v1, ... last_example=7, ... parseqs=(fluxes.qin, fluxes.qpin)) >>> test.nexts.qin = -1.0, 0.0, 1.0, 2.0, 4.0, 6.0, 12.0 >>> test() | ex. | qin | qpin | -------------------------------- | 1 | -1.0 | -1.0 0.0 0.0 | | 2 | 0.0 | 0.0 0.0 0.0 | | 3 | 1.0 | 1.0 0.0 0.0 | | 4 | 2.0 | 2.0 0.0 0.0 | | 5 | 4.0 | 2.0 2.0 0.0 | | 6 | 6.0 | 2.0 4.0 0.0 | | 7 | 12.0 | 2.0 4.0 6.0 |
The following two additional examples are demonstrate that method
Calc_QPIn_V1
also functions properly if there is only one response function, wherefore there is no need to divide the total discharge:>>> derived.nmb = 1 >>> derived.maxq.shape = 1 >>> derived.diffq.shape = 0 >>> fluxes.qpin.shape = 1 >>> derived.maxq(0.0)
>>> test = UnitTest( ... model, model.calc_qpin_v1, ... first_example=8, last_example=10, ... parseqs=(fluxes.qin, ... fluxes.qpin)) >>> test.nexts.qin = -1.0, 0.0, 12.0 >>> test() | ex. | qin | qpin | --------------------- | 8 | -1.0 | -1.0 | | 9 | 0.0 | 0.0 | | 10 | 12.0 | 12.0 |
-
class
hydpy.models.arma.arma_model.
Update_LogIn_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Refresh the input log sequence for the different MA processes.
- Requires the derived parameters:
- Requires the flux sequence:
- Updates the log sequence:
Example:
Assume there are three response functions, involving one, two and three MA coefficients respectively:
>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb(3) >>> derived.ma_order.shape = 3 >>> derived.ma_order = 1, 2, 3 >>> fluxes.qpin.shape = 3 >>> logs.login.shape = (3, 3)
The “memory values” of the different MA processes are defined as follows (one row for each process):
>>> logs.login = ((1.0, nan, nan), ... (2.0, 3.0, nan), ... (4.0, 5.0, 6.0))
These are the new inflow discharge portions to be included into the memories of the different processes:
>>> fluxes.qpin = 7.0, 8.0, 9.0
Through applying method
Update_LogIn_V1
all values already existing are shifted to the right (“into the past”). Values, which are no longer required due to the limited order or the different MA processes, are discarded. The new values are inserted in the first column:>>> model.update_login_v1() >>> logs.login login([[7.0, nan, nan], [8.0, 2.0, nan], [9.0, 4.0, 5.0]])
-
class
hydpy.models.arma.arma_model.
Calc_QMA_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Calculate the discharge responses of the different MA processes.
- Requires the derived parameters:
- Requires the log sequence:
- Calculates the flux sequence:
Examples:
Assume there are three response functions, involving one, two and three MA coefficients respectively:
>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb(3) >>> derived.ma_order.shape = 3 >>> derived.ma_order = 1, 2, 3 >>> derived.ma_coefs.shape = (3, 3) >>> logs.login.shape = (3, 3) >>> fluxes.qma.shape = 3
The coefficients of the different MA processes are stored in separate rows of the 2-dimensional parameter ma_coefs:
>>> derived.ma_coefs = ((1.0, nan, nan), ... (0.8, 0.2, nan), ... (0.5, 0.3, 0.2))
The “memory values” of the different MA processes are defined as follows (one row for each process). The current values are stored in first column, the values of the last time step in the second column, and so on:
>>> logs.login = ((1.0, nan, nan), ... (2.0, 3.0, nan), ... (4.0, 5.0, 6.0))
Applying method
Calc_QMA_V1
is equivalent to calculating the inner product of the different rows of both matrices:>>> model.calc_qma_v1() >>> fluxes.qma qma(1.0, 2.2, 4.7)
-
class
hydpy.models.arma.arma_model.
Calc_QAR_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Calculate the discharge responses of the different AR processes.
- Requires the derived parameters:
- Requires the log sequence:
- Calculates the flux sequence:
Examples:
Assume there are four response functions, involving zero, one, two, and three AR coefficients respectively:
>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb(4) >>> derived.ar_order.shape = 4 >>> derived.ar_order = 0, 1, 2, 3 >>> derived.ar_coefs.shape = (4, 3) >>> logs.logout.shape = (4, 3) >>> fluxes.qar.shape = 4
The coefficients of the different AR processes are stored in separate rows of the 2-dimensional parameter ma_coefs. Note the special case of the first AR process of zero order (first row), which involves no autoregressive memory at all:
>>> derived.ar_coefs = ((nan, nan, nan), ... (1.0, nan, nan), ... (0.8, 0.2, nan), ... (0.5, 0.3, 0.2))
The “memory values” of the different AR processes are defined as follows (one row for each process). The values of the last time step are stored in first column, the values of the last time step in the second column, and so on:
>>> logs.logout = ((nan, nan, nan), ... (1.0, nan, nan), ... (2.0, 3.0, nan), ... (4.0, 5.0, 6.0))
Applying method
Calc_QAR_V1
is equivalent to calculating the inner product of the different rows of both matrices:>>> model.calc_qar_v1() >>> fluxes.qar qar(0.0, 1.0, 2.2, 4.7)
-
class
hydpy.models.arma.arma_model.
Calc_QPOut_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Calculate the ARMA results for the different response functions.
- Requires the derived parameter:
- Requires the flux sequences:
- Calculates the flux sequence:
Examples:
Initialize an arma model with three different response functions:
>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb(3) >>> fluxes.qma.shape = 3 >>> fluxes.qar.shape = 3 >>> fluxes.qpout.shape = 3
Define the output values of the MA and of the AR processes associated with the three response functions and apply method
Calc_QPOut_V1
:>>> fluxes.qar = 4.0, 5.0, 6.0 >>> fluxes.qma = 1.0, 2.0, 3.0 >>> model.calc_qpout_v1() >>> fluxes.qpout qpout(5.0, 7.0, 9.0)
-
class
hydpy.models.arma.arma_model.
Update_LogOut_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Refresh the log sequence for the different AR processes.
- Requires the derived parameters:
- Requires the flux sequence:
- Updates the log sequence:
Example:
Assume there are four response functions, involving zero, one, two and three AR coefficients respectively:
>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb(4) >>> derived.ar_order.shape = 4 >>> derived.ar_order = 0, 1, 2, 3 >>> fluxes.qpout.shape = 4 >>> logs.logout.shape = (4, 3)
The “memory values” of the different AR processes are defined as follows (one row for each process). Note the special case of the first AR process of zero order (first row), which is why there are no autoregressive memory values required:
>>> logs.logout = ((nan, nan, nan), ... (0.0, nan, nan), ... (1.0, 2.0, nan), ... (3.0, 4.0, 5.0))
These are the new outflow discharge portions to be included into the memories of the different processes:
>>> fluxes.qpout = 6.0, 7.0, 8.0, 9.0
Through applying method
Update_LogOut_V1
all values already existing are shifted to the right (“into the past”). Values, which are no longer required due to the limited order or the different AR processes, are discarded. The new values are inserted in the first column:>>> model.update_logout_v1() >>> logs.logout logout([[nan, nan, nan], [7.0, nan, nan], [8.0, 1.0, nan], [9.0, 3.0, 4.0]])
-
class
hydpy.models.arma.arma_model.
Calc_QOut_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Sum up the results of the different response functions.
- Requires the derived parameter:
- Requires the flux sequence:
- Calculates the flux sequence:
Examples:
Initialize an arma model with three different response functions:
>>> from hydpy.models.arma import * >>> parameterstep() >>> derived.nmb(3) >>> fluxes.qpout.shape = 3
Define the output values of the three response functions and apply method
Calc_QOut_V1
:>>> fluxes.qpout = 1.0, 2.0, 3.0 >>> model.calc_qout_v1() >>> fluxes.qout qout(6.0)
-
class
hydpy.models.arma.arma_model.
Pick_Q_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Update inflow.
-
class
hydpy.models.arma.arma_model.
Pass_Q_V1
[source]¶ Bases:
hydpy.core.modeltools.Method
Update outflow.
Parameter Features¶
Control parameters¶
-
class
hydpy.models.arma.
ControlParameters
(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.variabletools.SubVariables
[hydpy.core.parametertools.Parameters
,Parameter
,hydpy.core.parametertools.FastAccessParameter
]Control parameters of model arma.
- The following classes are selected:
Responses()
Assigns different ARMA models to different discharge thresholds.
-
class
hydpy.models.arma.arma_control.
Responses
(subvars: hydpy.core.parametertools.SubParameters)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]Assigns different ARMA models to different discharge thresholds.
Parameter
Responses
is not involved in the actual calculations during the simulation run. Instead, it is thought for the intuitive handling of different ARMA models. It can be applied as follows.Initially, each new responses object is emtpy:
>>> from hydpy.models.arma import * >>> parameterstep() >>> responses responses()
One can assign ARMA models as attributes to it:
>>> responses.th_0_0 = ((1, 2), (3, 4, 6))
th_0_0 stands for a threshold discharge value of 0.0 m³/s, which the given ARMA model corresponds to. For integer discharge values, one can omit the decimal digit:
>>> responses.th_1 = ((), (7,))
One can also omit the leading letters, but not the underscore:
>>> responses.th_2_5 = ([8], range(9, 20))
Internally, all threshold keys are brought into the standard format:
>>> responses responses(th_0_0=((1.0, 2.0), (3.0, 4.0, 6.0)), th_1_0=((), (7.0,)), th_2_5=((8.0,), (9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0)))
All ARMA models are available via attribute access and their attribute names are made available to function
dir()
:>>> "th_1_0" in dir(responses) True
Note that all iterables containing the AR and MA coefficients are converted to tuples, to prevent them from being changed by accident:
>>> responses.th_1[1][0] 7.0 >>> responses.th_1_0[1][0] = 77 Traceback (most recent call last): ... TypeError: 'tuple' object does not support item assignment
Instead, one can delete and or overwrite existing ARMA models:
>>> del responses.th_2_5 >>> responses.th_1 = ((), (77,)) >>> responses responses(th_0_0=((1.0, 2.0), (3.0, 4.0, 6.0)), th_1_0=((), (77.0,)))
Names that cannot be identified as threshold values result in an exception:
>>> responses.test = ((), ()) Traceback (most recent call last): ... AttributeError: To define different response functions for parameter `responses` of element `?`, one has to pass them as keyword arguments or set them as additional attributes. The used name must meet a specific format (see the documentation for further information). The given name `test` does not meet this format.
Suitable get-related attribute exceptions are also implemented:
>>> responses.test Traceback (most recent call last): ... AttributeError: Parameter `responses` of element `?` does not have an attribute named `test` and the name `test` is also not a valid threshold value identifier.
>>> responses._0_1 Traceback (most recent call last): ... AttributeError: Parameter `responses` of element `?` does not have an attribute attribute named `_0_1` nor an arma model corresponding to a threshold value named `th_0_1`.
The above examples show that all AR and MA coefficients are converted to floating point values. It this is not possible or something else goes totally wrong during the definition of a new ARMA model, errors like the following are raised:
>>> responses.th_10 = () Traceback (most recent call last): ... IndexError: While trying to set a new threshold (th_10) coefficient pair for parameter `responses` of element `?`, the following error occurred: tuple index out of range
Except for the mentioned conversion to floating point values, there are no plausibility checks performed. You have to use other tools to gain plausible coefficients. The HydPy framework offers the module
iuhtools
for such purposes.Prepare one instantaneous unit hydrograph (iuh) based on the Translation Diffusion Equation and another one based on the Linear Storage Cascade:
>>> from hydpy.auxs.iuhtools import TranslationDiffusionEquation >>> tde = TranslationDiffusionEquation(d=5., u=2., x=4.) >>> from hydpy.auxs.iuhtools import LinearStorageCascade >>> lsc = LinearStorageCascade(n=2.5, k=1.)
The following line deletes the coefficients defined above and assigns the ARMA approximations of both iuh models:
>>> responses(lsc, _2=tde)
One can change the parameter values of the translation diffusion iuh and assign it to the responses parameter, without affecting the ARMA coefficients of the first tde parametrization:
>>> tde.u = 1. >>> responses._5 = tde >>> responses responses(th_0_0=((1.001744, -0.32693, 0.034286), (0.050456, 0.199156, 0.04631, -0.004812, -0.00021)), th_2_0=((2.028483, -1.447371, 0.420257, -0.039595, -0.000275), (0.165732, 0.061819, -0.377523, 0.215754, -0.024597, -0.002684)), th_5_0=((3.032315, -3.506645, 1.908546, -0.479333, 0.042839, 0.00009), (0.119252, -0.054959, -0.342744, 0.433585, -0.169102, 0.014189, 0.001967)))
One may have noted the Linear Storage Cascade model was passed as a positional argument and was assigned to a treshold value of 0.0 m³/s automatically, which is the default value. As each treshold value has to be unique, one can pass only one positional argument:
>>> responses(tde, lsc) Traceback (most recent call last): ... ValueError: For parameter `responses` of element `?` at most one positional argument is allowed, but `2` are given.
Checks for the repeated definition of the same threshold values are also performed:
>>> responses(tde, _0=lsc, _1=tde, _1_0=lsc) Traceback (most recent call last): ... ValueError: For parameter `responses` of element `?` `4` arguments have been given but only `2` response functions could be prepared. Most probably, you defined the same threshold value(s) twice.
The number of response functions and the number of the respective AR and MA coefficients of a given responses parameter can be easily queried:
>>> responses(_0=((1.0, 2.0), ... (3.0, 4.0, 6.0)), ... _1=((), ... (7.0,))) >>> len(responses) 2 >>> responses.ar_orders (2, 0) >>> responses.ma_orders (3, 1)
The threshold values and AR coefficients and the MA coefficients can all be queried as numpy arrays:
>>> responses.thresholds array([ 0., 1.]) >>> responses.ar_coefs array([[ 1., 2.], [ nan, nan]]) >>> responses.ma_coefs array([[ 3., 4., 6.], [ 7., nan, nan]])
Technical notes:
The implementation of this class is much to tricky for subpackage models. It should be generalized and moved to the framework core later.
Furthermore, it would be nice to avoid the nan values in the coefficent representations. But this would possibly require to define a specialized arrays in list type in Cython.
-
TYPE
¶
-
-
property
thresholds
¶ Threshold values of the response functions.
-
property
ar_orders
¶ Number of AR coefficients of the different response functions.
-
property
ma_orders
¶ Number of MA coefficients of the different response functions.
-
property
ar_coefs
¶ AR coefficients of the different response functions.
The first row contains the AR coefficients related to the the smallest threshold value, the last row contains the AR coefficients related to the highest threshold value. The number of columns depend on the highest number of AR coefficients among all response functions.
-
property
ma_coefs
¶ AR coefficients of the different response functions.
The first row contains the MA coefficients related to the the smallest threshold value, the last row contains the AR coefficients related to the highest threshold value. The number of columns depend on the highest number of MA coefficients among all response functions.
Derived parameters¶
-
class
hydpy.models.arma.
DerivedParameters
(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.variabletools.SubVariables
[hydpy.core.parametertools.Parameters
,Parameter
,hydpy.core.parametertools.FastAccessParameter
]Derived parameters of model arma.
- The following classes are selected:
Nmb()
Number of response functions [-].MaxQ()
Maximum discharge values of the respective ARMA models [m³/s].AR_Order()
Number of AR coefficients of the different responses [-].MA_Order()
Number of MA coefficients of the different responses [-].AR_Coefs()
AR coefficients of the different responses [-].MA_Coefs()
MA coefficients of the different responses [-].
-
class
hydpy.models.arma.arma_derived.
Nmb
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]Number of response functions [-].
- Required by the methods:
Calc_QAR_V1
Calc_QMA_V1
Calc_QOut_V1
Calc_QPIn_V1
Calc_QPOut_V1
Update_LogIn_V1
Update_LogOut_V1
-
TYPE
¶
-
update
()[source]¶ Determine the number of response functions.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.nmb.update() >>> derived.nmb nmb(2)
Note that updating parameter nmb sets the shape of the flux sequences
QPIn
,QPOut
,QMA
, andQAR
automatically.>>> fluxes.qpin qpin(nan, nan) >>> fluxes.qpout qpout(nan, nan) >>> fluxes.qma qma(nan, nan) >>> fluxes.qar qar(nan, nan)
-
class
hydpy.models.arma.arma_derived.
MaxQ
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]Maximum discharge values of the respective ARMA models [m³/s].
- Required by the method:
-
TYPE
¶
-
update
()[source]¶ Determine the maximum discharge values.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.maxq.update() >>> derived.maxq maxq(0.0, 3.0)
-
class
hydpy.models.arma.arma_derived.
DiffQ
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]Differences between the values of
MaxQ
[m³/s].- Required by the method:
-
TYPE
¶
-
update
()[source]¶ Determine the “max Q deltas”.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.diffq.update() >>> derived.diffq diffq(3.0) >>> responses(((1., 2.), (1.,))) >>> derived.diffq.update() >>> derived.diffq diffq([])
-
class
hydpy.models.arma.arma_derived.
AR_Order
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]Number of AR coefficients of the different responses [-].
- Required by the methods:
-
TYPE
¶
-
update
()[source]¶ Determine the total number of AR coefficients.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.ar_order.update() >>> derived.ar_order ar_order(2, 1)
-
class
hydpy.models.arma.arma_derived.
MA_Order
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]Number of MA coefficients of the different responses [-].
- Required by the methods:
-
TYPE
¶
-
update
()[source]¶ Determine the total number of MA coefficients.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.ma_order.update() >>> derived.ma_order ma_order(1, 3)
-
class
hydpy.models.arma.arma_derived.
AR_Coefs
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]AR coefficients of the different responses [-].
- Required by the method:
-
TYPE
¶
-
update
()[source]¶ Determine all AR coefficients.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.ar_coefs.update() >>> derived.ar_coefs ar_coefs([[1.0, 2.0], [1.0, nan]])
Note that updating parameter ar_coefs sets the shape of the log sequence
LogOut
automatically.>>> logs.logout logout([[nan, nan], [nan, nan]])
-
class
hydpy.models.arma.arma_derived.
MA_Coefs
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable
[hydpy.core.parametertools.SubParameters
,hydpy.core.parametertools.FastAccessParameter
]MA coefficients of the different responses [-].
- Required by the method:
-
TYPE
¶
-
update
()[source]¶ Determine all MA coefficients.
>>> from hydpy.models.arma import * >>> parameterstep("1d") >>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.))) >>> derived.ma_coefs.update() >>> derived.ma_coefs ma_coefs([[1.0, nan, nan], [1.0, 2.0, 3.0]])
Note that updating parameter ar_coefs sets the shape of the log sequence
LogIn
automatically.>>> logs.login login([[nan, nan, nan], [nan, nan, nan]])
Sequence Features¶
Flux sequences¶
-
class
hydpy.models.arma.
FluxSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.OutputSequences
[FluxSequence
]Flux sequences of model arma.
- The following classes are selected:
QIn()
Total inflow [m³/s].QPIn()
Inflow portions corresponding to the different thresholds [m³/s].QMA()
MA result for the different thresholds [m³/s].QAR()
AR result for the different thresholds [m³/s].QPOut()
Outflow portions corresponding to the different thresholds [m³/s].QOut()
Total outflow [m³/s].
-
class
hydpy.models.arma.arma_fluxes.
QIn
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence
[hydpy.core.sequencetools.FluxSequences
]Total inflow [m³/s].
- Calculated by the method:
- Required by the method:
-
class
hydpy.models.arma.arma_fluxes.
QPIn
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence
[hydpy.core.sequencetools.FluxSequences
]Inflow portions corresponding to the different thresholds [m³/s].
- Calculated by the method:
- Required by the method:
-
class
hydpy.models.arma.arma_fluxes.
QMA
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence
[hydpy.core.sequencetools.FluxSequences
]MA result for the different thresholds [m³/s].
- Calculated by the method:
- Required by the method:
-
class
hydpy.models.arma.arma_fluxes.
QAR
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence
[hydpy.core.sequencetools.FluxSequences
]AR result for the different thresholds [m³/s].
- Calculated by the method:
- Required by the method:
-
class
hydpy.models.arma.arma_fluxes.
QPOut
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence
[hydpy.core.sequencetools.FluxSequences
]Outflow portions corresponding to the different thresholds [m³/s].
- Calculated by the method:
- Required by the methods:
-
class
hydpy.models.arma.arma_fluxes.
QOut
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence
[hydpy.core.sequencetools.FluxSequences
]Total outflow [m³/s].
- Calculated by the method:
- Required by the method:
Log sequences¶
-
class
hydpy.models.arma.
LogSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.ModelSequences
[LogSequence
,hydpy.core.variabletools.FastAccess
]Log sequences of model arma.
-
class
hydpy.models.arma.arma_logs.
LogIn
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ConditionSequence
[hydpy.core.sequencetools.LogSequences
,hydpy.core.variabletools.FastAccess
]The recent and the past inflow portions for the application of the different MA processes [m³/s].
- Updated by the method:
- Required by the method:
-
class
hydpy.models.arma.arma_logs.
LogOut
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ConditionSequence
[hydpy.core.sequencetools.LogSequences
,hydpy.core.variabletools.FastAccess
]The past outflow portions for the application of the different AR processes [m³/s].
- Updated by the method:
- Required by the method:
Inlet sequences¶
-
class
hydpy.models.arma.
InletSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.LinkSequences
[InletSequence
]Inlet sequences of model arma.
- The following classes are selected:
Q()
Runoff [m³/s].
Outlet sequences¶
-
class
hydpy.models.arma.
OutletSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.LinkSequences
[OutletSequence
]Outlet sequences of model arma.
- The following classes are selected:
Q()
Runoff [m³/s].
-
class
hydpy.models.arma.arma_outlets.
Q
(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.LinkSequence
[hydpy.core.sequencetools.OutletSequences
]Runoff [m³/s].
- Calculated by the method:
-
class
hydpy.models.arma.
ControlParameters
(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.variabletools.SubVariables
[hydpy.core.parametertools.Parameters
,Parameter
,hydpy.core.parametertools.FastAccessParameter
]Control parameters of model arma.
- The following classes are selected:
Responses()
Assigns different ARMA models to different discharge thresholds.
-
class
hydpy.models.arma.
DerivedParameters
(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.variabletools.SubVariables
[hydpy.core.parametertools.Parameters
,Parameter
,hydpy.core.parametertools.FastAccessParameter
]Derived parameters of model arma.
- The following classes are selected:
Nmb()
Number of response functions [-].MaxQ()
Maximum discharge values of the respective ARMA models [m³/s].AR_Order()
Number of AR coefficients of the different responses [-].MA_Order()
Number of MA coefficients of the different responses [-].AR_Coefs()
AR coefficients of the different responses [-].MA_Coefs()
MA coefficients of the different responses [-].
-
class
hydpy.models.arma.
FluxSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.OutputSequences
[FluxSequence
]Flux sequences of model arma.
- The following classes are selected:
QIn()
Total inflow [m³/s].QPIn()
Inflow portions corresponding to the different thresholds [m³/s].QMA()
MA result for the different thresholds [m³/s].QAR()
AR result for the different thresholds [m³/s].QPOut()
Outflow portions corresponding to the different thresholds [m³/s].QOut()
Total outflow [m³/s].
-
class
hydpy.models.arma.
InletSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.LinkSequences
[InletSequence
]Inlet sequences of model arma.
- The following classes are selected:
Q()
Runoff [m³/s].
-
class
hydpy.models.arma.
LogSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.ModelSequences
[LogSequence
,hydpy.core.variabletools.FastAccess
]Log sequences of model arma.
-
class
hydpy.models.arma.
OutletSequences
(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.LinkSequences
[OutletSequence
]Outlet sequences of model arma.
- The following classes are selected:
Q()
Runoff [m³/s].