Conversation
* Add new open-siting 10-hr supply curve at lat/lon resolution * Update writesupplycurves.py to process new SC data using same procedures as wind/solar * reeds/io.py: add nearest-point mapping for PSH to assemble_supplycurve() function * Add regional tech class assignment procedures to hourlize/resource.py * runfiles.csv: add PSH supply curve entry and remove old PSH supply curve capacity/cost entries * cases.csv: temporarily remove `pshsupplycurve` switch options * inputs/supply_curve/dollaryear.csv: add PSH supply curve entry
Future PSH supply curves will be stored at $/MW, consistent with all other tech supply curve costs processed by the agg_supplycurve function in writesupplycurves.py
…ly_curves_durations.csv
- clipping procedure occurs after supply curve assembly and conversion to 2004$ but before binning
- open8hr to be added later (fixing error)
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR covers the annual update of pumped-storage hydropower (PSH) supply curve input files.
PSH input files are now stored at site-level spatial resolution, and input processing procedures are modified to aggregate the site-level data up to the spatial resolution of each corresponding ReEDS run. In effect, PSH supply curves are processed using the same procedures as those used for other RSC technologies such as upv, wind-ons, and wind-ofs.
Following the standardization of supply curve input file formats, the new PSH supply curve input files consolidate the
wExistandwEphsiting restrictions into the "Open" case and adds a new "Limited" case with increased PSH siting restrictions from the "Reference" case. Below is a comparison of the new binned supply curves for 8-hr storage duration PSH vs the old binned supply curves:Technical details
Site-Level PSH Supply Curve Input Files:
PSH supply curve capacity and capital cost input files are now stored in a single, site-level spatial resolution input file (previously separated and at z132-resolution), using the latitude/longitude coordinates of the lower reservoir as the site of capacity potential. The coordinates of each site's corresponding upper reservoir are also provided in the input files, available only for the purpose of post-ReEDS mapping. Interconnection and transmission costs are appended to the PSH supply curve using each site's lower reservoir latitude/longitude coordinates to map to the nearest (Euclidean distance) reV site in
inputs/supply_curve/interconnection_land.h5- by using latitude/longitude coordinates instead ofsc_point_gidmapping, the PSH supply curve site locations stay independent of future updates to the reV sites in the model.PSH Supply Curve Scenarios:
To simplify the combinations and reduce file count in
inputs/supply_curve, land exclusions layers for sites utilizing existing reservoirs and/or ephemeral streams have been consolidated into 3 distinct scenarios:limited,reference, andopen. Below are the exclusion layers included in each of the 3 scenarios:open: urbanized/developed areas, existing waterbodies, 100yr flood plains, various federal, state, and local protected areas and conservations, glaciers, snow/ice, and wetland ecosystems, and airports/airpads/helipadsreference: all "open" exclusions [plus] ephemeral streams, critical habitats for endangered species, railways/pipelines/roads (incl. 30m buffer), and national wetlandslimited: all "reference" exclusions [plus] agricultural lands, mature forests on federal lands, building footprints, and tribal areas (reservation and off reservation trust land)Below are the new unbinned

open,reference, andlimitedPSH supply curves for 8-, 10-, and 12-hr PSH storage durations:Implementation notes
Input Files:
inputs/storage/PSH_supply_curves_durations.csvwith entries for new PSH supply curve filescases.csv: update options forpshsupplycurveswitch, and addnumbins_pshswitch for controlling PSH supply curve bin numberinputs/supply_curve/dollaryear.csvwith entry for new PSH supply curve filesInput Processing
runfiles.csv: remove oldpsh_supply_curves_{capacity|cost}.csventries and add newsupplycurve_psh.csventrywritesupplycurves.py: update procedures inagg_supplycurve()function for assembling/aggregating supply curves for use with site-level PSH supply curves.$4000/kW [2004$]to improve binning resolution at the low-cost endio.py: add nearest-point mapping of interconnection costs to PSH supply curve toassemble_supplycurve()functionAdditional changes
b_inputs.gms: Remove unit adjustment for pumped-hydro supply curve costs, as new input files are already stored at$/MWrecf.csv: Remove deprecatedcopyargument frompd.concat()callsSwitches added/removed/changed
Issues resolved
Issue #174
Known incompatibilities
Note that while available generating capacity for PSH in ReEDS does account for frictional head losses in the conveyance system, the round-trip efficiency for PSH still uses a generic value that does not account for these losses, which are site-specific. Future work will explore ways to better account for efficiency reductions from frictional losses, either by incorporating site-level efficiencies into supply curve data or calculating a reasonable standard efficiency adjustment.
Relevant sources or documentation
Validation, testing, and comparison report(s)
Checklist for author
Details to double-check
d_objective.gms, they are included inobjective_function_params.yamlfor completeness checkinghourlize/resource.pywas rerun to regenerate the existing/prescribed VRE capacity dataGeneral information to guide review
Did you use LLM tools (chatbot or copilot) in the preparation of this PR? If so, describe how
Tag points of contact here if you would like additional review of the relevant parts of the model