Add load curve growth
@@ -33,6 +33,9 @@ def load_curves(
load_curves = load_curves.loc[load_curves.region_id_epaipm.isin(keep_regions)]
+ # Increase demand to account for load growth
+ load_curves = add_load_growth(load_curves, settings)
+
# Set a new column "region" to the old column values. Then replace values for any
# regions that are being aggregated
load_curves.loc[:, "region"] = load_curves.loc[:, "region_id_epaipm"]
@@ -52,3 +55,31 @@ def load_curves(
lc_wide.columns = lc_wide.columns.droplevel()
return lc_wide
+
+
+def add_load_growth(load_curves, settings):
+
+ load_map = reverse_dict_of_lists(settings["load_region_map"])
+ load_growth_map = {
+ ipm_region: settings["default_growth_rates"][load_region]
+ for ipm_region, load_region in load_map.items()
+ }
+
+ if settings["alt_growth_rate"] is not None:
+ for region, rate in settings["alt_growth_rate"].items():
+ print(region, rate)
+ load_growth_map[region] = rate
+
+ years_growth = settings["model_year"] - settings["default_load_year"]
+ load_growth_factor = {
+ region: (1 + rate) ** years_growth for region, rate in load_growth_map.items()
+ }
+
+ for region in load_curves["region_id_epaipm"].unique():
+ growth_factor = load_growth_factor[region]
+ print(region, growth_factor)
+ load_curves.loc[
+ load_curves["region_id_epaipm"] == region, "load_mw"
+ ] *= growth_factor
+
+ return load_curves
