Skip to content

Commit 880135e

Browse files
finozzifadanielelerede-oetFabrizio Finozzi
authored
Nrel atb usa costs (#160)
* code: re-locate imports * data: add ATB electricity inputs for 2022 and 2024 * code: introduce new script compile_cost_assumptions_nrel.py * code: fix imports in _helpers.py * code: filter columns and core_metric_parameter * code: new changes dropping duplicates * code: add additional OCC as core_metric_parameter * code: %-yr * code: newest changes to nrel * code: filter and rename technologies * code-config: update config and compile_cost_assumptions_nrel.py * code: rename columns * code: add unit tests read_atb_input_file * code: re-factor * code: unit test calculate_fom_percentage * code: new progress * code: add unit tests for repeat_values * code: add unit tests for fom_percentage * code: modify unit test for fom percentage * code: update documentation * code: modify code * code: re-work code * code: remove unnecessary print from unit test file * data: add technical data for CCS-equipped power plants and update coal efficiency * data: coal and gas retrofits * data: pypsa battery changed to 'Utility-Scale_Battery_Storage_6Hr_Battery_Storage' * data: updated technology names to displayname ATB, added discount rates * code: remove WACC_Real * code: update scripts/compile_cost_assumptions_nrel.py * code: updated NREL ATB nomenclature according to 'displayname' * data: removed unnecessary data for future years * data: added hydrogen production technologies * code: update on including atb costs into existing costs * code: atb costs included in existing costs * data: updated header column 'financial_case' * code: change in query * data: updated nomenclature 'further description' in 'discount_rates_usa.csv' * code: include discount rate * code: separate add discount rate as external function * code: remove unnecessary outputs * data: add output US * doc: update release_notes * config: remove unnecessary configs * code: remove pypsa dependency * code: add get_query_string * doc: solve typo * code: change comment * docu: update documentation * data: correct mistake in manual_input.csv * doc: replace PyPSA-Eur-sec with PyPSA-Earth in README.md * code: substitute from pypsa.descriptors import Dict with Dict=dict in _helpers.py * data: added missing currency year for hydrogen production technologies * code: remove index from NREL output files * code: add units for CF and modify unit for FOM * code: modify from $ and € to USD and EUR * data: modified € to EUR * data: add efficiency for Coal-IGCC-90%-CCS and modify efficiency for Coal-IGCC * data: add ICCT data for hydrogen production & storage, FT and DAC * doc: update release notes * code: fix bug in queries * data: add US-specific fuel costs for coal, gas and oil * code: remove tax_credit_case * code: update __init__ * code: Nuclear - AP1000 to Nuclear - AP100 * code: match technology names from ATB2022 to those in ATB2024 * data: add US-specific discount rate for 2020 * data: remove scenario and financial_case from fuel_costs_usa.csv * data: simplify names for hydrogen production technologies * code: remove unnecessary technologies from atb_e_2022 * data: modify structure of discount rates and fuel costs files * code: add fuel costs * data: include newest values from fuel_costs * data: correct source for gas fuel cost * docstring: add docstring to the functions * code: revert back to x instead of row * doc: update doc strings * doc: updated documentation * code: update unit tests * code: final touches * data: fix currency years * data: remove duplicates from discount_rates_usa * code: remove uncessary file and spaces * code: change fixture scope * data: add outputs folder * remove unnecessary file * code: remove duplicated before concat with discount_rates and fuel_costs. Plus rename file * code: modify .gitignore * remove .DS_Store * code: cast value to float * code: remove unnecessary white-spaces * env: add pytest to environment.yaml * add licenses * data: update calculation coal cost * data: update reference for coal costs * data: correct unit for USA oil and gas costs * config: remove fastparquet * remove hash * code: fix typo in get_conversion_dictionary * code: changes to convertion --> conversion and fix unit tests * comment to PR * code: explicitly mention the origin of NREL ATB input files * update output cost files * code: fix issues in variables naming --------- Co-authored-by: Daniele Lerede <[email protected]> Co-authored-by: Fabrizio Finozzi <[email protected]>
1 parent 35e5144 commit 880135e

32 files changed

+33997
-249
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
# SPDX-License-Identifier: GPL-3.0-only
44

5+
.DS_Store
56
.snakemake
67
_build
78
.idea

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ standardized cost years, technology names, units and source information. For fur
2121

2222

2323
The outputs are used in
24-
[PyPSA-Eur](https://github.com/PyPSA/pypsa-eur) and
25-
[PyPSA-Eur-Sec](https://github.com/PyPSA/pypsa-eur-sec).
24+
[PyPSA-Eur](https://github.com/PyPSA/pypsa-eur) and [PyPSA-Earth](https://github.com/pypsa-meets-earth/pypsa-earth).
2625

2726

2827
## Licence

Snakefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,26 @@ rule compile_cost_assumptions:
3636
"scripts/compile_cost_assumptions.py"
3737

3838

39+
rule compile_cost_assumptions_usa:
40+
input:
41+
cost_files_to_modify=expand("outputs/costs_{year}.csv", year=config["years"]),
42+
nrel_atb_input_files=expand(
43+
"inputs/atb_e_{year}.parquet",
44+
year=config["nrel_atb"]["nrel_atb_input_years"],
45+
),
46+
nrel_atb_input_discount_rate="inputs/discount_rates_usa.csv",
47+
nrel_atb_input_fuel_costs="inputs/fuel_costs_usa.csv",
48+
output:
49+
expand("outputs/US/costs_{year}.csv", year=config["years"]),
50+
threads: 1
51+
resources:
52+
mem=500,
53+
conda:
54+
"environment.yaml"
55+
script:
56+
"scripts/compile_cost_assumptions_usa.py"
57+
58+
3959
# rule convert_fraunhofer:
4060
# input:
4161
# fraunhofer = "docu/Anhang-Studie-Wege-zu-einem-klimaneutralen-Energiesystem.pdf"

config.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ version: 0.9.2
77
# considered years for output data
88
years: [2020, 2025, 2030, 2035, 2040, 2045, 2050]
99

10+
nrel_atb:
11+
nrel_atb_input_years: [2022, 2024]
12+
nrel_atb_columns_to_keep: ["atb_year", "core_metric_parameter", "core_metric_case", "core_metric_variable", "technology", "technology_alias", "display_name", "scenario", "units", "value"]
13+
nrel_atb_core_metric_parameter_to_keep: ["CAPEX", "CF", "Fixed O&M", "Variable O&M", "Fuel", "Additional OCC"]
14+
nrel_atb_technology_to_remove: ["Coal-CCS-95% -> Transformational Tech", "Coal-Max-CCS -> Transformational Tech", "Coal-new -> Transformational Tech", "NG combined cycle 95% CCS (F-frame basis -> Transformational Tech)", "NG combined cycle 95% CCS (H-frame basis -> Transformational Tech)", "NG combined cycle Max CCS (F-frame basis -> Transformational Tech)", "NG combined cycle Max CCS (H-frame basis -> Transformational Tech)", "AEO"]
15+
nrel_atb_source_link: "NREL/ATB-https://data.openei.org/s3_viewer?bucket=oedi-data-lake&prefix=ATB%2Felectricity%2Fcsv%2F2022%2F"
16+
1017
expectation: "" # tech data uncertainty, possible options [None, "optimist", "pessimist"]
1118

1219
#year for EUR outputs

docs/release_notes.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Release Notes
2323

2424
* fixed DEA technology data sheet name for central water tank storage to point to actual PTES data
2525

26-
* Fix minor issues in the code
26+
* added geothermal district heating as `central geothermal-sourced heat pump` based on DEA technology catalogue ("45.1.a Geothermal DH, 1200m, E")
2727

2828
* fix minor issues in the code
2929

@@ -35,6 +35,13 @@ Release Notes
3535

3636
* add pre-commit
3737

38+
* include NREL/ATB costs for electricity generation technologies in a dedicated US cost outputs
39+
40+
* include ICCT techno-economic parameters for electrolyzers, hydrogen storage, Fischer-Tropsch, Direct air capture
41+
42+
* include JRC data for fossil- and biomass-based hydrogen production technologies (with and without CCS)
43+
44+
3845
Technology-Data 0.9.2 (30 August 2024)
3946
======================================
4047

environment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ dependencies:
1313
- snakemake-minimal>=8.5
1414
- pandas>=2.1
1515
- pypsa
16+
- pyarrow
1617
- numpy
1718
- beautifulsoup4
1819
- xlrd
1920
- scipy
2021
- openpyxl>=3.1.2
2122
- packaging
23+
- pytest
2224

2325
# Development dependencies
2426
- pre-commit

inputs/atb_e_2019.parquet

517 KB
Binary file not shown.

inputs/atb_e_2022.parquet

776 KB
Binary file not shown.

inputs/atb_e_2024.parquet

4.87 MB
Binary file not shown.

inputs/discount_rates_usa.csv

Lines changed: 835 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)