Skip to content

Commit

Permalink
Add single example and GenX files
Browse files Browse the repository at this point in the history
  • Loading branch information
gschivley committed May 21, 2024
1 parent 3424b51 commit 69fc389
Show file tree
Hide file tree
Showing 33 changed files with 7,866 additions and 0 deletions.
31 changes: 31 additions & 0 deletions example_systems/CONUS-3-zone/extra_inputs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Description of extra input files

## case_id_description_fn

Contains the two columns `case_id` and `case_description`, which are a short ID and a longer description of each case. The ID is used as a foreign key in other files and the description is used in subfolder names.

## scenario_definitions_fn

Starts with mandatory columns `case_id`, which should use `case_id` from the file `case_id_description.csv` as a foreign key, and `year`, which should match the `model_year` values from the settings file. All other columns are user-defined names that refer to the types of parameters in the settings file that will being changed across cases. The values in each column are also user-defined strings describing the scenario (e.g. "high", "mid", "low").

The column names and values in each column are used in the settings parameter `settings_management` to define how the default settings values should be changed across each case.

## distributed_gen_profiles_fn

Normalized hourly generation profiles for distributed generation in all regions listed in the settings file under `distributed_gen_method` and `distributed_gen_values`.

## demand_response_fn

Hourly (not normalized) profiles for demand response resources in each region/year/scenario. The top four rows are the name of the DR resource (matching key values in the settings parameter `demand_response_resources`), the model year, the scenario name (matching names from `scenario_definitions_fn`), and the region.

## emission_policies_fn

Describes the emission policies in each case. The first two columns are `case_id` and `year`. Next, the `region` column can either contain the name of a model region or the string "all" (when identical policies are applied to all regions). The column `copy_case_id` indicates if policies from another case should be used (slightly more clear and hopefully fewer errors than just using copy/paste across multiple rows). Other column names should match the columns used in output policy files (e.g. `RPS`, `CES`, etc) and contain numeric values or the string `None`.

## capacity_limit_spur_fn

Provides the maximum capacity and spur-line construction distance for new resources. Starts with the required columns `region` and `technology`. `cluster` can be omitted, but is required when more than one resource of the same name is used within a region.

The data columns in this file are `spur_miles` and `max_capacity`.

## demand_segments_fn
2 changes: 2 additions & 0 deletions example_systems/CONUS-3-zone/extra_inputs/Reserves.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Reg_Req_Percent_Load,Reg_Req_Percent_VRE,Rsv_Req_Percent_Load,Rsv_Req_Percent_VRE,Unmet_Rsv_Penalty_Dollar_per_MW,Dynamic_Contingency,Static_Contingency_MW
0.01,0.0032,0.033,0.0795,1000,0,0
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
The CSV file in this directory allows a user to add their own technology costs and
heat rate assumptions to cases.

technology: Name of the technology. Should be distinct in some way from the ATB names,
especially the ATB <technology>_<tech_detail> combination.

planning_year: The model planning year. This might be different from the basis year that technology costs and attributes are based on.

capex_mw: USD/MW capital expenses, including construction financing costs, etc. Be sure to
convert from $/kW.

capex_mwh: USD/MWh capital expenses, including construction financing costs, etc. Used
for storage resources such as batteries.

fixed_o_m_mw: Fixed O&M costs per MW-year.

fixed_o_m_mwh: Fixed O&M costs per MWh-year. Used for storage resources such as batteries.

variable_o_m_mwh: Variable O&M costs per MWh.

wacc_real: Nominal weighted average cost of capital.

dollar_year: Year that dollars are calculated for. This is used to convert costs to a
consistent dollar year across inputs.

heat_rate: MMBTU per MWh

