sdom.OptimizationResults#
- class sdom.OptimizationResults(termination_condition: str = '', solver_status: str = '', total_cost: float = 0.0, gen_mix_target: float = 0.0, generation_df: ~pandas.core.frame.DataFrame = <factory>, storage_df: ~pandas.core.frame.DataFrame = <factory>, thermal_generation_df: ~pandas.core.frame.DataFrame = <factory>, installed_plants_df: ~pandas.core.frame.DataFrame = <factory>, summary_df: ~pandas.core.frame.DataFrame = <factory>, problem_info: dict = <factory>, capacity: dict = <factory>, storage_capacity: dict = <factory>, generation_totals: dict = <factory>, cost_breakdown: dict = <factory>)[source]#
Data class containing all optimization results from SDOM.
This class stores the complete results from an SDOM optimization run, organized into DataFrames for different result categories (generation, storage, summary) and provides convenient accessors for specific metrics.
- generation_df#
Hourly generation dispatch results for all technologies.
- Type:
pd.DataFrame
- storage_df#
Hourly storage operation results (charge, discharge, SOC).
- Type:
pd.DataFrame
- thermal_generation_df#
Disaggregated hourly thermal generation by plant.
- Type:
pd.DataFrame
- installed_plants_df#
Installed capacity for each individual power plant (solar, wind, thermal).
- Type:
pd.DataFrame
- summary_df#
Summary metrics including capacities, costs, and totals.
- Type:
pd.DataFrame
- __init__(termination_condition: str = '', solver_status: str = '', total_cost: float = 0.0, gen_mix_target: float = 0.0, generation_df: ~pandas.core.frame.DataFrame = <factory>, storage_df: ~pandas.core.frame.DataFrame = <factory>, thermal_generation_df: ~pandas.core.frame.DataFrame = <factory>, installed_plants_df: ~pandas.core.frame.DataFrame = <factory>, summary_df: ~pandas.core.frame.DataFrame = <factory>, problem_info: dict = <factory>, capacity: dict = <factory>, storage_capacity: dict = <factory>, generation_totals: dict = <factory>, cost_breakdown: dict = <factory>) None#
Methods
__init__([termination_condition, ...])Get the hourly generation dispatch DataFrame.
Get the installed power plants capacity DataFrame.
Get solver problem information.
Get the hourly storage operation DataFrame.
Get the summary metrics DataFrame.
Get the disaggregated hourly thermal generation DataFrame.
Attributes
Check if the solution is optimal.
Total installed solar PV capacity (MW).
Storage charging power capacity by technology (MW).
Storage discharging power capacity by technology (MW).
Storage energy capacity by technology (MWh).
Total installed thermal capacity (MW).
Total installed wind capacity (MW).
Total solar PV generation (MWh).
Total thermal generation (MWh).
Total wind generation (MWh).
- generation_df: DataFrame#
- storage_df: DataFrame#
- thermal_generation_df: DataFrame#
- installed_plants_df: DataFrame#
- summary_df: DataFrame#
- get_generation_dataframe() DataFrame[source]#
Get the hourly generation dispatch DataFrame.
- Returns:
DataFrame with columns: Scenario, Hour, Solar PV Generation (MW), Solar PV Curtailment (MW), Wind Generation (MW), Wind Curtailment (MW), All Thermal Generation (MW), Hydro Generation (MW), Nuclear Generation (MW), Other Renewables Generation (MW), Imports (MW), Storage Charge/Discharge (MW), Exports (MW), Load (MW).
- Return type:
pd.DataFrame
- get_storage_dataframe() DataFrame[source]#
Get the hourly storage operation DataFrame.
- Returns:
DataFrame with columns: Hour, Technology, Charging power (MW), Discharging power (MW), State of charge (MWh).
- Return type:
pd.DataFrame
- get_thermal_generation_dataframe() DataFrame[source]#
Get the disaggregated hourly thermal generation DataFrame.
- Returns:
DataFrame with columns: Hour, and one column per thermal plant.
- Return type:
pd.DataFrame
- get_summary_dataframe() DataFrame[source]#
Get the summary metrics DataFrame.
- Returns:
DataFrame with columns: Metric, Technology, Run, Optimal Value, Unit.
- Return type:
pd.DataFrame
- get_installed_plants_dataframe() DataFrame[source]#
Get the installed power plants capacity DataFrame.
- Returns:
DataFrame with columns: Plant ID, Technology, Installed Capacity (MW), Max Capacity (MW), Capacity Fraction.
- Return type:
pd.DataFrame
- get_problem_info() dict[source]#
Get solver problem information.
- Returns:
Dictionary with keys: Number of constraints, Number of variables, Number of binary variables, Number of objectives, Number of nonzeros.
- Return type:
- __init__(termination_condition: str = '', solver_status: str = '', total_cost: float = 0.0, gen_mix_target: float = 0.0, generation_df: ~pandas.core.frame.DataFrame = <factory>, storage_df: ~pandas.core.frame.DataFrame = <factory>, thermal_generation_df: ~pandas.core.frame.DataFrame = <factory>, installed_plants_df: ~pandas.core.frame.DataFrame = <factory>, summary_df: ~pandas.core.frame.DataFrame = <factory>, problem_info: dict = <factory>, capacity: dict = <factory>, storage_capacity: dict = <factory>, generation_totals: dict = <factory>, cost_breakdown: dict = <factory>) None#