oemof-eesyPlan

oemof.eesyplan - SHORT DESCRIPTION

class oemof.eesyplan.BiogasPlant(project_data, bus_out_fuel, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]
__init__(project_data, bus_out_fuel, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]

Biogas power plant for renewable gas generation.

This class represents a biogas plant that produces renewable gas from organic waste materials through anaerobic digestion.

Important

This is a renewable energy source that produces carbon-neutral gas fuel.

Structure:
output
  1. to_bus : Fuel

Optimization:

The characteristic quantity of the optimization is the nominal power-output of the biogas power plant given in kW

Parameters:
  • project_data (Project object) – The framework of the project in which the asset is ought to be optimized.

  • bus_out_fuel (bus object) – Connected Bus component for the fuel output flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_fix (float, default=0) – Planning and development costs. This could be planning and development costs which do not depend on the (optimized) capacities of the assets in € (Positive real number).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • renewable_asset (bool, default=True) – Choose if this asset should be considered as renewable. This parameter is necessary to consider the renewable share constraint correctly. [-] (Acceptable values are either Yes or No.).

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> fuel_bus = CarrierBus(name="my_fuel_bus")
>>> my_biogas = BiogasPlant(
...     bus_out_fuel=fuel_bus,
...     name="my_biogas_plant",
...     age_installed=0, # a
...     installed_capacity=0, # kW
...     capex_fix=0, # €
...     capex_var=1000, # €/kW
...     opex_fix=10, # €/kW/a
...     opex_var=0, # €/kWh
...     lifetime=25, # a
...     optimize_cap=True,
...     maximum_capacity=1000, # kW
...     renewable_asset=True,
...     input_timeseries=[1,2,3],
...     project_data=my_project,
...  )
class oemof.eesyplan.Boiler(name, bus_in_fuel, bus_out_heat, project_data, efficiency=0.8, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]
__init__(name, bus_in_fuel, bus_out_heat, project_data, efficiency=0.8, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]

Boiler for heat generation.

This class represents a boiler that burns fuel into thermal energy for heating applications.

Important

The efficiency parameter determines the conversion rate from gas to thermal output.

Structure:
input
  1. from_bus : Gas

output
  1. to_bus : Heat

Optimization:

The characteristic quantity of the optimization is the maximum power-output of the Boiler given in kW

Parameters:
  • name (str) – Name of the asset.

  • age_installed (int, default=0) – Number of years the asset has already been in operation.

  • installed_capacity (float, default=0) – Already existing installed capacity.

  • capex_fix (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix).

  • opex_var (float, default=0.01) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs).

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced.

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset.

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site.

  • efficiency (float, default=0.8) – Ratio of energy output to energy input.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.solph import Bus
>>> gas_bus = Bus(label="gas_bus")
>>> heat_bus = Bus(label="heat_bus")
>>> my_gas_boiler = Boiler(
...     name="central_gas_boiler",
...     bus_in_fuel=gas_bus,
...     bus_out_heat=heat_bus,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=1000,
...     opex_fix=1000,
...     lifetime=20,
...     maximum_capacity=None,
...     efficiency=0.8,
...     opex_var=0,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01),
...     )
class oemof.eesyplan.CarrierBus(name, carrier=None, balanced=None, excess=None, excess_costs=None)[source]

Bus mit Medium-Attribut

__init__(name, carrier=None, balanced=None, excess=None, excess_costs=None)[source]

Bus mit Energieträger-Information

Parameters:
  • name (str or tuple) – Eindeutige Bezeichnung des Bus

  • carrier (str) – Energieträger/Medium (z.B. ‘electricity’, ‘gas’, ‘heat’, ‘hydrogen’)

  • **kwargs – Weitere Parameter für Bus

Examples

>>> electricity_bus = CarrierBus(name="grid", carrier="electricity")
>>> gas_bus = CarrierBus(name="gas_grid", carrier="natural_gas")
>>> heat_bus = CarrierBus(name="district_heating", carrier="heat")
>>> h2_bus = CarrierBus(name="h2_network", carrier="hydrogen")
>>> h2_bus
<CarrierBus 'h2_network' carrier='hydrogen'>
class oemof.eesyplan.ChpFixedRatio(name, bus_in_fuel, bus_out_electricity, bus_out_heat, conversion_factor_to_electricity, conversion_factor_to_heat, project_data, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]
__init__(name, bus_in_fuel, bus_out_electricity, bus_out_heat, conversion_factor_to_electricity, conversion_factor_to_heat, project_data, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]

Combined Heat and Power plant with fixed heat-to-power ratio.

This class represents a CHP plant that operates with a fixed ratio between heat and electricity generation, providing less operational flexibility but simpler control.

Important

The fixed ratio constraint limits operational flexibility but ensures consistent heat-to-power ratios.

Structure:
input
  1. fuel : Gas

output
  1. heat_bus : Heat

  2. electricity_bus : Electricity

Optimization:

The characteristic quantity of the optimization is the maximum electricity power-output (active power) of the CHP given in kW

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_out_electricity (bus-object) – Connected Bus component for the electricity output flow. [object].

  • bus_out_heat (bus-object) – Connected Bus component for the heat output flow. [object].

  • conversion_factor_to_electricity (float) – conversion_factor_to_electricity

  • conversion_factor_to_heat (float) – conversion_factor_to_heat

  • optimize_cap (bool, default=True) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0,) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • project_data (project_data) – The framework of the project in which the asset is ought to be optimized.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> gas_bus = CarrierBus(name="gas_bus")
>>> heat_bus = CarrierBus(name="heat_bus")
>>> el_bus = CarrierBus(name="electricity_bus")
>>> my_chp_fixed = ChpFixedRatio(
...     name="fixed_ratio_chp",
...     bus_in_fuel=gas_bus,
...     bus_out_heat=heat_bus,
...     bus_out_electricity=el_bus,
...     installed_capacity=300,
...     conversion_factor_to_electricity=0.3,
...     conversion_factor_to_heat=0.5,
...     capex_var=1500,
...     opex_fix=15,
...     lifetime=20,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01,
...     )
... )
class oemof.eesyplan.ChpVariableRatio(name, bus_in_fuel, bus_out_electricity, bus_out_heat, conversion_factor_to_electricity, conversion_factor_to_heat, beta, project_data, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]
__init__(name, bus_in_fuel, bus_out_electricity, bus_out_heat, conversion_factor_to_electricity, conversion_factor_to_heat, beta, project_data, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]

