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_func

children

comment

comment: unicode

constraint_lower_bounds

constraint_upper_bounds

epsilon

epsilon: ‘double’

ignore_nan

ignore_nan: ‘bool’

is_constraint

Returns true if either upper or lower constraint bounds is defined.

is_double_bounded_constraint

Returns true if upper and lower constraint bounds are both defined and not-equal to one another.

is_equality_constraint

Returns true if upper and lower constraint bounds are both defined and equal to one another.

is_lower_bounded_constraint

Returns true if lower constraint bounds is defined and upper constraint bounds is not.

is_objective

is_upper_bounded_constraint

Returns true if upper constraint bounds is defined and lower constraint bounds is not.

model

name

parents

recorders

recorders: list