notes: Not used in calculations, this is a place to document sources, etc.
6,181 changes: 6,181 additions & 0 deletions example_systems/CONUS-3-zone/extra_inputs/co2_pipeline_cost_percentiles.csv

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Voll,Demand_Segment,Cost_of_Demand_Curtailment_per_MW,Max_Demand_Curtailment,$/MWh
2000,1,1,1,2000
,2,0.9,0.04,1800
,3,0.55,0.024,1100
,4,0.2,0.003,400
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
case_id,year,region,ESR_1,ESR_2,ESR_3,ESR_4,ESR_5,ESR_6
all,2030,ERCOT,0,0,0,0,0,0
all,2030,Eastern,0.164,0,0,0.06,0,0
all,2030,Western,0,0.355,0,0,0.18,0
all,2050,ERCOT,0,0,0,0,0,0
all,2050,Eastern,0.202,0,0,0.257,0,0
all,2050,Western,0,0.368,0,0,0.699,0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
region_from,region_to,firm_ttc_mw,notes
ERC_WEST,ERC_REST,11000,
WECC_MT,MIS_MAPP,200,
WECC_WY,SPP_WAUE,200,
WECC_WY,SPP_NEBR,210,Stegall and Sidney
WECC_CO,SPP_N,210,
WECC_NM,SPP_SPS,400,
29 changes: 29 additions & 0 deletions example_systems/CONUS-3-zone/extra_inputs/misc_gen_inputs.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Resource,region,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Existing_Charge_Cap_MW,Max_Cap_MWh,Min_Cap_MWh,Max_Charge_Cap_MW,Reg_Cost,Rsv_Cost,Reg_Max,Rsv_Max
biomass,all,,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
conventional_hydroelectric,all,,0,1,1,0,0,0.5,0.5,0,0,0,-1,-1,-1,0,0,0,0
geothermal,all,,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
hydroelectric_pumped_storage,all,,0,0.866,0.866,1,16,1,1,0,0,0,-1,-1,-1,0,0,0,0
natural_gas_fired_combined_cycle,all,,0,1,1,0,0,0.64,0.64,6,6,0,-1,-1,-1,0,0,0.106666667,0.213333333
natural_gas_fired_combustion_turbine,all,,0,1,1,0,0,3.78,3.78,1,1,0,-1,-1,-1,0,0,0.63,1.26
other_peaker,all,,0,1,1,0,0,3.78,3.78,1,1,0,-1,-1,-1,0,0,0.63,1.26
natural_gas_steam_turbine,all,,0,1,1,0,0,0.57,0.57,24,24,0,-1,-1,-1,0,0,0.095,0.19
onshore_wind_turbine,all,,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
small_hydroelectric,all,,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
solar_photovoltaic,all,,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
conventional_steam_coal,all,,0,1,1,0,0,0.57,0.57,24,24,0,-1,-1,-1,0,0,0.095,0.19
offshore_wind,all,,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
naturalgas_ccccsavgcf,all,0.6,0,1,1,0,0,0.64,0.64,6,6,0,-1,-1,-1,0,0,0.106666667,0.213333333
naturalgas_ccs100,all,0.6,0,1,1,0,0,0.64,0.64,6,6,0,-1,-1,-1,0,0,0.106666667,0.213333333
naturalgas_ccavgcf,all,0.2,0,1,1,0,0,0.64,0.64,6,6,0,-1,-1,-1,0,0,0.106666667,0.213333333
naturalgas_ctavgcf,all,0.3,0,1,1,0,0,3.78,3.78,1,1,0,-1,-1,-1,0,0,0.63,1.26
landbasedwind,all,0,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
offshorewind,all,0,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
utilitypv,all,0,0,1,1,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,0
test,all,0,0,0.92,0.92,1,10,1,1,0,0,0,-1,-1,-1,0,0,0,0
nuclear,all,0.5,0,1,1,0,0,0.25,0.25,24,24,0,-1,-1,-1,0,0,0.041666667,0.083333333
battery,all,0,0,0.92,0.92,1,10,1,1,0,0,0,-1,-1,-1,0,0,0,0
batteries,all,0,0,0.92,0.92,1,10,1,1,0,0,0,-1,-1,-1,0,0,0,0
naturalgas_h-frame cc_moderate,all,0.3,0,1,1,0,0,0.64,0.64,6,6,0,-1,-1,0,0,0,0.106666667,0.213333333
naturalgas_h-frame cc 95% ccs,all,0.6,0,1,1,0,0,0.64,0.64,6,6,0,-1,-1,0,0,0,0.106666667,0.213333333
naturalgas_f-frame ct_moderate,all,0.3,0,1,1,0,0,3.78,3.78,1,1,0,-1,-1,0,0,0,0.63,1.26
naturalgas_h-frame ct_moderate,all,0.3,0,1,1,0,0,3.78,3.78,1,1,0,-1,-1,0,0,0,0.63,1.26
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
start_region,dest_region,interconnect_cost_mw,interconnect_annuity_mw,line_loss_frac,start_id,dest_id,dollar_year,mw-km_per_mw,start_intraregion_cost_mw,dest_intraregion_cost_mw,start_intraregion_loss_frac,dest_intraregion_loss_frac,start_mw-km_per_mw,dest_mw-km_per_mw,total_interconnect_cost_mw,total_line_loss_frac,total_mw-km_per_mw,total_interconnect_annuity_mw
Eastern,Western,630794.6187,30555.07645,0.045480667,149221,202112,2018,797.9065107,314827.3317,488518.1596,0.022695905,0.031962095,175.8387665,310.2731194,1434140.11,0.100138667,1284.018397,69468.34897
Eastern,ERCOT,333984.6216,16177.88951,0.020748327,149640,303537,2018,278.501046,314827.3317,271718.0809,0.022695905,0.021446432,175.8387665,222.8032491,920530.0343,0.064890664,677.1430617,44589.57755
Western,ERCOT,749213.1611,36291.15521,0.059687169,300883,202112,2018,1047.143361,488518.1596,271718.0809,0.031962095,0.021446432,310.2731194,222.8032491,1509449.402,0.113095696,1580.21973,73116.25764
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
region,technology,cluster,spur_miles,max_capacity
NENGREST,NaturalGas_CCCCS,,20,-1
NENGREST,NaturalGas_CCAvgCF,,0,-1
NENGREST,NaturalGas_CT,,0,-1
NENGREST,Battery,,0,-1
NENGREST,Nuclear,,50,-1
NENGREST,NaturalGas_CCS100,,20,-1
NENG_CT,NaturalGas_CCCCS,,20,-1
NENG_CT,NaturalGas_CCAvgCF,,0,-1
NENG_CT,NaturalGas_CT,,0,-1
NENG_CT,Battery,,0,-1
NENG_CT,Nuclear,,50,-1
NENG_CT,NaturalGas_CCS100,,20,-1
NENG_ME,NaturalGas_CCCCS,,20,-1
NENG_ME,NaturalGas_CCAvgCF,,0,-1
NENG_ME,NaturalGas_CT,,0,-1
NENG_ME,Battery,,0,-1
NENG_ME,Nuclear,,50,-1
NENG_ME,NaturalGas_CCS100,,20,-1
7 changes: 7 additions & 0 deletions example_systems/CONUS-3-zone/extra_inputs/scenario_inputs.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
case_id,year,policy,renewable_clustering
p1,2030,unconstrained,base
p1,2050,unconstrained,base
p2,2030,existing_esr,base
p2,2050,existing_esr,base
p3,2030,existing_esr,lat_lon
p3,2050,existing_esr,lat_lon
79 changes: 79 additions & 0 deletions example_systems/CONUS-3-zone/settings/demand.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# LOAD GROWTH ASSUMPTIONS
#