Combined Heat and Power (CHP) plant.

This class represents a combined heat and power plant that simultaneously generates electricity and useful heat from a single fuel source.

Important

CHP systems achieve higher overall efficiency by utilizing waste heat for useful purposes.

Structure:
input
  1. bus_in_fuel : Gas

output
  1. bus_out_heat : Heat

  2. bus_out_electricity : Electricity

Optimization:

The characteristic quantity of the optimization is the maximum electricity power-output (active power) of the CHP given in kW

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_out_electricity (bus-object) – Connected Bus component for the electricity output flow. [object].

  • bus_out_heat (bus-object) – Connected Bus component for the heat output flow. [object].

  • conversion_factor_to_electricity (float) – Electrical efficiency with no heat extraction

  • conversion_factor_to_heat (float) – Thermal efficiency with maximal heat extraction

  • beta (float) – Power loss index

  • optimize_cap (bool, default=True) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0,) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • project_data (project_data) – The framework of the project in which the asset is ought to be optimized.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> gas_bus = CarrierBus(name="gas_bus")
>>> heat_bus = CarrierBus(name="heat_bus")
>>> el_bus = CarrierBus(name="electricity_bus")
>>> my_chp_fixed = ChpVariableRatio(
...     name="variable_ratio_chp",
...     bus_in_fuel=gas_bus,
...     bus_out_heat=heat_bus,
...     bus_out_electricity=el_bus,
...     installed_capacity=300,
...     conversion_factor_to_electricity=0.3,
...     conversion_factor_to_heat=0.5,
...     beta=0.5,
...     capex_var=1500,
...     opex_fix=15,
...     lifetime=20,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01,
...     )
... )
class oemof.eesyplan.DSO(name, bus, energy_price, feedin_tariff, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]
__init__(name, bus, energy_price, feedin_tariff, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]

Energy provider for electricity distribution.

This class represents a distribution system operator (DSO) that provides electricity from the utility grid with pricing and feedin capabilities.

Important

The renewable share affects the overall system renewable factor calculation.

Structure:
input & output

bus : Electricity

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • energy_price (float, default=0.3) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

  • feedin_tariff (float, default=0.1) – Price received for feeding electricity into the grid. Can be also a timeseries in €/kWh.

  • peak_demand_pricing (float, default=0) – Grid fee to be paid based on the peak demand of a given period in €/kW.

  • peak_demand_pricing_period (int, default=1) – Number of reference periods in one year for peak demand pricing in times per year (Only one of the following are acceptable values: 1 (yearly), 2, 3 ,4, 6, 12 (monthly)).

  • renewable_share (float, default=0.44) – Share of renewables in the generation mix of the energy supplied by the DSO utility. [Factor] (Real number between 0 and 1).

  • feedin_cap (float or None, default=None) – Maximum flow for feeding electricity into the grid at any given timestep in kW (Acceptable values are either a positive real number or None).

Examples

>>> from oemof.solph import Bus
>>> ebus = Bus(label="any_bus")
>>> my_dso = DSO(
...     name="any_network",
...     bus=ebus,
...     energy_price=0.25,
...     feedin_tariff=0.08,
... )
class oemof.eesyplan.Demand(name, bus_in_electricity, input_timeseries)[source]
__init__(name, bus_in_electricity, input_timeseries)[source]

Electricity demand/consumption component.

This class represents an electricity demand that consumes electrical energy according to a specified time series pattern.

Structure:
input
  1. from_bus : Electricity

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_in_electricity (oemof.eesyplan.CarrierBus) – Connected Bus component for the electricity input flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

Examples

>>> from oemof.eesyplan import CarrierBus as Bus
>>> ebus = Bus(name="electricity_bus")
>>> my_demand = Demand(
...     name="office_demand",
...     bus_in_electricity=ebus,
...     input_timeseries="electricity_demand.csv",
... )
class oemof.eesyplan.DieselGenerator(name, bus_in_fuel, bus_out_electricity, project_data, efficiency=0.3, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]
__init__(name, bus_in_fuel, bus_out_electricity, project_data, efficiency=0.3, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]

Diesel generator for electricity generation.

This class represents a diesel generator that converts fuel into electrical energy for backup or primary power generation.

Important

The efficiency parameter determines the conversion rate from fuel to electrical power.

Structure:
input
  1. from_bus : Fuel

output
  1. to_bus : Electricity

Optimization:

The characteristic quantity of the optimization is the maximum power-output of the Generator given in kW

Parameters:
  • name (str) – Name of the asset.

  • age_installed (int, default=0) – Number of years the asset has already been in operation.

  • installed_capacity (float, default=0) – Already existing installed capacity.

  • capex_fix (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix).

  • opex_var (float, default=0.01) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs).

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced.

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset.

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site.

  • efficiency (float, default=0.8) – Ratio of energy output to energy input.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.solph import Bus
>>> gas_bus = Bus(label="gas_bus")
>>> el_bus = Bus(label="el_bus")
>>> my_gas_boiler = DieselGenerator(
...     name="DieselGenerator",
...     bus_in_fuel=gas_bus,
...     bus_out_electricity=el_bus,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=1000,
...     opex_fix=1000,
...     lifetime=20,
...     maximum_capacity=None,
...     efficiency=0.3,
...     opex_var=0,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01),
...     )
class oemof.eesyplan.DsoElectricity(name, bus_electricity, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]
__init__(name, bus_electricity, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]

Energy provider for electricity distribution.

This class represents a distribution system operator (DSO) that provides electricity from the utility grid with pricing and feedin capabilities.

Important

The renewable share affects the overall system renewable factor calculation.

Structure:
input & output

