Annual Technology Baseline Calculators
To inform electric and transportation sector analysis in the United States, each year NREL provides a robust set of modeling input assumptions for energy technologies and a diverse set of potential electricity generation futures or modeling scenarios.
https://github.com/nrel/atb-calc
Category: Energy Systems
Sub Category: Energy Data Accessibility and Integration
Last synced: about 22 hours ago
JSON representation
Repository metadata
Python files and Jupyter notebooks for processing the Annual Technology Baseline (ATB) electricity data and determining LCOE and other metrics.
- Host: GitHub
- URL: https://github.com/nrel/atb-calc
- Owner: NREL
- License: bsd-3-clause
- Created: 2023-07-05T18:18:43.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-18T22:22:40.000Z (10 days ago)
- Last Synced: 2025-04-20T08:05:09.485Z (8 days ago)
- Language: Python
- Homepage: https://atb.nrel.gov
- Size: 3.52 MB
- Stars: 35
- Watchers: 6
- Forks: 14
- Open Issues: 4
- Releases: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
Annual Technology Baseline Calculators (ATB-calc)
Python files and Jupyter notebooks for processing the Annual Technology Baseline (ATB) electricity data and determining LCOE and other metrics. All documentation and data for the ATB is available at the ATB website.
Installation and Requirements
The pipeline requires Python 3.10 or newer. Dependancies can be installed using pip
:
$ pip install -r requirements.txt
Note that some examples may require additional dependencies such as Jupyter. See the README files in individual
directories for specifics.
Once Python and all dependancies are installed the installation can be tested by running:
$ pytest
Tests take about a minute and should complete without errors. The ATB pipeline uses xlwings for accessing the ATB data workbook and requires a copy of Microsoft Excel. Currently the full pipeline will only run on MacOS and Windows. Linux support may be added in the future.
Running the ATB Electricity Pipeline
Running the pipeline requires downloaded the most current data in xlsx
format from the
ATB website. The pipeline may be ran for one or all ATB electricity technologies.
Data may be exported in several formats. Below are several example workflows. It is assumed that all
commands are run from the root directory of the repository. In the examples {PATH-TO-DATA-WORKBOOK}
is the path and filename to the ATB electricity data workbook xlsx
file.
Process all techs and export to a flat file named flat_file.csv
:
$ python -m lcoe_calculator.process_all --save-flat flat_file.csv {PATH-TO-DATA-WORKBOOK}
Process only land-based wind and export pivoted data and meta data:
$ python -m lcoe_calculator.process_all --tech LandBasedWindProc \
--save-pivoted pivoted_file.csv --save-meta meta_file.csv {PATH-TO-DATA-WORKBOOK}
Process only pumped storage hydropower and copy data to the clipboard so it may be pasted into a spreadsheet:
$ python -m lcoe_calculator.process_all --tech PumpedStorageHydroProc \
--clipboard {PATH-TO-DATA-WORKBOOK}
Help for the processor and the names of available technologies can be viewed by running:
$ python -m lcoe_calculator.process_all --help
Debt Fraction Calculator
The debt fraction calculator uses PySAM to calculate
debt fractions for one or all ATB technologies. To calculate debt fractions for all technologies run
the following from the repository root directory:
$ python -m debt_fraction_calculator.debt_fraction_calc {PATH-TO-DATA-WORKBOOK} \
{OUTPUT-CSV-FILE}
where {PATH-TO-DATA-WORKBOOK}
is the path and filename of the ATB data workbook, and
{OUTPUT-CSV-FILE}
is the name of the csv
file to create with the calculated debt fractions.
Debt fractions can also be calculated for a single ATB technology if desired. The below command will
calculate debt fractions for land-based wind:
$ python -m debt_fraction_calculator.debt_fraction_calc --tech LandBasedWindProc \
{PATH-TO-DATA-WORKBOOK} {OUTPUT-CSV-FILE}
All options for the debt calculator can be viewed with:
$ python -m debt_fraction_calculator.debt_fraction_calc --help
Example Jupyter Notebooks
The ./example_notebooks
directory has several Jupyter notebooks showing
how to perform various tasks. The notebooks are a good way to understand how to use the code and
experiment with the ATB pipeline code. Jupyter must first be installed before use:
$ pip install jupyter
The Jupyter server can then be started by running:
$ jupyter-notebook
in the root repository directory.
Notable Directories
./lcoe_calculator
Extract technology metrics from the data workbookxlsx
file and calculate LCOE
using Python../debt_fraction_calculator
Given data and assumptions in the data workbook xlsx file, calculate
debt fractions using PySAM../example_notebooks
Example Jupyter notebooks showing how to perform various operations../tests
Tests for code in this repository.
Citing this Package
Mirletz, Brian, Bannister, Michael, Vimmerstedt, Laura, Stright, Dana, and Heine, Matthew.
"ATB-calc (Annual Technology Baseline Calculators) [SWR-23-60]." Computer software. August 02, 2023.
https://github.com/NREL/ATB-calc. https://doi.org/10.11578/dc.20230914.2.
Code Formatting
This project uses the Black code formatting VS Code plugin. Please install and run the plugin before making commits or a pull request.
Owner metadata
- Name: National Renewable Energy Laboratory
- Login: NREL
- Email:
- Kind: organization
- Description:
- Website: http://www.nrel.gov
- Location: Golden, CO
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1906800?v=4
- Repositories: 599
- Last ynced at: 2024-12-18T09:41:07.898Z
- Profile URL: https://github.com/NREL
GitHub Events
Total
- Issues event: 7
- Watch event: 6
- Delete event: 22
- Issue comment event: 14
- Push event: 47
- Pull request review comment event: 3
- Pull request review event: 21
- Pull request event: 35
- Fork event: 9
- Create event: 19
Last Year
- Issues event: 7
- Watch event: 6
- Delete event: 22
- Issue comment event: 14
- Push event: 47
- Pull request review comment event: 3
- Pull request review event: 21
- Pull request event: 35
- Fork event: 9
- Create event: 19
Committers metadata
Last synced: 8 days ago
Total Commits: 83
Total Committers: 3
Avg Commits per committer: 27.667
Development Distribution Score (DDS): 0.313
Commits in past year: 9
Committers in past year: 2
Avg Commits per committer in past year: 4.5
Development Distribution Score (DDS) in past year: 0.222
Name | Commits | |
---|---|---|
Brian Mirletz | b****z@n****v | 57 |
mbannist | m****r@n****v | 25 |
Ramdas, Ashwin | A****s@n****v | 1 |
Committer domains:
- nrel.gov: 3
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 9
Total pull requests: 42
Average time to close issues: about 1 month
Average time to close pull requests: 3 days
Total issue authors: 5
Total pull request authors: 2
Average comments per issue: 1.67
Average comments per pull request: 0.33
Merged pull request: 39
Bot issues: 0
Bot pull requests: 0
Past year issues: 6
Past year pull requests: 26
Past year average time to close issues: about 14 hours
Past year average time to close pull requests: 5 days
Past year issue authors: 4
Past year pull request authors: 2
Past year average comments per issue: 1.83
Past year average comments per pull request: 0.5
Past year merged pull request: 23
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- brtietz (3)
- kalebsm (2)
- apalomES (2)
- mikebannis (1)
- NoahV-SC (1)
Top Pull Request Authors
- brtietz (29)
- mikebannis (13)
Top Issue Labels
- enhancement (1)
- bug (1)
Top Pull Request Labels
Score: 4.762173934797756