osier.equations.objective_from_capacity#

osier.equations.objective_from_capacity(technology_list, attribute, solved_dispatch_model=None)[source]#

This function calculates a general objective for a given set of technologies and their corresponding dispatch on a per-unit-capacity basis.

The general objective function is

\[\mathcal{K} = \sum_g^G \textbf{CAP}_g \kappa_g,\]
\[\textbf{CAP}_g = \text{the capacity of the g-th technology} \quad \left[MW\right].\]
\[\kappa_g = \text{the power density of the g-th technology} \quad \left[\frac{-}{MW}\right].\]

Warning

User-defined attributes are not validated by osier. Verify the units are accurate and uniform across all technologies before running a simulation with this function.

Parameters:
  • technology_list (list of osier.Technology objects) – The list of technologies.

  • solved_dispatch_model (osier.DispatchModel) – A _solved_ dispatch model (i.e. with model results and objective attributes).

  • attribute (string) – The technology attribute to measure.

Returns:

objective_value – The objective value for a particular energy mix.

Return type:

float

Examples

The simplest way to employ this function is with functools.partial.

>>> import functools
>>> from osier import per_unit_capacity
>>> objectives_list = [functools.partial(objective_from_capacity, attribute='land_use'),
...                    functools.partial(objective_from_capacity, attribute='employment')]