bus : Electricity

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • energy_price (float, default=0.3) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

  • feedin_tariff (float, default=0.1) – Price received for feeding electricity into the grid. Can be also a timeseries in €/kWh.

  • peak_demand_pricing (float, default=0) – Grid fee to be paid based on the peak demand of a given period in €/kW.

  • peak_demand_pricing_period (int, default=1) – Number of reference periods in one year for peak demand pricing in times per year (Only one of the following are acceptable values: 1 (yearly), 2, 3 ,4, 6, 12 (monthly)).

  • renewable_share (float, default=0.44) – Share of renewables in the generation mix of the energy supplied by the DSO utility. [Factor] (Real number between 0 and 1).

  • feedin_cap (float or None, default=None) – Maximum flow for feeding electricity into the grid at any given timestep in kW (Acceptable values are either a positive real number or None).

Examples

>>> from oemof.eesyplan import CarrierBus
>>> ebus = CarrierBus(name="electricity_bus")
>>> my_dso = DsoElectricity(
...     name="main_grid",
...     bus_electricity=ebus,
...     energy_price=0.25,
...     feedin_tariff=0.08,
... )
>>> my_dso.name
'main_grid'
class oemof.eesyplan.DsoFuel(name, bus_fuel, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]
__init__(name, bus_fuel, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]

Energy provider for electricity distribution.

This class represents a distribution system operator (DSO) that provides electricity from the utility grid with pricing and feedin capabilities.

Important

The renewable share affects the overall system renewable factor calculation.

Structure:
input & output

bus : Fuel

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • energy_price (float, default=0.3) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

  • feedin_tariff (float, default=0.1) – Price received for feeding electricity into the grid. Can be also a timeseries in €/kWh.

  • peak_demand_pricing (float, default=0) – Grid fee to be paid based on the peak demand of a given period in €/kW.

  • peak_demand_pricing_period (int, default=1) – Number of reference periods in one year for peak demand pricing in times per year (Only one of the following are acceptable values: 1 (yearly), 2, 3 ,4, 6, 12 (monthly)).

  • renewable_share (float, default=0.44) – Share of renewables in the generation mix of the energy supplied by the DSO utility. [Factor] (Real number between 0 and 1).

  • feedin_cap (float or None, default=None) – Maximum flow for feeding electricity into the grid at any given timestep in kW (Acceptable values are either a positive real number or None).

Examples

>>> from oemof.eesyplan import CarrierBus
>>> gbus = CarrierBus(name="gas_bus")
>>> my_dso = DsoFuel(
...     name="main_grid",
...     bus_fuel=gbus,
...     energy_price=0.25,
...     feedin_tariff=0.08,
... )
class oemof.eesyplan.DsoHeat(name, bus_heat, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]
__init__(name, bus_heat, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]

Energy provider for heat distribution.

This class represents a distribution system operator (DSO) that provides heat from the utility grid with pricing and feedin capabilities.

Important

The renewable share affects the overall system renewable factor calculation.

Structure:
input & output

bus : Heat

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • energy_price (float, default=0.3) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

  • feedin_tariff (float, default=0.1) – Price received for feeding electricity into the grid. Can be also a timeseries in €/kWh.

  • peak_demand_pricing (float, default=0) – Grid fee to be paid based on the peak demand of a given period in €/kW.

  • peak_demand_pricing_period (int, default=1) – Number of reference periods in one year for peak demand pricing in times per year (Only one of the following are acceptable values: 1 (yearly), 2, 3 ,4, 6, 12 (monthly)).

  • renewable_share (float, default=0.44) – Share of renewables in the generation mix of the energy supplied by the DSO utility. [Factor] (Real number between 0 and 1).

  • feedin_cap (float or None, default=None) – Maximum flow for feeding electricity into the grid at any given timestep in kW (Acceptable values are either a positive real number or None).

Examples

>>> from oemof.eesyplan import CarrierBus
>>> hbus = CarrierBus(name="heat_bus")
>>> my_dso = DsoHeat(
...     name="main_grid",
...     bus_heat=hbus,
...     energy_price=0.25,
...     feedin_tariff=0.08,
... )
class oemof.eesyplan.DsoHydrogen(name, bus_h2, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]
__init__(name, bus_h2, energy_price=0.3, feedin_tariff=0.1, peak_demand_pricing=0, peak_demand_pricing_period=1, renewable_share=0.44, feedin_cap=None)[source]

Energy provider for hydrogen distribution.

This class represents a distribution system operator (DSO) that provides hydrogen from the utility grid with pricing and feedin capabilities.

Important

The renewable share affects the overall system renewable factor calculation.

Structure:
input & output

bus : bus_h2

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • energy_price (float, default=0.3) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

  • feedin_tariff (float, default=0.1) – Price received for feeding electricity into the grid. Can be also a timeseries in €/kWh.

  • peak_demand_pricing (float, default=0) – Grid fee to be paid based on the peak demand of a given period in €/kW.

  • peak_demand_pricing_period (int, default=1) – Number of reference periods in one year for peak demand pricing in times per year (Only one of the following are acceptable values: 1 (yearly), 2, 3 ,4, 6, 12 (monthly)).

  • renewable_share (float, default=0.44) – Share of renewables in the generation mix of the energy supplied by the DSO utility. [Factor] (Real number between 0 and 1).

  • feedin_cap (float or None, default=None) – Maximum flow for feeding electricity into the grid at any given timestep in kW (Acceptable values are either a positive real number or None).

Examples

>>> from oemof.eesyplan import CarrierBus
>>> h2bus = CarrierBus(name="h2_bus")
>>> my_dso = DsoHydrogen(
...     name="main_grid",
...     bus_h2=h2bus,
...     energy_price=0.25,
...     feedin_tariff=0.08,
... )
class oemof.eesyplan.ElectricalStorage(name, bus_in_electricity, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, project_data, capex_fix=0.0, self_discharge=0.0, bus_out_electricity=None, maximum_capacity=inf)[source]
__init__(name, bus_in_electricity, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, project_data, capex_fix=0.0, self_discharge=0.0, bus_out_electricity=None, maximum_capacity=inf)[source]

