h2integrate.tools.eco.finance#

Functions

adjust_dollar_year(init_cost, ...)

Adjust cost based on inflation.

adjust_orbit_costs(orbit_project, ...)

breakout_export_costs_from_orbit_results(...)

calc_financial_parameter_weighted_average_by_capex(...)

Allows the user to provide individual financial parameters for each technology in the system.

run_capex(hopp_results, wind_cost_results, ...)

run_fixed_opex(hopp_results, ...[, verbose, ...])

run_orbit(orbit_config[, verbose, weather, ...])

run_profast_full_plant_model(...[, verbose, ...])

run_profast_grid_only(h2integrate_config, ...)

run_profast_lcoe(h2integrate_config, ...[, ...])

run_variable_opex(electrolyzer_cost_results, ...)

calculate variable O&M in $/kg-H2.

run_wind_cost_model(wind_cost_inputs[, verbose])

Classes

WindCostConfig(design_scenario, hopp_config, ...)

Represents the inputs to the wind cost models

WindCostOutputs(total_wind_cost_no_export, ...)

Represents the outputs to the wind cost models.

h2integrate.tools.eco.finance.adjust_dollar_year(init_cost, init_dollar_year, adj_cost_year, costing_general_inflation)#

Adjust cost based on inflation.

Parameters:
  • init_cost (dict, float, int, list, np.ndarrray) -- cost of item ($)

  • init_dollar_year (int) -- dollar-year of init_cost

  • adj_cost_year (int) -- dollar-year to adjust cost to

  • costing_general_inflation (float) -- inflation rate (%)

Returns:

same type as init_cost -- cost in dollar-year of adj_cost_year

class h2integrate.tools.eco.finance.WindCostConfig(design_scenario, hopp_config, h2integrate_config, orbit_config={}, turbine_config={}, orbit_hybrid_electrical_export_config={}, weather=None, hopp_interface=None)#

Represents the inputs to the wind cost models

Parameters:
  • design_scenario (dict[str, str])

  • hopp_config (dict[str, float])

  • h2integrate_config (dict[str, float])

  • orbit_config (dict[str, float] | None)

  • turbine_config (dict[str, float] | None)

  • orbit_hybrid_electrical_export_config (dict[str, float] | None)

  • weather (list | tuple | ndarray | None)

  • hopp_interface (HoppInterface | None)

design_scenario#

Definition of plant subsystem locations (e.g. onshore platform, offshore, none, etc)

Type:

Dict[str, str]

hopp_config#

Configuration parameters for HOPP

Type:

Dict[str, float]

h2integrate_config#

Configuration parameters for H2Integrate

Type:

Dict[str, float]

orbit_config#

Required input structure for ORBIT

Type:

Dict[str, float], optional

turbine_config#

Configuration parameters specific to turbine

Type:

Dict[str, float], optional

orbit_hybrid_electrical_export_config#

Configuration parameters for hybrid electrical export in ORBIT, required if using a different substation size for the hybrid plant than for the wind plant alone

Type:

Dict[str, float], optional

weather#

Array-like of wind speeds for ORBIT to use in determining installation time and costs

Type:

Union[list, tuple, numpy.ndarray], optional

design_scenario: dict[str, str]#
hopp_config: dict[str, float]#
h2integrate_config: dict[str, float]#
orbit_config: dict[str, float] | None#
turbine_config: dict[str, float] | None#
orbit_hybrid_electrical_export_config: dict[str, float] | None#
weather: list | tuple | ndarray | None#
hopp_interface: HoppInterface | None#
class h2integrate.tools.eco.finance.WindCostOutputs(total_wind_cost_no_export, annual_operating_cost_wind, installation_time=0.0, total_used_export_system_costs=0.0, orbit_project=None)#

Represents the outputs to the wind cost models.

Parameters:
  • total_wind_cost_no_export (float)

  • annual_operating_cost_wind (float)

  • installation_time (float)

  • total_used_export_system_costs (float | None)

  • orbit_project (dict | ProjectManager | None)

total_wind_cost_no_export#

Total wind cost without export system costs

Type:

float

total_used_export_system_costs#

Total used export system costs

Type:

float

annual_operating_cost_wind#

Annual operating cost for wind

Type:

