Skip to content

Update inputs documentation - #205

Open
wesleyjcole wants to merge 38 commits into
mainfrom
wjc/docs_update
Open

wesleyjcole wants to merge 38 commits into
mainfrom
wjc/docs_update

Conversation

@wesleyjcole

Copy link
Copy Markdown
Contributor

Summary

This pull request builds on #157 and updates the ReadMe files in various inputs folders to document what the input files are, their units, and, in many cases, something about their source. Every file now has an entry (and stale entries, plus a couple unused files were removed). The entries are not 100% comprehensive, but they sure provide a lot more than our previous coverage.

Technical details

Implementation notes

I used Claude for the implementation, which traced each input file through the model to verify where and how it was used. Claude aslo pulled from this repo's history and the prior repo's history when needed to understand why files were added and gain context on file provenance. Finally, Claude cross-walked inputs with the Inputs_Processing repo to create links back to files where there was an obvious linkage (e.g., filenames matched exactly from the Inputs_Processing ReadMe and description).

I reviewed each entry, and made a few minor edits. I didn't find any cases where Claude made an error (every time I found an error, it was with a pre-existing description).

inputs/capacity_exogenous/cappayments.csv and inputs/financials/supply_chain_adjust.csv were both removed because they were not used.

I moved the Clean Air Act description from the nationa_generation folder to the emission_constraints folder.

I also asked Claude to check for any inconsistencies between the model and our model documentation. It identified several inconsistencies, which I fixed (using my words).

Note that when I updated references.bib several entries were removed. I verified that they aren't in Zotero, so it's possible that entries were added in the past but not synced with the online Zotero repository.

Issues resolved

Supports #43

Validation, testing, and comparison report(s)

Because this is a documentation only fix, model results are unchanged. I verified documentation changes by tracing input files, asking others on the team questions as needed, and inspecting input files.

Checklist for author

Details to double-check

  • Charge code provided to reviewers
  • [ ] Included comparison reports for appropriate test cases
  • Documentation updated if necessary

General information to guide review

  • Zero impact on results of default case
  • No large data file(s) added/modified
  • No substantive impact on runtime for full-US reference case
  • No substantive impact on folder size for full-US reference case
  • No change to process flow (runreeds.py, reeds/core/solve/solve.py)
  • No change to code organization
  • No change to package requirements (environment.yml or Project.toml)

Did you use LLM tools (chatbot or copilot) in the preparation of this PR? If so, describe how

Yes, as described in the implementation section.

Tag points of contact here if you would like additional review of the relevant parts of the model

Comment thread inputs/zones/README.md
Comment on lines +3 to +4
Zone definition sets are maintained in [`zones/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/zones) of the ReEDS_Input_Processing repo,
one folder per set.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Zone definition sets are maintained in [`zones/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/zones) of the ReEDS_Input_Processing repo,
one folder per set.
Zone definition sets are maintained in [`zones/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/zones) of the ReEDS_Input_Processing repo, one folder per set.

Comment on lines +3 to +5
All files in this folder are generated by [`exogenous_canadian_trade/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/exogenous_canadian_trade) in the ReEDS_Input_Processing repo,
from historical trade data and future province-level projections published by the Canada Energy Regulator.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
All files in this folder are generated by [`exogenous_canadian_trade/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/exogenous_canadian_trade) in the ReEDS_Input_Processing repo,
from historical trade data and future province-level projections published by the Canada Energy Regulator.
All files in this folder are generated by [`exogenous_canadian_trade/`](https://github.com/ReEDS Model/ReEDS_Input_Processing/tree/main/exogenous_canadian_trade) in the ReEDS_Input_Processing repo, from historical trade data and future province-level projections published by the Canada Energy Regulator.

Comment thread inputs/load/README.md
Comment on lines +5 to +7
The `demand_AEO_*` files are generated by [`aeo_updates/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/aeo_updates) in the ReEDS_Input_Processing repo,
which combines EIA retail sales and behind-the-meter PV for historical years with AEO electricity
consumption growth for projected years.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `demand_AEO_*` files are generated by [`aeo_updates/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/aeo_updates) in the ReEDS_Input_Processing repo,
which combines EIA retail sales and behind-the-meter PV for historical years with AEO electricity
consumption growth for projected years.
The `demand_AEO_*` files are generated by [`aeo_updates/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/aeo_updates) in the ReEDS_Input_Processing repo, which combines EIA retail sales and behind-the-meter PV for historical years with AEO electricity consumption growth for projected years.