Battery Energy Storage System (BESS).

This class represents a complete battery energy storage system for electrical energy storage and dispatch.

Important

This is a simplified representation of a complete BESS including all necessary components.

Structure:
input
  1. charge : Electricity

output
  1. discharge : Electricity

Parameters:

name (str) – Name of the asset.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> el_bus = CarrierBus(name="my_electricity_bus")
>>> my_bess = ElectricalStorage(
...     name="lithium_battery_system",
...     bus_in_electricity=el_bus,
...     age_installed=0,
...     installed_capacity=10,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0.,
...     lifetime=10,
...     optimize_cap=False,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     self_discharge=0.0001,
... )
>>> my_invest_bess = ElectricalStorage(
...     name="lithium_battery_extension_system",
...     bus_in_electricity=el_bus,
...     bus_out_electricity=el_bus,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0.,
...     lifetime=10,
...     optimize_cap=True,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     self_discharge=0.0001,
... )
class oemof.eesyplan.ElectricalTransformator(name, bus_in_electricity, bus_out_electricity, project_data, efficiency=0.3, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]
__init__(name, bus_in_electricity, bus_out_electricity, project_data, efficiency=0.3, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]

This is an Electrical transformator, e.g. for different voltage levels

This class represents an electrical conversion of any kind

Important

The efficiency parameter determines the conversion rate from gas to electrical output.

Structure:
input
  1. from_bus : Electricity

output
  1. to_bus : Electricity

Optimization:

The characteristic quantity of the optimization is the maximum power-output of the Transformer given in kW

Parameters:
  • name (str) – Name of the asset.

  • age_installed (int, default=0) – Number of years the asset has already been in operation.

  • installed_capacity (float, default=0) – Already existing installed capacity.

  • capex_fix (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix).

  • opex_var (float, default=0.01) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs).

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced.

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset.

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site.

  • efficiency (float, default=0.8) – Ratio of energy output to energy input.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.solph import Bus
>>> el_bus_in = Bus(label="el_bus_in")
>>> el_bus_out = Bus(label="el_bus_out")
>>> my_el_transformer = ElectricalTransformator(
...     name="ElectricalTransformator",
...     bus_in_electricity=el_bus_in,
...     bus_out_electricity=el_bus_out,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=1000,
...     opex_fix=1000,
...     lifetime=20,
...     maximum_capacity=None,
...     efficiency=0.9,
...     opex_var=0,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01),
...     )
class oemof.eesyplan.Electrolyzer(name, bus_in_electricity, bus_out_h2, project_data, bus_out_heat=None, efficiency=0.3, efficiency_heat=0.6, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]
__init__(name, bus_in_electricity, bus_out_h2, project_data, bus_out_heat=None, efficiency=0.3, efficiency_heat=0.6, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, maximum_capacity=inf)[source]

Electrolyzer for hydrogen production.

This class represents an electrolyzer that converts electrical energy into hydrogen gas through electrolysis, producing both hydrogen and waste heat.

Important

The efficiency parameter determines the conversion rate from electricity to hydrogen.

Structure:
input
  1. el_bus : Electricity

output
  1. heat_bus : Heat

  2. h2_bus : H2

Parameters:
  • name (str) – Name of the asset.

  • age_installed (int, default=0) – Number of years the asset has already been in operation.

  • installed_capacity (float, default=0) – Already existing installed capacity.

  • capex_fix (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix).

  • opex_var (float, default=0.01) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs).

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced.

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset.

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site.

  • efficiency (float, default=0.8) – Ratio of energy output to energy input.

  • efficiency_heat (float, default=0.6) – TODO find a good attribute name and description

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.solph import Bus
>>> el_bus_in = Bus(label="el_bus_in")
>>> heat_bus_out = Bus(label="heat_bus_out")
>>> h2_bus_out = Bus(label="h2_bus_out")
>>> my_electrolyzer = Electrolyzer(
...     name="Electrolyzer",
...     bus_in_electricity=el_bus_in,
...     bus_out_heat=heat_bus_out,
...     bus_out_h2=h2_bus_out,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=1000,
...     opex_fix=1000,
...     lifetime=20,
...     maximum_capacity=None,
...     efficiency=0.9,
...     efficiency_heat=0.1,
...     opex_var=0,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01),
...     )
>>> electrolyzer_no_heat = Electrolyzer(
...     name="Electrolyzer",
...     bus_in_electricity=el_bus_in,
...     bus_out_h2=h2_bus_out,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=1000,
...     opex_fix=1000,
...     lifetime=20,
...     maximum_capacity=None,
...     efficiency=0.9,
...     opex_var=0,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01),
...     )
class oemof.eesyplan.EnergySystem(year=None, interval=1, number=None, start=None, **kwargs)[source]
__init__(year=None, interval=1, number=None, start=None, **kwargs)[source]

Create an energy system with a datetime index for one year.

It is also possible to specifiy different periods. See the paramter description below.

Notes

To create 8760 hourly intervals for a non leap year a datetime index with 8761 time points need to be created. So the number of time steps is always the number of intervals plus one.

Parameters:
  • year (int, datetime) – The year of the index. Used to automatically set start and number for the specific year.

  • interval (float) – The time interval in hours e.g. 0.5 for 30min or 2 for a two hour interval (default: 1).

  • number (int) – The number of time intervals. By default number is calculated to create an index of one year. For a shorter or longer period the number of intervals can be set by the user.

  • start (datetime.datetime or datetime.date) – Optional start time. If start is not set, 00:00 of the first day of the given year is the start time.

Examples

>>> len(EnergySystem(2014).timeindex)
8761
>>> len(EnergySystem(2012).timeindex)  # leap year
8785
>>> len(EnergySystem(2014, interval=0.5).timeindex)
17521
>>> len(EnergySystem(2014, interval=0.5, number=10).timeindex)
11
>>> len(EnergySystem(2014, number=10).timeindex)
11
>>> str(EnergySystem(2014, interval=0.5, number=10).timeindex[-1])
'2014-01-01 05:00:00'
>>> es = EnergySystem(2014, interval=2, number=10)
>>> str(es.timeindex[-1])
'2014-01-01 20:00:00'
>>> str(EnergySystem(timeindex=es.timeindex).timeindex[-1])
'2014-01-01 20:00:00'
class oemof.eesyplan.Excess(name, bus_in, cost)[source]

