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)¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__(*args, **kwargs)Initialize self.
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(type cls, model, data)register(type cls)reset(self)setup(self)unregister(type cls)values(self)Attributes
agg_funcchildrencommentcomment: unicode
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