pywr.parameters.RbfProfileParameter¶
-
class
pywr.parameters.
RbfProfileParameter
(model, days_of_year, values, lower_bounds=0.0, upper_bounds=np.inf, rbf_kwargs=None, variable_days_of_year_range=0, min_value=- np.inf, max_value=np.inf, **kwargs)¶ Parameter which interpolates a daily profile using a radial basis function (RBF).
The daily profile is computed during model reset using a radial basis function with day-of-year as the independent variables. The days of the year are defined by the user alongside the values to use on each of those days for the interpolation. The first day of the years should always be one, and its value is repeated as the 366th value. In addition the second and penultimate values are mirrored to encourage a consistent gradient to appear across the boundary. The RBF calculations are undertaken using the scipy.interpolate.Rbf object, please refer to Scipy’s documentation for more information.
- Parameters
- days_of_yeariterable, integer
The days of the year at which the interpolation values are defined. The first value should be one.
- valuesiterable, float
Values to use for interpolation corresponding to the days_of_year.
- lower_boundsfloat (default=0.0)
The lower bounds of the values when used during optimisation.
- upper_boundsfloat (default=np.inf)
The upper bounds of the values when used during optimisation.
- variable_days_of_year_rangeint (default=0)
The maximum bounds (positive or negative) for the days of year during optimisation. A non-zero value will cause the days of the year values to be exposed as integer variables (except the first value which remains at day 1). This value is bounds on those variables as maximum shift from the given days_of_year.
- min_value, max_valuefloat
Optionally cap the interpolated daily profile to a minimum and/or maximum value. The default values are negative and positive infinity for minimum and maximum respectively.
- rbf_kwargs: Optional, dict
Optional dictionary of keyword arguments to base to the Rbf object.
-
__init__
(*args, **kwargs)¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(*args, **kwargs)Initialize self.
after
(self)before
(self)finish
(self)get_all_values
(self)get_double_lower_bounds
(self)get_double_upper_bounds
(self)get_double_variables
(self)get_integer_lower_bounds
(self)get_integer_upper_bounds
(self)get_integer_variables
(self)get_value
(self, ScenarioIndex scenario_index)load
(type cls, model, data)register
(type cls)reset
(self)set_double_variables
(self, double[)set_integer_variables
(self, int[)setup
(self)unregister
(type cls)value
(self, Timestep ts, …)Attributes
children
comment
comment: unicode
days_of_year
double_size
double_size: ‘int’
integer_size
integer_size: ‘int’
is_variable
is_variable: ‘bool’
model
name
parents
rbf
rbf: object
rbf_kwargs
rbf_kwargs: object
size
variable_days_of_year_range