Short description

Long description about the facade and how to use it.

Important

Some important information about this facade.

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_in (oemof.solph.Bus or placade.CarrierBus) – Connected Bus component for an input flow. [object].

  • cost (float or array-like) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

Examples

>>> from oemof.eesyplan import CarrierBus
>>> el_bus = CarrierBus(name="my_electricity_bus")
>>> ex = Excess("my_excess", el_bus, 999)
>>> ex.label
'my_excess'
__init__(name, bus_in, cost)[source]
class oemof.eesyplan.FuelCell(name, bus_in_h2, bus_out_electricity, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, efficiency=0.8, maximum_capacity=inf, project_data=None)[source]
__init__(name, bus_in_h2, bus_out_electricity, age_installed=0, installed_capacity=0, capex_var=1000, capex_fix=0, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=True, efficiency=0.8, maximum_capacity=inf, project_data=None)[source]

Fuel cell for electricity generation.

This class represents a fuel cell that converts hydrogen or other fuels into electrical energy through electrochemical processes.

Important

The efficiency of fuel cells is typically higher than combustion-based generators.

Structure:
input
  1. bus_in_h2 : H2

output
  1. bus_out_electricity : Electricity

Parameters:
  • name (str) – Name of the asset.

  • age_installed (int, default=0) – Number of years the asset has already been in operation.

  • installed_capacity (float, default=0) – Already existing installed capacity.

  • capex_fix (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix).

  • opex_var (float, default=0.01) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs).

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced.

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset.

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site.

  • efficiency (float, default=0.8) – Ratio of energy output to energy input.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.solph import Bus
>>> h2_bus = Bus(label="hydrogen_bus")
>>> el_bus = Bus(label="electricity_bus")
>>> my_fuel_cell = FuelCell(
...     name="hydrogen_fuel_cell",
...     bus_in_h2=h2_bus,
...     bus_out_electricity=el_bus,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=1000,
...     opex_fix=1000,
...     lifetime=20,
...     maximum_capacity=None,
...     efficiency=0.9,
...     opex_var=0,
...     optimize_cap=True,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01,
...     )
... )
class oemof.eesyplan.FuelDemand(name, bus_in_fuel, input_timeseries)[source]
__init__(name, bus_in_fuel, input_timeseries)[source]

Gas demand/consumption component.

This class represents a gas demand that consumes gas according to a specified time series pattern.

Structure:
input
  1. bus_in_fuel : Gas

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_in_fuel (oemof.eesyplan.CarrierBus) – Connected Bus component for the fuel input flow [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

Examples

>>> from oemof.eesyplan import CarrierBus as Bus
>>> fuel_bus = Bus(name="fuel_bus")
>>> my_demand = FuelDemand(
...     name="office_demand",
...     bus_in_fuel=fuel_bus,
...     input_timeseries="fuel_demand.csv",
... )
class oemof.eesyplan.FuelStorage(name, bus_in_fuel, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, project_data, capex_fix=0.0, self_discharge=0.0, bus_out_fuel=None, maximum_capacity=inf)[source]
__init__(name, bus_in_fuel, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, project_data, capex_fix=0.0, self_discharge=0.0, bus_out_fuel=None, maximum_capacity=inf)[source]

Fuel Energy Storage System (FESS).

This class represents a fuel energy storage system for storing and dispatching fuel energy carriers.

Important

This system can store various types of fuel including natural gas and biogas.

Structure:
input
  1. bus_in_fuel : Gas

output
  1. bus_out_fuel : Gas

Parameters:

name (str) – Name of the asset.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> fuel_bus = CarrierBus(name="gas_bus")
>>> my_storage = FuelStorage(
...     name="gas_storage_tank",
...     bus_in_fuel=fuel_bus,
...     age_installed=0,
...     installed_capacity=10,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0.,
...     lifetime=10,
...     optimize_cap=False,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     self_discharge=0.0001,
... )
>>> my_invest_storage = FuelStorage(
...     name="gas_storage_tank_extension",
...     bus_in_fuel=fuel_bus,
...     bus_out_fuel=fuel_bus,
...     age_installed=0,
...     installed_capacity=0,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0.,
...     lifetime=10,
...     optimize_cap=True,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     self_discharge=0.0001,
... )
class oemof.eesyplan.GeothermalPlant(project_data, bus_out_heat, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]
__init__(project_data, bus_out_heat, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]

Geothermal plant for renewable heat generation.

This class represents a geothermal plant that extracts thermal energy from the Earth’s subsurface for heat generation.

Important

This is a renewable energy source that provides consistent baseload heat generation.

Structure:
output
  1. to_bus : Heat

Parameters:
  • project_data (Project object) – The framework of the project in which the asset is ought to be optimized.

  • bus_out_heat (bus object) – Connected Bus component for the heat output flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_fix (float, default=0) – Planning and development costs. This could be planning and development costs which do not depend on the (optimized) capacities of the assets in € (Positive real number).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • renewable_asset (bool, default=True) – Choose if this asset should be considered as renewable. This parameter is necessary to consider the renewable share constraint correctly. [-] (Acceptable values are either Yes or No.).

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> heat_bus = CarrierBus(name="my_heat_bus")
>>> my_geothermal = GeothermalPlant(
...     bus_out_heat=heat_bus,
...     name="my_geothermal_plant",
...     age_installed=0, # a
...     installed_capacity=0, # kW
...     capex_fix=0, # €
...     capex_var=1000, # €/kW
...     opex_fix=10, # €/kW/a
...     opex_var=0, # €/kWh
...     lifetime=25, # a
...     optimize_cap=True,
...     maximum_capacity=1000, # kW
...     renewable_asset=True,
...     input_timeseries=[1,2,3],
...     project_data=my_project,
...  )
class oemof.eesyplan.H2Demand(name, bus_in_hydrogen, input_timeseries)[source]
__init__(name, bus_in_hydrogen, input_timeseries)[source]

Hydrogen demand/consumption component.

This class represents a hydrogen demand that consumes hydrogen according to a specified time series pattern.

Structure:
input:
  1. from_bus : Hydrogen

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_in_hydrogen (oemof.eesyplan.CarrierBus) – Connected Bus component for the hydrogen input flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

Examples

>>> from oemof.eesyplan import CarrierBus as Bus
>>> h2_bus = Bus(name="hydrogen_bus")
>>> my_h2_demand = H2Demand(
...     name="fuel_cell_demand",
...     bus_in_hydrogen=h2_bus,
...     input_timeseries="hydrogen_demand.csv",
... )
class oemof.eesyplan.HeatDemand(name, bus_in_heat, input_timeseries)[source]
__init__(name, bus_in_heat, input_timeseries)[source]

Heat demand/consumption component.

This class represents a heat demand that consumes heat energy according to a specified time series pattern.

Structure:
input
  1. from_bus : Heat

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_in_heat (oemof.eesyplan.CarrierBus) – Connected Bus component for the heat input flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

Examples

>>> from oemof.eesyplan import CarrierBus as Bus
>>> heat_bus = Bus(name="heat_bus")
>>> my_demand = HeatDemand(
...     name="office_demand",
...     bus_in_heat=heat_bus,
...     input_timeseries="heat_demand.csv",
... )
class oemof.eesyplan.HeatPump(name, bus_in_heat, bus_in_electricity, bus_out_heat, project_data, age_installed=0, installed_capacity=0, capex_fix=1000, capex_var=1000, opex_var=0.01, opex_fix=10, lifetime=20, optimize_cap=False, maximum_capacity=None, cop=3)[source]
__init__(name, bus_in_heat, bus_in_electricity, bus_out_heat, project_data, age_installed=0, installed_capacity=0, capex_fix=1000, capex_var=1000, opex_var=0.01, opex_fix=10, lifetime=20, optimize_cap=False, maximum_capacity=None, cop=3)[source]

Heat pump for efficient heat generation.

This class represents a heat pump that extracts heat from a low-temperature source and delivers it at a higher temperature using electrical energy.

Important

Heat pumps typically achieve efficiencies (COP) greater than 1.0, making them very efficient heating systems.

Structure:
input
  1. electricity_bus : Electricity

  2. heat_bus : Heat

output
  1. to_bus : Heat

Parameters:
  • name (str) – Name of the asset.

  • age_installed (int, default=0) – Number of years the asset has already been in operation.

  • installed_capacity (float, default=0) – Already existing installed capacity.

  • capex_fix (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX).

  • opex_var (float, default=0.01) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs).

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix).

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced.

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset.

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site.

  • cop (float or list-like, default=0.8) – Ratio of energy output to energy input.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.solph import Bus
