pywr.recorders.AggregatedRecorder
- class pywr.recorders.AggregatedRecorder(model, recorders, **kwargs)
This Recorder is used to aggregate across multiple other Recorder objects.
The class provides a method to produce a complex aggregated recorder by taking the results of other records. The .values() method first collects unaggregated values from the provided recorders. These are then aggregated on a per scenario basis and returned by this classes .values() method. This method allows AggregatedRecorder to be used as a recorder for in other AggregatedRecorder instances.
By default the same agg_func function is used for both steps, but an optional recorder_agg_func can undertake a different aggregation across scenarios. For example summing recorders per scenario, and then taking a mean of the sum totals.
- Parameters:
- modelpywr.core.Model
- recorders: iterable of `Recorder` objects.
The other Recorder instances to perform aggregation over.
- agg_funcstr or callable, optional
Scenario aggregation function to use when aggregated_value is called (default=”mean”).
- recorder_agg_funcstr or callable, optional
Recorder aggregation function to use when aggregated_value is called (default=`agg_func`).
- __init__(*args, **kwargs)
Methods
__init__(*args, **kwargs)after(self)aggregated_value(self)before(self)finish(self)is_constraint_violated(self)Returns true if the value from this Recorder violates its constraint bounds.
load(cls, model, data)register(cls)reset(self)setup(self)unregister(cls)values(self)Attributes
agg_funcchildrencommentcomment: str
constraint_lower_boundsconstraint_upper_boundsepsilonepsilon: 'double'
ignore_nanignore_nan: 'bool'
is_constraintReturns true if either upper or lower constraint bounds is defined.
is_double_bounded_constraintReturns true if upper and lower constraint bounds are both defined and not-equal to one another.
is_equality_constraintReturns true if upper and lower constraint bounds are both defined and equal to one another.
is_lower_bounded_constraintReturns true if lower constraint bounds is defined and upper constraint bounds is not.
is_objectiveis_upper_bounded_constraintReturns true if upper constraint bounds is defined and lower constraint bounds is not.
modelnameparentsrecordersrecorders: list
tagstags: dict