float

installation_time#

Estimated installation time in months (default: 0.0)

Type:

float, optional

orbit_project#

Details of the ORBIT project (default: None)

Type:

dict, optional

total_wind_cost_no_export: float#
annual_operating_cost_wind: float#
installation_time: float#
total_used_export_system_costs: float | None#
orbit_project: dict | ProjectManager | None#
h2integrate.tools.eco.finance.run_wind_cost_model(wind_cost_inputs, verbose=False)#
Parameters:

wind_cost_inputs (WindCostConfig)

Return type:

WindCostOutputs

h2integrate.tools.eco.finance.run_orbit(orbit_config, verbose=False, weather=None, orbit_hybrid_electrical_export_config={})#
h2integrate.tools.eco.finance.adjust_orbit_costs(orbit_project, h2integrate_config)#
h2integrate.tools.eco.finance.breakout_export_costs_from_orbit_results(orbit_project, h2integrate_config, design_scenario)#
h2integrate.tools.eco.finance.run_capex(hopp_results, wind_cost_results, electrolyzer_cost_results, h2_pipe_array_results, h2_transport_compressor_results, h2_transport_pipe_results, h2_storage_results, hopp_config, h2integrate_config, design_scenario, desal_results, platform_results, verbose=False)#
h2integrate.tools.eco.finance.run_fixed_opex(hopp_results, wind_cost_results, electrolyzer_cost_results, h2_pipe_array_results, h2_transport_compressor_results, h2_transport_pipe_results, h2_storage_results, hopp_config, h2integrate_config, desal_results, platform_results, verbose=False, total_export_system_cost=0)#
h2integrate.tools.eco.finance.run_variable_opex(electrolyzer_cost_results, h2integrate_config)#

calculate variable O&M in $/kg-H2.

Parameters:
  • electrolyzer_cost_results (dict) -- output of h2integrate.tools.eco.electrolysis.run_electrolyzer_cost

  • h2integrate_config (h2integrate_simulation.H2IntegrateSimulationConfig) -- H2Integrate simulation config.

Returns:

dict --

dictionary of components and corresponding variable O&M in $/kg-H2 for

adjusted for inflation so cost is in dollar-year corresponding to h2integrate_config["project_parameters"]["cost_year"]

h2integrate.tools.eco.finance.calc_financial_parameter_weighted_average_by_capex(parameter_name, h2integrate_config, capex_breakdown)#
Allows the user to provide individual financial parameters for each technology in the system.

The values given will be weighted by their CAPEX values to determine the final weighted-average parameter value to be supplied to the financial model. If only one technology has a unique parameter value, a "general" parameter value in the dictionary and that will be used for all technologies not specified individually.

Parameters:
  • parameter_name (str) -- The name of the parameter to be weighted by capex. The name should correspond to the name in the h2integrate config

  • h2integrate_config (dict) -- Dictionary form of the h2integrate config

  • capex_breakdown (dict) -- Output from run_capex, a dictionary of all capital items for the financial model

Returns:

parameter_value (float) --

if the parameter in the h2integrate config is given as a

dictionary, then the weighted average by capex parameter value is returnd. Otherwise no averaging is done and the value of the parameter in the h2integrate_config is returned.

Return type:

float

h2integrate.tools.eco.finance.run_profast_lcoe(h2integrate_config, wind_cost_results, capex_breakdown, opex_breakdown, hopp_results, incentive_option, design_scenario, verbose=False, show_plots=False, save_plots=False, output_dir='./output/')#
h2integrate.tools.eco.finance.run_profast_grid_only(h2integrate_config, wind_cost_results, electrolyzer_performance_results, capex_breakdown, opex_breakdown_total, hopp_results, design_scenario, total_accessory_power_renewable_kw, total_accessory_power_grid_kw, verbose=False, show_plots=False, save_plots=False, output_dir='./output/')#
h2integrate.tools.eco.finance.run_profast_full_plant_model(h2integrate_config, wind_cost_results, electrolyzer_performance_results, capex_breakdown, opex_breakdown_total, hopp_results, incentive_option, design_scenario, total_accessory_power_renewable_kw, total_accessory_power_grid_kw, verbose=False, show_plots=False, save_plots=False, output_dir='./output/')#