>>> el_bus = Bus(label="electricity_bus")
>>> ambient_heat_bus = Bus(label="ambient_heat_bus")
>>> heat_bus = Bus(label="heat_bus")
>>> my_heat_pump = HeatPump(
...     name="air_source_heat_pump",
...     bus_in_electricity=el_bus,
...     bus_in_heat=ambient_heat_bus,
...     bus_out_heat=heat_bus,
...     installed_capacity=15,
...     cop=3.5,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01,
...     )
... )
>>> my_heat_pump2 = HeatPump(
...     name="air_source_heat_pump",
...     bus_in_electricity=el_bus,
...     bus_in_heat=ambient_heat_bus,
...     bus_out_heat=heat_bus,
...     installed_capacity=15,
...     cop=[3.5] * 5,
...     project_data=Project(
...         name="Project_X", lifetime=20, tax=0,
...         discount_factor=0.01,
...     )
... )
class oemof.eesyplan.HydrogenStorage(name, bus_in_h2, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, project_data, capex_fix=0.0, self_discharge=0.0, bus_out_h2=None, maximum_capacity=inf)[source]
__init__(name, bus_in_h2, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, project_data, capex_fix=0.0, self_discharge=0.0, bus_out_h2=None, maximum_capacity=inf)[source]

Hydrogen Energy Storage System (H2ESS).

This class represents a hydrogen energy storage system for storing and dispatching hydrogen gas for various applications.

Important

This system requires specialized storage technology for hydrogen handling and safety.

Structure:
input
  1. charge : H2

output
  1. discharge : H2

Parameters:

name (str) – Name of the asset.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> h2_bus = CarrierBus(name="my_h2_bus")
>>> my_storage = HydrogenStorage(
...     name="hydrogen_storage_system",
...     bus_in_h2=h2_bus,
...     age_installed=0,
...     installed_capacity=10,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0.,
...     lifetime=10,
...     optimize_cap=False,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     self_discharge=0.0001,
... )
>>> my_invest_storage = HydrogenStorage(
...     name="hydrogen_storage_system_extension",
...     bus_in_h2=h2_bus,
...     bus_out_h2=h2_bus,
...     age_installed=0,
...     installed_capacity=10,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0.,
...     lifetime=10,
...     optimize_cap=True,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     self_discharge=0.0001,
... )
class oemof.eesyplan.Project(name, lifetime, tax, discount_factor, shortage_cost=999, excess_cost=99, disable_shortage=False, disable_excess=False, latitude=50.587031, longitude=10.165876)[source]
__init__(name, lifetime, tax, discount_factor, shortage_cost=999, excess_cost=99, disable_shortage=False, disable_excess=False, latitude=50.587031, longitude=10.165876)[source]
calculate_epc(capex_var, lifetime, age_installed, method='mvs')[source]

Calculate the annuity of investment..

Parameters:
  • capex_var

  • lifetime

  • age_installed

  • method

Returns:

float or None

Examples

