Skip to content

Commit a9c4e39

Browse files
authored
Project summary results enhancements (#1345)
1 parent 1a7682c commit a9c4e39

File tree

2 files changed

+73
-30
lines changed

2 files changed

+73
-30
lines changed

db/db_schema.sql

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6715,27 +6715,36 @@ CREATE TABLE results_project_carbon_emissions_by_technology_period
67156715
);
67166716

67176717

6718-
DROP TABLE IF EXISTS results_project_summary;
6719-
CREATE TABLE results_project_summary
6718+
DROP TABLE IF EXISTS results_project_period_summary;
6719+
CREATE TABLE results_project_period_summary
67206720
(
6721-
scenario_id INTEGER,
6722-
project VARCHAR(64),
6723-
weather_iteration INTEGER,
6724-
hydro_iteration INTEGER,
6725-
availability_iteration INTEGER,
6726-
subproblem_id INTEGER,
6727-
stage_id INTEGER,
6728-
capacity_type VARCHAR(64),
6729-
availability_type VARCHAR(64),
6730-
operational_type VARCHAR(64),
6731-
technology VARCHAR(32),
6732-
load_zone VARCHAR(32),
6733-
total_delivered_power FLOAT,
6734-
PRIMARY KEY (scenario_id, project, weather_iteration, hydro_iteration,
6735-
availability_iteration, subproblem_id, stage_id)
6721+
scenario_id INTEGER,
6722+
project VARCHAR(64),
6723+
period INTEGER,
6724+
weather_iteration INTEGER,
6725+
hydro_iteration INTEGER,
6726+
availability_iteration INTEGER,
6727+
subproblem_id INTEGER,
6728+
stage_id INTEGER,
6729+
capacity_type VARCHAR(64),
6730+
operational_type VARCHAR(64),
6731+
technology VARCHAR(32),
6732+
load_zone VARCHAR(32),
6733+
total_delivered_bulk_power_mwh FLOAT,
6734+
cap_factor_equivalent FLOAT,
6735+
capacity_mw FLOAT,
6736+
energy_mwh FLOAT,
6737+
hyb_gen_capacity_mw FLOAT,
6738+
hyb_stor_capacity_mw FLOAT,
6739+
stor_energy_capacity_mwh FLOAT,
6740+
fuel_prod_capacity_fuelunitperhour FLOAT,
6741+
fuel_rel_capacity_fuelunitperhour FLOAT,
6742+
fuel_stor_capacity_fuelunit FLOAT,
6743+
PRIMARY KEY (scenario_id, project, period, weather_iteration,
6744+
hydro_iteration, availability_iteration, subproblem_id,
6745+
stage_id)
67366746
);
67376747

6738-
67396748
DROP TABLE IF EXISTS results_transmission_period;
67406749
CREATE TABLE results_transmission_period
67416750
(

gridpath/project/summary_results.py

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,38 +31,72 @@ def export_summary_results(
3131
m,
3232
d,
3333
):
34-
"""
35-
Export all results from the PROJECT_CAPACITY_DF and PROJECT_OPERATIONS_DF
36-
that various modules have added to
37-
"""
34+
""" """
3835

3936
project_summary_df = pd.DataFrame(
4037
columns=[
4138
"project",
39+
"period",
4240
"capacity_type",
43-
"availability_type",
4441
"operational_type",
4542
"technology",
4643
"load_zone",
47-
"total_delivered_power",
44+
"total_delivered_bulk_power_mwh",
45+
"cap_factor_equivalent",
46+
"capacity_mw",
47+
"energy_mwh",
48+
"hyb_gen_capacity_mw",
49+
"hyb_stor_capacity_mw",
50+
"stor_energy_capacity_mwh",
51+
"fuel_prod_capacity_fuelunitperhour",
52+
"fuel_rel_capacity_fuelunitperhour",
53+
"fuel_stor_capacity_fuelunit",
4854
],
4955
data=[
5056
[
5157
prj,
58+
prd,
5259
m.capacity_type[prj],
53-
m.availability_type[prj],
5460
m.operational_type[prj],
5561
m.technology[prj],
5662
m.load_zone[prj],
5763
sum(
5864
value(m.Bulk_Power_Provision_MW[_prj, tmp])
65+
* m.hrs_in_tmp[tmp]
66+
* m.tmp_weight[tmp]
5967
for (_prj, tmp) in m.PRJ_OPR_TMPS
60-
if _prj == prj
68+
if _prj == prj and m.period[tmp] == prd
69+
),
70+
(
71+
sum(
72+
(
73+
value(m.Bulk_Power_Provision_MW[_prj, tmp])
74+
/ value(m.Capacity_MW[prj, prd])
75+
)
76+
* m.hrs_in_tmp[tmp]
77+
* m.tmp_weight[tmp]
78+
for (_prj, tmp) in m.PRJ_OPR_TMPS
79+
if _prj == prj and m.period[tmp] == prd
80+
)
81+
/ sum(
82+
m.hrs_in_tmp[tmp] * m.tmp_weight[tmp]
83+
for tmp in m.TMPS_IN_PRD[prd]
84+
)
85+
if value(m.Capacity_MW[prj, prd]) > 0
86+
else None
6187
),
88+
value(m.Capacity_MW[prj, prd]),
89+
value(m.Energy_MWh[prj, prd]),
90+
value(m.Hyb_Gen_Capacity_MW[prj, prd]),
91+
value(m.Hyb_Stor_Capacity_MW[prj, prd]),
92+
value(m.Energy_Storage_Capacity_MWh[prj, prd]),
93+
value(m.Fuel_Production_Capacity_FuelUnitPerHour[prj, prd]),
94+
value(m.Fuel_Release_Capacity_FuelUnitPerHour[prj, prd]),
95+
value(m.Fuel_Storage_Capacity_FuelUnit[prj, prd]),
6296
]
63-
for prj in m.PROJECTS
97+
for (prj, prd) in m.PRJ_OPR_PRDS
6498
],
65-
).set_index(["project"])
99+
).set_index(["project", "period"])
66100

67101
project_summary_df.sort_index(inplace=True)
68102

@@ -75,7 +109,7 @@ def export_summary_results(
75109
subproblem,
76110
stage,
77111
"results",
78-
"project_summary.csv",
112+
"project_period_summary.csv",
79113
),
80114
sep=",",
81115
index=True,
@@ -114,5 +148,5 @@ def import_results_into_database(
114148
stage=stage,
115149
quiet=quiet,
116150
results_directory=results_directory,
117-
which_results="project_summary",
151+
which_results="project_period_summary",
118152
)

0 commit comments

Comments
 (0)