# Hourly demand from 2012 is included with PG. The growth rates from 2012-2019 can be
# calculated using historical data. Different growth scenarios can be selected using the
# same AEO scenarios used for fuel prices. Examples include HIGHMACRO for high growth and
# LOWMACRO for low growth.
regular_load_growth_start_year: 2020
growth_scenario: REF2022
load_eia_aeo_year: 2022

historical_load_region_map:
TRE: [ERC_PHDL, ERC_REST, ERC_WEST]
FLRC: [FRCC] #FRCC
MWRCE: [MIS_WUMS]
MWRCW: [MIS_MAPP, SPP_WAUE, SPP_NEBR, MIS_MIDA, MIS_IA, MIS_MNWI]
NPCCNE: [NENG_ME, NENG_CT, NENGREST]
NPCCNYWE: [NY_Z_J]
NPCCLI: [NY_Z_K]
NPCCUPNY: [
NY_Z_A,
NY_Z_B,
NY_Z_C&E,
NY_Z_D,
NY_Z_F,
NY_Z_G-I,
]
RFCET: [PJM_WMAC, PJM_EMAC, PJM_SMAC, PJM_PENE, PJM_Dom]
RFCMI: [MIS_LMI]
RFCWT: [PJM_West, PJM_AP, PJM_ATSI, PJM_COMD]
SERCDLT: [MIS_WOTA, MIS_LA, MIS_AMSO, MIS_AR, MIS_D_MS]
SERCGW: [MIS_MO, S_D_AECI, MIS_IL, MIS_INKY]
SERCSOES: [S_SOU]
SERCCNT: [S_C_TVA, S_C_KY]
SERCVC: [S_VACA]
SWPPNO: [SPP_N]
SWPPSO: [SPP_SPS, SPP_WEST]
WECCSW: [WECC_AZ, WECC_NM, WECC_SNV]
WECCCA: [WEC_CALN, WEC_BANC, WECC_IID, WECC_SCE, WEC_LADW, WEC_SDGE]
WENWPP: [WECC_PNW, WECC_MT, WECC_ID, WECC_WY, WECC_UT, WECC_NNV]
WECCRKS: [WECC_CO]