>>> my_project = Project(
...     name="my_project",
...     lifetime=20,
...     tax=0,
...     discount_factor=0.01
...     )
>>> round(my_project.calculate_epc(234, 20, 0), 3)
12.967
>>> my_project.calculate_epc(234, 20, 0, "wrong")
>>> round(my_project.calculate_epc(234, 20, 0, "oemof"), 3)
12.967
class oemof.eesyplan.PvPlant(project_data, bus_out_electricity, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]
__init__(project_data, bus_out_electricity, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]

Photovoltaic power plant for solar electricity generation.

This class represents a photovoltaic plant that converts solar irradiation into electrical energy using photovoltaic panels.

Important

This is a renewable energy source that contributes to the renewable share of the system.

Structure:
output
  1. to_bus : Electricity

Optimization:

The characteristic quantity of the optimization is the nominal power-output of the PV-plant given in kWp

Parameters:
  • project_data (Project object) – The framework of the project in which the asset is ought to be optimized.

  • bus_out_electricity (bus object) – Connected Bus component for the electricity output flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_fix (float, default=0) – Planning and development costs. This could be planning and development costs which do not depend on the (optimized) capacities of the assets in € (Positive real number).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • renewable_asset (bool, default=True) – Choose if this asset should be considered as renewable. This parameter is necessary to consider the renewable share constraint correctly. [-] (Acceptable values are either Yes or No.).

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> el_bus = CarrierBus(name="my_electricity_bus")
>>> my_pv = PvPlant(
...     bus_out_electricity=el_bus,
...     name="my_pv_plant",
...     age_installed=0, # a
...     installed_capacity=0, # kW
...     capex_fix=0, # €
...     capex_var=1000, # €/kWp
...     opex_fix=10, # €/kWp/a
...     opex_var=0, # €/kWh
...     lifetime=25, # a
...     optimize_cap=True,
...     maximum_capacity=1000, # kWp
...     renewable_asset=True,
...     input_timeseries=[1,2,3],
...     project_data=my_project,
...  )
class oemof.eesyplan.Results(model)[source]
__init__(model)[source]
class oemof.eesyplan.Shortage(name, bus_out, cost)[source]

Short description

Long description about the facade and how to use it.

Important

Some important information about this facade.

Parameters:
  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • bus_out (oemof.solph.Bus or placade.CarrierBus) – Connected Bus component for an input flow. [object].

  • cost (float or array-like) – Price of the energy carrier sourced from the utility grid. Can be also a timeseries in €/kWh.

Examples

>>> from oemof.eesyplan import CarrierBus
>>> el_bus = CarrierBus(name="my_electricity_bus")
>>> ex = Shortage("my_shortage", el_bus, 999)
>>> ex.label
'my_shortage'
__init__(name, bus_out, cost)[source]
class oemof.eesyplan.SolarThermalPlant(project_data, bus_out_heat, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]
__init__(project_data, bus_out_heat, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]

Solar thermal plant for renewable heat generation.

This class represents a solar thermal plant that converts solar irradiation into thermal energy using solar collectors.

Important

This is a renewable energy source that provides heat directly from solar radiation.

Structure:
output
  1. to_bus : Heat

Parameters:
  • project_data (Project object) – The framework of the project in which the asset is ought to be optimized.

  • bus_out_heat (bus object) – Connected Bus component for the heat output flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_fix (float, default=0) – Planning and development costs. This could be planning and development costs which do not depend on the (optimized) capacities of the assets in € (Positive real number).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • renewable_asset (bool, default=True) – Choose if this asset should be considered as renewable. This parameter is necessary to consider the renewable share constraint correctly. [-] (Acceptable values are either Yes or No.).

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> heat_bus = CarrierBus(name="my_heat_bus")
>>> my_st = SolarThermalPlant(
...     bus_out_heat=heat_bus,
...     name="my_st_plant",
...     age_installed=0, # a
...     installed_capacity=0, # kW
...     capex_fix=0, # €
...     capex_var=1000, # €/kW
...     opex_fix=10, # €/kW/a
...     opex_var=0, # €/kWh
...     lifetime=25, # a
...     optimize_cap=True,
...     maximum_capacity=1000, # kW
...     renewable_asset=True,
...     input_timeseries=[1,2,3],
...     project_data=my_project,
...  )
class oemof.eesyplan.ThermalStorage(name, bus_in_heat, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, fixed_thermal_losses_relative, fixed_thermal_losses_absolute, project_data, capex_fix=0.0, thermal_loss_rate=0.0, bus_out_heat=None, maximum_capacity=inf)[source]
__init__(name, bus_in_heat, age_installed, installed_capacity, capex_var, opex_fix, opex_var, lifetime, optimize_cap, soc_max, soc_min, crate, efficiency, fixed_thermal_losses_relative, fixed_thermal_losses_absolute, project_data, capex_fix=0.0, thermal_loss_rate=0.0, bus_out_heat=None, maximum_capacity=inf)[source]

Heat Energy Storage System (HESS).

This class represents a complete thermal energy storage system for electrical energy storage and dispatch.

Important

This is a simplified representation of a complete HESS including all necessary components.

Structure:
input
  1. charge : Heat

output
  1. discharge : Heat

Parameters:

name (str) – Name of the asset.

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> heat_bus = CarrierBus(name="my_heat_bus")
>>> my_storage = ThermalStorage(
...     name="thermal_storage",
...     bus_in_heat=heat_bus,
...     age_installed=0,
...     installed_capacity=10,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0,
...     lifetime=10,
...     optimize_cap=False,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     fixed_thermal_losses_relative=0.6,
...     fixed_thermal_losses_absolute=200,
...     thermal_loss_rate=0.0001,
... )
>>> my_invest_storage = ThermalStorage(
...     name="thermal_storage_extension",
...     bus_in_heat=heat_bus,
...     bus_out_heat=heat_bus,
...     age_installed=0,
...     installed_capacity=0.1,
...     capex_var=3,
...     opex_fix=5,
...     opex_var=0,
...     lifetime=10,
...     optimize_cap=True,
...     soc_max=1,
...     soc_min=0,
...     crate=1,
...     efficiency=0.99,
...     project_data=my_project,
...     fixed_thermal_losses_relative=0.6,
...     fixed_thermal_losses_absolute=200,
...     thermal_loss_rate=0.0001,
... )
class oemof.eesyplan.WeatherData[source]