Comment thread inputs/load/README.md
Comment on lines +9 to +13
Each file gives an annual load growth multiplier [unitless] by state (`r`) and year, normalized to
1.0 in the file's first year. `hourly_load.py` scales the historical hourly state load profiles to
match annual totals in that baseline year, then applies these multipliers to project load forward.
The scenario is chosen with the `demandscen` switch, and the file is copied into `inputs_case/` as
`load_multiplier.csv`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Each file gives an annual load growth multiplier [unitless] by state (`r`) and year, normalized to
1.0 in the file's first year. `hourly_load.py` scales the historical hourly state load profiles to
match annual totals in that baseline year, then applies these multipliers to project load forward.
The scenario is chosen with the `demandscen` switch, and the file is copied into `inputs_case/` as
`load_multiplier.csv`.
Each file gives an annual load growth multiplier [unitless] by state (`r`) and year, normalized to 1.0 in the file's first year.
`hourly_load.py` scales the historical hourly state load profiles to match annual totals in that baseline year, then applies these multipliers to project load forward.
The scenario is chosen with the `demandscen` switch, and the file is copied into `inputs_case/` as `load_multiplier.csv`.

Comment on lines +3 to +6
Most files in this folder give the cost and performance trajectory for one technology
family, and are selected by the matching `plantchar_{tech}` switch in `cases.csv`,
which is set to the full file name without the extension
(e.g. `plantchar_coal = coal_ATB_2024_moderate`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Most files in this folder give the cost and performance trajectory for one technology
family, and are selected by the matching `plantchar_{tech}` switch in `cases.csv`,
which is set to the full file name without the extension
(e.g. `plantchar_coal = coal_ATB_2024_moderate`).
Most files in this folder give the cost and performance trajectory for one technology family, and are selected by the matching `plantchar_{tech}` switch in `cases.csv`, which is set to the full file name without the extension (e.g. `plantchar_coal = coal_ATB_2024_moderate`).

Comment on lines +23 to +27
The wind and geothermal files instead carry their units in the column headers
(`Overnight Cap Cost $/kW`, `Fixed O&M $/(kW-yr)`, `Var O&M $/MWh`,
`Cap cost 1000$/MW`, `Fixed O&M 1000$/MW-yr`) and add a `CF_mult` capacity factor
multiplier; the offshore wind and geothermal-class files also add `rsc_mult`, a
supply-curve cost reduction multiplier.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The wind and geothermal files instead carry their units in the column headers
(`Overnight Cap Cost $/kW`, `Fixed O&M $/(kW-yr)`, `Var O&M $/MWh`,
`Cap cost 1000$/MW`, `Fixed O&M 1000$/MW-yr`) and add a `CF_mult` capacity factor
multiplier; the offshore wind and geothermal-class files also add `rsc_mult`, a
supply-curve cost reduction multiplier.
The wind and geothermal files instead carry their units in the column headers (`Overnight Cap Cost $/kW`, `Fixed O&M $/(kW-yr)`, `Var O&M $/MWh`, `Cap cost 1000$/MW`, `Fixed O&M 1000$/MW-yr`) and add a `CF_mult` capacity factor multiplier; the offshore wind and geothermal-class files also add `rsc_mult`, a supply-curve cost reduction multiplier.

Comment on lines +29 to +31
Costs are in the dollar year listed for that scenario in `dollaryear.csv` and are
deflated to 2004$ during input processing. `advanced`, `moderate`, and `conservative`
refer to the Annual Technology Baseline (ATB) cost scenarios of the same names.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Costs are in the dollar year listed for that scenario in `dollaryear.csv` and are
deflated to 2004$ during input processing. `advanced`, `moderate`, and `conservative`
refer to the Annual Technology Baseline (ATB) cost scenarios of the same names.
Costs are in the dollar year listed for that scenario in `dollaryear.csv` and are deflated to 2004$ during input processing.
`advanced`, `moderate`, and `conservative` refer to the Annual Technology Baseline (ATB) cost scenarios of the same names.

Comment on lines +130 to +131
- Enforced per technology and zone when `Sw_MaxDailyCF` is on: fleet generation may not exceed
capacity x available hours x `maxdailycf`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Enforced per technology and zone when `Sw_MaxDailyCF` is on: fleet generation may not exceed
capacity x available hours x `maxdailycf`
- Enforced per technology and zone when `Sw_MaxDailyCF` is on: fleet generation may not exceed capacity x available hours x `maxdailycf`

Comment on lines +135 to +136
- Enforced per technology and zone when `Sw_MinCF` is on: fleet generation must be at least
capacity x hours x `minCF`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Enforced per technology and zone when `Sw_MinCF` is on: fleet generation must be at least
capacity x hours x `minCF`
- Enforced per technology and zone when `Sw_MinCF` is on: fleet generation must be at least capacity x hours x `minCF`

@kennedy-mindermann kennedy-mindermann left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple spacing-related suggestions to match the rest of the documentation, otherwise this looks good to me

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants