diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a8de87f0c..d55bb09d0 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -110,7 +110,7 @@ Include additional illustrative plots describing input data, methods, testing, a - + diff --git a/cases.csv b/cases.csv index c7dd12009..f3b125638 100644 --- a/cases.csv +++ b/cases.csv @@ -32,7 +32,8 @@ ccs_upgrade_cost_case,case in upgrade_cost_ccs_coal and upgrade_cost_ccs_gas to coalscen,"Coal price scenario (inputs\fuelprices\{coalscen}.csv). The options for coalscen start with 'coal_' and the switch should be set to the file name, dropping 'coal' (ex: AEO_2025_reference)",AEO_2025_reference; AEO_2026_baseline; AEO_2026_altelec,AEO_2026_baseline, demandscen,Demand scenario (see inputs\load),N/A,AEO_2026_baseline, dr_shedscen,DR shed scenario,demo_data_January_2025,demo_data_January_2025, -evmcscen,EVMC scenario for load and supply curve and flexibility,Baseline,Baseline, +dr_shapescen,DR shed scenario,ex_dr1 ,ex_dr1, +dr_shiftscen,DR shed scenario,ex_dr1 ,ex_dr1, geodiscov,Annual discover rates for new geothermal sites,BAU; TI,BAU, geohydrosupplycurve,Geohydro Supply Curve,ATB_2023,ATB_2023, egssupplycurve,EGS Supply Curve,ATB_2023; reV,reV, @@ -75,7 +76,6 @@ mindev,minimum deviation for a hintage to qualify for a new bin,int,50, unitdata,"Unit Database: ""EIA-NEMS"" for NEMS",EIA-NEMS,EIA-NEMS, marg_vre_mw,MW for marginal VRE curt/cc calcs,N/A,1000, marg_stor_mw,MW for marginal storage capacity credit,N/A,100, -marg_evmc_mw,MW for marginal electric vehicle managed charging (EVMC) capacity credit,N/A,100, GSw_AnnualCap,CO2/CO2e emission cap. Turn off cap (0) or turn on CO2 only cap (1) or turn on CO2e cap (2) or include H2 leakage in CO2e cap (3) ,0; 1; 2; 3,0, GSw_AnnualCapScen,Scenario for CO2 cap pathway (see inputs\emission_constraints\co2_cap.csv),N/A,default, GSw_AVG_iter,Select method for choosing which iterations are used for CC/curt calculations,0; 1,1, @@ -132,10 +132,11 @@ GSw_DAC_Gas,"Turn on or off the representation of gas fueled direct air capture GSw_DAC_Gas_Case,DAC gas parameterization case (See inputs/consume/dac_gas_[GSw_DAC_Gas_Case].csv),BVRE_2021_(high|mid|low),BVRE_2021_mid, GSw_distpv,Turn on/off distpv,0;1,1, GSw_DRShed, switch to turn on/off demand response shed resource,0;1,0, +GSw_DRShape, switch to turn on/off demand response shape resource,0;1,0, +GSw_DRShift, switch to turn on/off demand response shift resource,0;1,0, GSw_EFS_Flex,Switch for turning EFS load flexibility on or off,0,0, GSw_EFS2_FlexCase,"Case used for electrification flex_type - format is {1}_{2}, where 1 in [EFS_REFERENCE, EFS_MEDIUM, EFS_HIGH, EFS_Clean2035] and 2 in [Baseflex, Currentflex, Enhancedflex, Uberflex1, Uberflex2]",N/A,EFS_MEDIUM_EnhancedflexStretch2046, GSw_EmploymentFactor,Source for employment factor data - see inputs/employment/README.md for descriptions,^(jedi|mayfield|rutovitz|ram)$,jedi, -GSw_EVMC,Turn on adoptable EV managed charging,0; 1,0, GSw_FakeData,Use fake capacity factor profiles (for TESTING ONLY when you do not want to download the real CF data),^[0-1]$,0, GSw_ForcePrescription,Turn on/off forced prescriptions - turning off will allow unlimited but not free builds in historical years,0; 1,1, GSw_GasFuelCell,Turn on/off natural gas fuel cell (ng-fuel-cell) as a technology option,0; 1,0, diff --git a/cases_dr.csv b/cases_dr.csv new file mode 100644 index 000000000..e784979fc --- /dev/null +++ b/cases_dr.csv @@ -0,0 +1,21 @@ +,Default Value,Pacific_DRShed,Pacific_DRShape,Pacific_DRShift,Pacific_st_DRShed,Pacific_st_DRShape,USA_st_DRShed,USA_st_DRShape,USA_st_DRShift,WI_st_DRShed,WI_st_DRShape,WI_st_DRShift +ignore,1,1,1,1,1,1,1,0,1,1,1,1 +endyear,,2032,2032,2032,2032,2032,2040,2035,2040,2040,2040,2040 +yearset,2010_2015_2020..2050..3,,,,,,2010_2015_2020..2050..5,2010_2015_2020..2050..5,2010_2015_2020..2050..5,2010_2015_2020..2050..5,2010_2015_2020..2050..5,2010_2015_2020..2050..5 +GSw_Region,,cendiv/Pacific,cendiv/Pacific,cendiv/Pacific,cendiv/Pacific,cendiv/Pacific,country/USA,country/USA,country/USA,interconnect/western,interconnect/western,interconnect/western +GSw_ZoneSet,,,z132,z132,z54,z54,z54,z54,z54,z54,z54,z54 +GSw_GasCurve,,2,2,2,2,2,2,2,2,2,2,2 +GSw_HourlyType,,,,,,,,,,,, +GSw_OpRes,,,,,,,,,,,, +GSw_HourlyNumClusters,,,,,,,,,,,, +GSw_PRM_CapCredit,,,,,,,,,,,, +GSw_StartCost,,,,,,,,,,,, +GSw_LfillGas,,,,,,,,,,,, +GSw_Geothermal,,,,,,,,,,,, +GSw_Biopower,,,,,,,,,,,, +GSw_Nuclear,,,,,,,,,,,, +GSw_HourlyChunkLengthRep,,,,,,,,,,,, +GSw_HourlyChunkLengthStress,,,,,,,,,,,, +GSw_DRShed,,1,,,1,,1,,,1,, +GSw_DRShape,,,1,,,1,,1,,,1, +GSw_DRShift,,,,1,,,,,1,,,1 diff --git a/cases_test.csv b/cases_test.csv index 805d5829d..68310c82b 100644 --- a/cases_test.csv +++ b/cases_test.csv @@ -1,5 +1,5 @@ ,Default Value,Pacific,USA_defaults,Mid_Case,USA_decarb,github_Pacific,github_Everything,github_MA_county_CC,Pacific_CC,Pacific_weks,Pacific_full_year,Interday_storage,Pacific_2020,Pacific_rep15,WY_county,WECC_county,PJM_county_CC,NYVT_mixed,OR_water,MonteCarlo_Random,MonteCarlo_LHS,Everything,Simple,USA_fast,USA_faster,MultiMetricRA,Pacific_DR,Pacific_MGA,Pacific_MGA_RV,Pacific_LoadSite95,MARICTNYNJPAOH_Offshore,R2P -ignore,1,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +ignore,1,1,,,,1,0,1,,,,,,,,,,,,,,,,,,,,,,,, GSw_Region,cendiv/Pacific,,country/USA,country/USA,country/USA,,st/ID.WY.NE.IA.IL,st/MA,,,,,,,st/WY,interconnect/western,transreg/PJM,st/NY.VT,st/OR,st/NE.NY.PA,st/NE.NY.PA,st/ID.WY.NE.IA.IL,st/KS,country/USA,country/USA,st/NY.NJ,,,,,st/MA.RI.CT.NY.NJ.PA.OH, endyear,2035,,2050,2050,2050,2030,2060,2030,,,,,,,,,,,2035,2030,2030,2060,2035,2050,2050,2050,,,,,, yearset,,,,,,,2010..2060..10,,,,,,,,,,,,,,,2010..2060..10,2010_2015_2020..2050..3,,2010_2025_2050,,,,,,, diff --git a/docs/source/model_documentation.md b/docs/source/model_documentation.md index 0e38631f6..ceb5a9812 100644 --- a/docs/source/model_documentation.md +++ b/docs/source/model_documentation.md @@ -43,6 +43,7 @@ National Laboratory of the Rockies. ({{ cite_date_last_updated }}). *Model docum | dGen | Distributed Generation Market Demand model | | DNI | direct normal insolation | | DOE | U.S. Department of Energy | +| DR | demand response | DSIRE | Database of State Incentives for Renewables and Efficiency | | EAC | energy attribute credit | | EGS | enhanced geothermal system | @@ -1795,15 +1796,31 @@ The `GSw_RetailAdder` switch (default 0, units of [2004\$/MWh]) adds a cost adde ### Demand Response -Demand response (DR) is turned off by default in ReEDS, but the user has the option to enable DR via load shedding. -The demonstration data used to characterize the amount of load shedding available were obtained from a workflow which includes ResStock, DR-Path, and dsgrid. -The data reflect the technical potential for residential load shedding in 11 states (AZ, CA, CO, FL, GA, MN, MT, NM, NY, TX, WA) and were developed using the 2018 weather year. +Unlike other generation or storage technologies, demand response (DR) contributes to system supply-demand balance through the management of demand-side loads. +Load management can be facilitated by different types of signals and responses on different timescales and with different types of communication. +For example, price-responsive dispatch mechanisms like time-of-use rates or real-time pricing involve one-way communication of prices that electricity users and/or their devices can use to inform consumption decisions. +On the other hand, direct load control programs often involve two-way communications between a utility or an aggregator and devices (e.g., thermostat, electric vehicle charger, industrial equipment) whose consumption patterns are modified to shed or shift load away from peak or reliability event times. +ReEDS represents price-responsive DR as a resource that modifies load based on exogenous shapes and represents direct load control programs as dispatchable shed or shift resources. + +DR is turned off by default in ReEDS, but the user has the option to enable DR via three types of demand response resources. + +#### Load Shedding + +The demonstration data used to characterize the amount of load shedding avaiable were obtained from a workflow which includes ResStock, DR-Path, and dsgrid. The data reflect the technical potential for residential load shedding in 11 states (AZ, CA, CO, FL, GA, MN, MT, NM, NY, TX, WA) and were developed using the 2018 weather year. Through this implementation the demand response is effectively added as a new supply curve-based resource; however, the DR shed potential is only available during stress periods. If ReEDS chooses to dispatch DR shed, the "generation" from the resource is subtracted from the load considered in the resource adeqaucy calculations. The capital costs for the residential resource are derived from the installation cost for the DR-enabling technology (program implementation or procurement costs are not included). In addition to only allowing the shed resource to be dispatched during stress periods, a max daily capacity factor is defined. For the residential heating and cooling resources the max daily capacity factor is set to 4 hours per day. +#### Adoptable Load Shape Modification + +This load management method reflects price-responsive demand response resources and is classified as a DR Shape technology in the model. DR-Shape is implemented in ReEDS as an endogenous flexibility resource rooted in pre-computed shape profiles that characterize the potential for deferred demand. The resource is represented as hourly time series of fractions describing two quantities: the share of load that can be delayed away from its baseline hour ("generation," in the sense of load reduction), and the corresponding additional load that appears in a later hour when the deferred energy is consumed. These fractional profiles are coupled with the adopted DR Shape capaicty the model chooses to invest in, with the upper bound on adoptable capacity informed by the MW quantity of load eligible to participate in demand response. In the model, the DR-Shape "generation" fraction is subtracted from the load in the hours when deferral occurs, while the "load" fraction is added back in the hours when deferred energy is recovered, such that net energy consumption is conserved. These adjusted load profiles — reflecting both the reduction and the payback — are also carried through to the Probabilistic Resource Adequacy Suite (PRAS), so that the reliability assessment accounts for the modified load shape produced by DR-Shape adoption. + +#### Load Shifting + +DR-Shift is implemented in ReEDS as an endogenous flexibility resource that represents load-shifting potential through a storage-like formulation with time-dependent charge and discharge bounds. Rather than pre-computing fixed shape profiles, DR-Shift is characterized by three inputs: a discharge profile defining the baseline load available to be deferred in each hour (equivalent to immediate consumption if the resource is not participating in demand response), a charge profile defining the outer bound on when deferred energy can be recovered (the latest possible payback window), and an energy profile defining the maximum cumulative quantity of load that could have been deferred from previous hours. Within the ReEDS optimization, DR-Shift is dispatched endogenously subject to three constraints: a capacity constraint ensuring that resource use does not exceed time-varying availability, a storage level constraint that tracks the state of charge of the DR-Shift device, and a duration constraint ensuring that the storage level does not exceed the time-varying energy capacity at any hour. This formulation is intended to reflect direct load control programs in which a utility or aggregator can shift flexible end-use loads — such as water heating, space conditioning, or electric vehicle charging — within bounded windows, conserving net energy consumption while allowing the optimization to determine the least-cost dispatch timing across the planning horizon. + ## Transmission ReEDS considers two categories of transmission: "local interconnection" of generation capacity within the model zones and "interzonal" or "long-distance" transmission between the model zones. diff --git a/docs/source/user_guide.md b/docs/source/user_guide.md index eff586c19..49bd99557 100644 --- a/docs/source/user_guide.md +++ b/docs/source/user_guide.md @@ -141,9 +141,13 @@ For EER’s load profiles, “weather” includes everything considered by NLR's Demand response is turned off by default. To enable it the following switches are needed: -- `GSw_DRShed`: turns on/off the demand response resource +- `GSw_DRShed`: turns on/off the demand response shed resource - `GSw_MaxDailyCF` : turns on/off daily maximum capacity factor constraint -- `dr_shedscen`: scenario to define which scalars will be used for the supply curve cost and capacity +- `dr_shedscen`: scenario to define which scalars will be used for the supply curve cost and capacity, VOM, FOM, and hourly profile +- `GSw_DRShape`: turns on/off the demand response shape resource +- `dr_shapescen`: scenario to define which scalars will be used for the supply curve cost and capacity, VOM, FOM, and hourly profiles +- `GSw_DRShift`: turns on/off the demand response shift resource +- `dr_shiftscen`: scenario to define which scalars will be used for the supply curve cost and capacity, VOM, FOM, and hourly profiles ## Hydrogen inputs diff --git a/inputs/degradation/degradation_annual_default.csv b/inputs/degradation/degradation_annual_default.csv index 6bbe3c1d5..a92d57ea4 100644 --- a/inputs/degradation/degradation_annual_default.csv +++ b/inputs/degradation/degradation_annual_default.csv @@ -56,5 +56,5 @@ egs_allkm_1*egs_allkm_10,0 geohydro_allkm_1*geohydro_allkm_10,0 egs_nearfield_1*egs_nearfield_10,0 dr_shed_1*dr_shed_2,0 -evmc_storage_1*evmc_storage_10,0 -evmc_shape_1*evmc_shape_10,0 +dr_shape_1*dr_shape_2,0 +dr_shift_1*dr_shift_2,0 diff --git a/inputs/demand_response/README.md b/inputs/demand_response/README.md index 577d08a86..574f5c3c8 100644 --- a/inputs/demand_response/README.md +++ b/inputs/demand_response/README.md @@ -1,5 +1,36 @@ ## Demand Response Input Files -- `dr_shed_avail_scalar.csv`: +### DR Shed Input Files -- `dr_shed_capacity_scalar_demo_data_January_2025.csv`: +- **`dr_shed_hourly_{dr_shedscen}.h5`**: Hourly DR shed resource availability. +- **`inputs/supply_curve/dr_shed_cost_{dr_shedscen}.csv`**: Supply curve cost [$/MW]. Represents the installation cost for the DR-enabling technology (program implementation or procurement costs are not included) in 2020 dollars. +- **`inputs/plant_characteristics/dr_shed_capcost_scalars_{dr_shedscen}.csv`**: Supply curve populated with 2030 cost data, scaled in the model to reflect additional years through 2050. +- **`inputs/supply_curve/dr_shed_cap_{dr_shedscen}.csv`**: Supply curve capacity [MW], populated with maximum technical potential in 2030 for each ReEDS zone from the hourly shed data. +- **`inputs/demand_response/dr_shed_capacity_scalar_{dr_shedscen}.csv`**: Supply curve populated with 2030 capacity data, scaled in the model to reflect additional years through 2050. +- **`inputs/plant_characteristics/dr_shed_vom_{dr_shedscen}.csv`**: Variable operation and maintenance costs for the DR Shed resource [$/MWh]. +- **`inputs/plant_characteristics/dr_shed_fom_{dr_shedscen}.csv`**: Fixed operation and maintenance costs for the DR Shed resource [$/MWh]. +- **`inputs/demand_response/dr_shed_avail_scalar.csv`**: Scalar representing the response rate of the resource by decrementing availability. Set to 1 by default. +- **`inputs/plant_characteristics/maxdailycf.csv`**: Defines the maximum daily capacity factor for any technology. Default is 4 hours per day for DR shed (0.167 = 4/24). + +### DR Shape Input Files + +- **`dr_shape_decrease_profile_{dr_shapescen}.h5`**: Hourly time series of fractions representing the amount of “generation” (load that can be delayed). +- **`dr_shape_increase_profile_{dr_shapescen}.h5`**: Hourly time series of fractions representing the amount of added load in a later hour (deferred). +- **`inputs/supply_curve/dr_shape_cost_{dr_shapescen}.csv`**: Supply curve cost [$/MW]. Assumed to be 0 in the demonstration data. +- **`inputs/supply_curve/dr_shape_cap_{dr_shapescen}.csv`**: Supply curve capacity [MW], populated with maximum technical potential in 2030 for each state from the hourly shape data. +- **`inputs/plant_characteristics/dr_shape_cost_scalars_{dr_shapescen}.csv`**: Supply curve populated with 2030 cost data, scaled in the model to reflect additional years through 2050. +- **`inputs/demand_response/dr_shape_capacity_scalar_{dr_shapescen}.csv`**: Supply curve populated with 2030 capacity data, scaled in the model to reflect additional years through 2050. +- **`inputs/plant_characteristics/dr_shape_vom_{dr_shapescen}.csv`**: Variable operation and maintenance costs for the DR Shape resource [$/MWh]. +- **`inputs/plant_characteristics/dr_shape_fom_{dr_shapescen}.csv`**: Fixed operation and maintenance costs for the DR Shape resource [$/MWh]. + +### DR Shift Input Files + +- **`dr_shift_decrease_profile_{dr_shiftscen}.h5`**: Baseline/discharge profile of DR resource available to be deferred (or immediate charging/use if not participating in DR). +- **`dr_shift_increase_profile_{dr_shiftscen}.h5`**: Outer bound on when DR resource can be shifted (or latest possible charging/payback). +- **`dr_shift_energy_profile_{dr_shiftscen}.h5`**: Deferment/flexibility potential. +- **`inputs/supply_curve/dr_shift_cost_{dr_shiftscen}.csv`**: Supply curve cost [$/MW]. Assumed to be 0 in the demonstration data. +- **`inputs/supply_curve/dr_shift_cap_{dr_shiftscen}.csv`**: Supply curve capacity [MW], populated with maximum technical potential in 2030 for each state from the hourly shift data. +- **`inputs/plant_characteristics/dr_shift_cost_scalars_{dr_shiftscen}.csv`**: Supply curve populated with 2030 cost data, scaled in the model to reflect additional years through 2050. +- **`inputs/demand_response/dr_shift_capacity_scalar_{dr_shiftscen}.csv`**: Supply curve populated with 2030 capacity data, scaled in the model to reflect additional years through 2050. +- **`inputs/plant_characteristics/dr_shift_vom_{dr_shiftscen}.csv`**: Variable operation and maintenance costs for the DR Shift resource [$/MWh]. +- **`inputs/plant_characteristics/dr_shift_fom_{dr_shiftscen}.csv`**: Fixed operation and maintenance costs for the DR Shift resource [$/MWh]. \ No newline at end of file diff --git a/inputs/demand_response/dr_shape_cap_scalar_ex_dr1.csv b/inputs/demand_response/dr_shape_cap_scalar_ex_dr1.csv new file mode 100644 index 000000000..7ee55ba4f --- /dev/null +++ b/inputs/demand_response/dr_shape_cap_scalar_ex_dr1.csv @@ -0,0 +1,49 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shape_1,TN,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shape_1,LA,0.965,0.972,0.979,0.986,0.993,1.0,1.006,1.012,1.019,1.025,1.031,1.037,1.043,1.048,1.054,1.06,1.068,1.076,1.083,1.091,1.099,1.107,1.115,1.124,1.132,1.14 +dr_shape_1,NV,0.895,0.916,0.937,0.958,0.979,1.0,1.018,1.036,1.054,1.072,1.091,1.107,1.123,1.14,1.156,1.173,1.189,1.206,1.222,1.239,1.26,1.28,1.299,1.319,1.339,1.358 +dr_shape_1,KS,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shape_1,MO,0.974,0.979,0.984,0.99,0.995,1.0,1.007,1.014,1.021,1.028,1.034,1.042,1.049,1.057,1.064,1.072,1.08,1.089,1.097,1.106,1.114,1.125,1.136,1.147,1.158,1.169 +dr_shape_1,AR,0.963,0.97,0.978,0.985,0.993,1.0,1.007,1.013,1.02,1.027,1.034,1.04,1.046,1.052,1.058,1.064,1.072,1.079,1.086,1.093,1.101,1.108,1.116,1.124,1.132,1.139 +dr_shape_1,KY,0.956,0.965,0.974,0.982,0.991,1.0,1.006,1.012,1.018,1.025,1.031,1.036,1.041,1.046,1.051,1.056,1.062,1.067,1.073,1.079,1.084,1.094,1.103,1.112,1.122,1.131 +dr_shape_1,MD,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shape_1,NJ,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shape_1,AZ,0.91,0.928,0.946,0.964,0.982,1.0,1.015,1.03,1.045,1.06,1.075,1.088,1.101,1.114,1.126,1.139,1.153,1.166,1.18,1.196,1.213,1.229,1.245,1.261,1.278,1.294 +dr_shape_1,CO,0.915,0.932,0.949,0.966,0.983,1.0,1.016,1.033,1.049,1.065,1.082,1.097,1.113,1.128,1.144,1.159,1.176,1.194,1.211,1.228,1.245,1.263,1.282,1.301,1.32,1.338 +dr_shape_1,FL,0.735,0.788,0.841,0.894,0.947,1.0,1.034,1.069,1.103,1.138,1.172,1.198,1.223,1.248,1.274,1.299,1.321,1.343,1.364,1.386,1.408,1.427,1.445,1.464,1.483,1.501 +dr_shape_1,IN,0.982,0.985,0.989,0.993,0.996,1.0,1.004,1.009,1.013,1.018,1.022,1.027,1.032,1.036,1.041,1.046,1.051,1.057,1.062,1.068,1.073,1.08,1.086,1.092,1.098,1.105 +dr_shape_1,VT,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shape_1,NM,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shape_1,SD,0.912,0.93,0.947,0.965,0.982,1.0,1.013,1.025,1.038,1.051,1.064,1.074,1.084,1.095,1.105,1.115,1.126,1.142,1.158,1.174,1.191,1.209,1.227,1.244,1.262,1.28 +dr_shape_1,MS,0.953,0.962,0.972,0.981,0.991,1.0,1.009,1.017,1.026,1.034,1.043,1.051,1.059,1.067,1.076,1.084,1.094,1.104,1.113,1.123,1.133,1.142,1.151,1.16,1.169,1.178 +dr_shape_1,NH,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shape_1,NE,0.912,0.93,0.947,0.965,0.982,1.0,1.013,1.025,1.038,1.051,1.064,1.074,1.084,1.095,1.105,1.115,1.126,1.137,1.149,1.16,1.171,1.183,1.195,1.208,1.22,1.232 +dr_shape_1,OK,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shape_1,ID,0.942,0.954,0.965,0.977,0.988,1.0,1.008,1.016,1.025,1.04,1.054,1.064,1.074,1.084,1.094,1.104,1.116,1.128,1.14,1.152,1.164,1.177,1.189,1.202,1.215,1.227 +dr_shape_1,WA,0.894,0.915,0.936,0.958,0.979,1.0,1.017,1.034,1.051,1.067,1.084,1.097,1.11,1.122,1.135,1.148,1.161,1.173,1.186,1.199,1.211,1.227,1.242,1.257,1.272,1.287 +dr_shape_1,AL,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shape_1,MA,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shape_1,DE,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shape_1,CA,0.946,0.957,0.968,0.978,0.989,1.0,1.011,1.023,1.034,1.045,1.057,1.068,1.078,1.089,1.1,1.111,1.123,1.135,1.147,1.159,1.172,1.185,1.199,1.212,1.226,1.239 +dr_shape_1,UT,0.895,0.916,0.937,0.958,0.979,1.0,1.018,1.036,1.054,1.072,1.091,1.107,1.123,1.14,1.156,1.173,1.189,1.206,1.222,1.239,1.26,1.28,1.299,1.319,1.339,1.358 +dr_shape_1,ND,0.948,0.959,0.969,0.979,0.99,1.0,1.008,1.017,1.025,1.034,1.042,1.05,1.058,1.065,1.073,1.08,1.089,1.098,1.106,1.115,1.123,1.133,1.142,1.152,1.161,1.171 +dr_shape_1,MN,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shape_1,OR,0.894,0.915,0.936,0.958,0.979,1.0,1.017,1.034,1.051,1.067,1.084,1.097,1.11,1.122,1.135,1.148,1.161,1.173,1.186,1.199,1.211,1.227,1.242,1.257,1.272,1.287 +dr_shape_1,GA,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shape_1,MT,0.942,0.954,0.965,0.977,0.988,1.0,1.008,1.016,1.025,1.04,1.054,1.064,1.074,1.084,1.094,1.104,1.116,1.128,1.14,1.152,1.164,1.177,1.189,1.202,1.215,1.227 +dr_shape_1,SC,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shape_1,OH,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shape_1,RI,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shape_1,ME,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shape_1,WY,0.915,0.932,0.949,0.966,0.983,1.0,1.016,1.033,1.049,1.065,1.082,1.097,1.113,1.128,1.144,1.159,1.176,1.194,1.211,1.228,1.245,1.263,1.282,1.301,1.32,1.338 +dr_shape_1,MI,0.948,0.958,0.969,0.979,0.99,1.0,1.008,1.016,1.024,1.032,1.04,1.046,1.052,1.058,1.064,1.07,1.077,1.087,1.099,1.11,1.122,1.134,1.147,1.159,1.172,1.185 +dr_shape_1,WI,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shape_1,NY,0.971,0.976,0.982,0.988,0.994,1.0,1.006,1.013,1.019,1.026,1.032,1.038,1.043,1.049,1.055,1.061,1.068,1.076,1.084,1.091,1.099,1.108,1.117,1.126,1.135,1.145 +dr_shape_1,TX,0.949,0.959,0.969,0.979,0.99,1.0,1.008,1.015,1.023,1.031,1.039,1.044,1.049,1.06,1.073,1.085,1.098,1.112,1.125,1.138,1.152,1.166,1.181,1.196,1.211,1.226 +dr_shape_1,IL,0.961,0.969,0.976,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.04,1.046,1.051,1.057,1.062,1.069,1.075,1.082,1.089,1.095,1.102,1.114,1.126,1.138,1.151 +dr_shape_1,CT,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shape_1,IA,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shape_1,WV,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shape_1,NC,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shape_1,VA,0.931,0.945,0.959,0.972,0.986,1.0,1.009,1.018,1.027,1.036,1.046,1.052,1.058,1.064,1.07,1.076,1.083,1.091,1.098,1.105,1.112,1.122,1.133,1.143,1.154,1.164 +dr_shape_1,PA,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 diff --git a/inputs/demand_response/dr_shed_cap_scalar_demo_data_January_2025.csv b/inputs/demand_response/dr_shed_cap_scalar_demo_data_January_2025.csv new file mode 100644 index 000000000..c97486a21 --- /dev/null +++ b/inputs/demand_response/dr_shed_cap_scalar_demo_data_January_2025.csv @@ -0,0 +1,23 @@ +tech,r,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shed_1,AZ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.029781637493813,1.059563339268611,1.089345041043409,1.1191266785372218,1.148908444593005,1.1786900820868178,1.208471719580631,1.2382534856364138,1.268035123130227,1.2978167606240398,1.3297857514768556,1.3617547423296714,1.3937237331824872,1.4256927240353032,1.457661714888119,1.4896307057409348,1.5215996965937506,1.5535686874465664,1.5855376782993822,1.617506669152198 +dr_shed_1,CA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0271377988127648,1.0542755976255294,1.0814134590126245,1.1085513203997197,1.1356890566381541,1.1628269180252493,1.1899647794123445,1.2171025156507786,1.2442403770378738,1.271378113276308,1.2956475673540706,1.3199170214318334,1.344186350360935,1.3684558044386976,1.3927251333677992,1.4169945874455618,1.4412639163746634,1.4655333704524263,1.4898026993815279,1.5140721534592905 +dr_shed_1,CO,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0354641110127885,1.0709281569304032,1.1063923330383654,1.1418563138608064,1.177320424873595,1.2127845358863834,1.2482486468991718,1.2837127579119603,1.3191768689247487,1.3546409799375372,1.385788890362933,1.4169368007883285,1.4480847112137243,1.4792326216391198,1.5103805320645156,1.5415284424899112,1.572676352915307,1.6038242633407025,1.6349721737660983,1.6661200841914938 +dr_shed_1,FL,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0106363884731782,1.0212727769463565,1.0319090659275607,1.0425454544007389,1.0531818428739173,1.0638181318551214,1.0744545203282996,1.085090908801478,1.0957272972746561,1.1063635862558603,1.1242791060287958,1.142194526309757,1.1601100460826925,1.178025466363654,1.1959409861365893,1.2138564064175508,1.231771926190486,1.2496873464714475,1.267602866244383,1.2855182865253443 +dr_shed_1,GA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.012507570790693,1.0250152521240496,1.0375229334574063,1.0500306147907632,1.062538185581456,1.0750458669148129,1.0875535482481695,1.1000612295815264,1.1125688003722192,1.125076481705576,1.1437681407420353,1.1624596892358308,1.18115134827229,1.1998430073087494,1.2185346663452086,1.237226214839004,1.2559178738754633,1.2746095329119227,1.293301191948382,1.3119927404421774 +dr_shed_1,MN,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0260907319354116,1.0521814638708231,1.0782721958062347,1.1043629277416462,1.1304536596770578,1.1565443916124694,1.182635123547881,1.2087257798698179,1.2348165118052294,1.260907243740641,1.282139583079398,1.30337199803163,1.3246042617569123,1.3458366767091443,1.3670689404344267,1.3883013553866586,1.409533619111941,1.4307660340641728,1.4519982977894552,1.473230712741687 +dr_shed_1,MT,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0516956545870797,1.1033913091741594,1.155086892052152,1.2067824749301446,1.2584781295172243,1.310173784104304,1.3618694386913837,1.4135650932784634,1.4652606044473688,1.5169562590344485,1.562141015346175,1.6073257716579012,1.6525105279696275,1.6976952842813537,1.74288004059308,1.7880647969048062,1.8332495532165327,1.878434309528259,1.9236190658399852,1.9688038221517115 +dr_shed_1,NM,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0281940513744825,1.056388219545784,1.0845822709202666,1.1127764390915684,1.14097060726287,1.1691646586373525,1.1973588268086541,1.2255528781831366,1.2537470463544385,1.281941097728921,1.309898051560423,1.3378550053919251,1.3658119592234272,1.3937689130549293,1.4217258668864317,1.4496828207179338,1.4776397745494358,1.505596728380938,1.533553565415621,1.561510519247123 +dr_shed_1,NY,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0195213233984808,1.0390426467969616,1.0585640888271581,1.078085412225639,1.0976067356241197,1.1171280590226005,1.136649382421081,1.1561708244512778,1.1756921478497586,1.1952134712482394,1.2174989136300605,1.2397843560118817,1.2620697983937028,1.284355240775524,1.3066405645256292,1.3289260069074502,1.3512114492892715,1.3734968916710926,1.3957823340529139,1.418067776434735 +dr_shed_1,TX,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0135915169119243,1.0271831122565067,1.0407747076010894,1.0543662245130137,1.067957819857596,1.0815494152021785,1.0951409321141028,1.1087325274586854,1.1223241228032679,1.1359156397151922,1.1525632851550272,1.169210852162204,1.1858584191693808,1.202506064609216,1.2191536316163927,1.2358011986235695,1.2524488440634047,1.2690964110705816,1.2857439780777582,1.3023916235175934 +dr_shed_1,WA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0803115350848023,1.1606230701696048,1.240934605254407,1.3212461403392095,1.401557788722681,1.4818693238074834,1.5621808588922856,1.6424923939770881,1.7228039290618904,1.8031154641466929,1.8582566801745117,1.9133978962023306,1.9685392255288188,2.0236805548553067,2.078821884181795,2.133963213508283,2.1891043162374326,2.244245645563921,2.299386974890409,2.354528304216897 +dr_shed_2,AZ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0175805727475837,1.0351610674550178,1.0527416402026015,1.0703222129501853,1.087902785697769,1.1054833584453527,1.1230639311929365,1.1406445039405202,1.158225076688104,1.1758055713955382,1.1728595557470833,1.1699135400986287,1.166967524450174,1.1640214307615697,1.1610754151131149,1.1581293994646602,1.1551833057760559,1.152237290127601,1.1492912744791464,1.1463452588306917 +dr_shed_2,CA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.02987250395966,1.0597450079193198,1.0896175118789797,1.1194901112234001,1.14936261518306,1.17923511914272,1.2091076231023798,1.2389801270620397,1.2688527264064602,1.29872523036612,1.2892230958936384,1.2797210568059172,1.2702189223334355,1.2607168832457145,1.2512147487732328,1.2417127096855116,1.23221057521303,1.222708536125309,1.2132064016528272,1.203704362565106 +dr_shed_2,CO,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0665477205620852,1.1330955518816084,1.1996433832011315,1.2661911037632165,1.3327389350827397,1.399286655644825,1.465834486964348,1.5323823182838712,1.5989300388459562,1.6654778701654793,1.6935270805812417,1.7215764017544422,1.7496256121702045,1.777674933343405,1.8057241437591673,1.8337734649323676,1.861822786105568,1.8898718857638923,1.9179212069370928,1.9459705281102933 +dr_shed_2,FL,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0290610934344695,1.0581221868689388,1.0871832803034083,1.1162444833982432,1.1453055768327125,1.174366670267182,1.2034278733620167,1.2324889667964862,1.2615500602309557,1.2906111536654252,1.3000026866789522,1.3093942196924795,1.3187857527060065,1.3281771760591683,1.3375687090726955,1.3469602420862226,1.3563517750997498,1.3657431984529116,1.3751347314664386,1.3845262644799659 +dr_shed_2,GA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0010975908980781,1.002195117598291,1.0032927084963692,1.0043902993944471,1.0054878260946603,1.0065854169927384,1.0076830078908163,1.0087805345910295,1.0098781254891074,1.0109757163871855,1.0004226787432267,0.9898696410992678,0.9793166676531738,0.968763630009215,0.9582105923652561,0.9476575547212972,0.9371045812752032,0.9265515436312444,0.9159985059872855,0.9054455325411916 +dr_shed_2,MN,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0987126737621122,1.1974253475242242,1.2961380212863365,1.3948506950484485,1.4935632232430547,1.592275897005167,1.6909885707672792,1.7897012445293912,1.8884139182915034,1.9871265920536154,2.032670734308005,2.0782148765623942,2.1237591643842895,2.169303306638679,2.2148474488930683,2.2603917367149635,2.305935878969353,2.3514801667912484,2.3970243090456376,2.442568596867533 +dr_shed_2,MT,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0290610934344695,1.0581221868689388,1.0871832803034083,1.1162444833982432,1.1453055768327125,1.174366670267182,1.2034278733620167,1.2324889667964862,1.2615500602309557,1.2906111536654252,1.3000026866789522,1.3093942196924795,1.3187857527060065,1.3281771760591683,1.3375687090726955,1.3469602420862226,1.3563517750997498,1.3657431984529116,1.3751347314664386,1.3845262644799659 +dr_shed_2,NM,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0377874408637087,1.0755747872793575,1.1133622281430662,1.151149574558715,1.1889370154224237,1.2271209492407793,1.2661438651735057,1.305166875554292,1.3441897914870187,1.3832127074197451,1.3938924217710333,1.4045721361223216,1.4152518504736098,1.425931564824898,1.4366112791761863,1.4472909935274745,1.4579707078787627,1.468650422230051,1.4793301365813392,1.4900098509326274 +dr_shed_2,NY,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.1077699382552884,1.2155398765105765,1.3233098147658648,1.4310797530211532,1.5388496912764413,1.6466196295317297,1.754389567787018,1.8621595060423064,1.9699294442975945,2.0776993825528827,2.106280203059447,2.1348610235660113,2.1634418440725756,2.192022890501978,2.220603711008542,2.2491845315151062,2.2777653520216705,2.306346172528235,2.334926993034799,2.363507813541363 +dr_shed_2,TX,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0290610934344695,1.0581221868689388,1.0871832803034083,1.1162444833982432,1.1453055768327125,1.174366670267182,1.2034278733620167,1.2324889667964862,1.2615500602309557,1.2906111536654252,1.3000026866789522,1.3093942196924795,1.3187857527060065,1.3281771760591683,1.3375687090726955,1.3469602420862226,1.3563517750997498,1.3657431984529116,1.3751347314664386,1.3845262644799659 +dr_shed_2,WA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.0290610934344695,1.0581221868689388,1.0871832803034083,1.1162444833982432,1.1453055768327125,1.174366670267182,1.2034278733620167,1.2324889667964862,1.2615500602309557,1.2906111536654252,1.3000026866789522,1.3093942196924795,1.3187857527060065,1.3281771760591683,1.3375687090726955,1.3469602420862226,1.3563517750997498,1.3657431984529116,1.3751347314664386,1.3845262644799659 diff --git a/inputs/demand_response/dr_shed_capacity_scalar_demo_data_January_2025.csv b/inputs/demand_response/dr_shed_capacity_scalar_demo_data_January_2025.csv deleted file mode 100644 index bd6a9f5aa..000000000 --- a/inputs/demand_response/dr_shed_capacity_scalar_demo_data_January_2025.csv +++ /dev/null @@ -1,23 +0,0 @@ -tech,r,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 -dr_shed_1,AZ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.03,1.06,1.089,1.119,1.149,1.179,1.208,1.238,1.268,1.298,1.33,1.362,1.394,1.426,1.458,1.49,1.522,1.554,1.586,1.618 -dr_shed_1,CA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.027,1.054,1.081,1.109,1.136,1.163,1.19,1.217,1.244,1.271,1.296,1.32,1.344,1.368,1.393,1.417,1.441,1.466,1.49,1.514 -dr_shed_1,CO,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.035,1.071,1.106,1.142,1.177,1.213,1.248,1.284,1.319,1.355,1.386,1.417,1.448,1.479,1.51,1.542,1.573,1.604,1.635,1.666 -dr_shed_1,FL,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.011,1.021,1.032,1.043,1.053,1.064,1.074,1.085,1.096,1.106,1.124,1.142,1.16,1.178,1.196,1.214,1.232,1.25,1.268,1.286 -dr_shed_1,GA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.013,1.025,1.038,1.05,1.063,1.075,1.088,1.1,1.113,1.125,1.144,1.162,1.181,1.2,1.219,1.237,1.256,1.275,1.293,1.312 -dr_shed_1,MN,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.026,1.052,1.078,1.104,1.13,1.157,1.183,1.209,1.235,1.261,1.282,1.303,1.325,1.346,1.367,1.388,1.41,1.431,1.452,1.473 -dr_shed_1,MT,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.052,1.103,1.155,1.207,1.258,1.31,1.362,1.414,1.465,1.517,1.562,1.607,1.653,1.698,1.743,1.788,1.833,1.878,1.924,1.969 -dr_shed_1,NM,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.028,1.056,1.085,1.113,1.141,1.169,1.197,1.226,1.254,1.282,1.31,1.338,1.366,1.394,1.422,1.45,1.478,1.506,1.534,1.562 -dr_shed_1,NY,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.02,1.039,1.059,1.078,1.098,1.117,1.137,1.156,1.176,1.195,1.217,1.24,1.262,1.284,1.307,1.329,1.351,1.373,1.396,1.418 -dr_shed_1,TX,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.014,1.027,1.041,1.054,1.068,1.082,1.095,1.109,1.122,1.136,1.153,1.169,1.186,1.203,1.219,1.236,1.252,1.269,1.286,1.302 -dr_shed_1,WA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.08,1.161,1.241,1.321,1.402,1.482,1.562,1.642,1.723,1.803,1.858,1.913,1.969,2.024,2.079,2.134,2.189,2.244,2.299,2.355 -dr_shed_2,AZ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.018,1.035,1.053,1.07,1.088,1.105,1.123,1.141,1.158,1.176,1.173,1.17,1.167,1.164,1.161,1.158,1.155,1.152,1.149,1.146 -dr_shed_2,CA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.03,1.06,1.09,1.119,1.149,1.179,1.209,1.239,1.269,1.299,1.289,1.28,1.27,1.261,1.251,1.242,1.232,1.223,1.213,1.204 -dr_shed_2,CO,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.067,1.133,1.2,1.266,1.333,1.399,1.466,1.532,1.599,1.665,1.694,1.722,1.75,1.778,1.806,1.834,1.862,1.89,1.918,1.946 -dr_shed_2,FL,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,0.982,0.964,0.947,0.929,0.911,0.893,0.875,0.858,0.84,0.822,0.809,0.795,0.781,0.768,0.754,0.74,0.727,0.713,0.7,0.686 -dr_shed_2,GA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.001,1.002,1.003,1.004,1.005,1.007,1.008,1.009,1.01,1.011,1.0,0.99,0.979,0.969,0.958,0.948,0.937,0.927,0.916,0.905 -dr_shed_2,MN,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.099,1.197,1.296,1.395,1.494,1.592,1.691,1.79,1.888,1.987,2.033,2.078,2.124,2.169,2.215,2.26,2.306,2.351,2.397,2.443 -dr_shed_2,MT,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.029,1.058,1.087,1.116,1.145,1.174,1.203,1.232,1.262,1.291,1.3,1.309,1.319,1.328,1.338,1.347,1.356,1.366,1.375,1.385 -dr_shed_2,NM,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.038,1.076,1.113,1.151,1.189,1.227,1.266,1.305,1.344,1.383,1.394,1.405,1.415,1.426,1.437,1.447,1.458,1.469,1.479,1.49 -dr_shed_2,NY,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,1.108,1.216,1.323,1.431,1.539,1.647,1.754,1.862,1.97,2.078,2.106,2.135,2.163,2.192,2.221,2.249,2.278,2.306,2.335,2.364 -dr_shed_2,TX,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,0.996,0.991,0.987,0.983,0.979,0.974,0.97,0.966,0.961,0.957,0.945,0.933,0.921,0.909,0.897,0.885,0.872,0.86,0.848,0.836 -dr_shed_2,WA,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.0,0.978,0.955,0.933,0.91,0.888,0.865,0.843,0.82,0.798,0.775,0.757,0.739,0.722,0.704,0.686,0.668,0.65,0.632,0.615,0.597 diff --git a/inputs/demand_response/dr_shift_cap_scalar_ex_dr1.csv b/inputs/demand_response/dr_shift_cap_scalar_ex_dr1.csv new file mode 100644 index 000000000..d409ee019 --- /dev/null +++ b/inputs/demand_response/dr_shift_cap_scalar_ex_dr1.csv @@ -0,0 +1,97 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shift_1,TN,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_1,LA,0.965,0.972,0.979,0.986,0.993,1.0,1.006,1.012,1.019,1.025,1.031,1.037,1.043,1.048,1.054,1.06,1.068,1.076,1.083,1.091,1.099,1.107,1.115,1.124,1.132,1.14 +dr_shift_1,NV,0.895,0.916,0.937,0.958,0.979,1.0,1.018,1.036,1.054,1.072,1.091,1.107,1.123,1.14,1.156,1.173,1.189,1.206,1.222,1.239,1.26,1.28,1.299,1.319,1.339,1.358 +dr_shift_1,KS,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shift_1,MO,0.974,0.979,0.984,0.99,0.995,1.0,1.007,1.014,1.021,1.028,1.034,1.042,1.049,1.057,1.064,1.072,1.08,1.089,1.097,1.106,1.114,1.125,1.136,1.147,1.158,1.169 +dr_shift_1,AR,0.963,0.97,0.978,0.985,0.993,1.0,1.007,1.013,1.02,1.027,1.034,1.04,1.046,1.052,1.058,1.064,1.072,1.079,1.086,1.093,1.101,1.108,1.116,1.124,1.132,1.139 +dr_shift_1,KY,0.956,0.965,0.974,0.982,0.991,1.0,1.006,1.012,1.018,1.025,1.031,1.036,1.041,1.046,1.051,1.056,1.062,1.067,1.073,1.079,1.084,1.094,1.103,1.112,1.122,1.131 +dr_shift_1,MD,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_1,NJ,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_1,AZ,0.91,0.928,0.946,0.964,0.982,1.0,1.015,1.03,1.045,1.06,1.075,1.088,1.101,1.114,1.126,1.139,1.153,1.166,1.18,1.196,1.213,1.229,1.245,1.261,1.278,1.294 +dr_shift_1,CO,0.915,0.932,0.949,0.966,0.983,1.0,1.016,1.033,1.049,1.065,1.082,1.097,1.113,1.128,1.144,1.159,1.176,1.194,1.211,1.228,1.245,1.263,1.282,1.301,1.32,1.338 +dr_shift_1,FL,0.735,0.788,0.841,0.894,0.947,1.0,1.034,1.069,1.103,1.138,1.172,1.198,1.223,1.248,1.274,1.299,1.321,1.343,1.364,1.386,1.408,1.427,1.445,1.464,1.483,1.501 +dr_shift_1,IN,0.982,0.985,0.989,0.993,0.996,1.0,1.004,1.009,1.013,1.018,1.022,1.027,1.032,1.036,1.041,1.046,1.051,1.057,1.062,1.068,1.073,1.08,1.086,1.092,1.098,1.105 +dr_shift_1,VT,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_1,NM,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shift_1,SD,0.912,0.93,0.947,0.965,0.982,1.0,1.013,1.025,1.038,1.051,1.064,1.074,1.084,1.095,1.105,1.115,1.126,1.142,1.158,1.174,1.191,1.209,1.227,1.244,1.262,1.28 +dr_shift_1,MS,0.953,0.962,0.972,0.981,0.991,1.0,1.009,1.017,1.026,1.034,1.043,1.051,1.059,1.067,1.076,1.084,1.094,1.104,1.113,1.123,1.133,1.142,1.151,1.16,1.169,1.178 +dr_shift_1,NH,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_1,NE,0.912,0.93,0.947,0.965,0.982,1.0,1.013,1.025,1.038,1.051,1.064,1.074,1.084,1.095,1.105,1.115,1.126,1.137,1.149,1.16,1.171,1.183,1.195,1.208,1.22,1.232 +dr_shift_1,OK,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shift_1,ID,0.942,0.954,0.965,0.977,0.988,1.0,1.008,1.016,1.025,1.04,1.054,1.064,1.074,1.084,1.094,1.104,1.116,1.128,1.14,1.152,1.164,1.177,1.189,1.202,1.215,1.227 +dr_shift_1,WA,0.894,0.915,0.936,0.958,0.979,1.0,1.017,1.034,1.051,1.067,1.084,1.097,1.11,1.122,1.135,1.148,1.161,1.173,1.186,1.199,1.211,1.227,1.242,1.257,1.272,1.287 +dr_shift_1,AL,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_1,MA,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_1,DE,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_1,CA,0.946,0.957,0.968,0.978,0.989,1.0,1.011,1.023,1.034,1.045,1.057,1.068,1.078,1.089,1.1,1.111,1.123,1.135,1.147,1.159,1.172,1.185,1.199,1.212,1.226,1.239 +dr_shift_1,UT,0.895,0.916,0.937,0.958,0.979,1.0,1.018,1.036,1.054,1.072,1.091,1.107,1.123,1.14,1.156,1.173,1.189,1.206,1.222,1.239,1.26,1.28,1.299,1.319,1.339,1.358 +dr_shift_1,ND,0.948,0.959,0.969,0.979,0.99,1.0,1.008,1.017,1.025,1.034,1.042,1.05,1.058,1.065,1.073,1.08,1.089,1.098,1.106,1.115,1.123,1.133,1.142,1.152,1.161,1.171 +dr_shift_1,MN,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shift_1,OR,0.894,0.915,0.936,0.958,0.979,1.0,1.017,1.034,1.051,1.067,1.084,1.097,1.11,1.122,1.135,1.148,1.161,1.173,1.186,1.199,1.211,1.227,1.242,1.257,1.272,1.287 +dr_shift_1,GA,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_1,MT,0.942,0.954,0.965,0.977,0.988,1.0,1.008,1.016,1.025,1.04,1.054,1.064,1.074,1.084,1.094,1.104,1.116,1.128,1.14,1.152,1.164,1.177,1.189,1.202,1.215,1.227 +dr_shift_1,SC,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_1,OH,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_1,RI,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_1,ME,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_1,WY,0.915,0.932,0.949,0.966,0.983,1.0,1.016,1.033,1.049,1.065,1.082,1.097,1.113,1.128,1.144,1.159,1.176,1.194,1.211,1.228,1.245,1.263,1.282,1.301,1.32,1.338 +dr_shift_1,MI,0.948,0.958,0.969,0.979,0.99,1.0,1.008,1.016,1.024,1.032,1.04,1.046,1.052,1.058,1.064,1.07,1.077,1.087,1.099,1.11,1.122,1.134,1.147,1.159,1.172,1.185 +dr_shift_1,WI,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shift_1,NY,0.971,0.976,0.982,0.988,0.994,1.0,1.006,1.013,1.019,1.026,1.032,1.038,1.043,1.049,1.055,1.061,1.068,1.076,1.084,1.091,1.099,1.108,1.117,1.126,1.135,1.145 +dr_shift_1,TX,0.949,0.959,0.969,0.979,0.99,1.0,1.008,1.015,1.023,1.031,1.039,1.044,1.049,1.06,1.073,1.085,1.098,1.112,1.125,1.138,1.152,1.166,1.181,1.196,1.211,1.226 +dr_shift_1,IL,0.961,0.969,0.976,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.04,1.046,1.051,1.057,1.062,1.069,1.075,1.082,1.089,1.095,1.102,1.114,1.126,1.138,1.151 +dr_shift_1,CT,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_1,IA,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shift_1,WV,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_1,NC,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_1,VA,0.931,0.945,0.959,0.972,0.986,1.0,1.009,1.018,1.027,1.036,1.046,1.052,1.058,1.064,1.07,1.076,1.083,1.091,1.098,1.105,1.112,1.122,1.133,1.143,1.154,1.164 +dr_shift_1,PA,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_2,TN,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_2,LA,0.965,0.972,0.979,0.986,0.993,1.0,1.006,1.012,1.019,1.025,1.031,1.037,1.043,1.048,1.054,1.06,1.068,1.076,1.083,1.091,1.099,1.107,1.115,1.124,1.132,1.14 +dr_shift_2,NV,0.895,0.916,0.937,0.958,0.979,1.0,1.018,1.036,1.054,1.072,1.091,1.107,1.123,1.14,1.156,1.173,1.189,1.206,1.222,1.239,1.26,1.28,1.299,1.319,1.339,1.358 +dr_shift_2,KS,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shift_2,MO,0.974,0.979,0.984,0.99,0.995,1.0,1.007,1.014,1.021,1.028,1.034,1.042,1.049,1.057,1.064,1.072,1.08,1.089,1.097,1.106,1.114,1.125,1.136,1.147,1.158,1.169 +dr_shift_2,AR,0.963,0.97,0.978,0.985,0.993,1.0,1.007,1.013,1.02,1.027,1.034,1.04,1.046,1.052,1.058,1.064,1.072,1.079,1.086,1.093,1.101,1.108,1.116,1.124,1.132,1.139 +dr_shift_2,KY,0.956,0.965,0.974,0.982,0.991,1.0,1.006,1.012,1.018,1.025,1.031,1.036,1.041,1.046,1.051,1.056,1.062,1.067,1.073,1.079,1.084,1.094,1.103,1.112,1.122,1.131 +dr_shift_2,MD,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_2,NJ,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_2,AZ,0.91,0.928,0.946,0.964,0.982,1.0,1.015,1.03,1.045,1.06,1.075,1.088,1.101,1.114,1.126,1.139,1.153,1.166,1.18,1.196,1.213,1.229,1.245,1.261,1.278,1.294 +dr_shift_2,CO,0.915,0.932,0.949,0.966,0.983,1.0,1.016,1.033,1.049,1.065,1.082,1.097,1.113,1.128,1.144,1.159,1.176,1.194,1.211,1.228,1.245,1.263,1.282,1.301,1.32,1.338 +dr_shift_2,FL,0.735,0.788,0.841,0.894,0.947,1.0,1.034,1.069,1.103,1.138,1.172,1.198,1.223,1.248,1.274,1.299,1.321,1.343,1.364,1.386,1.408,1.427,1.445,1.464,1.483,1.501 +dr_shift_2,IN,0.982,0.985,0.989,0.993,0.996,1.0,1.004,1.009,1.013,1.018,1.022,1.027,1.032,1.036,1.041,1.046,1.051,1.057,1.062,1.068,1.073,1.08,1.086,1.092,1.098,1.105 +dr_shift_2,VT,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_2,NM,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shift_2,SD,0.912,0.93,0.947,0.965,0.982,1.0,1.013,1.025,1.038,1.051,1.064,1.074,1.084,1.095,1.105,1.115,1.126,1.142,1.158,1.174,1.191,1.209,1.227,1.244,1.262,1.28 +dr_shift_2,MS,0.953,0.962,0.972,0.981,0.991,1.0,1.009,1.017,1.026,1.034,1.043,1.051,1.059,1.067,1.076,1.084,1.094,1.104,1.113,1.123,1.133,1.142,1.151,1.16,1.169,1.178 +dr_shift_2,NH,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_2,NE,0.912,0.93,0.947,0.965,0.982,1.0,1.013,1.025,1.038,1.051,1.064,1.074,1.084,1.095,1.105,1.115,1.126,1.137,1.149,1.16,1.171,1.183,1.195,1.208,1.22,1.232 +dr_shift_2,OK,0.962,0.97,0.977,0.985,0.992,1.0,1.007,1.014,1.021,1.028,1.034,1.041,1.048,1.054,1.061,1.067,1.076,1.084,1.093,1.101,1.109,1.119,1.128,1.137,1.146,1.155 +dr_shift_2,ID,0.942,0.954,0.965,0.977,0.988,1.0,1.008,1.016,1.025,1.04,1.054,1.064,1.074,1.084,1.094,1.104,1.116,1.128,1.14,1.152,1.164,1.177,1.189,1.202,1.215,1.227 +dr_shift_2,WA,0.894,0.915,0.936,0.958,0.979,1.0,1.017,1.034,1.051,1.067,1.084,1.097,1.11,1.122,1.135,1.148,1.161,1.173,1.186,1.199,1.211,1.227,1.242,1.257,1.272,1.287 +dr_shift_2,AL,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_2,MA,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_2,DE,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_2,CA,0.946,0.957,0.968,0.978,0.989,1.0,1.011,1.023,1.034,1.045,1.057,1.068,1.078,1.089,1.1,1.111,1.123,1.135,1.147,1.159,1.172,1.185,1.199,1.212,1.226,1.239 +dr_shift_2,UT,0.895,0.916,0.937,0.958,0.979,1.0,1.018,1.036,1.054,1.072,1.091,1.107,1.123,1.14,1.156,1.173,1.189,1.206,1.222,1.239,1.26,1.28,1.299,1.319,1.339,1.358 +dr_shift_2,ND,0.948,0.959,0.969,0.979,0.99,1.0,1.008,1.017,1.025,1.034,1.042,1.05,1.058,1.065,1.073,1.08,1.089,1.098,1.106,1.115,1.123,1.133,1.142,1.152,1.161,1.171 +dr_shift_2,MN,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shift_2,OR,0.894,0.915,0.936,0.958,0.979,1.0,1.017,1.034,1.051,1.067,1.084,1.097,1.11,1.122,1.135,1.148,1.161,1.173,1.186,1.199,1.211,1.227,1.242,1.257,1.272,1.287 +dr_shift_2,GA,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_2,MT,0.942,0.954,0.965,0.977,0.988,1.0,1.008,1.016,1.025,1.04,1.054,1.064,1.074,1.084,1.094,1.104,1.116,1.128,1.14,1.152,1.164,1.177,1.189,1.202,1.215,1.227 +dr_shift_2,SC,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_2,OH,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_2,RI,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_2,ME,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_2,WY,0.915,0.932,0.949,0.966,0.983,1.0,1.016,1.033,1.049,1.065,1.082,1.097,1.113,1.128,1.144,1.159,1.176,1.194,1.211,1.228,1.245,1.263,1.282,1.301,1.32,1.338 +dr_shift_2,MI,0.948,0.958,0.969,0.979,0.99,1.0,1.008,1.016,1.024,1.032,1.04,1.046,1.052,1.058,1.064,1.07,1.077,1.087,1.099,1.11,1.122,1.134,1.147,1.159,1.172,1.185 +dr_shift_2,WI,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shift_2,NY,0.971,0.976,0.982,0.988,0.994,1.0,1.006,1.013,1.019,1.026,1.032,1.038,1.043,1.049,1.055,1.061,1.068,1.076,1.084,1.091,1.099,1.108,1.117,1.126,1.135,1.145 +dr_shift_2,TX,0.949,0.959,0.969,0.979,0.99,1.0,1.008,1.015,1.023,1.031,1.039,1.044,1.049,1.06,1.073,1.085,1.098,1.112,1.125,1.138,1.152,1.166,1.181,1.196,1.211,1.226 +dr_shift_2,IL,0.961,0.969,0.976,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.04,1.046,1.051,1.057,1.062,1.069,1.075,1.082,1.089,1.095,1.102,1.114,1.126,1.138,1.151 +dr_shift_2,CT,0.97,0.976,0.982,0.988,0.994,1.0,1.007,1.013,1.02,1.026,1.033,1.04,1.047,1.053,1.06,1.067,1.075,1.082,1.09,1.098,1.106,1.114,1.123,1.132,1.141,1.15 +dr_shift_2,IA,0.961,0.969,0.977,0.984,0.992,1.0,1.007,1.014,1.021,1.028,1.035,1.042,1.048,1.055,1.062,1.069,1.076,1.084,1.092,1.099,1.107,1.116,1.124,1.133,1.141,1.15 +dr_shift_2,WV,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 +dr_shift_2,NC,0.954,0.963,0.972,0.982,0.991,1.0,1.009,1.017,1.026,1.035,1.043,1.051,1.06,1.068,1.076,1.084,1.093,1.103,1.112,1.122,1.131,1.14,1.149,1.161,1.173,1.185 +dr_shift_2,VA,0.931,0.945,0.959,0.972,0.986,1.0,1.009,1.018,1.027,1.036,1.046,1.052,1.058,1.064,1.07,1.076,1.083,1.091,1.098,1.105,1.112,1.122,1.133,1.143,1.154,1.164 +dr_shift_2,PA,0.968,0.975,0.981,0.987,0.994,1.0,1.006,1.013,1.019,1.025,1.032,1.037,1.043,1.049,1.054,1.06,1.067,1.075,1.082,1.089,1.096,1.105,1.113,1.121,1.129,1.137 diff --git a/inputs/financials/construction_times_default.csv b/inputs/financials/construction_times_default.csv index 2a589c596..e2f9f59fa 100644 --- a/inputs/financials/construction_times_default.csv +++ b/inputs/financials/construction_times_default.csv @@ -696,6 +696,47 @@ CSP,2047,3 CSP,2048,3 CSP,2049,3 CSP,2050,3 +DR_SHAPE,2010,1 +DR_SHAPE,2011,1 +DR_SHAPE,2012,1 +DR_SHAPE,2013,1 +DR_SHAPE,2014,1 +DR_SHAPE,2015,1 +DR_SHAPE,2016,1 +DR_SHAPE,2017,1 +DR_SHAPE,2018,1 +DR_SHAPE,2019,1 +DR_SHAPE,2020,1 +DR_SHAPE,2021,1 +DR_SHAPE,2022,1 +DR_SHAPE,2023,1 +DR_SHAPE,2024,1 +DR_SHAPE,2025,1 +DR_SHAPE,2026,1 +DR_SHAPE,2027,1 +DR_SHAPE,2028,1 +DR_SHAPE,2029,1 +DR_SHAPE,2030,1 +DR_SHAPE,2031,1 +DR_SHAPE,2032,1 +DR_SHAPE,2033,1 +DR_SHAPE,2034,1 +DR_SHAPE,2035,1 +DR_SHAPE,2036,1 +DR_SHAPE,2037,1 +DR_SHAPE,2038,1 +DR_SHAPE,2039,1 +DR_SHAPE,2040,1 +DR_SHAPE,2041,1 +DR_SHAPE,2042,1 +DR_SHAPE,2043,1 +DR_SHAPE,2044,1 +DR_SHAPE,2045,1 +DR_SHAPE,2046,1 +DR_SHAPE,2047,1 +DR_SHAPE,2048,1 +DR_SHAPE,2049,1 +DR_SHAPE,2050,1 DR_SHED,2010,1 DR_SHED,2011,1 DR_SHED,2012,1 @@ -737,88 +778,47 @@ DR_SHED,2047,1 DR_SHED,2048,1 DR_SHED,2049,1 DR_SHED,2050,1 -EVMC_STORAGE,2010,1 -EVMC_STORAGE,2011,1 -EVMC_STORAGE,2012,1 -EVMC_STORAGE,2013,1 -EVMC_STORAGE,2014,1 -EVMC_STORAGE,2015,1 -EVMC_STORAGE,2016,1 -EVMC_STORAGE,2017,1 -EVMC_STORAGE,2018,1 -EVMC_STORAGE,2019,1 -EVMC_STORAGE,2020,1 -EVMC_STORAGE,2021,1 -EVMC_STORAGE,2022,1 -EVMC_STORAGE,2023,1 -EVMC_STORAGE,2024,1 -EVMC_STORAGE,2025,1 -EVMC_STORAGE,2026,1 -EVMC_STORAGE,2027,1 -EVMC_STORAGE,2028,1 -EVMC_STORAGE,2029,1 -EVMC_STORAGE,2030,1 -EVMC_STORAGE,2031,1 -EVMC_STORAGE,2032,1 -EVMC_STORAGE,2033,1 -EVMC_STORAGE,2034,1 -EVMC_STORAGE,2035,1 -EVMC_STORAGE,2036,1 -EVMC_STORAGE,2037,1 -EVMC_STORAGE,2038,1 -EVMC_STORAGE,2039,1 -EVMC_STORAGE,2040,1 -EVMC_STORAGE,2041,1 -EVMC_STORAGE,2042,1 -EVMC_STORAGE,2043,1 -EVMC_STORAGE,2044,1 -EVMC_STORAGE,2045,1 -EVMC_STORAGE,2046,1 -EVMC_STORAGE,2047,1 -EVMC_STORAGE,2048,1 -EVMC_STORAGE,2049,1 -EVMC_STORAGE,2050,1 -EVMC_SHAPE,2010,1 -EVMC_SHAPE,2011,1 -EVMC_SHAPE,2012,1 -EVMC_SHAPE,2013,1 -EVMC_SHAPE,2014,1 -EVMC_SHAPE,2015,1 -EVMC_SHAPE,2016,1 -EVMC_SHAPE,2017,1 -EVMC_SHAPE,2018,1 -EVMC_SHAPE,2019,1 -EVMC_SHAPE,2020,1 -EVMC_SHAPE,2021,1 -EVMC_SHAPE,2022,1 -EVMC_SHAPE,2023,1 -EVMC_SHAPE,2024,1 -EVMC_SHAPE,2025,1 -EVMC_SHAPE,2026,1 -EVMC_SHAPE,2027,1 -EVMC_SHAPE,2028,1 -EVMC_SHAPE,2029,1 -EVMC_SHAPE,2030,1 -EVMC_SHAPE,2031,1 -EVMC_SHAPE,2032,1 -EVMC_SHAPE,2033,1 -EVMC_SHAPE,2034,1 -EVMC_SHAPE,2035,1 -EVMC_SHAPE,2036,1 -EVMC_SHAPE,2037,1 -EVMC_SHAPE,2038,1 -EVMC_SHAPE,2039,1 -EVMC_SHAPE,2040,1 -EVMC_SHAPE,2041,1 -EVMC_SHAPE,2042,1 -EVMC_SHAPE,2043,1 -EVMC_SHAPE,2044,1 -EVMC_SHAPE,2045,1 -EVMC_SHAPE,2046,1 -EVMC_SHAPE,2047,1 -EVMC_SHAPE,2048,1 -EVMC_SHAPE,2049,1 -EVMC_SHAPE,2050,1 +DR_SHIFT,2010,1 +DR_SHIFT,2011,1 +DR_SHIFT,2012,1 +DR_SHIFT,2013,1 +DR_SHIFT,2014,1 +DR_SHIFT,2015,1 +DR_SHIFT,2016,1 +DR_SHIFT,2017,1 +DR_SHIFT,2018,1 +DR_SHIFT,2019,1 +DR_SHIFT,2020,1 +DR_SHIFT,2021,1 +DR_SHIFT,2022,1 +DR_SHIFT,2023,1 +DR_SHIFT,2024,1 +DR_SHIFT,2025,1 +DR_SHIFT,2026,1 +DR_SHIFT,2027,1 +DR_SHIFT,2028,1 +DR_SHIFT,2029,1 +DR_SHIFT,2030,1 +DR_SHIFT,2031,1 +DR_SHIFT,2032,1 +DR_SHIFT,2033,1 +DR_SHIFT,2034,1 +DR_SHIFT,2035,1 +DR_SHIFT,2036,1 +DR_SHIFT,2037,1 +DR_SHIFT,2038,1 +DR_SHIFT,2039,1 +DR_SHIFT,2040,1 +DR_SHIFT,2041,1 +DR_SHIFT,2042,1 +DR_SHIFT,2043,1 +DR_SHIFT,2044,1 +DR_SHIFT,2045,1 +DR_SHIFT,2046,1 +DR_SHIFT,2047,1 +DR_SHIFT,2048,1 +DR_SHIFT,2049,1 +DR_SHIFT,2050,1 h2-fuel-cell,2010,3 h2-fuel-cell,2011,3 h2-fuel-cell,2012,3 diff --git a/inputs/financials/financials_tech_ATB2023.csv b/inputs/financials/financials_tech_ATB2023.csv index 603d05898..3bf22608b 100644 --- a/inputs/financials/financials_tech_ATB2023.csv +++ b/inputs/financials/financials_tech_ATB2023.csv @@ -696,88 +696,6 @@ CSP,2047,5,30,1,-0.0129 CSP,2048,5,30,1,-0.0129 CSP,2049,5,30,1,-0.0129 CSP,2050,5,30,1,-0.0129 -EVMC_STORAGE,2010,7,15,1,0 -EVMC_STORAGE,2011,7,15,1,0 -EVMC_STORAGE,2012,7,15,1,0 -EVMC_STORAGE,2013,7,15,1,0 -EVMC_STORAGE,2014,7,15,1,0 -EVMC_STORAGE,2015,7,15,1,0 -EVMC_STORAGE,2016,7,15,1,0 -EVMC_STORAGE,2017,7,15,1,0 -EVMC_STORAGE,2018,7,15,1,0 -EVMC_STORAGE,2019,7,15,1,0 -EVMC_STORAGE,2020,7,15,1,0 -EVMC_STORAGE,2021,7,15,1,0 -EVMC_STORAGE,2022,7,15,1,0 -EVMC_STORAGE,2023,7,15,1,0 -EVMC_STORAGE,2024,7,15,1,0 -EVMC_STORAGE,2025,7,15,1,0 -EVMC_STORAGE,2026,7,15,1,0 -EVMC_STORAGE,2027,7,15,1,0 -EVMC_STORAGE,2028,7,15,1,0 -EVMC_STORAGE,2029,7,15,1,0 -EVMC_STORAGE,2030,7,15,1,0 -EVMC_STORAGE,2031,7,15,1,0 -EVMC_STORAGE,2032,7,15,1,0 -EVMC_STORAGE,2033,7,15,1,0 -EVMC_STORAGE,2034,7,15,1,0 -EVMC_STORAGE,2035,7,15,1,0 -EVMC_STORAGE,2036,7,15,1,0 -EVMC_STORAGE,2037,7,15,1,0 -EVMC_STORAGE,2038,7,15,1,0 -EVMC_STORAGE,2039,7,15,1,0 -EVMC_STORAGE,2040,7,15,1,0 -EVMC_STORAGE,2041,7,15,1,0 -EVMC_STORAGE,2042,7,15,1,0 -EVMC_STORAGE,2043,7,15,1,0 -EVMC_STORAGE,2044,7,15,1,0 -EVMC_STORAGE,2045,7,15,1,0 -EVMC_STORAGE,2046,7,15,1,0 -EVMC_STORAGE,2047,7,15,1,0 -EVMC_STORAGE,2048,7,15,1,0 -EVMC_STORAGE,2049,7,15,1,0 -EVMC_STORAGE,2050,7,15,1,0 -EVMC_SHAPE,2010,7,15,1,0 -EVMC_SHAPE,2011,7,15,1,0 -EVMC_SHAPE,2012,7,15,1,0 -EVMC_SHAPE,2013,7,15,1,0 -EVMC_SHAPE,2014,7,15,1,0 -EVMC_SHAPE,2015,7,15,1,0 -EVMC_SHAPE,2016,7,15,1,0 -EVMC_SHAPE,2017,7,15,1,0 -EVMC_SHAPE,2018,7,15,1,0 -EVMC_SHAPE,2019,7,15,1,0 -EVMC_SHAPE,2020,7,15,1,0 -EVMC_SHAPE,2021,7,15,1,0 -EVMC_SHAPE,2022,7,15,1,0 -EVMC_SHAPE,2023,7,15,1,0 -EVMC_SHAPE,2024,7,15,1,0 -EVMC_SHAPE,2025,7,15,1,0 -EVMC_SHAPE,2026,7,15,1,0 -EVMC_SHAPE,2027,7,15,1,0 -EVMC_SHAPE,2028,7,15,1,0 -EVMC_SHAPE,2029,7,15,1,0 -EVMC_SHAPE,2030,7,15,1,0 -EVMC_SHAPE,2031,7,15,1,0 -EVMC_SHAPE,2032,7,15,1,0 -EVMC_SHAPE,2033,7,15,1,0 -EVMC_SHAPE,2034,7,15,1,0 -EVMC_SHAPE,2035,7,15,1,0 -EVMC_SHAPE,2036,7,15,1,0 -EVMC_SHAPE,2037,7,15,1,0 -EVMC_SHAPE,2038,7,15,1,0 -EVMC_SHAPE,2039,7,15,1,0 -EVMC_SHAPE,2040,7,15,1,0 -EVMC_SHAPE,2041,7,15,1,0 -EVMC_SHAPE,2042,7,15,1,0 -EVMC_SHAPE,2043,7,15,1,0 -EVMC_SHAPE,2044,7,15,1,0 -EVMC_SHAPE,2045,7,15,1,0 -EVMC_SHAPE,2046,7,15,1,0 -EVMC_SHAPE,2047,7,15,1,0 -EVMC_SHAPE,2048,7,15,1,0 -EVMC_SHAPE,2049,7,15,1,0 -EVMC_SHAPE,2050,7,15,1,0 Gas-CC,2010,20,30,3B,0 Gas-CC,2011,20,30,3B,0 Gas-CC,2012,20,30,3B,0 @@ -2090,3 +2008,126 @@ dac_gas,2047,7,30,1,0 dac_gas,2048,7,30,1,0 dac_gas,2049,7,30,1,0 dac_gas,2050,7,30,1,0 +DR_SHED,2010,7,8,1,0 +DR_SHED,2011,7,8,1,0 +DR_SHED,2012,7,8,1,0 +DR_SHED,2013,7,8,1,0 +DR_SHED,2014,7,8,1,0 +DR_SHED,2015,7,8,1,0 +DR_SHED,2016,7,8,1,0 +DR_SHED,2017,7,8,1,0 +DR_SHED,2018,7,8,1,0 +DR_SHED,2019,7,8,1,0 +DR_SHED,2020,7,8,1,0 +DR_SHED,2021,7,8,1,0 +DR_SHED,2022,7,8,1,0 +DR_SHED,2023,7,8,1,0 +DR_SHED,2024,7,8,1,0 +DR_SHED,2025,7,8,1,0 +DR_SHED,2026,7,8,1,0 +DR_SHED,2027,7,8,1,0 +DR_SHED,2028,7,8,1,0 +DR_SHED,2029,7,8,1,0 +DR_SHED,2030,7,8,1,0 +DR_SHED,2031,7,8,1,0 +DR_SHED,2032,7,8,1,0 +DR_SHED,2033,7,8,1,0 +DR_SHED,2034,7,8,1,0 +DR_SHED,2035,7,8,1,0 +DR_SHED,2036,7,8,1,0 +DR_SHED,2037,7,8,1,0 +DR_SHED,2038,7,8,1,0 +DR_SHED,2039,7,8,1,0 +DR_SHED,2040,7,8,1,0 +DR_SHED,2041,7,8,1,0 +DR_SHED,2042,7,8,1,0 +DR_SHED,2043,7,8,1,0 +DR_SHED,2044,7,8,1,0 +DR_SHED,2045,7,8,1,0 +DR_SHED,2046,7,8,1,0 +DR_SHED,2047,7,8,1,0 +DR_SHED,2048,7,8,1,0 +DR_SHED,2049,7,8,1,0 +DR_SHED,2050,7,8,1,0 +DR_SHAPE,2010,7,15,1,0 +DR_SHAPE,2011,7,15,1,0 +DR_SHAPE,2012,7,15,1,0 +DR_SHAPE,2013,7,15,1,0 +DR_SHAPE,2014,7,15,1,0 +DR_SHAPE,2015,7,15,1,0 +DR_SHAPE,2016,7,15,1,0 +DR_SHAPE,2017,7,15,1,0 +DR_SHAPE,2018,7,15,1,0 +DR_SHAPE,2019,7,15,1,0 +DR_SHAPE,2020,7,15,1,0 +DR_SHAPE,2021,7,15,1,0 +DR_SHAPE,2022,7,15,1,0 +DR_SHAPE,2023,7,15,1,0 +DR_SHAPE,2024,7,15,1,0 +DR_SHAPE,2025,7,15,1,0 +DR_SHAPE,2026,7,15,1,0 +DR_SHAPE,2027,7,15,1,0 +DR_SHAPE,2028,7,15,1,0 +DR_SHAPE,2029,7,15,1,0 +DR_SHAPE,2030,7,15,1,0 +DR_SHAPE,2031,7,15,1,0 +DR_SHAPE,2032,7,15,1,0 +DR_SHAPE,2033,7,15,1,0 +DR_SHAPE,2034,7,15,1,0 +DR_SHAPE,2035,7,15,1,0 +DR_SHAPE,2036,7,15,1,0 +DR_SHAPE,2037,7,15,1,0 +DR_SHAPE,2038,7,15,1,0 +DR_SHAPE,2039,7,15,1,0 +DR_SHAPE,2040,7,15,1,0 +DR_SHAPE,2041,7,15,1,0 +DR_SHAPE,2042,7,15,1,0 +DR_SHAPE,2043,7,15,1,0 +DR_SHAPE,2044,7,15,1,0 +DR_SHAPE,2045,7,15,1,0 +DR_SHAPE,2046,7,15,1,0 +DR_SHAPE,2047,7,15,1,0 +DR_SHAPE,2048,7,15,1,0 +DR_SHAPE,2049,7,15,1,0 +DR_SHAPE,2050,7,15,1,0 +DR_SHIFT,2010,7,15,1,0 +DR_SHIFT,2011,7,15,1,0 +DR_SHIFT,2012,7,15,1,0 +DR_SHIFT,2013,7,15,1,0 +DR_SHIFT,2014,7,15,1,0 +DR_SHIFT,2015,7,15,1,0 +DR_SHIFT,2016,7,15,1,0 +DR_SHIFT,2017,7,15,1,0 +DR_SHIFT,2018,7,15,1,0 +DR_SHIFT,2019,7,15,1,0 +DR_SHIFT,2020,7,15,1,0 +DR_SHIFT,2021,7,15,1,0 +DR_SHIFT,2022,7,15,1,0 +DR_SHIFT,2023,7,15,1,0 +DR_SHIFT,2024,7,15,1,0 +DR_SHIFT,2025,7,15,1,0 +DR_SHIFT,2026,7,15,1,0 +DR_SHIFT,2027,7,15,1,0 +DR_SHIFT,2028,7,15,1,0 +DR_SHIFT,2029,7,15,1,0 +DR_SHIFT,2030,7,15,1,0 +DR_SHIFT,2031,7,15,1,0 +DR_SHIFT,2032,7,15,1,0 +DR_SHIFT,2033,7,15,1,0 +DR_SHIFT,2034,7,15,1,0 +DR_SHIFT,2035,7,15,1,0 +DR_SHIFT,2036,7,15,1,0 +DR_SHIFT,2037,7,15,1,0 +DR_SHIFT,2038,7,15,1,0 +DR_SHIFT,2039,7,15,1,0 +DR_SHIFT,2040,7,15,1,0 +DR_SHIFT,2041,7,15,1,0 +DR_SHIFT,2042,7,15,1,0 +DR_SHIFT,2043,7,15,1,0 +DR_SHIFT,2044,7,15,1,0 +DR_SHIFT,2045,7,15,1,0 +DR_SHIFT,2046,7,15,1,0 +DR_SHIFT,2047,7,15,1,0 +DR_SHIFT,2048,7,15,1,0 +DR_SHIFT,2049,7,15,1,0 +DR_SHIFT,2050,7,15,1,0 diff --git a/inputs/financials/financials_tech_ATB2023_CRP20.csv b/inputs/financials/financials_tech_ATB2023_CRP20.csv index dd2d761dd..991d6baaa 100644 --- a/inputs/financials/financials_tech_ATB2023_CRP20.csv +++ b/inputs/financials/financials_tech_ATB2023_CRP20.csv @@ -696,88 +696,6 @@ CSP,2047,5,20,1,-0.0129 CSP,2048,5,20,1,-0.0129 CSP,2049,5,20,1,-0.0129 CSP,2050,5,20,1,-0.0129 -EVMC_STORAGE,2010,7,15,1,0 -EVMC_STORAGE,2011,7,15,1,0 -EVMC_STORAGE,2012,7,15,1,0 -EVMC_STORAGE,2013,7,15,1,0 -EVMC_STORAGE,2014,7,15,1,0 -EVMC_STORAGE,2015,7,15,1,0 -EVMC_STORAGE,2016,7,15,1,0 -EVMC_STORAGE,2017,7,15,1,0 -EVMC_STORAGE,2018,7,15,1,0 -EVMC_STORAGE,2019,7,15,1,0 -EVMC_STORAGE,2020,7,15,1,0 -EVMC_STORAGE,2021,7,15,1,0 -EVMC_STORAGE,2022,7,15,1,0 -EVMC_STORAGE,2023,7,15,1,0 -EVMC_STORAGE,2024,7,15,1,0 -EVMC_STORAGE,2025,7,15,1,0 -EVMC_STORAGE,2026,7,15,1,0 -EVMC_STORAGE,2027,7,15,1,0 -EVMC_STORAGE,2028,7,15,1,0 -EVMC_STORAGE,2029,7,15,1,0 -EVMC_STORAGE,2030,7,15,1,0 -EVMC_STORAGE,2031,7,15,1,0 -EVMC_STORAGE,2032,7,15,1,0 -EVMC_STORAGE,2033,7,15,1,0 -EVMC_STORAGE,2034,7,15,1,0 -EVMC_STORAGE,2035,7,15,1,0 -EVMC_STORAGE,2036,7,15,1,0 -EVMC_STORAGE,2037,7,15,1,0 -EVMC_STORAGE,2038,7,15,1,0 -EVMC_STORAGE,2039,7,15,1,0 -EVMC_STORAGE,2040,7,15,1,0 -EVMC_STORAGE,2041,7,15,1,0 -EVMC_STORAGE,2042,7,15,1,0 -EVMC_STORAGE,2043,7,15,1,0 -EVMC_STORAGE,2044,7,15,1,0 -EVMC_STORAGE,2045,7,15,1,0 -EVMC_STORAGE,2046,7,15,1,0 -EVMC_STORAGE,2047,7,15,1,0 -EVMC_STORAGE,2048,7,15,1,0 -EVMC_STORAGE,2049,7,15,1,0 -EVMC_STORAGE,2050,7,15,1,0 -EVMC_SHAPE,2010,7,15,1,0 -EVMC_SHAPE,2011,7,15,1,0 -EVMC_SHAPE,2012,7,15,1,0 -EVMC_SHAPE,2013,7,15,1,0 -EVMC_SHAPE,2014,7,15,1,0 -EVMC_SHAPE,2015,7,15,1,0 -EVMC_SHAPE,2016,7,15,1,0 -EVMC_SHAPE,2017,7,15,1,0 -EVMC_SHAPE,2018,7,15,1,0 -EVMC_SHAPE,2019,7,15,1,0 -EVMC_SHAPE,2020,7,15,1,0 -EVMC_SHAPE,2021,7,15,1,0 -EVMC_SHAPE,2022,7,15,1,0 -EVMC_SHAPE,2023,7,15,1,0 -EVMC_SHAPE,2024,7,15,1,0 -EVMC_SHAPE,2025,7,15,1,0 -EVMC_SHAPE,2026,7,15,1,0 -EVMC_SHAPE,2027,7,15,1,0 -EVMC_SHAPE,2028,7,15,1,0 -EVMC_SHAPE,2029,7,15,1,0 -EVMC_SHAPE,2030,7,15,1,0 -EVMC_SHAPE,2031,7,15,1,0 -EVMC_SHAPE,2032,7,15,1,0 -EVMC_SHAPE,2033,7,15,1,0 -EVMC_SHAPE,2034,7,15,1,0 -EVMC_SHAPE,2035,7,15,1,0 -EVMC_SHAPE,2036,7,15,1,0 -EVMC_SHAPE,2037,7,15,1,0 -EVMC_SHAPE,2038,7,15,1,0 -EVMC_SHAPE,2039,7,15,1,0 -EVMC_SHAPE,2040,7,15,1,0 -EVMC_SHAPE,2041,7,15,1,0 -EVMC_SHAPE,2042,7,15,1,0 -EVMC_SHAPE,2043,7,15,1,0 -EVMC_SHAPE,2044,7,15,1,0 -EVMC_SHAPE,2045,7,15,1,0 -EVMC_SHAPE,2046,7,15,1,0 -EVMC_SHAPE,2047,7,15,1,0 -EVMC_SHAPE,2048,7,15,1,0 -EVMC_SHAPE,2049,7,15,1,0 -EVMC_SHAPE,2050,7,15,1,0 Gas-CC,2010,20,20,3B,0 Gas-CC,2011,20,20,3B,0 Gas-CC,2012,20,20,3B,0 diff --git a/inputs/financials/financials_tech_ATB2024.csv b/inputs/financials/financials_tech_ATB2024.csv index a186d7c7a..7b172f0d2 100644 --- a/inputs/financials/financials_tech_ATB2024.csv +++ b/inputs/financials/financials_tech_ATB2024.csv @@ -819,6 +819,88 @@ DR_SHED,2047,7,8,1,0 DR_SHED,2048,7,8,1,0 DR_SHED,2049,7,8,1,0 DR_SHED,2050,7,8,1,0 +DR_SHAPE,2010,7,15,1,0 +DR_SHAPE,2011,7,15,1,0 +DR_SHAPE,2012,7,15,1,0 +DR_SHAPE,2013,7,15,1,0 +DR_SHAPE,2014,7,15,1,0 +DR_SHAPE,2015,7,15,1,0 +DR_SHAPE,2016,7,15,1,0 +DR_SHAPE,2017,7,15,1,0 +DR_SHAPE,2018,7,15,1,0 +DR_SHAPE,2019,7,15,1,0 +DR_SHAPE,2020,7,15,1,0 +DR_SHAPE,2021,7,15,1,0 +DR_SHAPE,2022,7,15,1,0 +DR_SHAPE,2023,7,15,1,0 +DR_SHAPE,2024,7,15,1,0 +DR_SHAPE,2025,7,15,1,0 +DR_SHAPE,2026,7,15,1,0 +DR_SHAPE,2027,7,15,1,0 +DR_SHAPE,2028,7,15,1,0 +DR_SHAPE,2029,7,15,1,0 +DR_SHAPE,2030,7,15,1,0 +DR_SHAPE,2031,7,15,1,0 +DR_SHAPE,2032,7,15,1,0 +DR_SHAPE,2033,7,15,1,0 +DR_SHAPE,2034,7,15,1,0 +DR_SHAPE,2035,7,15,1,0 +DR_SHAPE,2036,7,15,1,0 +DR_SHAPE,2037,7,15,1,0 +DR_SHAPE,2038,7,15,1,0 +DR_SHAPE,2039,7,15,1,0 +DR_SHAPE,2040,7,15,1,0 +DR_SHAPE,2041,7,15,1,0 +DR_SHAPE,2042,7,15,1,0 +DR_SHAPE,2043,7,15,1,0 +DR_SHAPE,2044,7,15,1,0 +DR_SHAPE,2045,7,15,1,0 +DR_SHAPE,2046,7,15,1,0 +DR_SHAPE,2047,7,15,1,0 +DR_SHAPE,2048,7,15,1,0 +DR_SHAPE,2049,7,15,1,0 +DR_SHAPE,2050,7,15,1,0 +DR_SHIFT,2010,7,15,1,0 +DR_SHIFT,2011,7,15,1,0 +DR_SHIFT,2012,7,15,1,0 +DR_SHIFT,2013,7,15,1,0 +DR_SHIFT,2014,7,15,1,0 +DR_SHIFT,2015,7,15,1,0 +DR_SHIFT,2016,7,15,1,0 +DR_SHIFT,2017,7,15,1,0 +DR_SHIFT,2018,7,15,1,0 +DR_SHIFT,2019,7,15,1,0 +DR_SHIFT,2020,7,15,1,0 +DR_SHIFT,2021,7,15,1,0 +DR_SHIFT,2022,7,15,1,0 +DR_SHIFT,2023,7,15,1,0 +DR_SHIFT,2024,7,15,1,0 +DR_SHIFT,2025,7,15,1,0 +DR_SHIFT,2026,7,15,1,0 +DR_SHIFT,2027,7,15,1,0 +DR_SHIFT,2028,7,15,1,0 +DR_SHIFT,2029,7,15,1,0 +DR_SHIFT,2030,7,15,1,0 +DR_SHIFT,2031,7,15,1,0 +DR_SHIFT,2032,7,15,1,0 +DR_SHIFT,2033,7,15,1,0 +DR_SHIFT,2034,7,15,1,0 +DR_SHIFT,2035,7,15,1,0 +DR_SHIFT,2036,7,15,1,0 +DR_SHIFT,2037,7,15,1,0 +DR_SHIFT,2038,7,15,1,0 +DR_SHIFT,2039,7,15,1,0 +DR_SHIFT,2040,7,15,1,0 +DR_SHIFT,2041,7,15,1,0 +DR_SHIFT,2042,7,15,1,0 +DR_SHIFT,2043,7,15,1,0 +DR_SHIFT,2044,7,15,1,0 +DR_SHIFT,2045,7,15,1,0 +DR_SHIFT,2046,7,15,1,0 +DR_SHIFT,2047,7,15,1,0 +DR_SHIFT,2048,7,15,1,0 +DR_SHIFT,2049,7,15,1,0 +DR_SHIFT,2050,7,15,1,0 electrolyzer,2010,7,15,1,0 electrolyzer,2011,7,15,1,0 electrolyzer,2012,7,15,1,0 diff --git a/inputs/plant_characteristics/README.md b/inputs/plant_characteristics/README.md index 4c7a3c3ee..c6ccf118f 100644 --- a/inputs/plant_characteristics/README.md +++ b/inputs/plant_characteristics/README.md @@ -50,9 +50,15 @@ - `dr_shed_fom_demo_data_January_2025.csv`: - `dr_shed_vom_demo_data_January_2025.csv`: -- `evmc_*_Baseline.csv`: - - `evmc_shape_Baseline.csv`: - - `evmc_storage_Baseline.csv`: +- `dr_shape_*_ex_dr1.csv`: + - `dr_shape_cost_scalars_ex_dr1.csv`: + - `dr_shape_fom_ex_dr1.csv`: + - `dr_shape_vom_ex_dr1.csv`: + +- `dr_shift_*_ex_dr1.csv`: + - `dr_shift_cost_scalars_ex_dr1.csv`: + - `dr_shift_fom_ex_dr1.csv`: + - `dr_shift_vom_ex_dr1.csv`: - `fuelcell_ATB_2024_*.csv`: - `fuelcell_ATB_2024_advanced.csv`: diff --git a/inputs/plant_characteristics/dollaryear.csv b/inputs/plant_characteristics/dollaryear.csv index a7f7d8b53..7cbfb41b1 100644 --- a/inputs/plant_characteristics/dollaryear.csv +++ b/inputs/plant_characteristics/dollaryear.csv @@ -23,8 +23,6 @@ csp_ATB_2024_advanced,2022 csp_ATB_2024_conservative,2022 csp_ATB_2024_moderate,2022 csp_SunShot2030,2017 -evmc_shape_Baseline,2020 -evmc_storage_Baseline,2020 h2fuelcell_advanced,2022 h2fuelcell_moderate,2022 h2fuelcell_conservative,2022 diff --git a/inputs/plant_characteristics/dr_shape_cost_scalars_ex_dr1.csv b/inputs/plant_characteristics/dr_shape_cost_scalars_ex_dr1.csv new file mode 100644 index 000000000..0f7493592 --- /dev/null +++ b/inputs/plant_characteristics/dr_shape_cost_scalars_ex_dr1.csv @@ -0,0 +1,49 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shape_1,TN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,LA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NV,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,KS,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MO,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,AR,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,KY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MD,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NJ,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,AZ,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,CO,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,FL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,IN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,VT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NM,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,SD,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MS,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NH,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NE,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,OK,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,ID,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,WA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,AL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,DE,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,CA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,UT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,ND,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,OR,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,GA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,SC,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,OH,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,RI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,ME,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,WY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,MI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,WI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,TX,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,IL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,CT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,IA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,WV,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,NC,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,VA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shape_1,PA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 diff --git a/inputs/plant_characteristics/dr_shape_fom_ex_dr1.csv b/inputs/plant_characteristics/dr_shape_fom_ex_dr1.csv new file mode 100644 index 000000000..d109ece40 --- /dev/null +++ b/inputs/plant_characteristics/dr_shape_fom_ex_dr1.csv @@ -0,0 +1,49 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shape_1,TN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,LA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,KS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,AR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,KY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NJ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,AZ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,CO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,FL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,IN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,VT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NM,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,SD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,OK,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,ID,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,AL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,DE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,CA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,UT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,ND,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,OR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,GA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,SC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,OH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,RI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,ME,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,TX,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,IL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,CT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,IA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,VA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,PA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 diff --git a/inputs/plant_characteristics/dr_shape_vom_ex_dr1.csv b/inputs/plant_characteristics/dr_shape_vom_ex_dr1.csv new file mode 100644 index 000000000..d109ece40 --- /dev/null +++ b/inputs/plant_characteristics/dr_shape_vom_ex_dr1.csv @@ -0,0 +1,49 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shape_1,TN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,LA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,KS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,AR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,KY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NJ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,AZ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,CO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,FL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,IN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,VT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NM,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,SD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,OK,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,ID,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,AL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,DE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,CA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,UT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,ND,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,OR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,GA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,SC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,OH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,RI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,ME,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,MI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,TX,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,IL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,CT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,IA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,WV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,NC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,VA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shape_1,PA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 diff --git a/inputs/plant_characteristics/dr_shift_cost_scalars_ex_dr1.csv b/inputs/plant_characteristics/dr_shift_cost_scalars_ex_dr1.csv new file mode 100644 index 000000000..944b59baf --- /dev/null +++ b/inputs/plant_characteristics/dr_shift_cost_scalars_ex_dr1.csv @@ -0,0 +1,97 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shift_1,TN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,LA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NV,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,KS,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MO,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,AR,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,KY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MD,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NJ,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,AZ,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,CO,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,FL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,IN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,VT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NM,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,SD,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MS,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NH,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NE,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,OK,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,ID,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,WA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,AL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,DE,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,CA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,UT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,ND,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,OR,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,GA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,SC,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,OH,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,RI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,ME,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,WY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,MI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,WI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,TX,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,IL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,CT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,IA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,WV,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,NC,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,VA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_1,PA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,TN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,LA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NV,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,KS,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MO,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,AR,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,KY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MD,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NJ,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,AZ,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,CO,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,FL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,IN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,VT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NM,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,SD,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MS,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NH,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NE,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,OK,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,ID,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,WA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,AL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,DE,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,CA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,UT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,ND,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MN,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,OR,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,GA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,SC,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,OH,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,RI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,ME,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,WY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,MI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,WI,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NY,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,TX,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,IL,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,CT,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,IA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,WV,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,NC,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,VA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 +dr_shift_2,PA,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 diff --git a/inputs/plant_characteristics/dr_shift_fom_ex_dr1.csv b/inputs/plant_characteristics/dr_shift_fom_ex_dr1.csv new file mode 100644 index 000000000..465260d43 --- /dev/null +++ b/inputs/plant_characteristics/dr_shift_fom_ex_dr1.csv @@ -0,0 +1,97 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shift_1,TN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,LA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,KS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,AR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,KY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NJ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,AZ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,CO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,FL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,IN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,VT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NM,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,SD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,OK,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,ID,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,AL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,DE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,CA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,UT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,ND,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,OR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,GA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,SC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,OH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,RI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,ME,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,TX,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,IL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,CT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,IA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,VA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,PA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,TN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,LA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,KS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,AR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,KY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NJ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,AZ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,CO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,FL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,IN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,VT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NM,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,SD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,OK,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,ID,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,AL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,DE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,CA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,UT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,ND,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,OR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,GA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,SC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,OH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,RI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,ME,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,TX,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,IL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,CT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,IA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,VA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,PA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 diff --git a/inputs/plant_characteristics/dr_shift_vom_ex_dr1.csv b/inputs/plant_characteristics/dr_shift_vom_ex_dr1.csv new file mode 100644 index 000000000..465260d43 --- /dev/null +++ b/inputs/plant_characteristics/dr_shift_vom_ex_dr1.csv @@ -0,0 +1,97 @@ +tech,r,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +dr_shift_1,TN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,LA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,KS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,AR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,KY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NJ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,AZ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,CO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,FL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,IN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,VT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NM,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,SD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,OK,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,ID,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,AL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,DE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,CA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,UT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,ND,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,OR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,GA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,SC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,OH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,RI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,ME,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,MI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,TX,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,IL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,CT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,IA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,WV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,NC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,VA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_1,PA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,TN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,LA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,KS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,AR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,KY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NJ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,AZ,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,CO,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,FL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,IN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,VT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NM,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,SD,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MS,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,OK,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,ID,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,AL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,DE,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,CA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,UT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,ND,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MN,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,OR,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,GA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,SC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,OH,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,RI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,ME,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,MI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WI,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NY,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,TX,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,IL,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,CT,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,IA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,WV,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,NC,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,VA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 +dr_shift_2,PA,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1 diff --git a/inputs/plant_characteristics/evmc_shape_Baseline.csv b/inputs/plant_characteristics/evmc_shape_Baseline.csv deleted file mode 100644 index 9fcc06710..000000000 --- a/inputs/plant_characteristics/evmc_shape_Baseline.csv +++ /dev/null @@ -1,411 +0,0 @@ -i,t,capcost,fom,vom,rte -evmc_shape_1,2010,0.001,0.001,0.1,1 -evmc_shape_1,2011,0.001,0.001,0.1,1 -evmc_shape_1,2012,0.001,0.001,0.1,1 -evmc_shape_1,2013,0.001,0.001,0.1,1 -evmc_shape_1,2014,0.001,0.001,0.1,1 -evmc_shape_1,2015,0.001,0.001,0.1,1 -evmc_shape_1,2016,0.001,0.001,0.1,1 -evmc_shape_1,2017,0.001,0.001,0.1,1 -evmc_shape_1,2018,0.001,0.001,0.1,1 -evmc_shape_1,2019,0.001,0.001,0.1,1 -evmc_shape_1,2020,0.001,0.001,0.1,1 -evmc_shape_1,2021,0.001,0.001,0.1,1 -evmc_shape_1,2022,0.001,0.001,0.1,1 -evmc_shape_1,2023,0.001,0.001,0.1,1 -evmc_shape_1,2024,0.001,0.001,0.1,1 -evmc_shape_1,2025,0.001,0.001,0.1,1 -evmc_shape_1,2026,0.001,0.001,0.1,1 -evmc_shape_1,2027,0.001,0.001,0.1,1 -evmc_shape_1,2028,0.001,0.001,0.1,1 -evmc_shape_1,2029,0.001,0.001,0.1,1 -evmc_shape_1,2030,0.001,0.001,0.1,1 -evmc_shape_1,2031,0.001,0.001,0.1,1 -evmc_shape_1,2032,0.001,0.001,0.1,1 -evmc_shape_1,2033,0.001,0.001,0.1,1 -evmc_shape_1,2034,0.001,0.001,0.1,1 -evmc_shape_1,2035,0.001,0.001,0.1,1 -evmc_shape_1,2036,0.001,0.001,0.1,1 -evmc_shape_1,2037,0.001,0.001,0.1,1 -evmc_shape_1,2038,0.001,0.001,0.1,1 -evmc_shape_1,2039,0.001,0.001,0.1,1 -evmc_shape_1,2040,0.001,0.001,0.1,1 -evmc_shape_1,2041,0.001,0.001,0.1,1 -evmc_shape_1,2042,0.001,0.001,0.1,1 -evmc_shape_1,2043,0.001,0.001,0.1,1 -evmc_shape_1,2044,0.001,0.001,0.1,1 -evmc_shape_1,2045,0.001,0.001,0.1,1 -evmc_shape_1,2046,0.001,0.001,0.1,1 -evmc_shape_1,2047,0.001,0.001,0.1,1 -evmc_shape_1,2048,0.001,0.001,0.1,1 -evmc_shape_1,2049,0.001,0.001,0.1,1 -evmc_shape_1,2050,0.001,0.001,0.1,1 -evmc_shape_2,2010,0.001,0.001,0.1,1 -evmc_shape_2,2011,0.001,0.001,0.1,1 -evmc_shape_2,2012,0.001,0.001,0.1,1 -evmc_shape_2,2013,0.001,0.001,0.1,1 -evmc_shape_2,2014,0.001,0.001,0.1,1 -evmc_shape_2,2015,0.001,0.001,0.1,1 -evmc_shape_2,2016,0.001,0.001,0.1,1 -evmc_shape_2,2017,0.001,0.001,0.1,1 -evmc_shape_2,2018,0.001,0.001,0.1,1 -evmc_shape_2,2019,0.001,0.001,0.1,1 -evmc_shape_2,2020,0.001,0.001,0.1,1 -evmc_shape_2,2021,0.001,0.001,0.1,1 -evmc_shape_2,2022,0.001,0.001,0.1,1 -evmc_shape_2,2023,0.001,0.001,0.1,1 -evmc_shape_2,2024,0.001,0.001,0.1,1 -evmc_shape_2,2025,0.001,0.001,0.1,1 -evmc_shape_2,2026,0.001,0.001,0.1,1 -evmc_shape_2,2027,0.001,0.001,0.1,1 -evmc_shape_2,2028,0.001,0.001,0.1,1 -evmc_shape_2,2029,0.001,0.001,0.1,1 -evmc_shape_2,2030,0.001,0.001,0.1,1 -evmc_shape_2,2031,0.001,0.001,0.1,1 -evmc_shape_2,2032,0.001,0.001,0.1,1 -evmc_shape_2,2033,0.001,0.001,0.1,1 -evmc_shape_2,2034,0.001,0.001,0.1,1 -evmc_shape_2,2035,0.001,0.001,0.1,1 -evmc_shape_2,2036,0.001,0.001,0.1,1 -evmc_shape_2,2037,0.001,0.001,0.1,1 -evmc_shape_2,2038,0.001,0.001,0.1,1 -evmc_shape_2,2039,0.001,0.001,0.1,1 -evmc_shape_2,2040,0.001,0.001,0.1,1 -evmc_shape_2,2041,0.001,0.001,0.1,1 -evmc_shape_2,2042,0.001,0.001,0.1,1 -evmc_shape_2,2043,0.001,0.001,0.1,1 -evmc_shape_2,2044,0.001,0.001,0.1,1 -evmc_shape_2,2045,0.001,0.001,0.1,1 -evmc_shape_2,2046,0.001,0.001,0.1,1 -evmc_shape_2,2047,0.001,0.001,0.1,1 -evmc_shape_2,2048,0.001,0.001,0.1,1 -evmc_shape_2,2049,0.001,0.001,0.1,1 -evmc_shape_2,2050,0.001,0.001,0.1,1 -evmc_shape_3,2010,0.001,0.001,0.1,1 -evmc_shape_3,2011,0.001,0.001,0.1,1 -evmc_shape_3,2012,0.001,0.001,0.1,1 -evmc_shape_3,2013,0.001,0.001,0.1,1 -evmc_shape_3,2014,0.001,0.001,0.1,1 -evmc_shape_3,2015,0.001,0.001,0.1,1 -evmc_shape_3,2016,0.001,0.001,0.1,1 -evmc_shape_3,2017,0.001,0.001,0.1,1 -evmc_shape_3,2018,0.001,0.001,0.1,1 -evmc_shape_3,2019,0.001,0.001,0.1,1 -evmc_shape_3,2020,0.001,0.001,0.1,1 -evmc_shape_3,2021,0.001,0.001,0.1,1 -evmc_shape_3,2022,0.001,0.001,0.1,1 -evmc_shape_3,2023,0.001,0.001,0.1,1 -evmc_shape_3,2024,0.001,0.001,0.1,1 -evmc_shape_3,2025,0.001,0.001,0.1,1 -evmc_shape_3,2026,0.001,0.001,0.1,1 -evmc_shape_3,2027,0.001,0.001,0.1,1 -evmc_shape_3,2028,0.001,0.001,0.1,1 -evmc_shape_3,2029,0.001,0.001,0.1,1 -evmc_shape_3,2030,0.001,0.001,0.1,1 -evmc_shape_3,2031,0.001,0.001,0.1,1 -evmc_shape_3,2032,0.001,0.001,0.1,1 -evmc_shape_3,2033,0.001,0.001,0.1,1 -evmc_shape_3,2034,0.001,0.001,0.1,1 -evmc_shape_3,2035,0.001,0.001,0.1,1 -evmc_shape_3,2036,0.001,0.001,0.1,1 -evmc_shape_3,2037,0.001,0.001,0.1,1 -evmc_shape_3,2038,0.001,0.001,0.1,1 -evmc_shape_3,2039,0.001,0.001,0.1,1 -evmc_shape_3,2040,0.001,0.001,0.1,1 -evmc_shape_3,2041,0.001,0.001,0.1,1 -evmc_shape_3,2042,0.001,0.001,0.1,1 -evmc_shape_3,2043,0.001,0.001,0.1,1 -evmc_shape_3,2044,0.001,0.001,0.1,1 -evmc_shape_3,2045,0.001,0.001,0.1,1 -evmc_shape_3,2046,0.001,0.001,0.1,1 -evmc_shape_3,2047,0.001,0.001,0.1,1 -evmc_shape_3,2048,0.001,0.001,0.1,1 -evmc_shape_3,2049,0.001,0.001,0.1,1 -evmc_shape_3,2050,0.001,0.001,0.1,1 -evmc_shape_4,2010,0.001,0.001,0.1,1 -evmc_shape_4,2011,0.001,0.001,0.1,1 -evmc_shape_4,2012,0.001,0.001,0.1,1 -evmc_shape_4,2013,0.001,0.001,0.1,1 -evmc_shape_4,2014,0.001,0.001,0.1,1 -evmc_shape_4,2015,0.001,0.001,0.1,1 -evmc_shape_4,2016,0.001,0.001,0.1,1 -evmc_shape_4,2017,0.001,0.001,0.1,1 -evmc_shape_4,2018,0.001,0.001,0.1,1 -evmc_shape_4,2019,0.001,0.001,0.1,1 -evmc_shape_4,2020,0.001,0.001,0.1,1 -evmc_shape_4,2021,0.001,0.001,0.1,1 -evmc_shape_4,2022,0.001,0.001,0.1,1 -evmc_shape_4,2023,0.001,0.001,0.1,1 -evmc_shape_4,2024,0.001,0.001,0.1,1 -evmc_shape_4,2025,0.001,0.001,0.1,1 -evmc_shape_4,2026,0.001,0.001,0.1,1 -evmc_shape_4,2027,0.001,0.001,0.1,1 -evmc_shape_4,2028,0.001,0.001,0.1,1 -evmc_shape_4,2029,0.001,0.001,0.1,1 -evmc_shape_4,2030,0.001,0.001,0.1,1 -evmc_shape_4,2031,0.001,0.001,0.1,1 -evmc_shape_4,2032,0.001,0.001,0.1,1 -evmc_shape_4,2033,0.001,0.001,0.1,1 -evmc_shape_4,2034,0.001,0.001,0.1,1 -evmc_shape_4,2035,0.001,0.001,0.1,1 -evmc_shape_4,2036,0.001,0.001,0.1,1 -evmc_shape_4,2037,0.001,0.001,0.1,1 -evmc_shape_4,2038,0.001,0.001,0.1,1 -evmc_shape_4,2039,0.001,0.001,0.1,1 -evmc_shape_4,2040,0.001,0.001,0.1,1 -evmc_shape_4,2041,0.001,0.001,0.1,1 -evmc_shape_4,2042,0.001,0.001,0.1,1 -evmc_shape_4,2043,0.001,0.001,0.1,1 -evmc_shape_4,2044,0.001,0.001,0.1,1 -evmc_shape_4,2045,0.001,0.001,0.1,1 -evmc_shape_4,2046,0.001,0.001,0.1,1 -evmc_shape_4,2047,0.001,0.001,0.1,1 -evmc_shape_4,2048,0.001,0.001,0.1,1 -evmc_shape_4,2049,0.001,0.001,0.1,1 -evmc_shape_4,2050,0.001,0.001,0.1,1 -evmc_shape_5,2010,0.001,0.001,0.1,1 -evmc_shape_5,2011,0.001,0.001,0.1,1 -evmc_shape_5,2012,0.001,0.001,0.1,1 -evmc_shape_5,2013,0.001,0.001,0.1,1 -evmc_shape_5,2014,0.001,0.001,0.1,1 -evmc_shape_5,2015,0.001,0.001,0.1,1 -evmc_shape_5,2016,0.001,0.001,0.1,1 -evmc_shape_5,2017,0.001,0.001,0.1,1 -evmc_shape_5,2018,0.001,0.001,0.1,1 -evmc_shape_5,2019,0.001,0.001,0.1,1 -evmc_shape_5,2020,0.001,0.001,0.1,1 -evmc_shape_5,2021,0.001,0.001,0.1,1 -evmc_shape_5,2022,0.001,0.001,0.1,1 -evmc_shape_5,2023,0.001,0.001,0.1,1 -evmc_shape_5,2024,0.001,0.001,0.1,1 -evmc_shape_5,2025,0.001,0.001,0.1,1 -evmc_shape_5,2026,0.001,0.001,0.1,1 -evmc_shape_5,2027,0.001,0.001,0.1,1 -evmc_shape_5,2028,0.001,0.001,0.1,1 -evmc_shape_5,2029,0.001,0.001,0.1,1 -evmc_shape_5,2030,0.001,0.001,0.1,1 -evmc_shape_5,2031,0.001,0.001,0.1,1 -evmc_shape_5,2032,0.001,0.001,0.1,1 -evmc_shape_5,2033,0.001,0.001,0.1,1 -evmc_shape_5,2034,0.001,0.001,0.1,1 -evmc_shape_5,2035,0.001,0.001,0.1,1 -evmc_shape_5,2036,0.001,0.001,0.1,1 -evmc_shape_5,2037,0.001,0.001,0.1,1 -evmc_shape_5,2038,0.001,0.001,0.1,1 -evmc_shape_5,2039,0.001,0.001,0.1,1 -evmc_shape_5,2040,0.001,0.001,0.1,1 -evmc_shape_5,2041,0.001,0.001,0.1,1 -evmc_shape_5,2042,0.001,0.001,0.1,1 -evmc_shape_5,2043,0.001,0.001,0.1,1 -evmc_shape_5,2044,0.001,0.001,0.1,1 -evmc_shape_5,2045,0.001,0.001,0.1,1 -evmc_shape_5,2046,0.001,0.001,0.1,1 -evmc_shape_5,2047,0.001,0.001,0.1,1 -evmc_shape_5,2048,0.001,0.001,0.1,1 -evmc_shape_5,2049,0.001,0.001,0.1,1 -evmc_shape_5,2050,0.001,0.001,0.1,1 -evmc_shape_6,2010,0.001,0.001,0.1,1 -evmc_shape_6,2011,0.001,0.001,0.1,1 -evmc_shape_6,2012,0.001,0.001,0.1,1 -evmc_shape_6,2013,0.001,0.001,0.1,1 -evmc_shape_6,2014,0.001,0.001,0.1,1 -evmc_shape_6,2015,0.001,0.001,0.1,1 -evmc_shape_6,2016,0.001,0.001,0.1,1 -evmc_shape_6,2017,0.001,0.001,0.1,1 -evmc_shape_6,2018,0.001,0.001,0.1,1 -evmc_shape_6,2019,0.001,0.001,0.1,1 -evmc_shape_6,2020,0.001,0.001,0.1,1 -evmc_shape_6,2021,0.001,0.001,0.1,1 -evmc_shape_6,2022,0.001,0.001,0.1,1 -evmc_shape_6,2023,0.001,0.001,0.1,1 -evmc_shape_6,2024,0.001,0.001,0.1,1 -evmc_shape_6,2025,0.001,0.001,0.1,1 -evmc_shape_6,2026,0.001,0.001,0.1,1 -evmc_shape_6,2027,0.001,0.001,0.1,1 -evmc_shape_6,2028,0.001,0.001,0.1,1 -evmc_shape_6,2029,0.001,0.001,0.1,1 -evmc_shape_6,2030,0.001,0.001,0.1,1 -evmc_shape_6,2031,0.001,0.001,0.1,1 -evmc_shape_6,2032,0.001,0.001,0.1,1 -evmc_shape_6,2033,0.001,0.001,0.1,1 -evmc_shape_6,2034,0.001,0.001,0.1,1 -evmc_shape_6,2035,0.001,0.001,0.1,1 -evmc_shape_6,2036,0.001,0.001,0.1,1 -evmc_shape_6,2037,0.001,0.001,0.1,1 -evmc_shape_6,2038,0.001,0.001,0.1,1 -evmc_shape_6,2039,0.001,0.001,0.1,1 -evmc_shape_6,2040,0.001,0.001,0.1,1 -evmc_shape_6,2041,0.001,0.001,0.1,1 -evmc_shape_6,2042,0.001,0.001,0.1,1 -evmc_shape_6,2043,0.001,0.001,0.1,1 -evmc_shape_6,2044,0.001,0.001,0.1,1 -evmc_shape_6,2045,0.001,0.001,0.1,1 -evmc_shape_6,2046,0.001,0.001,0.1,1 -evmc_shape_6,2047,0.001,0.001,0.1,1 -evmc_shape_6,2048,0.001,0.001,0.1,1 -evmc_shape_6,2049,0.001,0.001,0.1,1 -evmc_shape_6,2050,0.001,0.001,0.1,1 -evmc_shape_7,2010,0.001,0.001,0.1,1 -evmc_shape_7,2011,0.001,0.001,0.1,1 -evmc_shape_7,2012,0.001,0.001,0.1,1 -evmc_shape_7,2013,0.001,0.001,0.1,1 -evmc_shape_7,2014,0.001,0.001,0.1,1 -evmc_shape_7,2015,0.001,0.001,0.1,1 -evmc_shape_7,2016,0.001,0.001,0.1,1 -evmc_shape_7,2017,0.001,0.001,0.1,1 -evmc_shape_7,2018,0.001,0.001,0.1,1 -evmc_shape_7,2019,0.001,0.001,0.1,1 -evmc_shape_7,2020,0.001,0.001,0.1,1 -evmc_shape_7,2021,0.001,0.001,0.1,1 -evmc_shape_7,2022,0.001,0.001,0.1,1 -evmc_shape_7,2023,0.001,0.001,0.1,1 -evmc_shape_7,2024,0.001,0.001,0.1,1 -evmc_shape_7,2025,0.001,0.001,0.1,1 -evmc_shape_7,2026,0.001,0.001,0.1,1 -evmc_shape_7,2027,0.001,0.001,0.1,1 -evmc_shape_7,2028,0.001,0.001,0.1,1 -evmc_shape_7,2029,0.001,0.001,0.1,1 -evmc_shape_7,2030,0.001,0.001,0.1,1 -evmc_shape_7,2031,0.001,0.001,0.1,1 -evmc_shape_7,2032,0.001,0.001,0.1,1 -evmc_shape_7,2033,0.001,0.001,0.1,1 -evmc_shape_7,2034,0.001,0.001,0.1,1 -evmc_shape_7,2035,0.001,0.001,0.1,1 -evmc_shape_7,2036,0.001,0.001,0.1,1 -evmc_shape_7,2037,0.001,0.001,0.1,1 -evmc_shape_7,2038,0.001,0.001,0.1,1 -evmc_shape_7,2039,0.001,0.001,0.1,1 -evmc_shape_7,2040,0.001,0.001,0.1,1 -evmc_shape_7,2041,0.001,0.001,0.1,1 -evmc_shape_7,2042,0.001,0.001,0.1,1 -evmc_shape_7,2043,0.001,0.001,0.1,1 -evmc_shape_7,2044,0.001,0.001,0.1,1 -evmc_shape_7,2045,0.001,0.001,0.1,1 -evmc_shape_7,2046,0.001,0.001,0.1,1 -evmc_shape_7,2047,0.001,0.001,0.1,1 -evmc_shape_7,2048,0.001,0.001,0.1,1 -evmc_shape_7,2049,0.001,0.001,0.1,1 -evmc_shape_7,2050,0.001,0.001,0.1,1 -evmc_shape_8,2010,0.001,0.001,0.1,1 -evmc_shape_8,2011,0.001,0.001,0.1,1 -evmc_shape_8,2012,0.001,0.001,0.1,1 -evmc_shape_8,2013,0.001,0.001,0.1,1 -evmc_shape_8,2014,0.001,0.001,0.1,1 -evmc_shape_8,2015,0.001,0.001,0.1,1 -evmc_shape_8,2016,0.001,0.001,0.1,1 -evmc_shape_8,2017,0.001,0.001,0.1,1 -evmc_shape_8,2018,0.001,0.001,0.1,1 -evmc_shape_8,2019,0.001,0.001,0.1,1 -evmc_shape_8,2020,0.001,0.001,0.1,1 -evmc_shape_8,2021,0.001,0.001,0.1,1 -evmc_shape_8,2022,0.001,0.001,0.1,1 -evmc_shape_8,2023,0.001,0.001,0.1,1 -evmc_shape_8,2024,0.001,0.001,0.1,1 -evmc_shape_8,2025,0.001,0.001,0.1,1 -evmc_shape_8,2026,0.001,0.001,0.1,1 -evmc_shape_8,2027,0.001,0.001,0.1,1 -evmc_shape_8,2028,0.001,0.001,0.1,1 -evmc_shape_8,2029,0.001,0.001,0.1,1 -evmc_shape_8,2030,0.001,0.001,0.1,1 -evmc_shape_8,2031,0.001,0.001,0.1,1 -evmc_shape_8,2032,0.001,0.001,0.1,1 -evmc_shape_8,2033,0.001,0.001,0.1,1 -evmc_shape_8,2034,0.001,0.001,0.1,1 -evmc_shape_8,2035,0.001,0.001,0.1,1 -evmc_shape_8,2036,0.001,0.001,0.1,1 -evmc_shape_8,2037,0.001,0.001,0.1,1 -evmc_shape_8,2038,0.001,0.001,0.1,1 -evmc_shape_8,2039,0.001,0.001,0.1,1 -evmc_shape_8,2040,0.001,0.001,0.1,1 -evmc_shape_8,2041,0.001,0.001,0.1,1 -evmc_shape_8,2042,0.001,0.001,0.1,1 -evmc_shape_8,2043,0.001,0.001,0.1,1 -evmc_shape_8,2044,0.001,0.001,0.1,1 -evmc_shape_8,2045,0.001,0.001,0.1,1 -evmc_shape_8,2046,0.001,0.001,0.1,1 -evmc_shape_8,2047,0.001,0.001,0.1,1 -evmc_shape_8,2048,0.001,0.001,0.1,1 -evmc_shape_8,2049,0.001,0.001,0.1,1 -evmc_shape_8,2050,0.001,0.001,0.1,1 -evmc_shape_9,2010,0.001,0.001,0.1,1 -evmc_shape_9,2011,0.001,0.001,0.1,1 -evmc_shape_9,2012,0.001,0.001,0.1,1 -evmc_shape_9,2013,0.001,0.001,0.1,1 -evmc_shape_9,2014,0.001,0.001,0.1,1 -evmc_shape_9,2015,0.001,0.001,0.1,1 -evmc_shape_9,2016,0.001,0.001,0.1,1 -evmc_shape_9,2017,0.001,0.001,0.1,1 -evmc_shape_9,2018,0.001,0.001,0.1,1 -evmc_shape_9,2019,0.001,0.001,0.1,1 -evmc_shape_9,2020,0.001,0.001,0.1,1 -evmc_shape_9,2021,0.001,0.001,0.1,1 -evmc_shape_9,2022,0.001,0.001,0.1,1 -evmc_shape_9,2023,0.001,0.001,0.1,1 -evmc_shape_9,2024,0.001,0.001,0.1,1 -evmc_shape_9,2025,0.001,0.001,0.1,1 -evmc_shape_9,2026,0.001,0.001,0.1,1 -evmc_shape_9,2027,0.001,0.001,0.1,1 -evmc_shape_9,2028,0.001,0.001,0.1,1 -evmc_shape_9,2029,0.001,0.001,0.1,1 -evmc_shape_9,2030,0.001,0.001,0.1,1 -evmc_shape_9,2031,0.001,0.001,0.1,1 -evmc_shape_9,2032,0.001,0.001,0.1,1 -evmc_shape_9,2033,0.001,0.001,0.1,1 -evmc_shape_9,2034,0.001,0.001,0.1,1 -evmc_shape_9,2035,0.001,0.001,0.1,1 -evmc_shape_9,2036,0.001,0.001,0.1,1 -evmc_shape_9,2037,0.001,0.001,0.1,1 -evmc_shape_9,2038,0.001,0.001,0.1,1 -evmc_shape_9,2039,0.001,0.001,0.1,1 -evmc_shape_9,2040,0.001,0.001,0.1,1 -evmc_shape_9,2041,0.001,0.001,0.1,1 -evmc_shape_9,2042,0.001,0.001,0.1,1 -evmc_shape_9,2043,0.001,0.001,0.1,1 -evmc_shape_9,2044,0.001,0.001,0.1,1 -evmc_shape_9,2045,0.001,0.001,0.1,1 -evmc_shape_9,2046,0.001,0.001,0.1,1 -evmc_shape_9,2047,0.001,0.001,0.1,1 -evmc_shape_9,2048,0.001,0.001,0.1,1 -evmc_shape_9,2049,0.001,0.001,0.1,1 -evmc_shape_9,2050,0.001,0.001,0.1,1 -evmc_shape_10,2010,0.001,0.001,0.1,1 -evmc_shape_10,2011,0.001,0.001,0.1,1 -evmc_shape_10,2012,0.001,0.001,0.1,1 -evmc_shape_10,2013,0.001,0.001,0.1,1 -evmc_shape_10,2014,0.001,0.001,0.1,1 -evmc_shape_10,2015,0.001,0.001,0.1,1 -evmc_shape_10,2016,0.001,0.001,0.1,1 -evmc_shape_10,2017,0.001,0.001,0.1,1 -evmc_shape_10,2018,0.001,0.001,0.1,1 -evmc_shape_10,2019,0.001,0.001,0.1,1 -evmc_shape_10,2020,0.001,0.001,0.1,1 -evmc_shape_10,2021,0.001,0.001,0.1,1 -evmc_shape_10,2022,0.001,0.001,0.1,1 -evmc_shape_10,2023,0.001,0.001,0.1,1 -evmc_shape_10,2024,0.001,0.001,0.1,1 -evmc_shape_10,2025,0.001,0.001,0.1,1 -evmc_shape_10,2026,0.001,0.001,0.1,1 -evmc_shape_10,2027,0.001,0.001,0.1,1 -evmc_shape_10,2028,0.001,0.001,0.1,1 -evmc_shape_10,2029,0.001,0.001,0.1,1 -evmc_shape_10,2030,0.001,0.001,0.1,1 -evmc_shape_10,2031,0.001,0.001,0.1,1 -evmc_shape_10,2032,0.001,0.001,0.1,1 -evmc_shape_10,2033,0.001,0.001,0.1,1 -evmc_shape_10,2034,0.001,0.001,0.1,1 -evmc_shape_10,2035,0.001,0.001,0.1,1 -evmc_shape_10,2036,0.001,0.001,0.1,1 -evmc_shape_10,2037,0.001,0.001,0.1,1 -evmc_shape_10,2038,0.001,0.001,0.1,1 -evmc_shape_10,2039,0.001,0.001,0.1,1 -evmc_shape_10,2040,0.001,0.001,0.1,1 -evmc_shape_10,2041,0.001,0.001,0.1,1 -evmc_shape_10,2042,0.001,0.001,0.1,1 -evmc_shape_10,2043,0.001,0.001,0.1,1 -evmc_shape_10,2044,0.001,0.001,0.1,1 -evmc_shape_10,2045,0.001,0.001,0.1,1 -evmc_shape_10,2046,0.001,0.001,0.1,1 -evmc_shape_10,2047,0.001,0.001,0.1,1 -evmc_shape_10,2048,0.001,0.001,0.1,1 -evmc_shape_10,2049,0.001,0.001,0.1,1 -evmc_shape_10,2050,0.001,0.001,0.1,1 diff --git a/inputs/plant_characteristics/evmc_storage_Baseline.csv b/inputs/plant_characteristics/evmc_storage_Baseline.csv deleted file mode 100644 index 9d2c0f504..000000000 --- a/inputs/plant_characteristics/evmc_storage_Baseline.csv +++ /dev/null @@ -1,411 +0,0 @@ -i,t,capcost,fom,vom,rte -evmc_storage_1,2010,0.001,2,0,1 -evmc_storage_1,2011,0.001,2,0,1 -evmc_storage_1,2012,0.001,2,0,1 -evmc_storage_1,2013,0.001,2,0,1 -evmc_storage_1,2014,0.001,2,0,1 -evmc_storage_1,2015,0.001,2,0,1 -evmc_storage_1,2016,0.001,2,0,1 -evmc_storage_1,2017,0.001,2,0,1 -evmc_storage_1,2018,0.001,2,0,1 -evmc_storage_1,2019,0.001,2,0,1 -evmc_storage_1,2020,0.001,2,0,1 -evmc_storage_1,2021,0.001,2,0,1 -evmc_storage_1,2022,0.001,2,0,1 -evmc_storage_1,2023,0.001,2,0,1 -evmc_storage_1,2024,0.001,2,0,1 -evmc_storage_1,2025,0.001,2,0,1 -evmc_storage_1,2026,0.001,2,0,1 -evmc_storage_1,2027,0.001,2,0,1 -evmc_storage_1,2028,0.001,2,0,1 -evmc_storage_1,2029,0.001,2,0,1 -evmc_storage_1,2030,0.001,2,0,1 -evmc_storage_1,2031,0.001,2,0,1 -evmc_storage_1,2032,0.001,2,0,1 -evmc_storage_1,2033,0.001,2,0,1 -evmc_storage_1,2034,0.001,2,0,1 -evmc_storage_1,2035,0.001,2,0,1 -evmc_storage_1,2036,0.001,2,0,1 -evmc_storage_1,2037,0.001,2,0,1 -evmc_storage_1,2038,0.001,2,0,1 -evmc_storage_1,2039,0.001,2,0,1 -evmc_storage_1,2040,0.001,2,0,1 -evmc_storage_1,2041,0.001,2,0,1 -evmc_storage_1,2042,0.001,2,0,1 -evmc_storage_1,2043,0.001,2,0,1 -evmc_storage_1,2044,0.001,2,0,1 -evmc_storage_1,2045,0.001,2,0,1 -evmc_storage_1,2046,0.001,2,0,1 -evmc_storage_1,2047,0.001,2,0,1 -evmc_storage_1,2048,0.001,2,0,1 -evmc_storage_1,2049,0.001,2,0,1 -evmc_storage_1,2050,0.001,2,0,1 -evmc_storage_2,2010,0.001,2,0,1 -evmc_storage_2,2011,0.001,2,0,1 -evmc_storage_2,2012,0.001,2,0,1 -evmc_storage_2,2013,0.001,2,0,1 -evmc_storage_2,2014,0.001,2,0,1 -evmc_storage_2,2015,0.001,2,0,1 -evmc_storage_2,2016,0.001,2,0,1 -evmc_storage_2,2017,0.001,2,0,1 -evmc_storage_2,2018,0.001,2,0,1 -evmc_storage_2,2019,0.001,2,0,1 -evmc_storage_2,2020,0.001,2,0,1 -evmc_storage_2,2021,0.001,2,0,1 -evmc_storage_2,2022,0.001,2,0,1 -evmc_storage_2,2023,0.001,2,0,1 -evmc_storage_2,2024,0.001,2,0,1 -evmc_storage_2,2025,0.001,2,0,1 -evmc_storage_2,2026,0.001,2,0,1 -evmc_storage_2,2027,0.001,2,0,1 -evmc_storage_2,2028,0.001,2,0,1 -evmc_storage_2,2029,0.001,2,0,1 -evmc_storage_2,2030,0.001,2,0,1 -evmc_storage_2,2031,0.001,2,0,1 -evmc_storage_2,2032,0.001,2,0,1 -evmc_storage_2,2033,0.001,2,0,1 -evmc_storage_2,2034,0.001,2,0,1 -evmc_storage_2,2035,0.001,2,0,1 -evmc_storage_2,2036,0.001,2,0,1 -evmc_storage_2,2037,0.001,2,0,1 -evmc_storage_2,2038,0.001,2,0,1 -evmc_storage_2,2039,0.001,2,0,1 -evmc_storage_2,2040,0.001,2,0,1 -evmc_storage_2,2041,0.001,2,0,1 -evmc_storage_2,2042,0.001,2,0,1 -evmc_storage_2,2043,0.001,2,0,1 -evmc_storage_2,2044,0.001,2,0,1 -evmc_storage_2,2045,0.001,2,0,1 -evmc_storage_2,2046,0.001,2,0,1 -evmc_storage_2,2047,0.001,2,0,1 -evmc_storage_2,2048,0.001,2,0,1 -evmc_storage_2,2049,0.001,2,0,1 -evmc_storage_2,2050,0.001,2,0,1 -evmc_storage_3,2010,0.001,2,0,1 -evmc_storage_3,2011,0.001,2,0,1 -evmc_storage_3,2012,0.001,2,0,1 -evmc_storage_3,2013,0.001,2,0,1 -evmc_storage_3,2014,0.001,2,0,1 -evmc_storage_3,2015,0.001,2,0,1 -evmc_storage_3,2016,0.001,2,0,1 -evmc_storage_3,2017,0.001,2,0,1 -evmc_storage_3,2018,0.001,2,0,1 -evmc_storage_3,2019,0.001,2,0,1 -evmc_storage_3,2020,0.001,2,0,1 -evmc_storage_3,2021,0.001,2,0,1 -evmc_storage_3,2022,0.001,2,0,1 -evmc_storage_3,2023,0.001,2,0,1 -evmc_storage_3,2024,0.001,2,0,1 -evmc_storage_3,2025,0.001,2,0,1 -evmc_storage_3,2026,0.001,2,0,1 -evmc_storage_3,2027,0.001,2,0,1 -evmc_storage_3,2028,0.001,2,0,1 -evmc_storage_3,2029,0.001,2,0,1 -evmc_storage_3,2030,0.001,2,0,1 -evmc_storage_3,2031,0.001,2,0,1 -evmc_storage_3,2032,0.001,2,0,1 -evmc_storage_3,2033,0.001,2,0,1 -evmc_storage_3,2034,0.001,2,0,1 -evmc_storage_3,2035,0.001,2,0,1 -evmc_storage_3,2036,0.001,2,0,1 -evmc_storage_3,2037,0.001,2,0,1 -evmc_storage_3,2038,0.001,2,0,1 -evmc_storage_3,2039,0.001,2,0,1 -evmc_storage_3,2040,0.001,2,0,1 -evmc_storage_3,2041,0.001,2,0,1 -evmc_storage_3,2042,0.001,2,0,1 -evmc_storage_3,2043,0.001,2,0,1 -evmc_storage_3,2044,0.001,2,0,1 -evmc_storage_3,2045,0.001,2,0,1 -evmc_storage_3,2046,0.001,2,0,1 -evmc_storage_3,2047,0.001,2,0,1 -evmc_storage_3,2048,0.001,2,0,1 -evmc_storage_3,2049,0.001,2,0,1 -evmc_storage_3,2050,0.001,2,0,1 -evmc_storage_4,2010,0.001,2,0,1 -evmc_storage_4,2011,0.001,2,0,1 -evmc_storage_4,2012,0.001,2,0,1 -evmc_storage_4,2013,0.001,2,0,1 -evmc_storage_4,2014,0.001,2,0,1 -evmc_storage_4,2015,0.001,2,0,1 -evmc_storage_4,2016,0.001,2,0,1 -evmc_storage_4,2017,0.001,2,0,1 -evmc_storage_4,2018,0.001,2,0,1 -evmc_storage_4,2019,0.001,2,0,1 -evmc_storage_4,2020,0.001,2,0,1 -evmc_storage_4,2021,0.001,2,0,1 -evmc_storage_4,2022,0.001,2,0,1 -evmc_storage_4,2023,0.001,2,0,1 -evmc_storage_4,2024,0.001,2,0,1 -evmc_storage_4,2025,0.001,2,0,1 -evmc_storage_4,2026,0.001,2,0,1 -evmc_storage_4,2027,0.001,2,0,1 -evmc_storage_4,2028,0.001,2,0,1 -evmc_storage_4,2029,0.001,2,0,1 -evmc_storage_4,2030,0.001,2,0,1 -evmc_storage_4,2031,0.001,2,0,1 -evmc_storage_4,2032,0.001,2,0,1 -evmc_storage_4,2033,0.001,2,0,1 -evmc_storage_4,2034,0.001,2,0,1 -evmc_storage_4,2035,0.001,2,0,1 -evmc_storage_4,2036,0.001,2,0,1 -evmc_storage_4,2037,0.001,2,0,1 -evmc_storage_4,2038,0.001,2,0,1 -evmc_storage_4,2039,0.001,2,0,1 -evmc_storage_4,2040,0.001,2,0,1 -evmc_storage_4,2041,0.001,2,0,1 -evmc_storage_4,2042,0.001,2,0,1 -evmc_storage_4,2043,0.001,2,0,1 -evmc_storage_4,2044,0.001,2,0,1 -evmc_storage_4,2045,0.001,2,0,1 -evmc_storage_4,2046,0.001,2,0,1 -evmc_storage_4,2047,0.001,2,0,1 -evmc_storage_4,2048,0.001,2,0,1 -evmc_storage_4,2049,0.001,2,0,1 -evmc_storage_4,2050,0.001,2,0,1 -evmc_storage_5,2010,0.001,2,0,1 -evmc_storage_5,2011,0.001,2,0,1 -evmc_storage_5,2012,0.001,2,0,1 -evmc_storage_5,2013,0.001,2,0,1 -evmc_storage_5,2014,0.001,2,0,1 -evmc_storage_5,2015,0.001,2,0,1 -evmc_storage_5,2016,0.001,2,0,1 -evmc_storage_5,2017,0.001,2,0,1 -evmc_storage_5,2018,0.001,2,0,1 -evmc_storage_5,2019,0.001,2,0,1 -evmc_storage_5,2020,0.001,2,0,1 -evmc_storage_5,2021,0.001,2,0,1 -evmc_storage_5,2022,0.001,2,0,1 -evmc_storage_5,2023,0.001,2,0,1 -evmc_storage_5,2024,0.001,2,0,1 -evmc_storage_5,2025,0.001,2,0,1 -evmc_storage_5,2026,0.001,2,0,1 -evmc_storage_5,2027,0.001,2,0,1 -evmc_storage_5,2028,0.001,2,0,1 -evmc_storage_5,2029,0.001,2,0,1 -evmc_storage_5,2030,0.001,2,0,1 -evmc_storage_5,2031,0.001,2,0,1 -evmc_storage_5,2032,0.001,2,0,1 -evmc_storage_5,2033,0.001,2,0,1 -evmc_storage_5,2034,0.001,2,0,1 -evmc_storage_5,2035,0.001,2,0,1 -evmc_storage_5,2036,0.001,2,0,1 -evmc_storage_5,2037,0.001,2,0,1 -evmc_storage_5,2038,0.001,2,0,1 -evmc_storage_5,2039,0.001,2,0,1 -evmc_storage_5,2040,0.001,2,0,1 -evmc_storage_5,2041,0.001,2,0,1 -evmc_storage_5,2042,0.001,2,0,1 -evmc_storage_5,2043,0.001,2,0,1 -evmc_storage_5,2044,0.001,2,0,1 -evmc_storage_5,2045,0.001,2,0,1 -evmc_storage_5,2046,0.001,2,0,1 -evmc_storage_5,2047,0.001,2,0,1 -evmc_storage_5,2048,0.001,2,0,1 -evmc_storage_5,2049,0.001,2,0,1 -evmc_storage_5,2050,0.001,2,0,1 -evmc_storage_6,2010,0.001,2,0,1 -evmc_storage_6,2011,0.001,2,0,1 -evmc_storage_6,2012,0.001,2,0,1 -evmc_storage_6,2013,0.001,2,0,1 -evmc_storage_6,2014,0.001,2,0,1 -evmc_storage_6,2015,0.001,2,0,1 -evmc_storage_6,2016,0.001,2,0,1 -evmc_storage_6,2017,0.001,2,0,1 -evmc_storage_6,2018,0.001,2,0,1 -evmc_storage_6,2019,0.001,2,0,1 -evmc_storage_6,2020,0.001,2,0,1 -evmc_storage_6,2021,0.001,2,0,1 -evmc_storage_6,2022,0.001,2,0,1 -evmc_storage_6,2023,0.001,2,0,1 -evmc_storage_6,2024,0.001,2,0,1 -evmc_storage_6,2025,0.001,2,0,1 -evmc_storage_6,2026,0.001,2,0,1 -evmc_storage_6,2027,0.001,2,0,1 -evmc_storage_6,2028,0.001,2,0,1 -evmc_storage_6,2029,0.001,2,0,1 -evmc_storage_6,2030,0.001,2,0,1 -evmc_storage_6,2031,0.001,2,0,1 -evmc_storage_6,2032,0.001,2,0,1 -evmc_storage_6,2033,0.001,2,0,1 -evmc_storage_6,2034,0.001,2,0,1 -evmc_storage_6,2035,0.001,2,0,1 -evmc_storage_6,2036,0.001,2,0,1 -evmc_storage_6,2037,0.001,2,0,1 -evmc_storage_6,2038,0.001,2,0,1 -evmc_storage_6,2039,0.001,2,0,1 -evmc_storage_6,2040,0.001,2,0,1 -evmc_storage_6,2041,0.001,2,0,1 -evmc_storage_6,2042,0.001,2,0,1 -evmc_storage_6,2043,0.001,2,0,1 -evmc_storage_6,2044,0.001,2,0,1 -evmc_storage_6,2045,0.001,2,0,1 -evmc_storage_6,2046,0.001,2,0,1 -evmc_storage_6,2047,0.001,2,0,1 -evmc_storage_6,2048,0.001,2,0,1 -evmc_storage_6,2049,0.001,2,0,1 -evmc_storage_6,2050,0.001,2,0,1 -evmc_storage_7,2010,0.001,2,0,1 -evmc_storage_7,2011,0.001,2,0,1 -evmc_storage_7,2012,0.001,2,0,1 -evmc_storage_7,2013,0.001,2,0,1 -evmc_storage_7,2014,0.001,2,0,1 -evmc_storage_7,2015,0.001,2,0,1 -evmc_storage_7,2016,0.001,2,0,1 -evmc_storage_7,2017,0.001,2,0,1 -evmc_storage_7,2018,0.001,2,0,1 -evmc_storage_7,2019,0.001,2,0,1 -evmc_storage_7,2020,0.001,2,0,1 -evmc_storage_7,2021,0.001,2,0,1 -evmc_storage_7,2022,0.001,2,0,1 -evmc_storage_7,2023,0.001,2,0,1 -evmc_storage_7,2024,0.001,2,0,1 -evmc_storage_7,2025,0.001,2,0,1 -evmc_storage_7,2026,0.001,2,0,1 -evmc_storage_7,2027,0.001,2,0,1 -evmc_storage_7,2028,0.001,2,0,1 -evmc_storage_7,2029,0.001,2,0,1 -evmc_storage_7,2030,0.001,2,0,1 -evmc_storage_7,2031,0.001,2,0,1 -evmc_storage_7,2032,0.001,2,0,1 -evmc_storage_7,2033,0.001,2,0,1 -evmc_storage_7,2034,0.001,2,0,1 -evmc_storage_7,2035,0.001,2,0,1 -evmc_storage_7,2036,0.001,2,0,1 -evmc_storage_7,2037,0.001,2,0,1 -evmc_storage_7,2038,0.001,2,0,1 -evmc_storage_7,2039,0.001,2,0,1 -evmc_storage_7,2040,0.001,2,0,1 -evmc_storage_7,2041,0.001,2,0,1 -evmc_storage_7,2042,0.001,2,0,1 -evmc_storage_7,2043,0.001,2,0,1 -evmc_storage_7,2044,0.001,2,0,1 -evmc_storage_7,2045,0.001,2,0,1 -evmc_storage_7,2046,0.001,2,0,1 -evmc_storage_7,2047,0.001,2,0,1 -evmc_storage_7,2048,0.001,2,0,1 -evmc_storage_7,2049,0.001,2,0,1 -evmc_storage_7,2050,0.001,2,0,1 -evmc_storage_8,2010,0.001,2,0,1 -evmc_storage_8,2011,0.001,2,0,1 -evmc_storage_8,2012,0.001,2,0,1 -evmc_storage_8,2013,0.001,2,0,1 -evmc_storage_8,2014,0.001,2,0,1 -evmc_storage_8,2015,0.001,2,0,1 -evmc_storage_8,2016,0.001,2,0,1 -evmc_storage_8,2017,0.001,2,0,1 -evmc_storage_8,2018,0.001,2,0,1 -evmc_storage_8,2019,0.001,2,0,1 -evmc_storage_8,2020,0.001,2,0,1 -evmc_storage_8,2021,0.001,2,0,1 -evmc_storage_8,2022,0.001,2,0,1 -evmc_storage_8,2023,0.001,2,0,1 -evmc_storage_8,2024,0.001,2,0,1 -evmc_storage_8,2025,0.001,2,0,1 -evmc_storage_8,2026,0.001,2,0,1 -evmc_storage_8,2027,0.001,2,0,1 -evmc_storage_8,2028,0.001,2,0,1 -evmc_storage_8,2029,0.001,2,0,1 -evmc_storage_8,2030,0.001,2,0,1 -evmc_storage_8,2031,0.001,2,0,1 -evmc_storage_8,2032,0.001,2,0,1 -evmc_storage_8,2033,0.001,2,0,1 -evmc_storage_8,2034,0.001,2,0,1 -evmc_storage_8,2035,0.001,2,0,1 -evmc_storage_8,2036,0.001,2,0,1 -evmc_storage_8,2037,0.001,2,0,1 -evmc_storage_8,2038,0.001,2,0,1 -evmc_storage_8,2039,0.001,2,0,1 -evmc_storage_8,2040,0.001,2,0,1 -evmc_storage_8,2041,0.001,2,0,1 -evmc_storage_8,2042,0.001,2,0,1 -evmc_storage_8,2043,0.001,2,0,1 -evmc_storage_8,2044,0.001,2,0,1 -evmc_storage_8,2045,0.001,2,0,1 -evmc_storage_8,2046,0.001,2,0,1 -evmc_storage_8,2047,0.001,2,0,1 -evmc_storage_8,2048,0.001,2,0,1 -evmc_storage_8,2049,0.001,2,0,1 -evmc_storage_8,2050,0.001,2,0,1 -evmc_storage_9,2010,0.001,2,0,1 -evmc_storage_9,2011,0.001,2,0,1 -evmc_storage_9,2012,0.001,2,0,1 -evmc_storage_9,2013,0.001,2,0,1 -evmc_storage_9,2014,0.001,2,0,1 -evmc_storage_9,2015,0.001,2,0,1 -evmc_storage_9,2016,0.001,2,0,1 -evmc_storage_9,2017,0.001,2,0,1 -evmc_storage_9,2018,0.001,2,0,1 -evmc_storage_9,2019,0.001,2,0,1 -evmc_storage_9,2020,0.001,2,0,1 -evmc_storage_9,2021,0.001,2,0,1 -evmc_storage_9,2022,0.001,2,0,1 -evmc_storage_9,2023,0.001,2,0,1 -evmc_storage_9,2024,0.001,2,0,1 -evmc_storage_9,2025,0.001,2,0,1 -evmc_storage_9,2026,0.001,2,0,1 -evmc_storage_9,2027,0.001,2,0,1 -evmc_storage_9,2028,0.001,2,0,1 -evmc_storage_9,2029,0.001,2,0,1 -evmc_storage_9,2030,0.001,2,0,1 -evmc_storage_9,2031,0.001,2,0,1 -evmc_storage_9,2032,0.001,2,0,1 -evmc_storage_9,2033,0.001,2,0,1 -evmc_storage_9,2034,0.001,2,0,1 -evmc_storage_9,2035,0.001,2,0,1 -evmc_storage_9,2036,0.001,2,0,1 -evmc_storage_9,2037,0.001,2,0,1 -evmc_storage_9,2038,0.001,2,0,1 -evmc_storage_9,2039,0.001,2,0,1 -evmc_storage_9,2040,0.001,2,0,1 -evmc_storage_9,2041,0.001,2,0,1 -evmc_storage_9,2042,0.001,2,0,1 -evmc_storage_9,2043,0.001,2,0,1 -evmc_storage_9,2044,0.001,2,0,1 -evmc_storage_9,2045,0.001,2,0,1 -evmc_storage_9,2046,0.001,2,0,1 -evmc_storage_9,2047,0.001,2,0,1 -evmc_storage_9,2048,0.001,2,0,1 -evmc_storage_9,2049,0.001,2,0,1 -evmc_storage_9,2050,0.001,2,0,1 -evmc_storage_10,2010,0.001,2,0,1 -evmc_storage_10,2011,0.001,2,0,1 -evmc_storage_10,2012,0.001,2,0,1 -evmc_storage_10,2013,0.001,2,0,1 -evmc_storage_10,2014,0.001,2,0,1 -evmc_storage_10,2015,0.001,2,0,1 -evmc_storage_10,2016,0.001,2,0,1 -evmc_storage_10,2017,0.001,2,0,1 -evmc_storage_10,2018,0.001,2,0,1 -evmc_storage_10,2019,0.001,2,0,1 -evmc_storage_10,2020,0.001,2,0,1 -evmc_storage_10,2021,0.001,2,0,1 -evmc_storage_10,2022,0.001,2,0,1 -evmc_storage_10,2023,0.001,2,0,1 -evmc_storage_10,2024,0.001,2,0,1 -evmc_storage_10,2025,0.001,2,0,1 -evmc_storage_10,2026,0.001,2,0,1 -evmc_storage_10,2027,0.001,2,0,1 -evmc_storage_10,2028,0.001,2,0,1 -evmc_storage_10,2029,0.001,2,0,1 -evmc_storage_10,2030,0.001,2,0,1 -evmc_storage_10,2031,0.001,2,0,1 -evmc_storage_10,2032,0.001,2,0,1 -evmc_storage_10,2033,0.001,2,0,1 -evmc_storage_10,2034,0.001,2,0,1 -evmc_storage_10,2035,0.001,2,0,1 -evmc_storage_10,2036,0.001,2,0,1 -evmc_storage_10,2037,0.001,2,0,1 -evmc_storage_10,2038,0.001,2,0,1 -evmc_storage_10,2039,0.001,2,0,1 -evmc_storage_10,2040,0.001,2,0,1 -evmc_storage_10,2041,0.001,2,0,1 -evmc_storage_10,2042,0.001,2,0,1 -evmc_storage_10,2043,0.001,2,0,1 -evmc_storage_10,2044,0.001,2,0,1 -evmc_storage_10,2045,0.001,2,0,1 -evmc_storage_10,2046,0.001,2,0,1 -evmc_storage_10,2047,0.001,2,0,1 -evmc_storage_10,2048,0.001,2,0,1 -evmc_storage_10,2049,0.001,2,0,1 -evmc_storage_10,2050,0.001,2,0,1 diff --git a/inputs/plant_characteristics/maxage.csv b/inputs/plant_characteristics/maxage.csv index bb2ce65f0..5594fd2a8 100644 --- a/inputs/plant_characteristics/maxage.csv +++ b/inputs/plant_characteristics/maxage.csv @@ -60,8 +60,8 @@ csp3_1*csp3_12,30 csp4_1*csp4_12,30 battery_li,30 dr_shed_1*dr_shed_2,8 -evmc_storage_1*evmc_storage_10,1 -evmc_shape_1*evmc_shape_10,1 +dr_shape_1*dr_shape_2,8 +dr_shift_1*dr_shift_2,8 electrolyzer,20 smr,25 smr_ccs,25 diff --git a/inputs/plant_characteristics/ramprate.csv b/inputs/plant_characteristics/ramprate.csv index 9bf492a70..763ee0031 100644 --- a/inputs/plant_characteristics/ramprate.csv +++ b/inputs/plant_characteristics/ramprate.csv @@ -46,5 +46,5 @@ pvb1_1*pvb1_10,1 pvb2_1*pvb2_10,1 pvb3_1*pvb3_10,1 dr_shed_1*dr_shed_2,1 -evmc_storage_1*evmc_storage_10,1 -evmc_shape_1*evmc_shape_10,1 \ No newline at end of file +dr_shape_1*dr_shape_2,1 +dr_shift_1*dr_shift_2,1 diff --git a/inputs/plant_characteristics/unitsize_atb.csv b/inputs/plant_characteristics/unitsize_atb.csv index eae06ca31..62ef4772e 100644 --- a/inputs/plant_characteristics/unitsize_atb.csv +++ b/inputs/plant_characteristics/unitsize_atb.csv @@ -62,6 +62,7 @@ hydnpnd,94,hydro assumption hyded,94,hydro assumption hydend,94,hydro assumption can-imports,20000,arbitrarily high (not disaggregated so doesn't matter) -evmc,20000,arbitrarily high (not disaggregated so doesn't matter) -dr_shed,20000,arbitrarily high (not disaggregated so doesn't matter) -h2-fuel-cell,100,https://docs.nlr.gov/docs/fy26osti/91146.pdf \ No newline at end of file +dr_shed,20000,set as an arbitrarily high number +dr_shift,20000,set as an arbitrarily high number +dr_shape,20000,set as an arbitrarily high number +h2-fuel-cell,100,https://docs.nlr.gov/docs/fy26osti/91146.pdf diff --git a/inputs/plant_characteristics/years_until_endogenous.csv b/inputs/plant_characteristics/years_until_endogenous.csv index 34c800aee..a614421c0 100644 --- a/inputs/plant_characteristics/years_until_endogenous.csv +++ b/inputs/plant_characteristics/years_until_endogenous.csv @@ -65,26 +65,10 @@ csp4_11,3 csp4_12,3 dr_shed_1,0 dr_shed_2,0 -evmc_storage_1,0 -evmc_storage_2,0 -evmc_storage_3,0 -evmc_storage_4,0 -evmc_storage_5,0 -evmc_storage_6,0 -evmc_storage_7,0 -evmc_storage_8,0 -evmc_storage_9,0 -evmc_storage_10,0 -evmc_shape_1,0 -evmc_shape_2,0 -evmc_shape_3,0 -evmc_shape_4,0 -evmc_shape_5,0 -evmc_shape_6,0 -evmc_shape_7,0 -evmc_shape_8,0 -evmc_shape_9,0 -evmc_shape_10,0 +dr_shape_1,0 +dr_shape_2,0 +dr_shift_1,0 +dr_shift_2,0 egs_allkm_1,8 egs_allkm_2,8 egs_allkm_3,8 diff --git a/inputs/remote_files.csv b/inputs/remote_files.csv index 699742ba4..ef14bb1d5 100644 --- a/inputs/remote_files.csv +++ b/inputs/remote_files.csv @@ -28,3 +28,8 @@ demand_EFS_REFERENCE.h5,profiles_demand,https://zenodo.org/records/{record_id}/f demand_historic.h5,profiles_demand,https://zenodo.org/records/{record_id}/files/{filename},18462671,06ca6b65088a870afafc25191dcfd6f3 dr_shed_hourly_demo_data_January_2025.h5,profiles_dr,https://zenodo.org/records/{record_id}/files/{filename},18761062,f1f688e3a3167bffb7cc1e2486fdda32 temperature_state.h5,profiles_temperature,https://zenodo.org/records/{record_id}/files/{filename},19390491,43f69d6216f209082417b558e74bd349 +dr_shape_decrease_profile_ex_dr1.h5,profiles_dr,https://zenodo.org/records/{record_id}/files/{filename},20821467,859ace7ca4016a19100d1143928be3a5 +dr_shape_increase_profile_ex_dr1.h5,profiles_dr,https://zenodo.org/records/{record_id}/files/{filename},20821467,659a69cae5f31202065a92f6c9a9ebbe +dr_shift_decrease_profile_ex_dr1.h5,profiles_dr,https://zenodo.org/records/{record_id}/files/{filename},20821467,fb3ef11a8f04b1a146f43f5b56277b6b +dr_shift_increase_profile_ex_dr1.h5,profiles_dr,https://zenodo.org/records/{record_id}/files/{filename},20821467,08795e21156107f2e6d3ec67fb316906 +dr_shift_energy_profile_ex_dr1.h5,profiles_dr,https://zenodo.org/records/{record_id}/files/{filename},20821467,1700595f3d2e8ed1faab5b4dd2aab232 \ No newline at end of file diff --git a/inputs/sets/i.csv b/inputs/sets/i.csv index e684c96ab..3e2105707 100644 --- a/inputs/sets/i.csv +++ b/inputs/sets/i.csv @@ -154,26 +154,10 @@ csp4_11 csp4_12 dr_shed_1 dr_shed_2 -evmc_storage_1 -evmc_storage_2 -evmc_storage_3 -evmc_storage_4 -evmc_storage_5 -evmc_storage_6 -evmc_storage_7 -evmc_storage_8 -evmc_storage_9 -evmc_storage_10 -evmc_shape_1 -evmc_shape_2 -evmc_shape_3 -evmc_shape_4 -evmc_shape_5 -evmc_shape_6 -evmc_shape_7 -evmc_shape_8 -evmc_shape_9 -evmc_shape_10 +dr_shape_1 +dr_shape_2 +dr_shift_1 +dr_shift_2 hydD hydND hydSD diff --git a/inputs/sets/i_subtech.csv b/inputs/sets/i_subtech.csv index f78783184..5cf63d310 100755 --- a/inputs/sets/i_subtech.csv +++ b/inputs/sets/i_subtech.csv @@ -37,11 +37,10 @@ CSP1 CSP2 CSP3 CSP4 +DR_SHAPE DR_SHED +DR_SHIFT DEMAND_FLEX -EVMC -EVMC_STORAGE -EVMC_SHAPE STORAGE STORAGE_HYBRID STORAGE_STANDALONE diff --git a/inputs/sets/tg.csv b/inputs/sets/tg.csv index 3c5ef951e..3e6c8c57f 100644 --- a/inputs/sets/tg.csv +++ b/inputs/sets/tg.csv @@ -11,4 +11,6 @@ coal geothermal biomass pumped-hydro -dr_shed \ No newline at end of file +dr_shed +dr_shape +dr_shift \ No newline at end of file diff --git a/inputs/storage/storage_duration.csv b/inputs/storage/storage_duration.csv index df26e566b..6c37cd540 100644 --- a/inputs/storage/storage_duration.csv +++ b/inputs/storage/storage_duration.csv @@ -49,13 +49,3 @@ csp4_9,6 csp4_10,6 csp4_11,6 csp4_12,6 -evmc_storage_1,8 -evmc_storage_2,8 -evmc_storage_3,8 -evmc_storage_4,8 -evmc_storage_5,8 -evmc_storage_6,8 -evmc_storage_7,8 -evmc_storage_8,8 -evmc_storage_9,8 -evmc_storage_10,8 diff --git a/inputs/supply_curve/dollaryear.csv b/inputs/supply_curve/dollaryear.csv index 7c686b2c2..3fd749d03 100644 --- a/inputs/supply_curve/dollaryear.csv +++ b/inputs/supply_curve/dollaryear.csv @@ -2,7 +2,8 @@ Scenario,Dollar.Year BioFeedstockPrice,2004 bio_supplycurve,2015 dr_shed,2020 -evmc_rsc_Baseline,2020 +dr_shift,2020 +dr_shape,2020 geo_rsc_ATB_2023,2015 hydcost,2004 supplycurve_egs,2023 diff --git a/inputs/supply_curve/dr_shape_cap_ex_dr1.csv b/inputs/supply_curve/dr_shape_cap_ex_dr1.csv new file mode 100644 index 000000000..b181570d7 --- /dev/null +++ b/inputs/supply_curve/dr_shape_cap_ex_dr1.csv @@ -0,0 +1,2 @@ +tech,rscbin,AL,AR,AZ,CA,CO,CT,DE,FL,GA,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,NH,NJ,NM,NV,NY,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VA,VT,WA,WI,WV,WY +dr_shape_1,bin1,828.855,469.828,1058.451,2881.34,564.132,292.425,95.719,3025.879,1528.56,615.945,229.611,2943.118,982.596,401.506,664.301,872.38,593.547,131.561,111.719,1022.778,652.412,781.962,461.213,142.599,1415.284,312.802,369.041,110.391,671.773,281.89,448.869,1463.55,1241.755,681.488,611.593,1118.318,76.103,811.415,114.233,1029.448,5282.858,386.824,945.596,55.066,824.207,631.026,234.371,168.126 diff --git a/inputs/supply_curve/dr_shape_cost_ex_dr1.csv b/inputs/supply_curve/dr_shape_cost_ex_dr1.csv new file mode 100644 index 000000000..32d7a0dad --- /dev/null +++ b/inputs/supply_curve/dr_shape_cost_ex_dr1.csv @@ -0,0 +1,2 @@ +tech,rscbin,WA,CA,VA,FL,MI,IN,KY,OH,PA,WV,NV,MD,DE,NJ,NY,VT,NH,MA,CT,RI,ME,ID,MT,WY,UT,AZ,NM,SD,CO,ND,NE,MN,IA,WI,TX,OK,OR,KS,MO,AR,LA,IL,MS,AL,TN,GA,SC,NC +dr_shape_1,bin1,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01 diff --git a/inputs/supply_curve/dr_shift_cap_ex_dr1 copy.csv b/inputs/supply_curve/dr_shift_cap_ex_dr1 copy.csv new file mode 100644 index 000000000..38910dd00 --- /dev/null +++ b/inputs/supply_curve/dr_shift_cap_ex_dr1 copy.csv @@ -0,0 +1,3 @@ +tech,rscbin,AL,AR,AZ,CA,CO,CT,DE,FL,GA,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,NH,NJ,NM,NV,NY,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VA,VT,WA,WI,WV,WY +dr_shift_1,bin1,828.855,469.828,1058.451,2881.34,564.132,292.425,95.719,3025.879,1528.56,615.945,229.611,2943.118,982.596,401.506,664.301,872.38,593.547,131.561,111.719,1022.778,652.412,781.962,461.213,142.599,1415.284,312.802,369.041,110.391,671.773,281.89,448.869,1463.55,1241.755,681.488,611.593,1118.318,76.103,811.415,114.233,1029.448,5282.858,386.824,945.596,55.066,824.207,631.026,234.371,168.126 +dr_shift_2,bin1,828.855,469.828,1058.451,2881.34,564.132,292.425,95.719,3025.879,1528.56,615.945,229.611,2943.118,982.596,401.506,664.301,872.38,593.547,131.561,111.719,1022.778,652.412,781.962,461.213,142.599,1415.284,312.802,369.041,110.391,671.773,281.89,448.869,1463.55,1241.755,681.488,611.593,1118.318,76.103,811.415,114.233,1029.448,5282.858,386.824,945.596,55.066,824.207,631.026,234.371,168.126 diff --git a/inputs/supply_curve/dr_shift_cap_ex_dr1.csv b/inputs/supply_curve/dr_shift_cap_ex_dr1.csv new file mode 100644 index 000000000..62d181a4a --- /dev/null +++ b/inputs/supply_curve/dr_shift_cap_ex_dr1.csv @@ -0,0 +1,3 @@ +tech,rscbin,AL,AR,AZ,CA,CO,CT,DE,FL,GA,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,NH,NJ,NM,NV,NY,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VA,VT,WA,WI,WV,WY +dr_shift_1,bin1,828.855,469.828,1058.451,5000,564.132,292.425,95.719,3025.879,1528.56,615.945,229.611,2943.118,982.596,401.506,664.301,872.38,593.547,131.561,111.719,1022.778,652.412,781.962,461.213,142.599,1415.284,312.802,369.041,110.391,671.773,281.89,448.869,1463.55,1241.755,681.488,5000,1118.318,76.103,811.415,114.233,1029.448,5282.858,386.824,945.596,55.066,5000,631.026,234.371,168.126 +dr_shift_2,bin1,828.855,469.828,1058.451,5000,564.132,292.425,95.719,3025.879,1528.56,615.945,229.611,2943.118,982.596,401.506,664.301,872.38,593.547,131.561,111.719,1022.778,652.412,781.962,461.213,142.599,1415.284,312.802,369.041,110.391,671.773,281.89,448.869,1463.55,1241.755,681.488,5000,1118.318,76.103,811.415,114.233,1029.448,5282.858,386.824,945.596,55.066,5000,631.026,234.371,168.126 diff --git a/inputs/supply_curve/dr_shift_cost_ex_dr1.csv b/inputs/supply_curve/dr_shift_cost_ex_dr1.csv new file mode 100644 index 000000000..a06e1a2e6 --- /dev/null +++ b/inputs/supply_curve/dr_shift_cost_ex_dr1.csv @@ -0,0 +1,3 @@ +tech,rscbin,WA,CA,VA,FL,MI,IN,KY,OH,PA,WV,NV,MD,DE,NJ,NY,VT,NH,MA,CT,RI,ME,ID,MT,WY,UT,AZ,NM,SD,CO,ND,NE,MN,IA,WI,TX,OK,OR,KS,MO,AR,LA,IL,MS,AL,TN,GA,SC,NC +dr_shift_1,bin1,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01 +dr_shift_2,bin1,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01 \ No newline at end of file diff --git a/inputs/tech-subset-table.csv b/inputs/tech-subset-table.csv index 088285f9c..34cf065c7 100644 --- a/inputs/tech-subset-table.csv +++ b/inputs/tech-subset-table.csv @@ -1,75 +1,75 @@ -,BIO,COAL,COAL_CCS,GAS,GAS_CC,GAS_CC_CCS,GAS_CT,COMBINED_CYCLE,COMBUSTION_TURBINE,NG_FUEL_CELL,CONV,TEMP_DERATE,CCS,CCS_MOD,CCS_MAX,CCSFLEX,CCSFLEX_BYP,CCSFLEX_STO,CCSFLEX_DAC,BECCS,RE,VRE,RSC,WIND,ONSWIND,OFSWIND,UPV,distpv,PV,PVB,PVB1,PVB2,PVB3,CSP,CSP_STORAGE,CSP1,CSP2,CSP3,CSP4,STORAGE,STORAGE_HYBRID,STORAGE_STANDALONE,STORAGE_INTERDAY,THERMAL_STORAGE,BATTERY,DEMAND_FLEX,EVMC,EVMC_STORAGE,EVMC_SHAPE,COFIRE,HYDRO,HYDRO_D,HYDRO_ND,PSH,GEO,GEO_HYDRO,GEO_EGS,GEO_EGS_ALLKM,GEO_EGS_NF,GEO_BASE,GEO_EXTRA,CANADA,VRE_NO_CSP,VRE_UTILITY,VRE_DISTRIBUTED,NUCLEAR,OGS,CONSUME,H2,SMR,DAC,LFILL,H2_COMBUSTION,H2_CC,H2_CT,H2_FUEL_CELL,H2_GEN,REFURBTECH,cf_tech,FOSSIL,BOILER,NONDISPATCH,DR_SHED,GENTECH -can-imports,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,, -coal-CCS_mod,,YES,YES,,,,,,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -coal-CCS_max,,YES,YES,,,,,,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -coal-CCS-F1,,YES,YES,,,,,,,,YES,YES,YES,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -coal-CCS-F2,,YES,YES,,,,,,,,YES,YES,YES,YES,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -coal-CCS-F3,,YES,YES,,,,,,,,YES,YES,YES,YES,,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -Coal-IGCC,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -coal-new,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -CoalOldScr,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -CoalOldUns,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -CofireNew,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -CofireOld,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES -Gas-CC,,,,YES,YES,,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC_H_1x1,,,,YES,YES,,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC_H_2x1,,,,YES,YES,,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC-CCS_mod,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC-CCS_max,,,,YES,YES,YES,,YES,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC_H_1x1-CCS_mod,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC_H_1x1-CCS_max,,,,YES,YES,YES,,YES,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC_H_2x1-CCS_mod,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC_H_2x1-CCS_max,,,,YES,YES,YES,,YES,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC-CCS-F1,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC-CCS-F2,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CC-CCS-F3,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CT,,,,YES,,,YES,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -Gas-CT_aero,,,,YES,,,YES,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -ng-fuel-cell,,,,YES,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES -h2-fuel-cell,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,YES -o-g-s,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,YES,YES,,,YES -Nuclear,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,YES,,,YES -Nuclear-SMR,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,YES,,,YES -H2-CT,,,,,,,,,YES,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,YES,,,,,,,YES -H2-CC,,,,,,,,YES,,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,,,,,,,YES -biopower,YES,,,,,,,,,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES -geothermal,,,,,,,,,,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES -beccs_mod,YES,,,,,,,,,,YES,YES,YES,YES,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES -beccs_max,YES,,,,,,,,,,YES,YES,YES,,YES,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES -Hydro,,,,,,,,,,,YES,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES -lfill-gas,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,YES -battery_li,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -dr_shed_1*dr_shed_2,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES, -evmc_storage_1*evmc_storage_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,YES,,YES,,,,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,, -evmc_shape_1*evmc_shape_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,, -pumped-hydro,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,YES,,YES,YES,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -pumped-hydro-flex,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -distpv,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,YES,YES,,,YES,,YES -upv_1*upv_10,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,YES,YES,,,,,YES -pvb1_1*pvb1_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,YES -pvb2_1*pvb2_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES,,YES,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,YES -pvb3_1*pvb3_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES,,,YES,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,YES -wind-ofs_1*wind-ofs_10,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,YES,YES,,,,,YES -wind-ons_1*wind-ons_10,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,YES,YES,,,,,YES -csp1_1*csp1_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,YES,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -csp2_1*csp2_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -csp3_1*csp3_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -csp4_1*csp4_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,,,,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -hydD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -hydND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES -hydSD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -hydSND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES -hydUD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -hydUND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES -hydNPD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -hydNPND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES -hydED,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES -hydEND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES -electrolyzer,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,, -smr,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,,,,,,,,,,, -smr_ccs,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,,,,,,,,,,, -dac,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,,,,,,,,,,,, -dac_gas,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,,,,,,,,,,,, -egs_allkm_1*egs_allkm_10,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,YES -geohydro_allkm_1*geohydro_allkm_10,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,YES -egs_nearfield_1*egs_nearfield_10,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,YES +,BIO,COAL,COAL_CCS,GAS,GAS_CC,GAS_CC_CCS,GAS_CT,COMBINED_CYCLE,COMBUSTION_TURBINE,NG_FUEL_CELL,CONV,TEMP_DERATE,CCS,CCS_MOD,CCS_MAX,CCSFLEX,CCSFLEX_BYP,CCSFLEX_STO,CCSFLEX_DAC,BECCS,RE,VRE,RSC,WIND,ONSWIND,OFSWIND,UPV,distpv,PV,PVB,PVB1,PVB2,PVB3,CSP,CSP_STORAGE,CSP1,CSP2,CSP3,CSP4,STORAGE,STORAGE_HYBRID,STORAGE_STANDALONE,STORAGE_INTERDAY,THERMAL_STORAGE,BATTERY,DEMAND_FLEX,COFIRE,HYDRO,HYDRO_D,HYDRO_ND,PSH,GEO,GEO_HYDRO,GEO_EGS,GEO_EGS_ALLKM,GEO_EGS_NF,GEO_BASE,GEO_EXTRA,CANADA,VRE_NO_CSP,VRE_UTILITY,VRE_DISTRIBUTED,NUCLEAR,OGS,CONSUME,H2,SMR,DAC,LFILL,H2_COMBUSTION,H2_CC,H2_CT,H2_FUEL_CELL,H2_GEN,REFURBTECH,cf_tech,FOSSIL,BOILER,NONDISPATCH,DR_SHED,GENTECH,DR_SHAPE,DR_SHIFT +can-imports,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,, +coal-CCS_mod,,YES,YES,,,,,,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +coal-CCS_max,,YES,YES,,,,,,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +coal-CCS-F1,,YES,YES,,,,,,,,YES,YES,YES,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +coal-CCS-F2,,YES,YES,,,,,,,,YES,YES,YES,YES,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +coal-CCS-F3,,YES,YES,,,,,,,,YES,YES,YES,YES,,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +Coal-IGCC,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +coal-new,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +CoalOldScr,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +CoalOldUns,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +CofireNew,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +CofireOld,,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,, +Gas-CC,,,,YES,YES,,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC_H_1x1,,,,YES,YES,,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC_H_2x1,,,,YES,YES,,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC-CCS_mod,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC-CCS_max,,,,YES,YES,YES,,YES,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC_H_1x1-CCS_mod,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC_H_1x1-CCS_max,,,,YES,YES,YES,,YES,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC_H_2x1-CCS_mod,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC_H_2x1-CCS_max,,,,YES,YES,YES,,YES,,,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC-CCS-F1,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC-CCS-F2,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CC-CCS-F3,,,,YES,YES,YES,,YES,,,YES,YES,YES,YES,,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CT,,,,YES,,,YES,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +Gas-CT_aero,,,,YES,,,YES,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +ng-fuel-cell,,,,YES,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,YES,, +h2-fuel-cell,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,YES,, +o-g-s,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,YES,YES,,,YES,, +Nuclear,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,YES,,,YES,, +Nuclear-SMR,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,YES,,,YES,, +H2-CT,,,,,,,,,YES,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,YES,,,,,,,YES,, +H2-CC,,,,,,,,YES,,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,YES,,,,,,,YES,, +biopower,YES,,,,,,,,,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,, +geothermal,,,,,,,,,,,YES,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,, +beccs_mod,YES,,,,,,,,,,YES,YES,YES,YES,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,, +beccs_max,YES,,,,,,,,,,YES,YES,YES,,YES,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,, +Hydro,,,,,,,,,,,YES,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,, +lfill-gas,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,YES,, +battery_li,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +dr_shed_1*dr_shed_2,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,,, +dr_shift_1*dr_shift_2,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,YES,,YES,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,YES +dr_shape_1*dr_shape_2,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES, +pumped-hydro,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,YES,,YES,YES,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +pumped-hydro-flex,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +distpv,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,YES,YES,,,YES,,YES,, +upv_1*upv_10,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,YES,YES,,,,,YES,, +pvb1_1*pvb1_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES,YES,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,YES,, +pvb2_1*pvb2_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES,,YES,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,YES,, +pvb3_1*pvb3_10,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,,,YES,,,YES,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,YES,, +wind-ofs_1*wind-ofs_10,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,YES,YES,,,,,YES,, +wind-ons_1*wind-ons_10,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,YES,YES,,,,,YES,, +csp1_1*csp1_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,YES,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +csp2_1*csp2_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,,YES,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +csp3_1*csp3_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +csp4_1*csp4_12,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,YES,YES,,,,YES,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +hydD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +hydND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES,, +hydSD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +hydSND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES,, +hydUD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +hydUND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES,, +hydNPD,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +hydNPND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES,, +hydED,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,,,YES,, +hydEND,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,YES,, +electrolyzer,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,,,,,,,,,,,,,, +smr,,,,,,,,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,,,,,,,,,,,,, +smr_ccs,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,YES,,,,,,,,,,,,,,,, +dac,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,,,,,,,,,,,,,, +dac_gas,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,,YES,,,,,,,,,,,,,,, +egs_allkm_1*egs_allkm_10,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,YES,,,YES,,,,,,,,,,,,,,,,,,,,,,,YES,, +geohydro_allkm_1*geohydro_allkm_10,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,YES,,,,YES,,,,,,,,,,,,,,,,,,,,,,,,YES,, +egs_nearfield_1*egs_nearfield_10,,,,,,,,,,,,,,,,,,,,,YES,,YES,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YES,,YES,,YES,YES,,,,,,,,,,,,,,,,,,,,,,,,YES,, diff --git a/inputs/techs/techs_default.csv b/inputs/techs/techs_default.csv index 73665bab4..8d8cca5db 100644 --- a/inputs/techs/techs_default.csv +++ b/inputs/techs/techs_default.csv @@ -59,8 +59,8 @@ csp2_1*csp2_12,p csp3_1*csp3_12,p csp4_1*csp4_12,p dr_shed_1*dr_shed_2,p -evmc_storage_1*evmc_storage_10,p -evmc_shape_1*evmc_shape_10,p +dr_shape_1*dr_shape_2,p +dr_shift_1*dr_shift_2,p egs_allkm_1*egs_allkm_10,p geohydro_allkm_1*geohydro_allkm_10,p egs_nearfield_1*egs_nearfield_10,p diff --git a/inputs/userinput/futurefiles.csv b/inputs/userinput/futurefiles.csv index b6559c777..e876c7a6c 100644 --- a/inputs/userinput/futurefiles.csv +++ b/inputs/userinput/futurefiles.csv @@ -116,12 +116,25 @@ dollaryear_sc.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, dr_dec.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant dr_hrs.csv,.csv,1,None,9999,None,9999,0,constant,None,None,done,constant dr_inc.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant -dr_shed_avail_scalar.csv,.csv,0,None,t,None,0,0,constant,None,None,new, +dr_shape_cap.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, +dr_shape_capacity_scalar.csv,.csv,1,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +dr_shape_capcostmult.csv,.csv,1,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +dr_shape_cost.csv,.csv,1,None,wide,"None",1,0,constant,None,None,new; check constant, +dr_shape_profile_decrease.csv,.csv,1,None,year,"i,hour",9999,0,constant,None,None,,constant +dr_shape_profile_increase.csv,.csv,1,None,year,"i,hour",9999,0,constant,None,None,,constant +dr_shed_avail_scalar.csv,.csv,1,None,t,None,0,0,constant,None,None,new, dr_shed_cap.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, -dr_shed_capacity_scalar.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new; check constant, -dr_shed_capcostmult.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +dr_shed_capacity_scalar.csv,.csv,1,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +dr_shed_capcostmult.csv,.csv,1,None,wide,"tech,r",1,0,constant,None,None,new; check constant, dr_shed_cost.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, -dr_shed_hourly.h5,.h5,0,None,year,datetime,1,keepindex,constant,None,None,new, +dr_shed_hourly.h5,.h5,1,None,year,datetime,1,keepindex,constant,None,None,new, +dr_shift_cap.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, +dr_shift_capacity_scalar.csv,.csv,1,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +dr_shift_capcostmult.csv,.csv,1,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +dr_shift_cost.csv,.csv,1,None,wide,"None",1,0,constant,None,None,new; check constant, +dr_shift_profile_energy.csv,.csv,1,None,year,"i,hour",9999,0,constant,None,None,,constant +dr_shift_profile_decrease.csv,.csv,1,None,year,"i,hour",9999,0,constant,None,None,,constant +dr_shift_profile_increase.csv,.csv,1,None,year,"i,hour",9999,0,constant,None,None,,constant dr_types.csv,.csv,1,None,9999,None,9999,0,constant,None,None,done,constant e.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, eall.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, @@ -133,14 +146,6 @@ energy_communities.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, etype.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, ev_baseline_load.csv,.csv,0,None,2,"0,1",0,None,linear_5,None,None,linear or saturate?,linear_5 eval_period_adj_mult.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; handled in calc_financial_inputs.py, -evmc_rsc.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to create rsc_evmc.csv so no need to forecast, -evmc_shape_generation.csv,.csv,1,None,9999,None,9999,0,constant,None,None,done,constant -evmc_shape_load.csv,.csv,1,None,9999,None,9999,0,constant,None,None,done,constant -evmc_shape_profile_decrease.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant -evmc_shape_profile_increase.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant -evmc_storage_energy.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant -evmc_storage_profile_decrease.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant -evmc_storage_profile_increase.csv,.csv,1,None,9999,None,9999,0,constant,None,None,,constant exog_cap_geohydro.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, exog_cap_upv.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, exog_cap_wind-ofs.csv,.csv,1,None,9999,None,9999,0,constant,None,None,done,constant @@ -326,8 +331,12 @@ plantchar_csp.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to c plantchar_dr_shed_fom.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new, plantchar_dr_shed_vom.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new, plantchar_dr_shed.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new; check constant, -plantchar_evmc_shape.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to create plantcharout.csv so no need to forecast, -plantchar_evmc_storage.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to create plantcharout.csv so no need to forecast, +plantchar_dr_shape_fom.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new, +plantchar_dr_shape_vom.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new, +plantchar_dr_shape.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new; check constant, +plantchar_dr_shift_fom.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new, +plantchar_dr_shift_vom.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new, +plantchar_dr_shift.csv,.csv,0,None,wide,"tech,r",1,0,constant,None,None,new; check constant, plantchar_fuelcell.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to create plantcharout.csv so no need to forecast, plantchar_h2fuelcell.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to create plantcharout.csv so no need to forecast, plantchar_gas_ccs.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; used to create plantcharout.csv so no need to forecast, @@ -401,7 +410,6 @@ rps_fraction.csv,.csv,0,None,t,st,1,0,linear_5,None,1,done,linear_5 RPSCat.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, rsc_combined.csv,.csv,1,None,9999,None,9999,0,constant,None,None,done,constant rsc_combined.txt,.txt,1,None,9999,None,9999,0,constant,None,None,done,constant -rsc_evmc.csv,.csv,1,None,9999,None,9999,0,constant,None,None,"[CHECK] don't know what this input file is supposed to look like, but needs to be forecasted; new", rsc_wsc.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new, safe_harbor_max.csv,.csv,1,None,9999,None,9999,0,constant,None,None,new; handled in calc_financial_inputs.py, safe_harbor.csv,.csv,0,None,t,i,0,0,constant,None,None,new, @@ -518,7 +526,6 @@ ctt_cc_mult,inputs.h5,1,,,,9999,,,,,, ctt_cost_vom_mult,inputs.h5,1,,,,9999,,,,,, ctt_hr_mult,inputs.h5,1,,,,9999,,,,,, distance,inputs.h5,1,,,,9999,,,,,, -evmc_storage_energy_h17,inputs.h5,1,,,,9999,,,,,has a t index so revisit if using, firm_import_limit,inputs.h5,1,,,,9999,,,,,handled in transmission.py, gasreg,inputs.h5,1,,,,9999,,,,,, h2_ptc_in,inputs.h5,1,,,,9999,,,,,, diff --git a/inputs/userinput/ivt_default.csv b/inputs/userinput/ivt_default.csv index eb23d97b8..0882e1ea5 100644 --- a/inputs/userinput/ivt_default.csv +++ b/inputs/userinput/ivt_default.csv @@ -53,8 +53,8 @@ csp2_1*csp2_12,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8 csp3_1*csp3_12,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9 csp4_1*csp4_12,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9 dr_shed_1*dr_shed_2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -evmc_storage_1*evmc_storage_10,1,1,1,1,1,1,1,1,1,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16 -evmc_shape_1*evmc_shape_10,1,1,1,1,1,1,1,1,1,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16 +dr_shape_1*dr_shape_2,1,1,1,1,1,1,1,1,1,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16 +dr_shift_1*dr_shift_2,1,1,1,1,1,1,1,1,1,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16 hydD,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7 hydND,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7 hydSD,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7 diff --git a/inputs/userinput/ivt_small.csv b/inputs/userinput/ivt_small.csv index 61b9428f7..d7d91494f 100644 --- a/inputs/userinput/ivt_small.csv +++ b/inputs/userinput/ivt_small.csv @@ -53,8 +53,8 @@ csp2_1*csp2_12,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 csp3_1*csp3_12,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 csp4_1*csp4_12,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 dr_shed_1*dr_shed_2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -evmc_storage_1*evmc_storage_10,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 -evmc_shape_1*evmc_shape_10,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 +dr_shape_1*dr_shape_2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 +dr_shift_1*dr_shift_2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 hydD,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 hydND,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 hydSD,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 diff --git a/inputs/userinput/ivt_step.csv b/inputs/userinput/ivt_step.csv index 7c7da979a..97f1917ee 100644 --- a/inputs/userinput/ivt_step.csv +++ b/inputs/userinput/ivt_step.csv @@ -53,8 +53,8 @@ csp2_1*csp2_12,5 csp3_1*csp3_12,5 csp4_1*csp4_12,5 dr_shed_1*dr_shed_2,0 -evmc_storage_1*evmc_storage_10,2 -evmc_shape_1*evmc_shape_10,2 +dr_shape_1*dr_shape_2,2 +dr_shift_1*dr_shift_2,2 hydD,5 hydND,5 hydSD,5 diff --git a/postprocessing/bokehpivot/in/reeds2/tech_map.csv b/postprocessing/bokehpivot/in/reeds2/tech_map.csv index b178acea1..540d63cd5 100644 --- a/postprocessing/bokehpivot/in/reeds2/tech_map.csv +++ b/postprocessing/bokehpivot/in/reeds2/tech_map.csv @@ -93,8 +93,8 @@ wind-ons*,Onshore Wind csp*,CSP csp-ns*,CSP dr_shed*,DR Shed -evmc_storage*,EVMC_Storage -evmc_shape*,EVMC_Shape +dr_shape*,DR Shape +dr_shift*,DR Shift hyd*,Hydropower egs_allkm_*,Geothermal geohydro_allkm_*,Geothermal diff --git a/postprocessing/bokehpivot/in/reeds2/tech_style.csv b/postprocessing/bokehpivot/in/reeds2/tech_style.csv index dd31810c4..aef4177e5 100644 --- a/postprocessing/bokehpivot/in/reeds2/tech_style.csv +++ b/postprocessing/bokehpivot/in/reeds2/tech_style.csv @@ -42,8 +42,8 @@ Solar,#FFC903,o CAES,#FF4741,"(6,1,0)" Battery,#FF4A88,"(4,1,0)" DR Shed,#B9CBF5,o -EVMC_Storage,#a55194,o -EVMC_Shape,#ce6dbd,o +DR Shift,#B9CBF5,o +DR Shape,#B9CBF5,o DR,#B9CBF5,o Storage-H2,#FF7FBB,"(6,1,0)" Pumped-Hydro,#CC0079,"(8,1,0)" diff --git a/postprocessing/bokehpivot/reports/templates/reeds2/value_factor_report.py b/postprocessing/bokehpivot/reports/templates/reeds2/value_factor_report.py index be7a14621..f6657e7df 100644 --- a/postprocessing/bokehpivot/reports/templates/reeds2/value_factor_report.py +++ b/postprocessing/bokehpivot/reports/templates/reeds2/value_factor_report.py @@ -3,7 +3,7 @@ so that the value factors can be compared to market share. See comments in in reeds2.py for a description of each preset. ''' -storage_techs = ['Pumped-Hydro','Pumped-Hydro-Flex','Battery','EVMC_Storage','CAES'] +storage_techs = ['Pumped-Hydro','Pumped-Hydro-Flex','Battery','CAES','DR_Shift'] static_presets = [ {'name': 'Full Value New Techs', 'sheet_name':'vf_full', 'result': 'Value New Techs', 'download_full_source': True}, diff --git a/postprocessing/compare_cases.py b/postprocessing/compare_cases.py index 08553c9d6..6cb35a85a 100644 --- a/postprocessing/compare_cases.py +++ b/postprocessing/compare_cases.py @@ -162,7 +162,7 @@ 'Battery/PSH': ['Battery', 'Pumped-Hydro', 'Pumped-Hydro-Flex'], 'Biopower': ['Biopower', 'BECCS'], 'Coal': ['Coal'], - 'Demand Response': ['DR Shed','EVMC_Shape','EVMC_Storage'], + 'Demand Response': ['DR Shed','DR Shape','DR Shift'], 'Fossil+CCS': ['Coal-CCS-Flex', 'Coal-CCS', 'Coal-CCS_Upgrade','Gas-CCS', 'Gas-CC-CCS', 'Gas-CC-CCS-Flex', 'Gas-CC-CCS_Upgrade'], 'Geothermal': ['Geothermal'], diff --git a/postprocessing/single_case_plots.py b/postprocessing/single_case_plots.py index 7c44145cb..0a5b5fcfc 100644 --- a/postprocessing/single_case_plots.py +++ b/postprocessing/single_case_plots.py @@ -976,3 +976,15 @@ except Exception: print('map_hybrids failed:') print(traceback.format_exc()) + + +#%% DR Shift resource plots +try: + if int(sw.GSw_DRShift) == 1: + dr_plots = reedsplots.dr_shift_resource_compare( + case = case, + year = year, + savepath = savepath, + ) +except: + print('dr_shift_resource plots failed') \ No newline at end of file diff --git a/postprocessing/tech_aggregation.csv b/postprocessing/tech_aggregation.csv index f49f5b304..afa6a6188 100644 --- a/postprocessing/tech_aggregation.csv +++ b/postprocessing/tech_aggregation.csv @@ -63,8 +63,8 @@ wind-ons,Onshore Wind,Wind,VRE,Onshore Wind csp,CSP,Solar,VRE,CSP csp-ns,CSP,Solar,VRE,CSP dr_shed,DR Shed,DR,DR,DR Shed -evmc_storage,EVMC_Storage,DR,DR,EVMC_Storage -evmc_shape,EVMC_Shape,DR,DR,EVMC_Shape +dr_shape,DR Shape,DR,DR,DR Shape +dr_shift,DR Shift,DR,DR,DR Shift hydro,Hydropower,Hydropower,Hydropower,Hydropower Existing hyde,Hydropower,Hydropower,Hydropower,Hydropower Existing hydd,Hydropower,Hydropower,Hydropower,Hydropower New diff --git a/reeds/core/setup/b_inputs.gms b/reeds/core/setup/b_inputs.gms index becc19253..ab90326fc 100644 --- a/reeds/core/setup/b_inputs.gms +++ b/reeds/core/setup/b_inputs.gms @@ -234,11 +234,10 @@ set csp4(i) "csp-tes generation technologies 4", dac(i) "direct air capture technologies", distpv(i) "distpv (i.e., rooftop PV) generation technologies", - demand_flex(i) "demand flexibility technologies (includes DR and EVMC)", - dr_shed(i) "DR shed technologies" - evmc(i) "ev flexibility technologies", - evmc_storage(i) "ev flexibility as direct load control", - evmc_shape(i) "ev flexibility as adoptable change to load from response to pricing", + demand_flex(i) "demand flexibility technologies (includes DR)", + dr_shed(i) "DR shed technologies", + dr_shape(i) "DR shape technologies", + dr_shift(i) "DR shift technologies", fossil(i) "fossil technologies" ng_fuel_cell(i) "natural gas fuel cell technologies", gas_cc_ccs(i) "techs that are gas combined cycle and have CCS", @@ -437,10 +436,6 @@ if(Sw_DAC_Gas = 0, ban("dac_gas") = yes ; ); -if(Sw_EVMC = 0, - ban(i)$i_subsets(i,'evmc') = yes ; -) ; - if(Sw_GasCT_Aero = 0, ban('Gas-CT_aero') = yes ; ) ; @@ -525,6 +520,14 @@ if(Sw_DRShed = 0, ban(i)$i_subsets(i,'DR_SHED') = yes ; ) ; +if(Sw_DRShape = 0, + ban(i)$i_subsets(i,'DR_SHAPE') = yes ; +) ; + +if(Sw_DRShift = 0, + ban(i)$i_subsets(i,'DR_SHIFT') = yes ; +) ; + * always allow PSH to use fresh surface water (fsa, fsu) * do not allow new PSH to use saline surface water bannew(i)$[sum{wst_i_ii(i,ii)$i_subsets(i,'psh'), i_wst(i,'ss') }] = YES ; @@ -701,10 +704,9 @@ csp4(i)$(not ban(i)) = yes$i_subsets(i,'csp4') ; dac(i)$(not ban(i)) = yes$i_subsets(i,'dac') ; distpv(i)$(not ban(i)) = yes$i_subsets(i,'distpv') ; dr_shed(i)$(not ban(i)) = yes$i_subsets(i,'dr_shed') ; +dr_shape(i)$(not ban(i)) = yes$i_subsets(i,'dr_shape') ; +dr_shift(i)$(not ban(i)) = yes$i_subsets(i,'dr_shift') ; demand_flex(i)$(not ban(i)) = yes$i_subsets(i,'demand_flex') ; -evmc(i)$(not ban(i)) = yes$i_subsets(i,'evmc') ; -evmc_storage(i)$(not ban(i)) = yes$i_subsets(i,'evmc_storage') ; -evmc_shape(i)$(not ban(i)) = yes$i_subsets(i,'evmc_shape') ; fossil(i)$(not ban(i)) = yes$i_subsets(i,'fossil') ; ng_fuel_cell(i)$(not ban(i)) = yes$i_subsets(i,'ng_fuel_cell') ; gas_cc_ccs(i)$(not ban(i)) = yes$i_subsets(i,'gas_cc_ccs') ; @@ -775,6 +777,8 @@ tg_i('geothermal',i)$geo(i) = yes ; tg_i('biomass',i)$bio(i) = yes ; tg_i('pumped-hydro',i)$psh(i) = yes ; tg_i('dr_shed',i)$dr_shed(i) = yes ; +tg_i('dr_shape',i)$dr_shape(i) = yes ; +tg_i('dr_shift',i)$dr_shift(i) = yes ; *add non-numeraire CSPs in index i of already defined set tg_i(tg,i) tg_i("csp",i)$[(csp1(i) or csp2(i) or csp3(i) or csp4(i))$Sw_WaterMain] = yes ; @@ -830,7 +834,7 @@ set dispatchtech(i) "technologies that are dispatchable", noret_upgrade_tech(i)$hyd_add_pump(i) = yes ; noret_upgrade_tech(i)$[(coal_ccs(i) or gas_cc_ccs(i))$upgrade(i)$Sw_CCS_NoRetire] = yes ; dispatchtech(i)$[not(vre(i) or hydro_nd(i) or ban(i))] = yes ; -sccapcosttech(i)$[hydro(i) or psh(i) or dr_shed(i)] = yes ; +sccapcosttech(i)$[hydro(i) or psh(i) or dr_shed(i) or dr_shape(i) or dr_shift(i) ] = yes ; *initialize sets to "no" retiretech(i,v,r,t) = no ; @@ -2159,6 +2163,9 @@ valgen(i,v,r,t)$valcap(i,v,r,t) = yes ; * consuming technologies are not allowed to generate valgen(i,v,r,t)$consume(i) = no ; +* load modification technologies not allowed to generate +valgen(i,v,r,t)$dr_shape(i) = no ; + * Remove technologies that are required to retire valgen(i,v,r,t)$forced_retire(i,r,t) = no ; @@ -3426,6 +3433,29 @@ $onlisting ; $offempty +* Written by plantcostprep.py +$onempty +table dr_shape_capmult(i,r,allt) "--unitless-- dr_shape capital cost multipliers over time" +$offlisting +$ondelim +$include inputs_case%ds%dr_shape_capcostmult.csv +$offdelim +$onlisting +; +$offempty + +* Written by plantcostprep.py +$onempty +table dr_shift_capmult(i,r,allt) "--unitless-- dr_shift capital cost multipliers over time" +$offlisting +$ondelim +$include inputs_case%ds%dr_shift_capcostmult.csv +$offdelim +$onlisting +; +$offempty + +* Written by writesupplycurves.py $onempty table dr_shed_capacity_scalar(i,r,allt) "--unitless-- dr_shed capacity multipliers over time" $offlisting @@ -3436,8 +3466,29 @@ $onlisting ; $offempty +* Written by writesupplycurves.py +$onempty +table dr_shape_capacity_scalar(i,r,allt) "--unitless-- dr_shape capacity multipliers over time" +$offlisting +$ondelim +$include inputs_case%ds%dr_shape_capacity_scalar.csv +$offdelim +$onlisting +; +$offempty + +* Written by writesupplycurves.py +$onempty +table dr_shift_capacity_scalar(i,r,allt) "--unitless-- dr_shift capacity multipliers over time" +$offlisting +$ondelim +$include inputs_case%ds%dr_shift_capacity_scalar.csv +$offdelim +$onlisting +; +$offempty -*Written in copy_files.py +* Written by plantcostprep.py $onempty table vom_dr_shed(i,r,allt) "--$/MWh-- dr_shed vom costs over time" $offlisting @@ -3449,7 +3500,7 @@ $onlisting $offempty -*Written in copy_files.py +* Written by plantcostprep.py $onempty table fom_dr_shed(i,r,allt) "--$/MWh-- dr_shed vom costs over time" $offlisting @@ -3461,6 +3512,52 @@ $onlisting $offempty +* Written by plantcostprep.py +$onempty +table vom_dr_shape(i,r,allt) "--$/MWh-- dr_shape vom costs over time" +$offlisting +$ondelim +$include inputs_case%ds%plantchar_dr_shape_vom.csv +$offdelim +$onlisting +; +$offempty + + +* Written by plantcostprep.py +$onempty +table fom_dr_shape(i,r,allt) "--$/MWh-- dr_shape vom costs over time" +$offlisting +$ondelim +$include inputs_case%ds%plantchar_dr_shape_fom.csv +$offdelim +$onlisting +; +$offempty + +* Written by plantcostprep.py +$onempty +table vom_dr_shift(i,r,allt) "--$/MWh-- dr_shift vom costs over time" +$offlisting +$ondelim +$include inputs_case%ds%plantchar_dr_shift_vom.csv +$offdelim +$onlisting +; +$offempty + + +* Written by plantcostprep.py +$onempty +table fom_dr_shift(i,r,allt) "--$/MWh-- dr_shift vom costs over time" +$offlisting +$ondelim +$include inputs_case%ds%plantchar_dr_shift_fom.csv +$offdelim +$onlisting +; +$offempty + * Written by plantcostprep.py table ofswind_rsc_mult(allt,i) "--unitless-- multiplier by year for supply curve cost" $offlisting @@ -3504,6 +3601,11 @@ cost_vom(i,v,r,t)$[valcap(i,v,r,t)$hydro(i)] = vom_hyd ; * Add VOM cost for dr shed resource to cost_vom cost_vom(i,v,r,t)$[valcap(i,v,r,t)$dr_shed(i)] = vom_dr_shed(i,r,t) ; +* Add VOM cost for dr shape resource to cost_vom +cost_vom(i,v,r,t)$[valcap(i,v,r,t)$dr_shape(i)] = vom_dr_shape(i,r,t) ; + +* Add VOM cost for dr shift resource to cost_vom +cost_vom(i,v,r,t)$[valcap(i,v,r,t)$dr_shift(i)] = vom_dr_shift(i,r,t) ; * Assign hybrid PV+battery to have the same value as UPV parameter cost_vom_pvb_p(i,v,r,t) "--2004$/MWh-- variable OM for the PV portion of hybrid PV+battery " ; @@ -3614,6 +3716,12 @@ cost_fom(i,v,r,t)$[valcap(i,v,r,t)$hydro(i)$hyd_fom(i,r)] = hyd_fom(i,r) ; * Add FOM cost for dr shed resource to cost_fom cost_fom(i,v,r,t)$[valcap(i,v,r,t)$dr_shed(i)] = fom_dr_shed(i,r,t) ; +* Add FOM cost for dr shape resource to cost_fom +cost_fom(i,v,r,t)$[valcap(i,v,r,t)$dr_shape(i)] = fom_dr_shape(i,r,t) ; + +* Add FOM cost for dr shift resource to cost_fom +cost_fom(i,v,r,t)$[valcap(i,v,r,t)$dr_shift(i)] = fom_dr_shift(i,r,t) ; + cost_fom(i,initv,r,t)$[(not Sw_BinOM)$valcap(i,initv,r,t)] = sum{tt$tfirst(tt), cost_fom(i,initv,r,tt) } ; *upgrade fom costs for initial classes are the fom costs for that tech @@ -4602,7 +4710,6 @@ parameter storage_eff(i,t) "--fraction-- round-trip efficiency of storage techno storage_eff(i,t)$storage(i) = 1 ; storage_eff(i,t)$psh(i) = storage_eff_psh ; storage_eff(i,t)$[storage(i)$plant_char0(i,t,'rte')] = plant_char0(i,t,'rte') ; -storage_eff(i,t)$[evmc_storage(i)$plant_char0(i,t,'rte')] = plant_char0(i,t,'rte') ; storage_eff(i,t)$pvb(i) = storage_eff("battery_li",t) ; parameter storage_eff_pvb_p(i,t) "--fraction-- efficiency of hybrid PV+battery when charging from the coupled PV" @@ -5109,7 +5216,8 @@ parameter rsc_reduct_frac(i,r) "--unitless-- fraction of renewable resource th rsc_capacity_scalar(i,r,t) "--unitless-- resource scalar for any technology that has a change in the supply curve capacity over time" ; -set rsc_capacity_scalar_i(i) "technologies that have a capacity resource scalar" ; +set rsc_capacity_scalar_i(i) "technologies that have a capacity resource scalar" +; rsc_reduct_frac(i,r) = 0 ; prescrip_rsc_frac(i,r) = 0 ; @@ -5229,7 +5337,7 @@ geo_bin1_add(i,r)$[geo_hydro(i)$(geo_bin1_add(i,r) < 0)] = 0 ; m_rsc_dat(r,i,"bin1","cap")$[geo_hydro(i)$geo_bin1_add(i,r)] = m_rsc_dat(r,i,"bin1","cap") + geo_bin1_add(i,r) ; -rsc_capacity_scalar(i,r,t) = ceil(1000 *geo_discovery(i,r,t) + dr_shed_capacity_scalar(i,r,t) ) / 1000 ; +rsc_capacity_scalar(i,r,t) = ceil(1000 *geo_discovery(i,r,t) + 1000*dr_shed_capacity_scalar(i,r,t) + 1000*dr_shape_capacity_scalar(i,r,t) + 1000*dr_shift_capacity_scalar(i,r,t)) / 1000 ; rsc_capacity_scalar_i(i)$[sum{(r,t), rsc_capacity_scalar(i,r,t) }] = yes ; * * Apply spur-line cost multiplier for relevant technologies @@ -5504,14 +5612,11 @@ Parameter load_exog_flex(flex_type,r,allh,t) "the amount of exogenous load that is flexible" load_exog_static(r,allh,t) "the amount of exogenous load that is static" dr_shed_out(i,r,allh) "--fraction-- dr shed capacity availability" -* EVMC storage - evmc_storage_discharge_frac(i,r,allh,allt) "--fraction-- fraction of adopted EV storage discharge capacity that can be discharged (deferred charging) in each timeslice h" - evmc_storage_charge_frac(i,r,allh,allt) "--fraction-- fraction of adopted EV storage discharge capacity that can be charged (add back deferred charging) in each timeslice h" - evmc_storage_energy_hours(i,r,allh,allt) "--hours-- Allowable EV storage SOC (quantity deferred EV charge) [MWh] divided by nameplate EVMC discharge capacity [MW]" -* EVMC load - evmc_baseline_load(r,allh,allt) "--MW-- baseline electricity load from EV charging by timeslice h and year t" - evmc_shape_load(i,r,allh) "--fraction-- fraction of adopted price-responsive (shaped) EV load added by timeslice" - evmc_shape_gen(i,r,allh) "--fraction-- fraction of adopted price-responsive (shaped) EV load subtracted by timeslice" + dr_shape_load(i,r,allh,allt) "--fraction-- fraction of adopted price-responsive DR shape load added by timeslice" + dr_shape_gen(i,r,allh,allt) "--fraction-- fraction of adopted price-responsive DR shape load subtracted by timeslice" + dr_shift_discharge_frac(i,r,allh,allt) "--fraction-- fraction of adopted DR shift capacity that can be discharged (deferred charging) in each timeslice h" + dr_shift_charge_frac(i,r,allh,allt) "--fraction-- fraction of adopted DR shift capacity that can be charged (add back deferred charging) in each timeslice h" + dr_shift_energy_hours(i,r,allh,allt) "--hours-- Allowable DR shift device storage SOC (quantity deferred charge) [MWh] divided by nameplate discharge capacity [MW]" * Flexible Canadian imports/exports [Sw_Canada=1] can_imports_szn(r,allszn,t) "--MWh-- [Sw_Canada=1] seasonal imports from Canada by year" can_imports_szn_frac(allszn) "--fraction-- [Sw_Canada=1] fraction of annual imports that occur in each season" diff --git a/reeds/core/setup/c_model.gms b/reeds/core/setup/c_model.gms index dde222c6b..0c211507f 100644 --- a/reeds/core/setup/c_model.gms +++ b/reeds/core/setup/c_model.gms @@ -25,7 +25,7 @@ positive variables * capacity and investment variables CAP_SDBIN(i,v,r,ccseason,sdbin,t) "--MW-- generation power capacity by storage duration bin for relevant technologies" CAP_SDBIN_ENERGY(i,v,r,ccseason,sdbin,t) "--MWh-- generation energy capacity by storage duration bin for relevant technologies" - CAP(i,v,r,t) "--MW-- total generation capacity in MWac (MWdc for PV); PV capacity of hybrid PV+battery; max native, flexible EV load for EVMC" + CAP(i,v,r,t) "--MW-- total generation capacity in MWac (MWdc for PV); PV capacity of hybrid PV+battery; max native" CAP_ENERGY(i,v,r,t) "--MWh-- battery capacity in terms of energy" CAP_ABOVE_LIM(tg,r,t) "--MW-- amount of capacity that is deployed above the interconnection queue limits" CAP_RSC(i,v,r,rscbin,t) "--MW-- total generation capacity in MWac (MWdc for PV) for wind-ons and upv" @@ -112,6 +112,7 @@ positive variables H2_STOR_LEVEL_SZN(h2_stor,r,actualszn,t) "--metric tons-- total storage level of H2 in a period by storage type" CREDIT_H2PTC(i,v,r,allh,t) "--MW-- generation by resources which qualify for the hydrogen production tax credit, in hour h" + * water climate variables WATCAP(i,v,r,t) "--million gallons/year; Mgal/yr-- total water access capacity available in terms of withdraw/consumption per year" WAT(i,v,w,r,allh,t) "--Mgal-- quantity of water withdrawn or consumed in hour h" @@ -313,6 +314,8 @@ eq_interconnection_queues(tg,r,t) "--MW-- capacity deployment limit base eq_storage_opres(i,v,r,allh,t) "--MWh-- there must be sufficient energy in the storage to be able to provide operating reserves" eq_storage_thermalres(i,v,r,allh,t) "--MW-- thermal storage contribution to operating reserves is store_in only" eq_battery_minduration(i,v,r,t) "--MWh-- when power capacity is built, energy capacity should have a minimum capacity" + eq_dr_shift_gen_capacity(i,v,r,allh,t) "--MW-- storage generation capacity (deferment) for DR shifting resources is limited to a fraction of total capacity" + eq_dr_shift_storage_in_capacity(i,v,r,allh,t) "--MW-- storage load capacity (payback) for DR shifting resources is limited to a fraction of total capacity" * hybrid plant equations eq_plant_total_gen(i,v,r,allh,t) "--MW-- generation post curtailment = generation from pv (post curtailment) + generation from battery - charging from PV" @@ -362,11 +365,10 @@ eq_loadcon(r,h,t)$tmodel(t).. * while net_trade can be negative and cause infeasibilities + can_exports_h(r,h,t)$[Sw_Canada=1] -*[plus] load from EV charging (baseline/unmanaged) - + evmc_baseline_load(r,h,t)$Sw_EVMC +*[plus] shifted load from adopted DR shape resources + + sum{(i,v)$[dr_shape(i)$valcap(i,v,r,t)], dr_shape_load(i,r,h,t) * CAP(i,v,r,t)} + - sum{(i,v)$[dr_shape(i)$valcap(i,v,r,t)], dr_shape_gen(i,r,h,t) * CAP(i,v,r,t)} -*[plus] shifted load from adopted EVMC shape resources - + sum{(i,v)$[evmc_shape(i)$valcap(i,v,r,t)], evmc_shape_load(i,r,h) * CAP(i,v,r,t)} *[plus] load shifted from other timeslices + sum{flex_type, FLEX(flex_type,r,h,t) }$Sw_EFS_flex @@ -1189,8 +1191,8 @@ eq_capacity_limit(i,v,r,h,t) $(not spur_techs(i)) $(not storage_standalone(i))$(not storage_hybrid(i)$(not csp(i)))$(not nondispatch(i))].. -*total amount of dispatchable, non-hydro capacity - avail(i,r,h)$[dispatchtech(i)$(not hydro_d(i))] +*total amount of dispatchable, non-hydro, non DR shape and shift capacity + avail(i,r,h)$[dispatchtech(i)$(not hydro_d(i))$(not dr_shape(i))$(not dr_shift(i))] * derate_geo_vintage(i,v) * (1 + sum{szn, h_szn(h,szn) * seas_cap_frac_delta(i,v,r,szn,t)}) * CAP(i,v,r,t) @@ -1213,8 +1215,6 @@ eq_capacity_limit(i,v,r,h,t) *subtract energy that would be embedded in a capacity-only upsizing - degrade_new(i,tt,t) * INV_CAP_UP(i,v,r,rscbin,tt)$allow_cap_up(i,v,r,rscbin,tt) }) )$[not dispatchtech(i)] -*add EVMC shape generation - + (evmc_shape_gen(i,r,h) * CAP(i,v,r,t)) =g= @@ -2997,11 +2997,10 @@ eq_biousedlimit(bioclass,usda_region,t)$tmodel(t).. * --------------------------------------------------------------------------- *storage use cannot exceed capacity -*this constraint does not apply to CSP+TES or hydro pump upgrades -eq_storage_capacity(i,v,r,h,t)$[valgen(i,v,r,t) - $(storage_standalone(i)$(not evmc_storage(i)) - or evmc_storage(i) - $[evmc_storage_charge_frac(i,r,h,t)$evmc_storage_discharge_frac(i,r,h,t)] +*this constraint does not apply to DR Shift, CSP+TES or hydro pump upgrades +eq_storage_capacity(i,v,r,h,t) + $[valgen(i,v,r,t) + $(storage_standalone(i) or storage_hybrid(i)$(not csp(i))) $tmodel(t)].. @@ -3012,16 +3011,15 @@ eq_storage_capacity(i,v,r,h,t)$[valgen(i,v,r,t) =g= -* [plus] Generation from storage, excluding hybrid+storage and adjusting evmc_storage for time-varying discharge (deferral) availability - GEN(i,v,r,h,t)$(not storage_hybrid(i)$(not csp(i))) / (1$(not evmc_storage(i)) + evmc_storage_discharge_frac(i,r,h,t)$evmc_storage(i)) +* [plus] Generation from storage, excluding hybrid+storage + GEN(i,v,r,h,t)$(not storage_hybrid(i)$(not csp(i))) * [plus] Generation from battery of hybrid+storage + GEN_STORAGE(i,v,r,h,t)$[storage_hybrid(i)$(not csp(i))$Sw_HybridPlant] * [plus] Storage charging -* excludes hybrid plant+storage and adjusting evmc_storage for time-varying charge (add back deferred EV load) availability - + STORAGE_IN(i,v,r,h,t)$[not storage_hybrid(i)$(not csp(i))] / (1$(not evmc_storage(i)) + evmc_storage_charge_frac(i,r,h,t)$evmc_storage(i)) - +* excludes hybrid plant+storage + + STORAGE_IN(i,v,r,h,t)$(not storage_hybrid(i)$(not csp(i))) * hybrid+storage plant: plant generation + STORAGE_IN_PLANT(i,v,r,h,t)$[storage_hybrid(i)$(not csp(i))$dayhours(h)$Sw_HybridPlant] * hybrid+storage plant: Grid generation @@ -3031,6 +3029,43 @@ eq_storage_capacity(i,v,r,h,t)$[valgen(i,v,r,t) + sum{ortype$[Sw_OpRes$opres_model(ortype)$opres_h(h)], reserve_frac(i,ortype) * OPRES(ortype,i,v,r,h,t) } ; +* --------------------------------------------------------------------------- +* demand shifting specific storage constraints to handle 0 avaialbility fractions of charge/disharge. +* constrain generation from demand shifting storage to be less than or equal +* to capacity adjusted for availability fraction + +* DR shift resource can only generate when discharge fraction is non-zero +eq_dr_shift_gen_capacity(i,v,r,h,t) + $[Sw_DRShift + $dr_shift(i) + $valgen(i,v,r,t) + $tmodel(t)].. + +* capacity of demand shifting storage technologies modified by availability fraction + CAP(i,v,r,t)* dr_shift_discharge_frac(i,r,h,t) + + =g= + +* demand shifting deferment + GEN(i,v,r,h,t) +; + + +* DR shift resource can only charge when charge fraction is non-zero +eq_dr_shift_storage_in_capacity(i,v,r,h,t) + $[Sw_DRShift + $dr_shift(i) + $valgen(i,v,r,t) + $tmodel(t)].. + +* capacity of demand shifting storage technologies modified by availability fraction + CAP(i,v,r,t)* dr_shift_charge_frac(i,r,h,t) + + =g= + +* demand shifting payback/charging + STORAGE_IN(i,v,r,h,t) +; * --------------------------------------------------------------------------- @@ -3148,8 +3183,8 @@ eq_storage_duration(i,v,r,h,t)$[valgen(i,v,r,t)$valcap(i,v,r,t) * [plus] storage duration times storage capacity for fixed-duration techs storage_duration_m(i,v,r) * CAP(i,v,r,t) * (1$CSP_Storage(i) + 1$psh(i) + bcr(i)$pvb(i)) -* [plus] EVMC storage has time-varying energy capacity - + evmc_storage_energy_hours(i,r,h,t) * CAP(i,v,r,t) * (bcr(i)$evmc_storage(i)) +* [plus] DR Shift has time-varying energy capacity + + dr_shift_energy_hours(i,r,h,t) * CAP(i,v,r,t) * (bcr(i)$dr_shift(i)) * [plus] battery storage capacity + CAP_ENERGY(i,v,r,t)$battery(i) @@ -3163,16 +3198,15 @@ eq_storage_duration(i,v,r,h,t)$[valgen(i,v,r,t)$valcap(i,v,r,t) * Charging power must be less than a specified fraction of power output capacity * This is required in addition to eq_storage_capacity for facilities where input capacity < output capacity. -* If storinmaxfrac were applied to CAP in eq_storage_capacity, it would also limit output capacity. eq_storage_in_cap(i,v,r,h,t)$[(storage_standalone(i) or hyd_add_pump(i))$valgen(i,v,r,t)$valcap(i,v,r,t) $tmodel(t)$(storinmaxfrac(i,v,r) < 1)].. *[plus] maximum storage input capacity as a fraction of output capacity and accounting for availability -* for evmc_storage this adjust for time-varying availability of charging (add back deferred EV load) +* for DR Shifting this adjust for time-varying availability of charging (add back deferred EV load) avail(i,r,h) * storinmaxfrac(i,v,r) * CAP(i,v,r,t) * (1 + sum{szn, h_szn(h,szn) * seas_cap_frac_delta(i,v,r,szn,t)}) - * (1$(not evmc_storage(i)) + evmc_storage_charge_frac(i,r,h,t)$evmc_storage(i)) + * (1$(not dr_shift(i)) + dr_shift_charge_frac(i,r,h,t)$dr_shift(i)) =g= diff --git a/reeds/core/setup/d_objective.gms b/reeds/core/setup/d_objective.gms index 498988760..d5df2bc2a 100644 --- a/reeds/core/setup/d_objective.gms +++ b/reeds/core/setup/d_objective.gms @@ -14,7 +14,7 @@ Equation * note these are not restricited to positive domain Variable Z "--$-- total cost of operations and investment, scale varies based on cost_scale" Z_op(t) "--$-- total cost of operations", - Z_inv(t) "--$-- total cost of operations" + Z_inv(t) "--$-- total cost of investment" ; * objective function is the sum over modeled years of the investment diff --git a/reeds/core/setup/e_solveprep.gms b/reeds/core/setup/e_solveprep.gms index dd3464654..7ca28c7ed 100644 --- a/reeds/core/setup/e_solveprep.gms +++ b/reeds/core/setup/e_solveprep.gms @@ -39,7 +39,6 @@ parameter cc_old_load(i,r,ccreg,ccseason,t) "--MW-- cc_old loading in from the cc_out gdx file" sdbin_size_load(ccreg,ccseason,sdbin,t) "--MW-- bin_size power loading in from the cc_out gdx file" cc_mar_load(i,r,ccreg,ccseason,t) "--fraction-- cc_mar loading in from the cc_out gdx file" - cc_evmc_load(i,r,ccseason,t) "--fraction-- cc_evmc loading in from the cc_out gdx file" mean_forced_outage_rate_load(i,r,ccseason,t) "--fraction-- mean_forced_outage_rate loading in from the cc_out gdx file" ; @@ -141,7 +140,6 @@ set ; parameter - cc_evmc_load2(loadset,i,r,ccseason,t) "--fraction-- cc_evmc loading in from the cc_out gdx file" cc_iter(i,v,r,ccseason,t,cciter) "--fraction-- Actual capacity value in iteration cciter" cc_mar_load2(loadset,i,r,ccseason,t) "--fraction-- cc_mar loading in from the cc_out gdx file" cc_old_load2(loadset,i,r,ccseason,t) "--MW-- cc_old loading in from the cc_out gdx file" diff --git a/reeds/core/solve/2_financials.gms b/reeds/core/solve/2_financials.gms index e6e6815fe..8a01d773e 100644 --- a/reeds/core/solve/2_financials.gms +++ b/reeds/core/solve/2_financials.gms @@ -111,6 +111,10 @@ rsc_fin_mult(i,r,t)$psh(i) = cost_cap_fin_mult(i,r,t) * hydrocapmult(t,i) ; rsc_fin_mult_noITC(i,r,t)$psh(i) = cost_cap_fin_mult_noITC(i,r,t) * hydrocapmult(t,i) ; rsc_fin_mult(i,r,t)$dr_shed(i) = cost_cap_fin_mult(i,r,t)* dr_shed_capmult(i,r,t) ; rsc_fin_mult_noITC(i,r,t)$dr_shed(i) = cost_cap_fin_mult_noITC(i,r,t)* dr_shed_capmult(i,r,t) ; +rsc_fin_mult(i,r,t)$dr_shape(i) = cost_cap_fin_mult(i,r,t)* dr_shape_capmult(i,r,t) ; +rsc_fin_mult_noITC(i,r,t)$dr_shape(i) = cost_cap_fin_mult_noITC(i,r,t)* dr_shape_capmult(i,r,t) ; +rsc_fin_mult(i,r,t)$dr_shift(i) = cost_cap_fin_mult(i,r,t)* dr_shift_capmult(i,r,t) ; +rsc_fin_mult_noITC(i,r,t)$dr_shift(i) = cost_cap_fin_mult_noITC(i,r,t)* dr_shift_capmult(i,r,t) ; * Create a new parameter to hold capital financing multipliers with and without ITC for OSW transmission costs inside the resource supply curve cost * Currently, OSW receives federal incentives in both its capital and transmission costs, hence this custom application for OSW diff --git a/reeds/core/solve/2_temporal_params.gms b/reeds/core/solve/2_temporal_params.gms index 706e7b65d..9c37397b4 100644 --- a/reeds/core/solve/2_temporal_params.gms +++ b/reeds/core/solve/2_temporal_params.gms @@ -689,59 +689,62 @@ $include inputs_case%ds%%temporal_inputs%%ds%flex_frac_all.csv $offdelim $onlisting / ; +$offempty - -* EV adoptable managed charging -parameter evmc_baseline_load(r,allh,allt) "--fraction-- how much adopted shaped EV load is allowed to be shed in each timeslice h" -/ -$offlisting -$ondelim -$include inputs_case%ds%%temporal_inputs%%ds%evmc_baseline_load.csv -$offdelim -$onlisting -/ ; - -parameter evmc_shape_gen(i,r,allh) "--fraction-- how much adopted shaped EV load is allowed to be shed in each timeslice h" +* DR Shape +$onempty +parameter dr_shape_gen(i,r,allh,allt) "--fraction-- how much adopted DR shape load is allowed to be shed in each timeslice h" / $offlisting $ondelim -$include inputs_case%ds%%temporal_inputs%%ds%evmc_shape_generation.csv +$include inputs_case%ds%%temporal_inputs%%ds%dr_shape_generation.csv +$include inputs_case%ds%stress%stress_year%%ds%dr_shape_generation.csv $offdelim $onlisting / ; +$offempty -parameter evmc_shape_load(i,r,allh) "--fraction-- how much adopted shaped EV load is added in each timeslice h" +$onempty +parameter dr_shape_load(i,r,allh,allt) "--fraction-- how much adopted DR shape load is added in each timeslice h" / $offlisting $ondelim -$include inputs_case%ds%%temporal_inputs%%ds%evmc_shape_load.csv +$include inputs_case%ds%%temporal_inputs%%ds%dr_shape_load.csv +$include inputs_case%ds%stress%stress_year%%ds%dr_shape_load.csv $offdelim $onlisting / ; +$offempty -parameter evmc_storage_discharge_frac(i,r,allh,allt) "--fraction-- fraction of adopted EV storage discharge capacity that can be discharged (deferred charging) in each timeslice h" +$onempty +* DR shift adoption +parameter dr_shift_discharge_frac(i,r,allh,allt) "--fraction-- fraction of adopted DR shift capacity that can be discharged (deferred charging) in each timeslice h" / $offlisting $ondelim -$include inputs_case%ds%%temporal_inputs%%ds%evmc_storage_discharge.csv +$include inputs_case%ds%%temporal_inputs%%ds%dr_shift_discharge.csv $offdelim $onlisting / ; +$offempty -parameter evmc_storage_charge_frac(i,r,allh,allt) "--fraction-- fraction of adopted EV storage discharge capacity that can be charged (add back deferred charging) in each timeslice h" +$onempty +parameter dr_shift_charge_frac(i,r,allh,allt) "--fraction-- fraction of adopted DR shift capacity that can be charged (add back deferred charging) in each timeslice h" / $offlisting $ondelim -$include inputs_case%ds%%temporal_inputs%%ds%evmc_storage_charge.csv +$include inputs_case%ds%%temporal_inputs%%ds%dr_shift_charge.csv $offdelim $onlisting / ; +$offempty -parameter evmc_storage_energy_hours(i,r,allh,allt) "--hours-- Allowable EV storage SOC (quantity deferred EV charge) [MWh] divided by nameplate EVMC discharge capacity [MW]" +$onempty +parameter dr_shift_energy_hours(i,r,allh,allt) "--hours-- Allowable DR shift device storage SOC (quantity deferred charge) [MWh] divided by nameplate discharge capacity [MW]" / $offlisting $ondelim -$include inputs_case%ds%%temporal_inputs%%ds%evmc_storage_energy.csv +$include inputs_case%ds%%temporal_inputs%%ds%dr_shift_profile_energy.csv $offdelim $onlisting / ; diff --git a/reeds/core/solve/3_solve_allyears.gms b/reeds/core/solve/3_solve_allyears.gms index 81c809d31..a48c873a5 100644 --- a/reeds/core/solve/3_solve_allyears.gms +++ b/reeds/core/solve/3_solve_allyears.gms @@ -40,14 +40,12 @@ tload(t)$tmodel(t) = yes ; $gdxin handoff%ds%reeds_data%ds%ccdata_merged_%niter%.gdx $loaddcr cc_old_load2 = cc_old $loaddcr cc_mar_load2 = cc_mar -$loaddcr cc_evmc_load2 = cc_evmc $loaddcr sdbin_size_load2 = sdbin_size $gdxin cc_old_load(i,r,szn,t) = sum{loadset, sum{ccreg$r_ccreg(r,ccreg), cc_old_load2(loadset,i,r,ccreg,szn,t) } } ; cc_mar_load(i,r,szn,t) = sum{loadset, sum{ccreg$r_ccreg(r,ccreg), cc_mar_load2(loadset,i,r,ccreg,szn,t) } } ; -cc_evmc_load(i,r,szn,t) = sum{loadset, cc_evmc_load2(loadset,i,r,szn,t) } ; sdbin_size_load(ccreg,szn,sdbin,t) = sum{loadset, sdbin_size_load2(loadset,ccreg,szn,sdbin,t) } ; diff --git a/reeds/core/solve/3_solve_oneyear.gms b/reeds/core/solve/3_solve_oneyear.gms index b002325dc..09acdb018 100644 --- a/reeds/core/solve/3_solve_oneyear.gms +++ b/reeds/core/solve/3_solve_oneyear.gms @@ -145,7 +145,6 @@ tload("%cur_year%") = yes ; $gdxin handoff%ds%reeds_data%ds%ccdata_%prev_year%.gdx $loaddcr cc_old_load = cc_old $loaddcr cc_mar_load = cc_mar -$loaddcr cc_evmc_load = cc_evmc $loaddcr sdbin_size_load = sdbin_size $loaddcr mean_forced_outage_rate_load = mean_forced_outage_rate $gdxin diff --git a/reeds/core/solve/6_data_dump.gms b/reeds/core/solve/6_data_dump.gms index 651bc72e0..21c18afae 100644 --- a/reeds/core/solve/6_data_dump.gms +++ b/reeds/core/solve/6_data_dump.gms @@ -50,6 +50,8 @@ cost_cap_fin_mult_filt(i,r,t) "--unitless-- capital cost financial multipli cost_vom_filt(i,v,r) "--$/MWh-- VO&M costs filtered for the previous solve year and existing capacity" ctt_i_ii_filt(i,ii) "--set-- set linking watercooling techs i to numeraire techs ii filtered for existing watercooling techs" ctt_i_ii_psh(i,ii) "--set-- set linking PSH techs with water i to numeraire techs ii filtered for valid capacity techs" +dr_shape_load_mod(i,v,r,allh,t) "--MW-- power consumed or reduced for DR shape" +dr_shift_load_mod(i,v,r,allh,t) "--MW-- power consumed or reduced for DR shift" emissions_price(e,r) "--2004$/metric ton-- combined emissions taxes and marginal prices for emissions caps" emit_rate_filt(e,i,v,r) "--metric tons/MWh-- emission rate for the previous solve year" energy_price(r,allh) "--2004$/MWh-- energy price from the previous solve year" @@ -138,9 +140,7 @@ ret(i,v,r)$valcap_ivr(i,v,r) = sum{t, ret_ivrt(i,v,r,t) } ; cap_exog_filt(i,v,r)$([not canada(i)]$valcap_ivr(i,v,r)) = sum{t$tnext(t), m_capacity_exog(i,v,r,t) } ; -gen_h_stress_filt(i,r,allh,t)$[tcur(t)$valgen_irt(i,r,t)$h_stress_t(allh,t)] = - sum{v$valgen(i,v,r,t), GEN.l(i,v,r,allh,t)} -; + *============================ * Fuel prices *============================ @@ -271,6 +271,18 @@ ra_cap_loadsite(r,t)$[Sw_LoadSiteCF$val_loadsite(r)] = CAP_LOADSITE.l(r,t) ; prod_filt(i,v,r,h)$[sum{t$tcur(t), valcap(i,v,r,t)}$consume(i)$hours(h)] = sum{(p,t)$[i_p(i,p)$tcur(t)], PRODUCE.l(p,i,v,r,h,t) / prod_conversion_rate(i,v,r,t) } ; +* DR Shape load modification based on net dr shift charging +dr_shape_load_mod(i,v,r,h,t)$[tcur(t)$dr_shape(i)$hours(h)] = + (dr_shape_load(i,r,h,t) - dr_shape_gen(i,r,h,t)) * CAP.l(i,v,r,t); + +* DR Shift load modification based on net dr shift charging +dr_shift_load_mod(i,v,r,h,t)$[tcur(t)$dr_shift(i)$hours(h)] = + STORAGE_IN.l(i,v,r,h,t)-GEN.l(i,v,r,h,t) ; + +* DR Shed load modification +gen_h_stress_filt(i,r,h,t)$[tcur(t)$valgen_irt(i,r,t)$h_stress_t(h,t)] = + sum{v$valgen(i,v,r,t), GEN.l(i,v,r,h,t)}; + *============================ * Get ReEDS emissions prices [$/metric ton] *============================ @@ -329,6 +341,14 @@ execute_unload 'handoff%ds%reeds_data%ds%reeds_data_%cur_year%.gdx' ctt_i_ii_filt ctt_i_ii_psh degrade_annual + dr_shape + dr_shape_gen + dr_shape_load + dr_shape_load_mod + dr_shift_load_mod + dr_shift_charge_frac + dr_shift_discharge_frac + dr_shift_energy_hours emissions_price emit_rate_filt energy_price diff --git a/reeds/core/terminus/report.gms b/reeds/core/terminus/report.gms index 6affe4ce4..2d01984be 100644 --- a/reeds/core/terminus/report.gms +++ b/reeds/core/terminus/report.gms @@ -650,6 +650,13 @@ gen_h(i,r,h,t)$[tmodel_new(t)$valgen_irt(i,r,t)] = * less load from hydrogen production - sum{(v,p)$[consume(i)$valcap(i,v,r,t)$i_p(i,p)], PRODUCE.l(p,i,v,r,h,t) / prod_conversion_rate(i,v,r,t)}$Sw_Prod ; +* Calculate 'generation' from DR shape resource +gen_h(i,r,h,t)$[tmodel_new(t)$dr_shape(i)] = +* minus dr_shape_load loads + - sum{v$[dr_shape(i)$valcap(i,v,r,t)],dr_shape_load(i,r,h,t) * CAP.l(i,v,r,t)} +* plus dr_shape_gen loads + + sum{v$[dr_shape(i)$valcap(i,v,r,t)],dr_shape_gen(i,r,h,t) * CAP.l(i,v,r,t)} +; * A small amount of upv capacity is actually csp-ns, so convert it back now. * UPV capacity is already in MWac at this point (matching csp-ns), * so don't need to account for ILR. @@ -663,6 +670,7 @@ gen_h("upv_5",r,h,t)$[cap_cspns(r,t)$tmodel_new(t)] gen_h("upv_5",r,h,t)$[cap_cspns(r,t)$tmodel_new(t)$(gen_h("upv_5",r,h,t) < 0)] = 0 ; gen_h_nat(i,h,t)$tmodel_new(t) = sum{r, gen_h(i,r,h,t) } ; + * Do it again for stress periods gen_h_stress(i,r,allh,t)$[tmodel_new(t)$valgen_irt(i,r,t)$h_stress_t(allh,t)] = sum{v$valgen(i,v,r,t), GEN.l(i,v,r,allh,t) @@ -672,6 +680,15 @@ gen_h_stress(i,r,allh,t)$[tmodel_new(t)$valgen_irt(i,r,t)$h_stress_t(allh,t)] = - sum{(v,p)$[consume(i)$valcap(i,v,r,t)$i_p(i,p)], PRODUCE.l(p,i,v,r,allh,t) / prod_conversion_rate(i,v,r,t)}$Sw_Prod ; + +* Calculate stress period 'generation' from DR shape resource +gen_h_stress(i,r,allh,t)$[tmodel_new(t)$dr_shape(i)$h_stress_t(allh,t)] = +* minus dr_shape_load loads + - sum{v$[dr_shape(i)$valcap(i,v,r,t)],dr_shape_load(i,r,allh,t) * CAP.l(i,v,r,t)} +* plus dr_shape_gen loads + + sum{v$[dr_shape(i)$valcap(i,v,r,t)],dr_shape_gen(i,r,allh,t) * CAP.l(i,v,r,t)} +; + gen_h_stress_nat(i,allh,t)$[tmodel_new(t)$h_stress_t(allh,t)] = sum{r, gen_h_stress(i,r,allh,t) } ; gen_ann(i,r,t)$tmodel_new(t) = sum{h, gen_h(i,r,h,t) * hours(h) } ; @@ -936,6 +953,10 @@ cap_sdbin_out(i,r,ccseason,sdbin,t)$valcap_irt(i,r,t) = sum{v, CAP_SDBIN.l(i,v,r stor_energy_cap(i,v,r,t)$[tmodel_new(t)$valcap(i,v,r,t)] = storage_duration_m(i,v,r) * CAP.l(i,v,r,t) * (1$CSP_Storage(i) + 1$psh(i) + bcr(i)$[battery(i) or storage_hybrid(i)$(not csp(i))]) ; +* stor_level_cap; energy capacity of DR shift, which has time-varying energy capacity +stor_energy_cap_DR_shift(i,v,r,h,t)$[valgen(i,v,r,t)$dr_shift(i)] = + dr_shift_energy_hours(i,r,h,t) * CAP.l(i,v,r,t) * (bcr(i)) ; + * add PSH energy capacity to cap_energy_ivrt cap_energy_ivrt(i,v,r,t)$[valcap(i,v,r,t)$psh(i)] = CAP.l(i,v,r,t) * storage_duration_m(i,v,r) ; diff --git a/reeds/core/terminus/report_params.csv b/reeds/core/terminus/report_params.csv index e30647243..02123ca8e 100644 --- a/reeds/core/terminus/report_params.csv +++ b/reeds/core/terminus/report_params.csv @@ -174,6 +174,7 @@ repgasquant_nat(t),Quads,national consumption of natural gas,,, rggi_price(t),2004$/metric ton,shadow price from RGGI constraint,,, rggi_quant(t),metric tons,annual CO2 cap for the regional greenhouse gas initiative (RGGI),,, "stor_energy_cap(i,v,r,t)",MWh,"energy capacity of storage devices by tech, BA, vintage, and year",,, +"stor_energy_cap_DR_shift(i,v,r,allh,t)",MWh,"energy capacity of DR Shift resources by tech, BA, hour, vintage, and year",,, "storage_duration_out(i,v,r,t)",h,"storage duration of battery",,, "stor_inout(i,v,r,t,*)",MWh,Annual energy going into and out of storage,,, "stor_in(i,v,r,allh,t)",MW,energy going into storage by timeslice,,, diff --git a/reeds/input_processing/calc_financial_inputs.py b/reeds/input_processing/calc_financial_inputs.py index 656c79144..f7a42ec07 100644 --- a/reeds/input_processing/calc_financial_inputs.py +++ b/reeds/input_processing/calc_financial_inputs.py @@ -230,9 +230,7 @@ def calc_financial_inputs(inputs_case): 'ptc_value_monetized_posttax', 'ptc_grossup_value', 'ptc_value_scaled']].iloc[0:5,:] # this is just a hack because pjg didn't know how to have gams handle empty files ptc_values_df = ptc_values_df.drop_duplicates(['i', 'v', 't']) ptc_values_df['v'] = ['new%s' % v for v in ptc_values_df['v']] - ptc_values_df['allt'] = ptc_values_df['t'].astype(int) - - + ptc_values_df['allt'] = ptc_values_df['t'].astype(int) #%% # Import schedules for financial calculations diff --git a/reeds/input_processing/hourly_load.py b/reeds/input_processing/hourly_load.py index 5c4eefdbb..ee30babd8 100644 --- a/reeds/input_processing/hourly_load.py +++ b/reeds/input_processing/hourly_load.py @@ -541,7 +541,8 @@ def reaggregate_to_model_regions( state_load_hourly: pd.DataFrame, inputs_case: str, GSw_LoadAllocationMethod: str, - dr_data: bool = False + dr_data: bool = False, + dr_agg_type: str = None, ) -> pd.DataFrame: """ Allocate hourly state load to model regions according to the provided @@ -562,6 +563,7 @@ def reaggregate_to_model_regions( os.path.dirname(inputs_case), disagg_variable=GSw_LoadAllocationMethod ) + # Calculate state-to-region aggregation/disaggregation factors state_region_factors = ( disagg_data.groupby(['state', 'r'], as_index=False) @@ -588,6 +590,21 @@ def reaggregate_to_model_regions( if dr_data: state_region_factors = state_region_factors.loc[state_region_factors.index.intersection(state_load_hourly.columns), :] + # Demand response shape and shift data are fractions which should be distributed uniformly across all regions within a state + if dr_data and dr_agg_type == 'fraction': + # Determine the number of regions within each state + unique_state = disagg_data['state'].unique() + state_map = {} + for st in unique_state: + regs_in_state = disagg_data.loc[disagg_data['state'] == st]['r'].unique().tolist() + for reg in regs_in_state: + state_map[reg] = state_load_hourly[st] + + regional_load_hourly = pd.DataFrame(state_map) + + return regional_load_hourly + + # Multiply the hourly state load profiles by the state-to-region factors regional_load_hourly = ( state_load_hourly[state_region_factors.index] @@ -696,40 +713,53 @@ def main(reeds_path, inputs_case): peakload = calculate_peak_load(regional_load_hourly, hierarchy) - #%%%######################################### - # -- DR Shed Load Modifications -- # - ############################################# - - if int(sw.GSw_DRShed): - state_dr_shed_hourly = reeds.io.read_file(os.path.join(inputs_case, 'dr_shed_hourly.h5')) - dr_types = list({x.split('|')[0] for x in state_dr_shed_hourly.columns[1:]}) +#%% + # #%%%############################################ + # # -- DR Shed, Shape, Shift Load Modifications -- # + # ################################################ + def process_dr_profiles(profile_type, file_suffix, dr_data=False, dr_agg_type=None): + if profile_type == 'shed': + state_profiles = reeds.io.read_file(os.path.join(inputs_case, f'dr_{profile_type}_hourly.h5')) + else: + state_profiles = reeds.io.read_file(os.path.join(inputs_case, f'dr_{profile_type}_profile_{file_suffix}.h5')) + state_profiles = state_profiles.reset_index().set_index(['year', 'datetime']) + dr_types = list({x.split('|')[0] for x in state_profiles.columns[1:]}) + regional_profiles = {} - # Reformat to match state load profiles - state_dr_shed_hourly = state_dr_shed_hourly.reset_index().set_index(['year','datetime']) - regional_dr_shed_hourly = {} for dr_type in dr_types: - type_cols = [col for col in state_dr_shed_hourly.columns if col.startswith(dr_type)] - reg_shed = state_dr_shed_hourly[type_cols].copy() - reg_shed.columns = [col.split('|')[1] for col in reg_shed.columns] - reg_shed = reaggregate_to_model_regions( - reg_shed, + type_cols = [col for col in state_profiles.columns if col.startswith(dr_type)] + reg_profile = state_profiles[type_cols].copy() + reg_profile.columns = [col.split('|')[1] for col in reg_profile.columns] + reg_profile = reaggregate_to_model_regions( + reg_profile, inputs_case, 'state_lpf', - dr_data=True + dr_data=dr_data, + dr_agg_type=dr_agg_type ) - # Add back dr type to column header - reg_shed.columns = [f"{dr_type}|{col}" for col in reg_shed.columns] - reg_shed = reg_shed.reset_index() - if isinstance(reg_shed['datetime'].iloc[0], bytes): - reg_shed['datetime'] = reg_shed['datetime'].str.decode('utf-8') - reg_shed['datetime'] = pd.to_datetime(reg_shed['datetime']) - reg_shed = reg_shed.set_index(['year','datetime']) - regional_dr_shed_hourly[dr_type] = reg_shed - - # Combined dr shed types - regional_dr_shed_hourly = pd.concat(regional_dr_shed_hourly.values(), axis=1) - regional_dr_shed_hourly = regional_dr_shed_hourly.astype(np.float32) - regional_dr_shed_hourly = regional_dr_shed_hourly.reset_index().set_index(['datetime']) + reg_profile = reg_profile.reset_index().set_index(['datetime']) + reg_profile.columns = [f"{dr_type}|{col}" if col not in ['year'] else col for col in reg_profile.columns] + regional_profiles[dr_type] = reg_profile + + combined_profiles = pd.concat(regional_profiles.values(), axis=1) + combined_profiles = combined_profiles.loc[:, ~combined_profiles.columns.duplicated()] + combined_profiles['year'] = combined_profiles['year'].astype('float64') + + return combined_profiles + + if int(sw.GSw_DRShed): + regional_dr_shed_hourly = process_dr_profiles('shed', 'hourly', dr_data=True) + + if int(sw.GSw_DRShape): + regional_dr_shape_profile_inc = process_dr_profiles('shape', 'increase', dr_data=True, dr_agg_type='fraction') + regional_dr_shape_profile_dec = process_dr_profiles('shape', 'decrease', dr_data=True, dr_agg_type='fraction') + + if int(sw.GSw_DRShift): + regional_dr_shift_profile_inc = process_dr_profiles('shift', 'increase', dr_data=True, dr_agg_type='fraction') + regional_dr_shift_profile_dec = process_dr_profiles('shift', 'decrease', dr_data=True, dr_agg_type='fraction') + regional_dr_shift_profile_energy = process_dr_profiles('shift', 'energy', dr_data=True, dr_agg_type='fraction') + + #%%########################### # -- Data Write-Out -- # @@ -751,6 +781,15 @@ def main(reeds_path, inputs_case): if int(sw.GSw_DRShed): reeds.io.write_profile_to_h5(regional_dr_shed_hourly, 'dr_shed_hourly.h5', inputs_case) + if int(sw.GSw_DRShape): + regional_dr_shape_profile_inc.to_hdf(os.path.join(inputs_case, 'dr_shape_profile_increase.h5'), key='data', complevel=4) + regional_dr_shape_profile_dec.to_hdf(os.path.join(inputs_case, 'dr_shape_profile_decrease.h5'), key='data', complevel=4) + + if int(sw.GSw_DRShift): + regional_dr_shift_profile_inc.to_hdf(os.path.join(inputs_case, 'dr_shift_profile_increase.h5'), key='data', complevel=4) + regional_dr_shift_profile_dec.to_hdf(os.path.join(inputs_case, 'dr_shift_profile_decrease.h5'), key='data', complevel=4) + regional_dr_shift_profile_energy.to_hdf(os.path.join(inputs_case, 'dr_shift_profile_energy.h5'), key='data', complevel=4) + #%% =========================================================================== ### --- PROCEDURE --- ### =========================================================================== diff --git a/reeds/input_processing/hourly_writetimeseries.py b/reeds/input_processing/hourly_writetimeseries.py index 38eebf141..7d62d825f 100644 --- a/reeds/input_processing/hourly_writetimeseries.py +++ b/reeds/input_processing/hourly_writetimeseries.py @@ -310,126 +310,178 @@ def get_yearly_flexibility( set_szn, inputs_case, drcat, + modeledyears, ): """ After clustering based on GSw_HourlyClusterYear and identifying the modeled days, reload the raw flexible DR or EV profiles and extract for the modeled days of each year """ - hoursperperiod = {"day": 24, "wek": 120, "year": np.nan}[sw["GSw_HourlyType"]] - ### Get the set of szn's and h's - szn_h = ( - hmap_1yr.drop_duplicates(["h", "season"]) - .sort_values(["season", "hour"]) - .reset_index(drop=True)[["season", "h"]] - .assign( - periodhour=np.ravel( - ( - [range(1, 25)] * 365 - if sw["GSw_HourlyType"] == "year" - else [range(1, hoursperperiod + 1)] * len(set_szn) - ) - ) - ) - .set_index(["season", "periodhour"]) - .h - ).copy() - - idx_vals = [i + 1 for i in period_szn.index.values] - period_szn_dict = period_szn.set_index("yperiod").to_dict()["season"] - ### Original flexibility data shape = {} shape_out = {} for stype in ["increase", "decrease", "energy"]: if stype == "energy": - if drcat.lower() == "evmc_storage": - shape[stype] = pd.read_csv( - os.path.join(inputs_case, f"evmc_storage_{stype}.csv") - ) + if drcat.lower() == "dr_shift": + shape[stype] = reeds.io.read_file(os.path.join(inputs_case, f"dr_shift_profile_{stype}.h5")) + else: continue - elif drcat.lower() == "evmc_shape": - shape[stype] = pd.read_csv( - os.path.join(inputs_case, f"evmc_shape_profile_{stype}.csv") - ) - elif drcat.lower() == "evmc_storage": - shape[stype] = pd.read_csv( - os.path.join(inputs_case, f"evmc_storage_profile_{stype}.csv") - ) + + elif drcat.lower() == "dr_shape": + shape[stype] = reeds.io.read_file(os.path.join(inputs_case, f"dr_shape_profile_{stype}.h5")) + + elif drcat.lower() == "dr_shift": + shape[stype] = reeds.io.read_file(os.path.join(inputs_case, f"dr_shift_profile_{stype}.h5")) else: raise ValueError( - f"drcat must be in ['dr','evmc_shape','evmc_storage'] but is '{drcat}'" + f"drcat must be in ['dr','dr_shape','dr_shift'] but is '{drcat}'" ) - unique_techs = len(shape[stype].i.unique()) - unique_years = len(shape[stype].year.unique()) - ### Add time indices ("season" is the identifier for modeled periods) - shape[stype]["yperiod"] = ( - np.ravel([[d] * 24 for d in range(1, 366)] * unique_techs * unique_years) - if sw["GSw_HourlyType"] == "year" - else np.ravel( - [[d] * hoursperperiod for d in idx_vals] * unique_techs * unique_years - ) - ) - shape[stype]["periodhour"] = ( - np.ravel([range(1, 25) for d in range(365)] * unique_techs * unique_years) - if sw["GSw_HourlyType"] == "year" - else np.ravel( - [range(1, hoursperperiod + 1) for d in idx_vals] - * unique_techs - * unique_years - ) - ) - shape[stype]["season"] = shape[stype].yperiod.map(period_szn_dict) + modeledyears_int = [int(y) for y in modeledyears] + shape[stype] = shape[stype].loc[shape[stype].year.isin(modeledyears_int)] + + unique_techs = list({x.split('|')[0] for x in shape[stype].columns[1:]}) + + # EER derived shape data is populated for multiple weather years + # The index is populated as a timestamp + if len(str(shape[stype].index[0])) > 4: + # Define timezone to UTC-6 + shape[stype].set_index(pd.to_datetime(shape[stype].index), inplace=True) + shape[stype].index = shape[stype].index.tz_localize('Etc/GMT+6') + shape[stype].reset_index(inplace=True) + + # create dictionary from hmap + hour2h = hmap_1yr.set_index('timestamp')['h'].to_dict() + # Map timestamps to h values + shape[stype]['h'] = shape[stype]['datetime'].map(hour2h) + # Filter out hours not in hmap + shape[stype] = shape[stype].loc[~shape[stype]['h'].isnull()] + # Remove timestamp col + shape[stype] = shape[stype].drop(columns = 'datetime') + # Flip region columns to single column + region_cols = [col for col in shape[stype].columns if col not in ['year','h']] + if region_cols: + shape[stype] = shape[stype].melt( + id_vars=[col for col in shape[stype].columns if col not in region_cols], + value_vars=region_cols, + var_name='r', + value_name='Values' + ) + # Split the region column into dr type and region + shape[stype]['i'] = shape[stype]['r'].apply(lambda x: x.split('|')[0]) + shape[stype]['r'] = shape[stype]['r'].apply(lambda x: x.split('|')[1]) + shape[stype]['year'] = shape[stype]['year'].astype(int) + # Reorder columns + shape_out[stype] = shape[stype][['i','r','h','year','Values']].copy() + shape_out[stype] = shape_out[stype].rename(columns={'year':'t'}) - ### If modeling a full year, keep everything - if sw["GSw_HourlyType"] == "year": - shape_out[stype] = shape[stype].drop( - ["yperiod", "periodhour", "season"], axis=1 - ) - shape_out[stype].index = hmap_1yr.h - ### If using representative periods, pull out the representative periods - elif unique_years == 1: - shape_out[stype] = ( - shape[stype] - .loc[shape[stype].season.isin(rep_periods)] - .drop(["yperiod", "hour", "year"], axis=1) - .set_index(["season", "periodhour"]) - .sort_index() - ) - shape_out[stype].index = shape_out[stype].index.map(szn_h).rename("h") - shape_out[stype] = ( - shape_out[stype] - .reset_index() - .set_index(["h", "i"]) - .stack() - .reset_index() - .rename(columns={"i": "*i", "level_2": "r", 0: "Values"})[ - ["*i", "r", "h", "Values"] - ] - ) + + # End use shape data populated for single weather year + # The hour column is populated as an integer hour of year else: - shape_out[stype] = ( - shape[stype] - .loc[shape[stype].season.isin(rep_periods)] - .drop(["yperiod", "hour"], axis=1) + hoursperperiod = {"day": 24, "wek": 120, "year": np.nan}[sw["GSw_HourlyType"]] + ### Get the set of szn's and h's + szn_h = ( + hmap_1yr.drop_duplicates(["h", "season"]) + .sort_values(["season", "hour"]) + .reset_index(drop=True)[["season", "h"]] + .assign( + periodhour=np.ravel( + ( + [range(1, 25)] * 365 + if sw["GSw_HourlyType"] == "year" + else [range(1, hoursperperiod + 1)] * len(set_szn) + ) + ) + ) .set_index(["season", "periodhour"]) - .sort_index() - ) + .h + ).copy() - shape_out[stype].index = shape_out[stype].index.map(szn_h).rename("h") - shape_out[stype] = ( - shape_out[stype] - .reset_index() - .set_index(["h", "i", "year"]) - .stack() - .reset_index() - .rename(columns={"i": "*i", "level_3": "r", "year": "t", 0: "Values"})[ - ["*i", "r", "h", "t", "Values"] - ] + idx_vals = [i + 1 for i in period_szn.index.values] + period_szn_dict = period_szn.set_index("yperiod").to_dict()["season"] + + ### Filter out the days not in the stress periods + shape[stype]['day'] = np.ceil(shape[stype].hour/24) + + shape[stype] = shape[stype].loc[shape[stype]['day'].isin(list(period_szn_dict.keys()))] + + unique_years = len(shape[stype].year.unique()) + + ### Add time indices ("season" is the identifier for modeled periods) + shape[stype]["yperiod"] = shape[stype]["day"].astype(int) + + shape[stype].drop('day', axis = 1, inplace = True) + shape[stype].sort_values(by = ['i','year','hour'],inplace = True) + + # Sort data by year so periodhour is assigned correctly + shape[stype] = shape[stype].sort_values(['i','year', 'yperiod', 'hour',]) + + shape[stype]["periodhour"] = ( + np.ravel([range(1, 25) for d in range(365)] * unique_techs * unique_years) + if sw["GSw_HourlyType"] == "year" + else np.ravel( + [range(1, hoursperperiod + 1) for d in idx_vals] + * unique_techs + * unique_years + ) ) + shape[stype]["season"] = shape[stype].yperiod.map(period_szn_dict) + + ### If modeling a full year, keep everything + if sw["GSw_HourlyType"] == "year": + shape_out[stype] = shape[stype].drop( + ["yperiod", "periodhour", "season"], axis=1 + ) + shape_out[stype].index = hmap_1yr.h + + ### If using representative periods, pull out the representative periods + elif unique_years == 1: + shape_out[stype] = ( + shape[stype] + .loc[shape[stype].season.isin(rep_periods)] + .drop(["yperiod", "hour", "year"], axis=1) + .set_index(["season", "periodhour"]) + .sort_index() + ) + shape_out[stype].index = shape_out[stype].index.map(szn_h).rename("h") + + shape_out[stype] = ( + shape_out[stype] + .reset_index() + .set_index(["h", "i"]) + .stack() + .reset_index() + .rename(columns={"i": "*i", "level_2": "r", 0: "Values"})[ + ["*i", "r", "h", "Values"] + ] + ) + else: + shape_out[stype] = ( + shape[stype] + .loc[shape[stype].season.isin(rep_periods)] + .drop(["yperiod", "hour"], axis=1) + .set_index(["season", "periodhour"]) + .sort_index() + ) + + shape_out[stype].index = shape_out[stype].index.map(szn_h).rename("h") + + shape_out[stype] = ( + shape_out[stype] + .reset_index() + .set_index(["h", "i", "year"]) + .stack() + .reset_index() + .rename(columns={"i": "*i", "level_3": "r", "year": "t", 0: "Values"})[ + ["*i", "r", "h", "t", "Values"] + ] + ) + + shape_out = {k: v.drop_duplicates() for k, v in shape_out.items()} + if "energy" in shape.keys(): return shape_out["decrease"], shape_out["increase"], shape_out["energy"] else: @@ -483,6 +535,12 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr .set_index("r") ) + val_r = hierarchy.index.tolist() + + modeledyears = ( + pd.read_csv(os.path.join(inputs_case, "modeledyears.csv")) + ).columns.tolist() + #%%### Load period-szn map, get representative and stress periods period_szn = pd.read_csv(os.path.join(outpath, 'period_szn.csv')) try: @@ -534,13 +592,12 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr 'canmexload': ['*r','h'], 'outage_forced_h': ['*i','r','h'], 'outage_scheduled_h': ['*i','h'], + 'dr_shape_generation': ['*i','r','h','t'], + 'dr_shape_load': ['*i','r','h','t'], 'dr_shed_out': ['*i','r','h'], - 'evmc_baseline_load': ['r','h','t'], - 'evmc_shape_generation': ['*i','r','h'], - 'evmc_shape_load': ['*i','r','h'], - 'evmc_storage_discharge': ['*i','r','h','t'], - 'evmc_storage_charge': ['*i','r','h','t'], - 'evmc_storage_energy': ['*i','r','h','t'], + 'dr_shift_discharge': ['*i','r','h','t'], + 'dr_shift_charge': ['*i','r','h','t'], + 'dr_shift_profile_energy': ['*i','r','h','t'], 'flex_frac_all': ['*flex_type','r','h','t'], 'peak_h': ['*r','h','t','MW'], 'daily_gasprice_multipliers_r': ['*r','h','multiplier'], @@ -1205,26 +1262,32 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr # identify year t = int(periodtype[6:10]) - # each year (2030-2050) has a different dr shed profile - # prior years assume 2030 data - t_set = max(t, 2030) + # Shed demonstration data only for 1 weather year + if sw.dr_shedscen == 'demo_data_January_2025': + # each year (2030-2050) has a different dr shed profile + # prior years assume 2030 data + t_set = max(t, 2030) + + dr_shed_avail_allyears = reeds.io.read_file(os.path.join(inputs_case, 'dr_shed_hourly.h5'), parse_timestamps=True) + dr_shed_avail_allyears['year'] = round(dr_shed_avail_allyears['year'],0).astype(int) + dr_shed_avail = dr_shed_avail_allyears.loc[dr_shed_avail_allyears['year']==t_set].copy().drop('year', axis=1) + + # dr_shed only has 2018 weather year data, need to populate for other RA years + dr_shed_avail_all_weatheryears = pd.DataFrame() + # copy 2018 data to other weather years + for y in sw.resource_adequacy_years_list: + #set datetime column to match hmap_allyrs.timestamp for y + dr_shed_avail_new_index = dr_shed_avail.copy() + dr_shed_avail_new_index.index = pd.to_datetime(hmap_allyrs[hmap_allyrs['year']==y].timestamp) + dr_shed_avail_all_weatheryears = pd.concat([dr_shed_avail_all_weatheryears, dr_shed_avail_new_index]) + else: + t_set = max(t, 2021) + dr_shed_avail_all_weatheryears = reeds.io.read_file(os.path.join(inputs_case, 'dr_shed_hourly.h5'), parse_timestamps=True) + dr_shed_avail_all_weatheryears['year'] = round(dr_shed_avail_all_weatheryears['year'],0).astype(int) + dr_shed_avail_all_weatheryears = dr_shed_avail_all_weatheryears.loc[dr_shed_avail_all_weatheryears['year']==t_set].copy().drop('year', axis=1) - dr_shed_avail_allyears = reeds.io.read_file(os.path.join(inputs_case, 'dr_shed_hourly.h5')) - dr_shed_avail_allyears['year'] = round(dr_shed_avail_allyears['year'],0).astype(int) - dr_shed_avail = dr_shed_avail_allyears.loc[dr_shed_avail_allyears['year']==t_set].copy().drop('year', axis=1) - - # dr_shed only has 2018 weather year data, need to populate for other RA years - dr_shed_avail_all_weatheryears = pd.DataFrame() - # copy 2018 data to other weather years - for y in sw.resource_adequacy_years_list: - #set datetime column to match hmap_allyrs.timestamp for y - dr_shed_avail_new_index = dr_shed_avail.copy() - dr_shed_avail_new_index.index = pd.to_datetime(hmap_allyrs[hmap_allyrs['year']==y].timestamp) - - dr_shed_avail_all_weatheryears = pd.concat([dr_shed_avail_all_weatheryears, dr_shed_avail_new_index]) - # downselect dr_shed_avail to timestamps in all weather years - dr_shed_avail_all_weatheryears.loc[hmap_allyrs.timestamp] + dr_shed_avail_all_weatheryears = dr_shed_avail_all_weatheryears.loc[hmap_allyrs.timestamp] # map dr_shed_avail index to actual period dr_shed_avail_all_weatheryears.index = hmap_allyrs.loc[hmap_allyrs.timestamp.isin(dr_shed_avail_all_weatheryears.index)].actual_h # Map actual periods to rep periods @@ -1236,7 +1299,7 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr dr_shed_avail_scalar = dr_shed_avail_scalar[dr_shed_avail_scalar['t']==t_set]['Value'].item() dr_shed_avail_all_weatheryears = (dr_shed_avail_all_weatheryears .div(dr_shed_avail_all_weatheryears .max()))*dr_shed_avail_scalar - + # Reformat to be indexed by i,r,h dr_shed_avail_out = dr_shed_avail_all_weatheryears.rename_axis('h').copy() @@ -1250,51 +1313,42 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr dr_shed_avail_out = pd.DataFrame(columns=['i','r','h','cap']) ############################# - # -- EV Managed Charging -- # + # -- DR Shape and DR Shift -- # ############################# - if int(sw.GSw_EVMC): - evmc_baseline_load = ( - pd.read_hdf(os.path.join(inputs_case, "ev_baseline_load.h5")) - .rename(columns={"h": "hour"}) - .astype({"r": str}) - ) - ## Drop the h - evmc_baseline_load.hour = evmc_baseline_load.hour.str.strip("h").astype("int") - ## Concat for each weather year - evmc_baseline_load_weatheryears = evmc_baseline_load.pivot( - index="hour", columns=["t", "r"], values="net" - ) - evmc_baseline_load_weatheryears = pd.concat( - {y: evmc_baseline_load_weatheryears for y in sw.resource_adequacy_years_list}, - axis=0, ignore_index=True).loc[hmap_myr.hour0] - ## Map 8760 hours to modeled hours - evmc_baseline_load_weatheryears.index = hmap_myr.h - ### Sum by (r,h,t) to get net trade in MWh during modeled hours - evmc_baseline_load_out = ( - evmc_baseline_load_weatheryears.stack(["r", "t"]) - .groupby(["r", "h", "t"]) - .sum() - .rename("MWh") - ## Divide by number of weather years since we concatted that number of weather years - / (len(sw['GSw_HourlyWeatherYears']) if (not periodtype.startswith('stress')) else 1) - ).reset_index() - ## Only keep modeled regions - evmc_baseline_load_out = evmc_baseline_load_out.loc[ - evmc_baseline_load_out.r.isin(val_r_all) - ].copy() + if int(sw.GSw_DRShape): + # DR shape mapped to all weather years + if periodtype.startswith('stress'): + dr_shape_dec, dr_shape_inc = get_yearly_flexibility( + sw=sw, + period_szn=period_szn, + rep_periods=rep_periods, + hmap_1yr=hmap_allyrs, + set_szn=set_szn, + inputs_case=inputs_case, + drcat="dr_shape", + modeledyears=modeledyears, + ) + # DR shape mapped to single year + else: + dr_shape_dec, dr_shape_inc = get_yearly_flexibility( + sw=sw, + period_szn=period_szn, + rep_periods=rep_periods, + hmap_1yr=hmap_myr, + set_szn=set_szn, + inputs_case=inputs_case, + drcat="dr_shape", + modeledyears=modeledyears, + ) - evmc_shape_dec, evmc_shape_inc = get_yearly_flexibility( - sw=sw, - period_szn=period_szn, - rep_periods=rep_periods, - hmap_1yr=hmap_myr, - set_szn=set_szn, - inputs_case=inputs_case, - drcat="evmc_shape", - ) + else: + # populate empty dataframe + dr_shape_dec = pd.DataFrame(columns=["i", "r", "h","t"]) + dr_shape_inc = pd.DataFrame(columns=["i", "r", "h","t"]) - evmc_storage_dec, evmc_storage_inc, evmc_storage_energy = ( + if int(sw.GSw_DRShift): + dr_shift_dec, dr_shift_inc, dr_shift_profile_energy = ( get_yearly_flexibility( sw=sw, period_szn=period_szn, @@ -1302,16 +1356,16 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr hmap_1yr=hmap_myr, set_szn=set_szn, inputs_case=inputs_case, - drcat="evmc_storage", + drcat="dr_shift", + modeledyears=modeledyears, ) ) else: - evmc_shape_dec = pd.DataFrame(columns=["*i", "r", "h"]) - evmc_shape_inc = pd.DataFrame(columns=["*i", "r", "h"]) - evmc_storage_dec = pd.DataFrame(columns=["*i", "r", "h", "t"]) - evmc_storage_inc = pd.DataFrame(columns=["*i", "r", "h", "t"]) - evmc_storage_energy = pd.DataFrame(columns=["*i", "r", "h", "t"]) - evmc_baseline_load_out = pd.DataFrame(columns=["r", "h", "t", "MWh"]) + # Populate empty dataframe + dr_shift_dec = pd.DataFrame(columns=["i", "r", "h", "t"]) + dr_shift_inc = pd.DataFrame(columns=["i", "r", "h", "t"]) + dr_shift_profile_energy = pd.DataFrame(columns=["i", "r", "h", "t"]) + #%% Chunk the profiles @@ -1509,26 +1563,17 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr ## Outage rates 'outage_forced_h': [outage_h['forced'].round(3), False, False], 'outage_scheduled_h': [outage_h['scheduled'].round(3), False, False], - # DR + # DR Shed "dr_shed_out": [ (dr_shed_avail_out.assign(h=dr_shed_avail_out.h.map(chunkmap)) .groupby(['i','r','h'], as_index=False).cap.mean().round(5)), False, False], - ## EVMC - "evmc_baseline_load": [ - ( - evmc_baseline_load_out.assign(h=evmc_baseline_load_out.h.map(chunkmap)) - .groupby(["r", "h", "t"], as_index=False) - .MWh.sum() - .round(decimals) - ), - False, - False, - ], - "evmc_shape_generation": [ + + ## DR shape + "dr_shape_generation": [ ( - evmc_shape_dec.assign(h=evmc_shape_dec.h.map(chunkmap)) - .groupby(["*i", "r", "h"]) + dr_shape_dec.assign(h=dr_shape_dec.h.map(chunkmap)) + .groupby(["i", "r", "h","t"]) .mean() .round(decimals) .reset_index() @@ -1536,10 +1581,10 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr False, False, ], - "evmc_shape_load": [ + "dr_shape_load": [ ( - evmc_shape_inc.assign(h=evmc_shape_inc.h.map(chunkmap)) - .groupby(["*i", "r", "h"]) + dr_shape_inc.assign(h=dr_shape_inc.h.map(chunkmap)) + .groupby(["i", "r", "h","t"]) .mean() .round(decimals) .reset_index() @@ -1547,10 +1592,10 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr False, False, ], - "evmc_storage_discharge": [ + "dr_shift_discharge": [ ( - evmc_storage_dec.assign(h=evmc_storage_dec.h.map(chunkmap)) - .groupby(["*i", "r", "h", "t"]) + dr_shift_dec.assign(h=dr_shift_dec.h.map(chunkmap)) + .groupby(["i", "r", "h", "t"]) .mean() .round(decimals) .reset_index() @@ -1558,10 +1603,10 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr False, False, ], - "evmc_storage_charge": [ + "dr_shift_charge": [ ( - evmc_storage_inc.assign(h=evmc_storage_inc.h.map(chunkmap)) - .groupby(["*i", "r", "h", "t"]) + dr_shift_inc.assign(h=dr_shift_inc.h.map(chunkmap)) + .groupby(["i", "r", "h", "t"]) .mean() .round(decimals) .reset_index() @@ -1569,10 +1614,10 @@ def main(sw, reeds_path, inputs_case, periodtype='rep', make_plots=1, logging=Tr False, False, ], - "evmc_storage_energy": [ + "dr_shift_profile_energy": [ ( - evmc_storage_energy.assign(h=evmc_storage_energy.h.map(chunkmap)) - .groupby(["*i", "r", "h", "t"]) + dr_shift_profile_energy.assign(h=dr_shift_profile_energy.h.map(chunkmap)) + .groupby(["i", "r", "h", "t"]) .mean() .round(decimals) .reset_index() diff --git a/reeds/input_processing/plantcostprep.py b/reeds/input_processing/plantcostprep.py index 3ac3f5da3..64944022f 100644 --- a/reeds/input_processing/plantcostprep.py +++ b/reeds/input_processing/plantcostprep.py @@ -257,17 +257,13 @@ def deflate_func(data,case): ) battery = battery.reset_index() -evmc_storage = pd.read_csv(os.path.join(inputs_case,'plantchar_evmc_storage.csv')) -evmc_storage = deflate_func(evmc_storage, 'evmc_storage_' + sw.evmcscen) -evmc_shape = pd.read_csv(os.path.join(inputs_case,'plantchar_evmc_shape.csv'), dtype = {'fom':float,'vom':float,'rte':float}) -evmc_shape = deflate_func(evmc_shape, 'evmc_shape_' + sw.evmcscen) #%%############################ # -- Concat all data -- # ############################### alldata = pd.concat([conv,upv_stack,wind_stack,geo_stack,csp_stack,battery, - evmc_storage,evmc_shape,beccs,ccsflex,h2combustion],sort=False) + beccs,ccsflex,h2combustion],sort=False) if sw.upgradescen != 'default': alldata = pd.concat([alldata,upgrade]) @@ -327,40 +323,75 @@ def deflate_func(data,case): consume_char.loc[mask, 'value'] = consume_char[mask]['value'] + round( (elec_cost_future * scalars['h2_elec_stack_replace_perc'])/(discount_rate**scalars['h2_elec_stack_replace_year']) ,3) #%%############################### -# -- DR Shed -- # +# -- DR -- # ################################## # Capital cost multipliers for DR Shed vary by state and year # Input cost data are state-level and are assigned to model region resolution here # We assume all regions within the same state have uniform costs -dr_shed = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shed.csv'), index_col=0).round(6) + +def disaggregate_to_regions(data, state2r): + regional_data = {} + for st in data['r'].unique(): + bas_in_st = state2r[st] + data2r = {} + for r in bas_in_st: + copy_state = data.loc[data['r'] == st].copy() + copy_state['r'] = r + data2r[r] = copy_state + regional_data[st] = pd.concat(data2r.values()) + return pd.concat(regional_data.values()).set_index('tech') + +state2r = pd.read_csv(os.path.join(inputs_case,'disagg_state_lpf.csv'),usecols=['state','r']) +# Map each unique state to all r values within that state +state2r = state2r.groupby('state')['r'].unique().apply(list).to_dict() + +# Shed DR +dr_shed = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shed.csv')) # FOM & VOM inputs are also state-level and need to be disaggregated -fom = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shed_fom.csv'), index_col=0).round(6) -vom = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shed_vom.csv'), index_col=0).round(6) -# If there are no DR shed data for regions being run, write dr_shed_capcostmult.csv -if dr_shed.empty: - dr_shed_capcost_mult = dr_shed.copy() - dr_shed_fom_regional = fom.copy() - dr_shed_vom_regional = vom.copy() +fom_shed = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shed_fom.csv')) +vom_shed = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shed_vom.csv')) +if int(sw.GSw_DRShed): + # Write from state-level to region-level + dr_shed_capcost_mult = disaggregate_to_regions(dr_shed, state2r) + dr_shed_fom_regional = disaggregate_to_regions(fom_shed, state2r) + dr_shed_vom_regional = disaggregate_to_regions(vom_shed, state2r) +# Write empty files if DR Shed is OFF else: - state2r = pd.read_csv(os.path.join(inputs_case,'disagg_state_lpf.csv'),usecols=['state','r']) - # Map each unique state to all r values within that state - state2r = state2r.groupby('state')['r'].unique().apply(list).to_dict() - - def disaggregate_to_regions(data, state2r): - regional_data = {} - for st in data['r'].unique(): - bas_in_st = state2r[st] - data2r = {} - for r in bas_in_st: - copy_state = data.loc[data['r'] == st].copy() - copy_state['r'] = r - data2r[r] = copy_state - regional_data[st] = pd.concat(data2r.values()) - return pd.concat(regional_data.values()) + dr_shed_capcost_mult = pd.DataFrame(columns=dr_shed.columns).set_index('tech') + dr_shed_fom_regional = pd.DataFrame(columns=fom_shed.columns).set_index('tech') + dr_shed_vom_regional = pd.DataFrame(columns=vom_shed.columns).set_index('tech') + +# Shape DR +dr_shape = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shape.csv')) +# FOM & VOM inputs are also state-level and need to be disaggregated +fom_shape = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shape_fom.csv')) +vom_shape = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shape_vom.csv')) +if int(sw.GSw_DRShape): + dr_shape_capcost_mult = disaggregate_to_regions(dr_shape, state2r) + dr_shape_fom_regional = disaggregate_to_regions(fom_shape, state2r) + dr_shape_vom_regional = disaggregate_to_regions(vom_shape, state2r) +# Write empty files if DR Shape is OFF +else: + dr_shape_capcost_mult = pd.DataFrame(columns=dr_shape.columns).set_index('tech') + dr_shape_fom_regional = pd.DataFrame(columns=fom_shape.columns).set_index('tech') + dr_shape_vom_regional = pd.DataFrame(columns=vom_shape.columns).set_index('tech') + +# Shift DR +dr_shift = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shift.csv')) +# FOM & VOM inputs are also state-level and need to be disaggregated +fom_shift = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shift_fom.csv')) +vom_shift = pd.read_csv(os.path.join(inputs_case,'plantchar_dr_shift_vom.csv')) +if int(sw.GSw_DRShift): + dr_shift_capcost_mult = disaggregate_to_regions(dr_shift, state2r) + dr_shift_fom_regional = disaggregate_to_regions(fom_shift, state2r) + dr_shift_vom_regional = disaggregate_to_regions(vom_shift, state2r) +# Write empty files if DR Shift is OFF +else: + dr_shift_capcost_mult = pd.DataFrame(columns=dr_shift.columns).set_index('tech') + dr_shift_fom_regional = pd.DataFrame(columns=fom_shift.columns).set_index('tech') + dr_shift_vom_regional = pd.DataFrame(columns=vom_shift.columns).set_index('tech') + - dr_shed_capcost_mult = disaggregate_to_regions(dr_shed, state2r) - dr_shed_fom_regional = disaggregate_to_regions(fom, state2r) - dr_shed_vom_regional = disaggregate_to_regions(vom, state2r) #%%############################### # -- Other Technologies -- # @@ -526,9 +557,15 @@ def get_pvb_cost( ccsflex_perf.to_csv(os.path.join(inputs_case,'ccsflex_perf.csv')) consume_char.to_csv(os.path.join(inputs_case,'consume_char.csv'),index=False) hydro.to_csv(os.path.join(inputs_case,'hydrocapcostmult.csv')) -dr_shed_capcost_mult.to_csv(os.path.join(inputs_case,'dr_shed_capcostmult.csv')) -dr_shed_fom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shed_fom.csv')) -dr_shed_vom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shed_vom.csv')) +dr_shape_capcost_mult.to_csv(os.path.join(inputs_case,'dr_shape_capcostmult.csv'), index=True) +dr_shape_fom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shape_fom.csv'), index=True) +dr_shape_vom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shape_vom.csv'), index=True) +dr_shift_capcost_mult.to_csv(os.path.join(inputs_case,'dr_shift_capcostmult.csv'), index=True) +dr_shift_fom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shift_fom.csv'), index=True) +dr_shift_vom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shift_vom.csv'), index=True) +dr_shed_capcost_mult.to_csv(os.path.join(inputs_case,'dr_shed_capcostmult.csv'), index=True) +dr_shed_fom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shed_fom.csv'), index=True) +dr_shed_vom_regional.to_csv(os.path.join(inputs_case,'plantchar_dr_shed_vom.csv'), index=True) ofswind_rsc_mult.to_csv(os.path.join(inputs_case,'ofswind_rsc_mult.csv')) degrade.to_csv(os.path.join(inputs_case,'degradation_annual.csv'),header=False) pvb.to_csv(os.path.join(inputs_case,'pvbcapcostmult.csv')) diff --git a/reeds/input_processing/runfiles.csv b/reeds/input_processing/runfiles.csv index eabee9e8d..f3621720c 100644 --- a/reeds/input_processing/runfiles.csv +++ b/reeds/input_processing/runfiles.csv @@ -70,11 +70,22 @@ dollaryear_consume.csv,inputs/consume/dollaryear.csv,int(sw.GSw_DAC) != 0,ignore dollaryear_plant.csv,inputs/plant_characteristics/dollaryear.csv,1,ignore,ignore,,,,,0,,,,,,Do we really need 3 separate instances of dollaryear? dollaryear_fuel.csv,inputs/fuelprices/dollaryear.csv,1,ignore,ignore,,,,,0,,,,,, dollaryear_sc.csv,inputs/supply_curve/dollaryear.csv,1,ignore,ignore,,,,,0,,,,,, +dr_shape_cap.csv,inputs/supply_curve/dr_shape_cap_{dr_shapescen}.csv,int(sw.GSw_DRShape) !=0,ignore,ignore,wide,"tech,rscbin",,1,0,,,,,,done +dr_shape_capacity_scalar.csv,inputs/demand_response/dr_shape_cap_scalar_{dr_shapescen}.csv,int(sw.GSw_DRShape) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,done +dr_shape_cost.csv,inputs/supply_curve/dr_shape_cost_{dr_shapescen}.csv,int(sw.GSw_DRShape) !=0,ignore,ignore,wide,"tech,rscbin",,1,0,,,,,,done +dr_shape_profile_decrease.h5,inputs/profiles_dr/dr_shape_decrease_profile_{dr_shapescen}.h5,int(sw.GSw_DRShape) !=0,ignore,ignore,wide,"i,hour,year",,1,0,,,,,, +dr_shape_profile_increase.h5,inputs/profiles_dr/dr_shape_increase_profile_{dr_shapescen}.h5,int(sw.GSw_DRShape) !=0,ignore,ignore,wide,"i,hour,year",,1,0,,,,,, dr_shed_avail_scalar.csv,inputs/demand_response/dr_shed_avail_scalar.csv,1,ignore,ignore,,,,,0,,,,,, dr_shed_cap.csv,inputs/supply_curve/dr_shed_cap_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,wide,tech,,1,0,,,,,,done dr_shed_cost.csv,inputs/supply_curve/dr_shed_cost_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,wide,tech,,1,0,,,,,,done -dr_shed_capacity_scalar.csv,inputs/demand_response/dr_shed_capacity_scalar_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,r,"tech,wide",,1,0,,,,,,done +dr_shed_capacity_scalar.csv,inputs/demand_response/dr_shed_cap_scalar_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,r,"tech,wide",,1,0,,,,,,done dr_shed_hourly.h5,inputs/profiles_dr/dr_shed_hourly_{dr_shedscen}.h5,int(sw.GSw_DRShed) != 0,ignore,ignore,wide,"datetime,year",,1,keepindex,,,,,,Agg/Disagg handled in hourly_load +dr_shift_cap.csv,inputs/supply_curve/dr_shift_cap_{dr_shiftscen}.csv,int(sw.GSw_DRShift) !=0,ignore,ignore,wide,"tech,rscbin",,1,0,,,,,,done +dr_shift_cost.csv,inputs/supply_curve/dr_shift_cost_{dr_shiftscen}.csv,int(sw.GSw_DRShift) !=0,ignore,ignore,wide,"tech,rscbin",,1,0,,,,,,done +dr_shift_capacity_scalar.csv,inputs/demand_response/dr_shift_cap_scalar_{dr_shiftscen}.csv,int(sw.GSw_DRShift) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,done +dr_shift_profile_decrease.h5,inputs/profiles_dr/dr_shift_decrease_profile_{dr_shiftscen}.h5,int(sw.GSw_DRShift) !=0,ignore,ignore,wide,"i,hour,year",,1,0,,,,,, +dr_shift_profile_increase.h5,inputs/profiles_dr/dr_shift_increase_profile_{dr_shiftscen}.h5,int(sw.GSw_DRShift) !=0,ignore,ignore,wide,"i,hour,year",,1,0,,,,,, +dr_shift_profile_energy.h5,inputs/profiles_dr/dr_shift_energy_profile_{dr_shiftscen}.h5,int(sw.GSw_DRShift) !=0,ignore,ignore,wide,"i,hour,year",,1,0,,,,,, e.csv,inputs/sets/e.csv,1,ignore,ignore,,,,,0,,,set,e,emission categories used in model, eall.csv,inputs/sets/eall.csv,1,ignore,ignore,,,,,,,,set,eall,emission categories used in reporting, emitrate.csv,inputs/emission_constraints/emitrate.csv,1,ignore,ignore,,,,,0,,,,,, @@ -180,11 +191,15 @@ plantchar_coal_ccs.csv,inputs/plant_characteristics/{plantchar_coal_ccs}.csv,1,i plantchar_coal.csv,inputs/plant_characteristics/{plantchar_coal}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv plantchar_battery.csv,inputs/plant_characteristics/{plantchar_battery}.csv,int(sw.GSw_Storage) != 0,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv plantchar_csp.csv,inputs/plant_characteristics/{plantchar_csp}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv +plantchar_dr_shape.csv,inputs/plant_characteristics/dr_shape_cost_scalars_{dr_shapescen}.csv,int(sw.GSw_DRShape) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv +plantchar_dr_shape_vom.csv,inputs/plant_characteristics/dr_shape_vom_{dr_shapescen}.csv,int(sw.GSw_DRShape) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv +plantchar_dr_shape_fom.csv,inputs/plant_characteristics/dr_shape_fom_{dr_shapescen}.csv,int(sw.GSw_DRShape) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv plantchar_dr_shed.csv,inputs/plant_characteristics/dr_shed_capcost_scalars_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv plantchar_dr_shed_vom.csv,inputs/plant_characteristics/dr_shed_vom_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv plantchar_dr_shed_fom.csv,inputs/plant_characteristics/dr_shed_fom_{dr_shedscen}.csv,int(sw.GSw_DRShed) != 0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv -plantchar_evmc_shape.csv,inputs/plant_characteristics/evmc_shape_{evmcscen}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv -plantchar_evmc_storage.csv,inputs/plant_characteristics/evmc_storage_{evmcscen}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv +plantchar_dr_shift.csv,inputs/plant_characteristics/dr_shift_cost_scalars_{dr_shiftscen}.csv,int(sw.GSw_DRShift) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv +plantchar_dr_shift_vom.csv,inputs/plant_characteristics/dr_shift_vom_{dr_shiftscen}.csv,int(sw.GSw_DRShift) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv +plantchar_dr_shift_fom.csv,inputs/plant_characteristics/dr_shift_fom_{dr_shiftscen}.csv,int(sw.GSw_DRShift) !=0,ignore,ignore,r,"tech,wide",,1,0,,,,,,used to define plantcharout.csv plantchar_fuelcell.csv,inputs/plant_characteristics/{plantchar_fuelcell}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv plantchar_h2fuelcell.csv,inputs/plant_characteristics/{plantchar_h2fuelcell}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv plantchar_gas_ccs.csv,inputs/plant_characteristics/{plantchar_gas_ccs}.csv,1,ignore,ignore,,,,,0,,,,,,used to define plantcharout.csv diff --git a/reeds/input_processing/writedrshift.py b/reeds/input_processing/writedrshift.py index a8bc631c6..631cd9549 100644 --- a/reeds/input_processing/writedrshift.py +++ b/reeds/input_processing/writedrshift.py @@ -61,22 +61,6 @@ sw = reeds.io.get_switches(inputs_case) val_r = reeds.io.read_input(inputs_case, 'r').squeeze(1).tolist() - ### Create empty EVMC data files if GSw_EVMC == 0: - evmc_files = [ - "evmc_shape_profile_decrease", - "evmc_shape_profile_increase", - "evmc_storage_profile_decrease", - "evmc_storage_profile_increase", - "evmc_storage_energy", - ] - for file in evmc_files: - if int(sw["GSw_EVMC"]): - pass - else: - # Overwrite empty dataframes created in copy_files.py - df = pd.DataFrame(columns=["i", "hour", "year"] + val_r) - df.to_csv(os.path.join(inputs_case, file + ".csv"), index=False) - reeds.log.toc(tic=tic, year=0, process='input_processing/writedrshift.py', path=os.path.join(inputs_case,'..')) print('Finished writedrshift.py') diff --git a/reeds/input_processing/writesupplycurves.py b/reeds/input_processing/writesupplycurves.py index 3b4ff1c80..92afd817d 100644 --- a/reeds/input_processing/writesupplycurves.py +++ b/reeds/input_processing/writesupplycurves.py @@ -877,88 +877,142 @@ def main( ####################################################### # -- Demand Response -- # ####################################################### - # Use capacity and cost to add DR Shed to rsc_combined - disagg_data = pd.read_csv(os.path.join(inputs_case,'disagg_state_lpf.csv')) - state2r = disagg_data.groupby('state')['r'].unique().apply(list).to_dict() - if int(sw["GSw_DRShed"]) and write: - # DR Shed input data at state-level, need to assign to model resolution - # State cost are uniformaly distributed across model regions within the state - # State capacity is distributed based on load - - # Calculate state-to-region aggregation/disaggregation factors - state_region_factors = ( - disagg_data.groupby(['state', 'r'], as_index=False) - ['state_frac'] - .sum() - .pivot(index='state', columns='r', values='state_frac') - .rename_axis(None, axis=1) - .fillna(0) - ) - dr_shed_cap_state = pd.read_csv(os.path.join(inputs_case,'dr_shed_cap.csv')) - dr_shed_cap_reg = dr_shed_cap_state.copy() - state_region_factors = state_region_factors.loc[state_region_factors.index.intersection(dr_shed_cap_reg.columns), :] - # Multiply the hourly state load profiles by the state-to-region factors - dr_shed_cap_reg = ( - dr_shed_cap_reg[state_region_factors.index] - .dot(state_region_factors) - ) - dr_shed_cap_reg.insert(0, 'tech', dr_shed_cap_state['tech']) - - dr_shed_cost_state = pd.read_csv(os.path.join(inputs_case,'dr_shed_cost.csv')) - dr_shed_cost_reg = dr_shed_cost_state.copy() - for col in dr_shed_cost_state.columns[1:]: - # Copy state columns to each model region - for r in state2r[col]: - dr_shed_cost_reg[r] = dr_shed_cost_state[col] - dr_shed_cost_reg.drop(columns=col, inplace=True) - - # Define rsc class using tech - dr_shed_cap = dr_shed_cap_reg.copy() - dr_shed_cap['class'] = dr_shed_cap['tech'] - dr_shed_cost = dr_shed_cost_reg.copy() - dr_shed_cost['class'] = dr_shed_cost['tech'] - - dr_shed_cap = (pd.melt(dr_shed_cap, id_vars=['tech','class']) - .set_index(['tech','class','variable']) - .sort_index()) - dr_shed_cap = dr_shed_cap.reset_index() - dr_shed_cost = pd.melt(dr_shed_cost, id_vars=['tech','class']) + ##### DR Shed, Shape, and Shift ##### + # Write region-level supply curve capacity and cost data for DR Shed, Shape, and Shift + # Write region-level supply curve capacity scalars + if int(sw.GSw_DRShed) == 1 or int(sw.GSw_DRShape) == 1 or int(sw.GSw_DRShift) == 1: + # State-level DR data processing function + def process_dr_state_level(dr_type, disagg_data, state2r): + """ + Process state-level DR data and disaggregate to region-level. + + Parameters: + - dr_type: 'dr_shed', 'dr_shape', or 'dr_shift' + - disagg_data: disaggregation data with state-to-region mapping + - state2r: dictionary mapping states to regions + + Returns: + - dr_dat: processed dataframe with regional DR data + """ + # Calculate state-to-region aggregation/disaggregation factors + state_region_factors = ( + disagg_data.groupby(['state', 'r'], as_index=False) + ['state_frac'] + .sum() + .pivot(index='state', columns='r', values='state_frac') + .rename_axis(None, axis=1) + .fillna(0) + ) + + # Read state-level capacity and cost data + cap_state = pd.read_csv(os.path.join(inputs_case, f'{dr_type}_cap.csv')) + cost_state = pd.read_csv(os.path.join(inputs_case, f'{dr_type}_cost.csv')) + + # Disaggregate capacity from state to region level + cap_reg = cap_state.copy() + state_region_factors = state_region_factors.loc[state_region_factors.index.intersection(cap_reg.columns), :] + cap_reg = cap_reg[state_region_factors.index].dot(state_region_factors) + cap_reg.insert(0, 'tech', cap_state['tech']) + if dr_type == 'dr_shift' or dr_type == 'dr_shape': + # cap_reg.insert(0, 'rscbin', cap_state['rscbin']) + cap_reg.insert(0, 'class', cap_state['rscbin']) + # Disaggregate cost from state to region level + cost_reg = pd.DataFrame() + for col in [x for x in cost_state.columns if x not in ['tech', 'rscbin']]: + for r in state2r[col]: + cost_reg[r] = cost_state[col] + cost_reg.insert(0, 'tech', cost_state['tech']) + if dr_type == 'dr_shift' or dr_type == 'dr_shape': + # cost_reg.insert(0, 'rscbin', cost_state['rscbin']) + cost_reg.insert(0, 'class', cost_state['rscbin']) + + cap = cap_reg.copy() + cost = cost_reg.copy() + # Define rsc class using tech for dr_shed + if dr_type == 'dr_shed': + cap['class'] = cap['tech'] + cost['class'] = cost['tech'] + + cap = (pd.melt(cap, id_vars=['tech', 'class']) + .set_index(['tech', 'class', 'variable']) + .sort_index()) + cap = cap.reset_index() + cost = pd.melt(cost, id_vars=['tech', 'class']) - # Convert dollar year - dr_shed_cost[dr_shed_cost.select_dtypes(include=['number']).columns] *= deflate['dr_shed'] + # Convert dollar year + cost[cost.select_dtypes(include=['number']).columns] *= deflate[dr_type] + + # Assign rsc cat + cap['var'] = 'cap' + cost['var'] = 'cost' + + # Combined cost and capacity + dr_dat = pd.concat([cap, cost]) + dr_dat['bin'] = dr_dat['class'].map(lambda x: x.replace(f'{dr_type}_', 'bin')) + dr_dat['class'] = dr_dat['class'].map(lambda x: x.replace(f'{dr_type}_', '')) + + dr_dat.rename(columns={'variable': 'r', 'bin': 'variable'}, inplace=True) + dr_dat = dr_dat[['tech', 'r', 'value','var','variable']].fillna(0) + + # Update supply curve capacity multiplier from state-level to region-level + dr_capacity_scalar_state = pd.read_csv(os.path.join(inputs_case, f'{dr_type}_capacity_scalar.csv')) + # Could be empty if regions included in run do not have DR data + if not dr_capacity_scalar_state.empty: + dr_capacity_scalar_reg = {} + for st in dr_capacity_scalar_state['r'].unique(): + scalar_df = {} + for r in state2r[st]: + scalar_ba = dr_capacity_scalar_state[dr_capacity_scalar_state['r'] == st].copy() + scalar_ba['r'] = r + scalar_df[r] = scalar_ba + dr_capacity_scalar_reg[st] = pd.concat(scalar_df) + dr_capacity_scalar_reg = pd.concat(dr_capacity_scalar_reg.values(), ignore_index=True) + + return dr_dat,dr_capacity_scalar_reg - # Assign rsc cat - dr_shed_cap['var'] = 'cap' - dr_shed_cost['var'] = 'cost' + # State-level DR data - process state-level shape and shift data + # Use capacity and cost to add DR to rsc_combined + disagg_data = pd.read_csv(os.path.join(inputs_case, 'disagg_state_lpf.csv')) + state2r = disagg_data.groupby('state')['r'].unique().apply(list).to_dict() + + dr_shed_dat, dr_shed_capacity_scalar_reg = process_dr_state_level('dr_shed', disagg_data, state2r) + dr_shape_dat, dr_shape_capacity_scalar_reg = process_dr_state_level('dr_shape', disagg_data, state2r) + dr_shift_dat, dr_shift_capacity_scalar_reg = process_dr_state_level('dr_shift', disagg_data, state2r) - # Combined cost and capacity - dr_shed_dat = pd.concat([dr_shed_cap, dr_shed_cost]) - dr_shed_dat['bin'] = dr_shed_dat['class'].map(lambda x: x.replace('dr_shed_','bin')) - dr_shed_dat['class'] = dr_shed_dat['class'].map(lambda x: x.replace('dr_shed_','')) + # Add DR data to rsc_combined if turned on, otherwise populate empty files + if int(sw.GSw_DRShed) == 1: + allout_list.append(dr_shed_dat) + dr_shed_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'dr_shed_capacity_scalar.csv'), index=False) - dr_shed_dat.rename(columns={'variable':'r','bin':'variable'}, inplace=True) - dr_shed_dat = dr_shed_dat[['tech','r','value','var','variable']].fillna(0) - allout_list.append(dr_shed_dat) + else: + dr_shed_capacity_scalar_reg = pd.DataFrame(columns=dr_shed_capacity_scalar_reg.columns) + dr_shed_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'dr_shed_capacity_scalar.csv'), index=False) + + if int(sw.GSw_DRShape) == 1: + allout_list.append(dr_shape_dat) + dr_shape_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'dr_shape_capacity_scalar.csv'), index=False) - if write: - # Update supply curve capacity multiplier from state-level to region-level - dr_shed_capacity_scalar_state = pd.read_csv(os.path.join(inputs_case,'dr_shed_capacity_scalar.csv')) - # Could be empty if regions included in run do not have DR data - if dr_shed_capacity_scalar_state.empty: - pass else: - dr_shed_capacity_scalar_reg ={} - for st in dr_shed_capacity_scalar_state['r'].unique(): - scalar_df = {} - for r in state2r[st]: - scalar_ba= dr_shed_capacity_scalar_state[dr_shed_capacity_scalar_state['r'] == st].copy() - scalar_ba['r'] = r - scalar_df[r] = scalar_ba - dr_shed_capacity_scalar_reg[st] = pd.concat(scalar_df) - dr_shed_capacity_scalar_reg = pd.concat(dr_shed_capacity_scalar_reg.values(), ignore_index=True) - dr_shed_capacity_scalar_reg.to_csv(os.path.join(inputs_case,'dr_shed_capacity_scalar.csv'), index=False) - + dr_shape_capacity_scalar_reg = pd.DataFrame(columns=dr_shape_capacity_scalar_reg.columns) + dr_shape_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'dr_shape_capacity_scalar.csv'), index=False) + + if int(sw.GSw_DRShift) == 1: + allout_list.append(dr_shift_dat) + dr_shift_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'dr_shift_capacity_scalar.csv'), index=False) + + else: + dr_shift_capacity_scalar_reg = pd.DataFrame(columns=dr_shift_capacity_scalar_reg.columns) + dr_shift_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'dr_shift_capacity_scalar.csv'), index=False) + + # write out empty files if DR is turned off + else: + for dr_type in ['dr_shed','dr_shape','dr_shift']: + dr_capacity_scalar_reg = pd.read_csv(os.path.join(inputs_case, f'{dr_type}_capacity_scalar.csv'), header=0) + dr_capacity_scalar_reg = pd.DataFrame(columns=dr_capacity_scalar_reg.columns) + dr_capacity_scalar_reg.to_csv(os.path.join(inputs_case, f'{dr_type}_capacity_scalar.csv'), index=False) + + # %%---------------------------------------------------------------------------------- ################################## # -- Combine everything -- # @@ -1034,7 +1088,7 @@ def main( alloutm.to_csv( os.path.join(inputs_case, "rsc_combined.csv"), index=False, header=True ) - + #%%---------------------------------------------------------------------------------- ####################### # -- Biomass -- # diff --git a/reeds/plots.py b/reeds/plots.py index 37b9654e3..b985c486a 100644 --- a/reeds/plots.py +++ b/reeds/plots.py @@ -1422,7 +1422,8 @@ def monthifier(x): ax[0].set_ylim(0, 1) else: pass - # ax[0].set_ylim(0,dfs[plotcols].max()) + # ax[0].set_ylim(0,dfs[plotcols].max()) + return f, ax diff --git a/reeds/reedsplots.py b/reeds/reedsplots.py index ae0758946..0a065fd05 100644 --- a/reeds/reedsplots.py +++ b/reeds/reedsplots.py @@ -2782,6 +2782,110 @@ def map_capacity_techs( plots.trim_subplots(ax, nrows, ncols, len(techs)) return f, ax +def map_potential_and_load( + case, year=2050, + cmap=cmocean.cm.rain,data_type='potential',title = '1% Shed Potential',case2 = None,drscen='1pct_24h_transreg', + ): + """ + """ + # title = 'Max Load Difference (No DR - With DR) across all weather years' + ### Get maps + dfmap = reeds.io.get_dfmap(case) + dfba = dfmap['r'] + dfstates = dfmap['st'] + ### Case data + if data_type=='potential': + # get supply curve capacity + dfcap = pd.read_csv(os.path.join(case,'inputs_case','rsc_combined.csv')) + dfcap = dfcap.loc[dfcap.sc_cat=='cap'].copy() + dfcap = dfcap.loc[dfcap['*i'].str.contains('dr_')] + # get supply curve capacity multipliers + dr_types = ['dr_shape','dr_shed'] + dr_cap_mults = {} + for dr_type in dr_types: + if dr_type =='dr_shape': + dr_cap_mults[dr_type] = pd.read_csv(os.path.join(reeds_path,'inputs','demand_response',f'{dr_type}_cap_scalar_{drscen}.csv')) + # combine p28 and p30 into z28 + dr_cap_mults[dr_type]['r'] = dr_cap_mults[dr_type]['r'].replace({'p28': 'z28', 'p30': 'z28'}) + # combine p119 and p122 + dr_cap_mults[dr_type]['r'] = dr_cap_mults[dr_type]['r'].replace({'p122': 'z122', 'p119': 'z122'}) + dr_cap_mults[dr_type] = dr_cap_mults[dr_type].groupby(['tech', 'r'], as_index=False).mean() + else: + dr_cap_mults[dr_type] = pd.read_csv(os.path.join(case,'inputs_case',f'{dr_type}_capacity_scalar.csv')) + dr_cap_mults = pd.concat(dr_cap_mults).reset_index(drop=True) + dr_cap_mults = dr_cap_mults[['tech','r',str(year)]].rename(columns={'tech':'*i'}) + # scale cap by mutliplier + dfcap = dfcap.set_index(['*i','r']).drop(columns =['sc_cat','rscbin']) + dr_cap_mults = dr_cap_mults.set_index(['*i','r']) + dfcap = dfcap.merge(dr_cap_mults, on=['*i','r']) + dfcap['potential_MW'] = dfcap['value'] * dfcap[str(year)] + dfcap = dfcap.reset_index() + _vmax = None + _vmax = 2 + elif data_type=='load': + # get load data + load_noDR = reeds.io.read_file(os.path.join(case,'inputs_case', 'load.h5'), parse_timestamps=True) + #load_noDR = reeds.io.read_file('/projects/last10p/lserpe/reeds_dr/repo1/ReEDS-2.0/inputs/load/EER_Baseline_AEO2023_load_hourly.h5', parse_timestamps=True) + load_noDR = load_noDR.reset_index() + load_noDR['datetime'] = load_noDR['datetime'].astype(str) + load_noDR = load_noDR[load_noDR['year']==year] + + load_DR = reeds.io.read_file(os.path.join(case2,'inputs_case', 'load.h5'), parse_timestamps=True) + #load_DR = reeds.io.read_file('/projects/last10p/lserpe/reeds_dr/repo1/ReEDS-2.0/inputs/load/shed_1_pct_load_hourly.h5', parse_timestamps=True) + load_DR = load_DR.reset_index() + load_DR['datetime'] = load_DR['datetime'].astype(str) + load_DR = load_DR[load_DR['year']==year] + + # difference in each hour across all weather years + regions = [col for col in load_noDR.columns if col not in ['datetime','year']] + load_diff = load_noDR[regions] - load_DR[regions] + # Find max difference for each region + dfcap = pd.DataFrame({ + 'r':regions, + 'potential_MW':load_diff.max().values + }) + # # Find mean difference for each region + # dfcap = pd.DataFrame({ + # 'r':regions, + # 'potential_MW':load_diff.mean().values + # }) + + ### Plot it + plt.close() + f, ax = plt.subplots(figsize=(8, 8), dpi=150) + + dfval = dfcap.groupby('r').potential_MW.sum().round(3) + dfplot = dfba.copy() + dfplot['GW'] = (dfval / 1000).fillna(0) + + dfba.plot( + ax=ax, + facecolor='none', edgecolor='k', lw=0.1, zorder=10000) + dfstates.plot( + ax=ax, + facecolor='none', edgecolor='k', lw=0.2, zorder=10001) + dfplot.plot( + ax=ax, column='GW', cmap=cmap, legend=True, + # vmin=0, vmax=_vmax, + # legend_kwds={ + # 'shrink': 0.75, 'pad': 0, 'orientation': 'horizontal', + # 'label': '[GW]', + # } + vmin=0, vmax=int(_vmax), + legend_kwds={ + 'shrink': 0.75, 'pad': 0, 'orientation': 'horizontal', + 'label': '[GW]', + 'format': '{:.0f}'.format, + 'ticks': [0, 1, 2], # Set 3 ticks: min, mid, max + } + + ) + ax.axis('off') + ax.set_title( + '{} ({})'.format(title, year), + x=0.1, ha='left', va='top') + return f, ax + def map_capacity_markers( case, level='r', year=2050, ms=5, @@ -5287,7 +5391,7 @@ def get_tech_colors_order(order='fuel_storage_vre'): ### For this particular plot we put storage below VRE if order == 'fuel_storage_vre': vre_keywords = ['wind', 'pv', 'solar', 'csp'] - storage_keywords = ['battery', 'pump', 'evmc', 'storage'] + storage_keywords = ['battery', 'pump', 'storage','dr'] vre_stor_can = vre_keywords + storage_keywords + ['canada'] plotorder = [ k for k in bokehcolors.keys() @@ -6915,6 +7019,118 @@ def map_output_byyear( return f, ax, dictplot +def dr_shift_resource_compare(case, year,savepath, region = 'ex', shift_tech = 'dr_shift_1',weather_year=2012): + + dr_shift_input_files = {'Charge':'dr_shift_profile_increase.h5', + 'Discharge':'dr_shift_profile_decrease.h5', + 'Energy':'dr_shift_profile_energy.h5',} + + dr_shift_rep_files = {'Charge':'dr_shift_charge.csv', + 'Discharge':'dr_shift_discharge.csv', + 'Energy':'dr_shift_profile_energy.csv',} + + dr_shift_dispatch_rep_files = {'Charge':'stor_in.csv', + 'Discharge':'gen_h.csv', + 'Energy':'stor_level.csv',} + + if region =='ex': + cap = pd.read_csv(os.path.join(case,'outputs','cap.csv')) + cap = cap.loc[(cap.i == shift_tech) & (cap.t == year)] + region = cap.loc[cap['Value'].idxmax(), 'r'] + + baseline_dfs = {} + for k,v in dr_shift_input_files.items(): + df = reeds.io.read_file(os.path.join(case,'inputs_case',v)) + df = df.loc[df.year == year] + cols_tech = [x for x in df.columns if x.startswith(shift_tech) and x.endswith(region)] + df = df[['year'] + cols_tech] + df = df.loc[df.index.year == weather_year] + baseline_dfs[k] = df + temp = df.rename(columns = {cols_tech[0]:f'baseline_{k}'}) + output_csv = pd.concat((output_csv,temp[f'baseline_{k}']),axis = 1) + + + rep_dfs = {} + for k,v in dr_shift_rep_files.items(): + df = pd.read_csv(os.path.join(case,'inputs_case','rep',v)) + hr_map = pd.read_csv(os.path.join(case,'inputs_case','rep','hmap_myr.csv')) + df = pd.merge(left = df,right = hr_map, on = 'h', how = 'outer') + df = df.loc[(df.t == year)& (df['*i']== shift_tech)] + df = df.loc[df.r == region].sort_values('yearhour').rename(columns = {'t':'year'}) + df['date'] = pd.date_range(start=f'1/1/{year}', periods=8760, freq='h') + df.set_index('date', inplace=True) + df = df[['Values']] + rep_dfs[k] = df + output_csv = pd.concat([output_csv,df.rename(columns = {'Values':f'rep_{k}'})],axis = 1) + + + rep_gen = {} + for k,v in dr_shift_dispatch_rep_files.items(): + df = pd.read_csv(os.path.join(case,'outputs',v)).rename(columns = {'Value':'GEN','allh':'h'}) + cap = pd.read_csv(os.path.join(case,'outputs','cap.csv')).rename(columns = {'Value':'CAP'}) + df = pd.merge(left = df, right = cap) + hr_map = pd.read_csv(os.path.join(case,'inputs_case','rep','hmap_myr.csv')) + df = pd.merge(left = df,right = hr_map, on = 'h', how = 'outer') + df = df.loc[(df.t == year)& (df['i']== shift_tech)] + df = df.loc[df.r == region].sort_values('yearhour').rename(columns = {'t':'year'}) + temp = pd.DataFrame({'yearhour': range(1, 8761), 'date': pd.date_range(start=f'1/1/{year}', periods=8760, freq='h')}) + # # temp = pd.concat([temp] * len(shift_techs), ignore_index=True) + df = pd.merge(left = temp, right = df, how = 'outer').fillna(0) + df.set_index('date', inplace=True) + df['Values'] = df.GEN/df.CAP + df.Values + df.loc[df.Values <0,'Values'] = 0 + df = df[['Values']].fillna(0) + rep_gen[k] = df + output_csv = pd.concat([output_csv,df.rename(columns = {'Values':f'deploy_{k}'})],axis = 1) + + plots_dr = {'DR Shift Resource Potential': {'Energy':(baseline_dfs['Energy'],'k','line'), + 'Charge':(baseline_dfs['Charge'],'red','fill'), + 'Discharge':(baseline_dfs['Discharge'],'green','fill')}, + 'DR Shift Rep-period: Charge': {'Potential':(baseline_dfs['Charge'],'k','line'), + 'Rep':(rep_dfs['Charge'],'grey','fill'), + 'Deploy':(rep_gen['Charge'],'red','line')}, + 'DR Shift Rep-period: Discharge': {'Potential':(baseline_dfs['Discharge'],'k','line'), + 'Rep':(rep_dfs['Discharge'],'grey','fill'), + 'Deploy':(rep_gen['Discharge'],'red','line')}, + 'DR Shift Rep-period: Energy': {'Potential':(baseline_dfs['Energy'],'k','line'), + 'Rep':(rep_dfs['Energy'],'grey','fill'), + 'Deploy':(rep_gen['Energy'],'red','line')}, + 'DR Shift Dispatch': {'Deployed Discharge':(rep_gen['Discharge'],'green','line'), + 'Deployed Charge':(rep_gen['Charge'],'red','line'), + 'Charge limits':(baseline_dfs['Charge'],'red','fill'), + 'Discharge limits':(baseline_dfs['Discharge'],'green','fill')}, + } + + output_csv.to_csv(os.path.join(os.path.split(savepath)[0],f"dr_shift-{region}-{year}.csv")) + + save_dict = {} + # Plot Charge, Discharge, Energy together through year + for title, plot_dict in plots_dr.items(): + key = list(plot_dict.keys()) + plot_dict[key[0]][0]['Unit'] = 1 + f,ax = plots.plotyearbymonth( + plot_dict[key[0]][0], + plotcols= ('Unit'), + colors=['grey'], style='line', lwforline=0.5, ls = ':' + ) + for k in key: + plots.plotyearbymonth( + plot_dict[k][0], + plotcols= ([shift_tech + '|' +region] if shift_tech + '|' +region in plot_dict[k][0].columns else 'Values'), + colors=[plot_dict[k][1]], alpha = 0.5, + style = plot_dict[k][2], + f=f, ax=ax, + ) + ax.flat[0].set_title(f'{title}: {year}, {region}') + handles = [plt.Line2D([0], [0], color=plot_dict[k][1], lw=2) for k in key] + ax.flat[0].legend(handles, [f'{k}' for k in key], loc='upper left', bbox_to_anchor=(1, 1)) + + savename = f"dr_shift-{title.replace(':','').replace(' ','_')}-{region}-{year}.png" + f.savefig(os.path.join(savepath, savename)) + + return f + def map_prm(case, tmin=2023, cmap=cmocean.cm.rain, scale=3, fontsize=7, vmax=None): dfmap = reeds.io.get_dfmap(case) sw = reeds.io.get_switches(case) diff --git a/reeds/resource_adequacy/capacity_credit.py b/reeds/resource_adequacy/capacity_credit.py index 876d0c3a0..8bc3047aa 100644 --- a/reeds/resource_adequacy/capacity_credit.py +++ b/reeds/resource_adequacy/capacity_credit.py @@ -91,13 +91,6 @@ def set_marg_vre_step_size(t, sw, gdx, hierarchy): return marg_vre_mw_cc -def load_evmc_data(csv_path,inputs_case,h_dt_szn, - set_h_szn_cols=['h','ccseason','hour'], - set_idx_cols=['h','hour', 'year','ccseason']): - df = pd.read_csv(os.path.join(inputs_case,csv_path)) - df = pd.merge(df,h_dt_szn[set_h_szn_cols],on='hour',how='left') - return df.set_index(set_idx_cols) - #%% Main function def reeds_cc(t, tnext, casedir): @@ -213,17 +206,10 @@ def reeds_cc(t, tnext, casedir): # Restrict capacity credit evaluation to use 2012 only (rather than multi-year) load_profiles = load_profiles[load_profiles.index.get_level_values('year') == 2012].copy() - # Get EVMC data if necessary - if int(sw['GSw_EVMC']): - # Get EVMC props - evmccf_shape_increase = load_evmc_data('evmc_shape_profile_increase.csv',inputs_case,h_dt_szn) - evmccf_shape_decrease = load_evmc_data('evmc_shape_profile_decrease.csv',inputs_case,h_dt_szn) - # Initialize dataframes to store results dict_cc_old = {} dict_cc_mar = {} dict_sdbin_size = {} - dict_cc_evmc = {} dict_net_load = {} dict_net_load_2012 = {} @@ -246,15 +232,6 @@ def reeds_cc(t, tnext, casedir): # Hourly profiles load_profile_ccreg = load_profiles[ccreg] - # EVMC profile - if int(sw['GSw_EVMC']): - evmc_shape_reg = [r for r in resources_ccreg.r.drop_duplicates() - if r in evmccf_shape_increase.columns] - evmccf_shape_increase_ccreg = evmccf_shape_increase[['i'] + evmc_shape_reg] - evmc_shape_reg = [r for r in resources_ccreg.r.drop_duplicates() - if r in evmccf_shape_decrease.columns] - evmccf_shape_decrease_ccreg = evmccf_shape_decrease[['i'] + evmc_shape_reg] - # Storage information # Note that we only calculate storage capacity credit for storage in the same ccreg cap_stor_agg_ccreg = cap_stor_agg[ @@ -292,22 +269,13 @@ def reeds_cc(t, tnext, casedir): if ccseason == 'year': load_profile_ccseason = load_profile_ccreg.copy() hours_considered = int(sw['cc_ann_hours']) - if int(sw['GSw_EVMC']): - evmc_shape_load_ccseason = evmccf_shape_increase_ccreg.copy() - evmc_shape_gen_ccseason = evmccf_shape_decrease_ccreg.copy() else: load_profile_ccseason = load_profile_ccreg.xs( ccseason, axis=0, level='ccseason').reset_index() hours_considered = int(sw['GSw_PRM_CapCreditHours']) - if int(sw['GSw_EVMC']): - evmc_shape_load_ccseason = evmccf_shape_increase_ccreg.xs( - ccseason, axis=0, level='ccseason').reset_index() - evmc_shape_gen_ccseason = evmccf_shape_decrease_ccreg.xs( - ccseason, axis=0, level='ccseason').reset_index() - - # log.debug(ccseason, int(len(load_profile_ccseason) / 7)) + # log.debug(ccseason, int(len(load_profile_ccseason) / 7)) ###### Calculate the capacity credit for each resource cc_vg_results = cc_vg( vg_power=vregen_ccseason[ccseason][resourcelist].values, @@ -390,38 +358,6 @@ def pivot_melt_data(df): index=['year','hour','h'], columns=['i','r'], values='value') - if int(sw['GSw_EVMC']): - evmc_shape_inc_timestamp = pivot_melt_data(evmc_shape_load_ccseason) - evmc_shape_dec_timestamp = pivot_melt_data(evmc_shape_gen_ccseason) - evmc_years = evmc_shape_dec_timestamp.index.get_level_values('year').unique() - #do as evmc cap credit instead? - if len(evmc_years)==1: - gen_array = evmc_shape_dec_timestamp.values - evmc_shape_inc_timestamp.values - evmc_shape_marg_power = np.tile(gen_array,(7,1)) - elif len(evmc_years)==7: - evmc_shape_marg_power = evmc_shape_dec_timestamp.values - evmc_shape_inc_timestamp.values - else: - log.info("no weather year data on EVMC for any relevant regions; skipping") - continue - - ###### Calculate the capacity credit for each evmc_shape resource - results_evmc_shape = cc_evmc_shape(load=cc_vg_results['load'], - load_net=cc_vg_results['load_net'], - top_hours_net=cc_vg_results['top_hours_net'], - top_hours_n=hours_considered, - evmc_shape_marg_power=evmc_shape_marg_power*float(sw['marg_evmc_mw']), - cap_marg=float(sw['marg_evmc_mw'])) - - evmc_cc_i = pd.melt(pd.DataFrame(data=[np.round(results_evmc_shape, decimals=5), ], - columns=evmc_shape_dec_timestamp.columns)) - - if (ccreg, ccseason) in dict_cc_evmc.keys(): - dict_cc_evmc[ccreg, ccseason] = pd.concat( - [dict_cc_evmc[ccreg, ccseason], - evmc_cc_i[['r', 'i', 'value']]]) - else: - dict_cc_evmc[ccreg, ccseason] = evmc_cc_i[['r', 'i', 'value']] - # ------ AGGREGATE OUTPUTS ------ cc_old = ( pd.concat(dict_cc_old, axis=0) @@ -498,23 +434,12 @@ def pivot_melt_data(df): .reindex(['i','r','ccseason','t','value'], axis=1) ) - if int(sw['GSw_EVMC']): - cc_evmc = ( - pd.concat(dict_cc_evmc, axis=0) - .reset_index().drop(['level_2', 'level_0'], axis=1) - .rename(columns={'level_1':'ccseason'}) - .assign(t=str(tnext)) - .reindex(['i','r','ccseason','t','value'], axis=1) - ) - else: - cc_evmc = pd.DataFrame(columns=['i', 'r', 'ccseason', 't', 'value']) # ---------------- RETURN A DICTIONARY WITH THE OUTPUTS FOR REEDS -------- cc_results = { 'cc_mar': cc_mar, 'cc_old': cc_old, - 'cc_evmc': cc_evmc, 'sdbin_size': sdbin_size, 'net_load': net_load, 'net_load_2012': net_load_2012, @@ -648,53 +573,6 @@ def cc_vg(vg_power, load, vg_marg_power, top_hours_n, cap_marg): return results -def cc_evmc_shape(load,load_net,top_hours_net,top_hours_n,evmc_shape_marg_power,cap_marg): - ''' - Calculate the capacity credit of marginal evmc_shape resources - using a top hour approximation. - Args: - load: numpy array containing time-synchronous load profile for all - hours_n. Units: MW - load_net: net load profile. Units: MW - top_hours_net: arguments for the highest net load hours in load_net, - calculated in cc_vg(). Is of length top_hours_n - top_hours_n: number of top hours to consider for the calculation - evmc_shape_marg: numpy array containing capacity factor profiles for marginal - builds of each evmc_shape resource bin - cap_marg: marginal capacity used to calculate marginal capacity credit - Returns: - cc_marg: marginal capacity credit for each evmc_shape resource - Notes: - Currently only built for hourly profiles. Generalize to any duration - timestep. - ''' - hours_n = len(load) - - # get the marg net load for each evmc_shape resource [hours x resources] - load_marg = ( - np.tile(load_net.reshape(hours_n, 1), (1, evmc_shape_marg_power.shape[1])) - - evmc_shape_marg_power) - - ### Get the peak net load hours [top_hours_n x evmc_shape resources] - peak_net_load = np.transpose(np.array( - ### np.partition returns the max top_hours_n values, unsorted; then np.sort sorts. - ### So we only sort top_hours_n values instead of the whole array, saving time. - [np.sort( - np.partition(load_marg[:,n], -top_hours_n)[-top_hours_n:] - )[::-1] - for n in range(load_marg.shape[1])] - )) - - load_reduct_marg = np.tile( - load_net[top_hours_net].reshape(top_hours_n, 1), - (1, evmc_shape_marg_power.shape[1]) - ) - peak_net_load - # get the marginal CCs for each resource - cc_marg = np.sum(load_reduct_marg, axis=0) / top_hours_n / cap_marg - - # setting the lower bound for marginal CC to be 0.01 - cc_marg[cc_marg < 0.01] = 0.0 - return cc_marg # -------------------------CALC REQUIRED MWHS---------------------------------- # @numba.jit(nopython=True, cache=True) diff --git a/reeds/resource_adequacy/prep_data.py b/reeds/resource_adequacy/prep_data.py index fd63e86f1..97643dd55 100644 --- a/reeds/resource_adequacy/prep_data.py +++ b/reeds/resource_adequacy/prep_data.py @@ -231,7 +231,7 @@ def _devint_storage(dfin): ], axis=0) #%% Remove VRE and demand-modifying techs (H2 production, DAC, DR) - demand_techs = tech_subset_table[['CONSUME', 'DR_SHED']].values + demand_techs = tech_subset_table[['CONSUME', 'DR_SHED','DR_SHAPE','DR_SHIFT']].values cap_nonloadtechs = cap_ivr.loc[~cap_ivr.i.isin(demand_techs)].copy() vretechs_i = resources.i.str.lower().unique() @@ -334,6 +334,25 @@ def intify(v): .reindex(h_dt_szn_load_years.index) ) + ### DR shape: make it all inflexible for PRAS + load_dr_shape_all_hourly = ( + gdxreeds['dr_shape_load_mod'] + .groupby(['r', 'allh']).Value.sum().reset_index() + .merge(h_dt_szn_load_years[['h']].reset_index(), left_on='allh', right_on='h') + .pivot(index='timestamp', columns='r', values='Value') + .fillna(0) + .reindex(h_dt_szn_load_years.index) + ) + + ### DR shift: make it all inflexible for PRAS + load_dr_shift_all_hourly = ( + gdxreeds['dr_shift_load_mod'] + .groupby(['r', 'allh']).Value.sum().reset_index() + .merge(h_dt_szn_load_years[['h']].reset_index(), left_on='allh', right_on='h') + .pivot(index='timestamp', columns='r', values='Value') + .fillna(0) + .reindex(h_dt_szn_load_years.index) + ) #%% Load shedding ## Get the DR shed load for all weather years gen_h_stress = gdxreeds['gen_h_stress_filt'] @@ -383,6 +402,17 @@ def intify(v): if int(sw.GSw_DRShed) and not gen_shed_combined.empty: print(f'Subtracted shed load from PRAS load since GSw_DRShed = {sw.GSw_DRShed}') pras_load = pras_load.subtract(gen_shed_combined, fill_value=0).clip(lower=0) + + ## Modify load for DR shape impacts + if int(sw.GSw_DRShape): + print(f'Subtracted shape load from PRAS load since GSw_DRShape = {sw.GSw_DRShape}') + pras_load = pras_load.add(load_dr_shape_all_hourly, fill_value=0).clip(lower=0) + + ## Modify load for DR shift impacts + if int(sw.GSw_DRShift): + print(f'Subtracted shift load from PRAS load since GSw_DRShape = {sw.GSw_DRShape}') + pras_load = pras_load.add(load_dr_shift_all_hourly, fill_value=0).clip(lower=0) + ### Add flexibly sited load if its profile is inflexible (GSw_LoadSiteCF = 1) if ( diff --git a/reeds/resource_adequacy/ra_calcs.py b/reeds/resource_adequacy/ra_calcs.py index cd325d75d..aeb9cce25 100644 --- a/reeds/resource_adequacy/ra_calcs.py +++ b/reeds/resource_adequacy/ra_calcs.py @@ -136,7 +136,6 @@ def main(t, tnext, casedir, iteration=0): cc_results = { 'cc_mar': pd.DataFrame(columns=['i','r','ccreg','szn','t','Value']), 'cc_old': pd.DataFrame(columns=['i','r','ccreg','szn','t','Value']), - 'cc_evmc': pd.DataFrame(columns=['i','r','szn','t','Value']), 'sdbin_size': pd.DataFrame(columns=['ccreg','szn','bin','t','Value']), 'mean_forced_outage_rate': pd.DataFrame(columns=['i','r','ccseason','t','Value']), } diff --git a/reeds/resource_adequacy/ra_switches.csv b/reeds/resource_adequacy/ra_switches.csv index 092ca9cd9..9b1600b33 100644 --- a/reeds/resource_adequacy/ra_switches.csv +++ b/reeds/resource_adequacy/ra_switches.csv @@ -4,7 +4,6 @@ cc_ann_hours,20,int,number of top hours considered in annual cc calculations cc_calc_annual,FALSE,boolean,when true: annual cc values are calculated cc_calc_seasonal,TRUE,boolean,when true: seasonal cc values are calculated cc_default_rte,0.85,float,default efficiency value to use for assessing peaking storage potential -cc_marg_evmc_mw,100,int,step size used for marginal DR cc calculations cc_max_stor_pen,0.9,float,max fraction of peak load considered for storage peaking capacity assessment cc_safety_bin_size,100000,int,default value (in MW) for the safety bin size in ReEDS cc_stor_buffer,60,int,additional duration (in minutes) that is required of storage to receive full capacity credit diff --git a/runreeds.py b/runreeds.py index 34ed0ed3d..6a113cb61 100644 --- a/runreeds.py +++ b/runreeds.py @@ -213,7 +213,7 @@ def check_cases_format(df_cases): + '\n'.join(f'"{i}"' for i in spaces) ) raise ValueError(err) - + def check_compatibility(sw): if int(sw['startyear']) != 2010: @@ -377,7 +377,7 @@ def check_compatibility(sw): float(limit) except ValueError: raise ValueError(err) - + if int(sw['GSw_PRM_UpdateMethod']) == 0 and int(sw['GSw_PRM_CapCredit']) == 1 and int(sw['GSw_PRM_StressIterateMax']) > 0: raise ValueError( "The combination of GSw_PRM_UpdateMethod=0, GSw_PRM_CapCredit=1, " diff --git a/tests/objective_function_params.yaml b/tests/objective_function_params.yaml index 527ad9974..b0460c7dc 100644 --- a/tests/objective_function_params.yaml +++ b/tests/objective_function_params.yaml @@ -56,6 +56,8 @@ cost_cap: - hydro - psh - dr_shed + - dr_shift + - dr_shape cost_cap_fin_mult: indexsets: - valinv