future_load_region_map:
TRE: [ERC_PHDL, ERC_REST, ERC_WEST]
FLRC: [FRCC] #FRCC
MCW: [MIS_WUMS, MIS_MNWI, MIS_IA] #MISW
MCE: [MIS_LMI] #MISE
PJMCE: [PJM_COMD] #PJMC
MCC: [MIS_IL, MIS_MO, S_D_AECI, MIS_INKY] #MISC
SWPPNO: [MIS_MAPP, SPP_WAUE, SPP_NEBR, MIS_MIDA] #SPPN
SWPPC: [SPP_N] #SPPC
SWPPSO: [SPP_WEST, SPP_SPS] #SPPS
MCS: [MIS_AMSO, MIS_WOTA, MIS_LA, MIS_AR, MIS_D_MS] #MISS
SERCSOES: [S_SOU] #SRSE
SERCE: [S_VACA] #SRCA
PJMD: [PJM_Dom]
PJMW: [PJM_West, PJM_AP, PJM_ATSI]
PJME: [PJM_WMAC, PJM_EMAC, PJM_SMAC, PJM_PENE]
SERCCNT: [S_C_TVA, S_C_KY] #SRCE
NPCCUPNY: [
NY_Z_A,
NY_Z_B,
NY_Z_C&E,
NY_Z_D,
NY_Z_F,
NY_Z_G-I,
] #NYUP
NENYCLI: [NY_Z_J, NY_Z_K] #NYCW
NPCCNE: [NENG_ME, NENGREST, NENG_CT] #ISNE
WECCRKS: [WECC_CO] #RMRG
WECCB: [WECC_ID, WECC_WY, WECC_UT, WECC_NNV] #BASN
WENWPP: [WECC_PNW, WECC_MT] #NWPP
WECCCAN: [WEC_CALN, WEC_BANC] #CANO
WECCCAS: [WECC_IID, WECC_SCE, WEC_LADW, WEC_SDGE] #CASO
WECCSW: [WECC_AZ, WECC_NM, WECC_SNV] #SRSG

# Make none (~) if no regions are included here
alt_growth_rate: ~
# WECC_AZ: 0.02
11 changes: 11 additions & 0 deletions example_systems/CONUS-3-zone/settings/distributed_gen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Name of the data file located in the folder specified by the parameter
# DISTRIBUTED_GEN_DATA
distributed_gen_fn: nrel_cambium_distr_pv_2022_utc.parquet
distributed_gen_scenario: MidCase

# Set this parameter to "true" if existing distributed generation in each region should
# be represented as a resource rather than being subtracted from demand.
dg_as_resource: false