Container for TRY (Test Reference Year) weather data.

This class holds meteorological data from German DWD (Deutscher Wetterdienst) Test Reference Year files. Attributes are initialized as None and populated via the from_try_file class method.

Variables:
  • air_temperature_c (pd.Series or None) – Air temperature at 2 m above ground [°C].

  • air_pressure_hpa (pd.Series or None) – Air pressure at station height [hPa].

  • wind_direction_deg (pd.Series or None) – Wind direction at 10 m above ground [degrees]. Valid range: 0-360, 999 = variable.

  • wind_speed_ms (pd.Series or None) – Wind speed at 10 m above ground [m/s].

  • cloud_cover_oktas (pd.Series or None) – Cloud cover [oktas]. Valid range: 0-8, 9 = sky obscured.

  • water_vapor_gkg (pd.Series or None) – Water vapor content, mixing ratio [g/kg].

  • relative_humidity_percent (pd.Series or None) – Relative humidity at 2 m above ground [%]. Valid range: 1-100.

  • direct_solar_wm2 (pd.Series or None) – Direct solar irradiance on horizontal plane [W/m²]. Positive = downward.

  • diffuse_solar_wm2 (pd.Series or None) – Diffuse solar irradiance on horizontal plane [W/m²]. Positive = downward.

  • atmospheric_radiation_wm2 (pd.Series or None) – Atmospheric longwave radiation on horizontal plane [W/m²]. Positive = downward.

  • terrestrial_radiation_wm2 (pd.Series or None) – Terrestrial longwave radiation [W/m²]. Negative = upward.

  • quality_flag (pd.Series or None) – Quality flag regarding selection criteria.

Notes

Data structure follows the DWD “Testreferenzjahr” format.

__init__()[source]
__len__()[source]
classmethod from_try_file(path)[source]

Create Weather Data object from try file.

Parameters:

path

to_dict()[source]

serialize to dictionary

class oemof.eesyplan.WindTurbine(project_data, bus_out_electricity, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]
__init__(project_data, bus_out_electricity, input_timeseries, name, age_installed=0, installed_capacity=0, capex_fix=0, capex_var=1000, opex_fix=10, opex_var=0, lifetime=20, optimize_cap=False, maximum_capacity=None, renewable_asset=True)[source]

Wind turbine for electricity generation.

This class represents a wind turbine that converts kinetic energy of wind into electrical energy.

Important

This is a renewable energy source that contributes to the renewable share of the system.

Structure:
output
  1. to_bus : Electricity

Optimization:

The characteristic quantity of the optimization is the nominal power-output of the wind turbine given in kW

Parameters:
  • project_data (Project object) – The framework of the project in which the asset is ought to be optimized.

  • bus_out_electricity (bus object) – Connected Bus component for the electricity output flow. [object].

  • input_timeseries (array-like) – Timeseries. Timeseries in :unit:.

  • name (str) – Name of the asset. [-] (Input the names in a computer friendly format, preferably with underscores instead of spaces, and avoiding special characters).

  • age_installed (int, default=0) – Number of years the asset has already been in operation. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in a (Natural number).

  • installed_capacity (float, default=0) – Already existing installed capacity. If the project lasts longer than its remaining lifetime, the replacement costs of the asset will be taken into account in :unit:.

  • capex_fix (float, default=0) – Planning and development costs. This could be planning and development costs which do not depend on the (optimized) capacities of the assets in € (Positive real number).

  • capex_var (float, default=1000) – Specific investment costs of the asset related to the installed capacity (CAPEX) in €/:unit:.

  • opex_fix (float, default=10) – Specific operational and maintenance costs of the asset related to the installed capacity (OPEX_fix) in €/(:unit: • a)

  • opex_var (float, default=0) – Costs associated with a flow through/from the asset (OPEX_var or fuel costs). This could be fuel costs for fuel sources like biogas or oil or operational costs for thermal power plants which only occur when operating the plant in €/kWh.

  • lifetime (int, default=20) – Number of operational years of the asset until it has to be replaced in a (Natural number).

  • optimize_cap (bool, default=False) – Choose if capacity optimization should be performed for this asset. [-] (Acceptable values are either Yes or No.).

  • maximum_capacity (float or None, default=None) – Maximum total capacity of an asset that can be installed at the project site. This includes the already existing installed and additional capacity possible. An example would be that a roof can only carry 50 kW PV (maximum capacity), whereas the installed capacity is already 10 kW. The optimization would only be allowed to add 40 kW PV at maximum in :unit: (Acceptable values are either a positive real number or None.).

  • renewable_asset (bool, default=True) – Choose if this asset should be considered as renewable. This parameter is necessary to consider the renewable share constraint correctly. [-] (Acceptable values are either Yes or No.).

Examples

>>> from oemof.eesyplan import Project
>>> from oemof.eesyplan import CarrierBus
>>> my_project = Project(
...         name="my_project",
...         lifetime=20,
...         tax=0,
...         discount_factor=0.01
...     )
>>> el_bus = CarrierBus(name="my_electricity_bus")
>>> my_wind = WindTurbine(
...     bus_out_electricity=el_bus,
...     name="my_wind_plant",
...     age_installed=0, # a
...     installed_capacity=0, # kW
...     capex_fix=0, # €
...     capex_var=1000, # €/kW
...     opex_fix=10, # €/kW/a
...     opex_var=0, # €/kWh
...     lifetime=25, # a
...     optimize_cap=True,
...     maximum_capacity=1000, # kW
...     renewable_asset=True,
...     input_timeseries=[1,2,3],
...     project_data=my_project,
...  )
oemof.eesyplan.export_results(results, path)[source]
oemof.eesyplan.import_results(path, es)[source]
oemof.eesyplan.optimise(energy_system, solver='cbc', debug=False)[source]

Optimise the energy system.