# Distribution loss used when subtracting distributed generation from total load.
avg_distribution_loss: 0.0453
6 changes: 6 additions & 0 deletions example_systems/CONUS-3-zone/settings/env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
PUDL_DB:
PG_DB:
EFS_DATA:
DISTRIBUTED_GEN_DATA:
RESOURCE_GROUP_PROFILES:
RESOURCE_GROUPS:
11 changes: 11 additions & 0 deletions example_systems/CONUS-3-zone/settings/extra_inputs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# The location and name of additional input files needed to create outputs
input_folder: extra_inputs # Subfolder directly below the location of this settings file
scenario_definitions_fn: scenario_inputs.csv # Define policy/cost scenarios for each case
emission_policies_fn: emission_policies.csv # Emission policies for each model_year/region/case_id
capacity_limit_spur_fn: resource_capacity_spur.csv # Max capacity and spur line distance for each renewable resource
demand_segments_fn: demand_segments_voll.csv
misc_gen_inputs_fn: misc_gen_inputs.csv
user_transmission_costs: network_costs_conus_3_zone.csv
user_transmission_constraints_fn: ipm_tx_corrections.csv
co2_pipeline_cost_fn: co2_pipeline_cost_percentiles.csv
reserves_fn: Reserves.csv
67 changes: 67 additions & 0 deletions example_systems/CONUS-3-zone/settings/flexible_load.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Flexible loads associated with increased electrification can be included using data
# from NREL's EFS study (described below) or using user input files. This case study
# uses EFS data.


# Electrification scenarios are supplied in two files. EFS_STOCK_AGG.parquet has scenarios
# from the NREL Electrification Futures Study (EFS). SCENARIO_STOCK.parquet has scenarios
# from the Princeton Net Zero study. The scenario name will depend on which source you
# use. The NREL EFS scenarios include:

# HIGH ELECTRIFICATION - MODERATE TECHNOLOGY ADVANCEMENT
# MEDIUM ELECTRIFICATION - MODERATE TECHNOLOGY ADVANCEMENT
# REFERENCE ELECTRIFICATION - MODERATE TECHNOLOGY ADVANCEMENT

# The Princeton Net Zero scenarios include:

# current_policy
# stated_policy
# deep_decarbonization
# moderate_decarbonization

# The type of flexible loads that can be included as flexible demand resources (with hourly
# profiles from NREL EFS data) are:

# res_space_heat_cool (residential space heating and cooling)
# res_water_heat (residential water heating)
# comm_space_heat_cool (commercial space heating and cooling)
# comm_water_heat (commercial water heating)
# trans_light_duty (light duty vehicles)
# trans_medium_duty (medium duty vehicles)
# trans_heavy_duty (heavy duty vehicles)
# trans_bus (transit buses)


electrification_stock_fn: repeat_scenario_stock.parquet # EFS_STOCK_AGG.parquet
electrification_scenario: IRA_MID # REFERENCE ELECTRIFICATION - MODERATE TECHNOLOGY ADVANCEMENT
# Name of the flexible resource, fraction of load that can be shifted, and model-specific
# parameters that will be applied to each resource.
# Table 5.1 from the NREL report "Electrification Futures Study:
# Scenarios of Electric Technology Adoption and Power Consumption for the United States"
# can serve as a starting point for determining parameter values.
flexible_demand_resources:
2030:
trans_light_duty:
fraction_shiftable: 0.8
parameter_values:
Max_Flexible_Demand_Delay: 5
FLEX: 1
Flexible_Demand_Energy_Eff: 1
res_water_heat:
fraction_shiftable: 0.1
parameter_values:
Max_Flexible_Demand_Delay: 2
FLEX: 1
Flexible_Demand_Energy_Eff: 1
2050:
trans_light_duty:
fraction_shiftable: 0.8
parameter_values:
Max_Flexible_Demand_Delay: 5
FLEX: 1
res_water_heat:
fraction_shiftable: 0.25
parameter_values:
Max_Flexible_Demand_Delay: 2
FLEX: 1
Flexible_Demand_Energy_Eff: 1
Loading

0 comments on commit 69fc389

Please sign in to comment.