Source code for pudl.metadata.resources.nrelatb

"""Table definitions for the NREL ATB data ."""

from typing import Any

[docs] RESOURCE_METADATA: dict[str, dict[str, Any]] = { # } "core_nrelatb__yearly_projected_financial_cases": { "description": "Financial assumptions for each model_case_nrelatb and technology_description.", "schema": { "fields": [ "report_year", "model_case_nrelatb", "projection_year", "technology_description", "inflation_rate", "interest_rate_during_construction_nominal", "interest_rate_calculated_real", "interest_rate_nominal", "rate_of_return_on_equity_calculated_real", "rate_of_return_on_equity_nominal", "tax_rate_federal_state", ], "primary_key": [ "report_year", "model_case_nrelatb", "projection_year", "technology_description", ], }, "sources": ["nrelatb"], "etl_group": "nrelatb", "field_namespace": "nrelatb", }, "core_nrelatb__yearly_projected_financial_cases_by_scenario": { "description": ( "Additional financial assumptions for NREL ATB projections that also vary by scenario_atb " "and cost_recovery_period_years. \nThere are a small number of records which have nulls in" "the cost_recovery_period_years column. Based on NREL's documentation, this seems to indicate " "that those records apply to any relevant cost_recovery_period_years. If those records were " "non-null, the primary keys of this table would be: " "['report_year', 'model_case_nrelatb', 'projection_year', 'technology_description', 'scenario_atb', 'cost_recovery_period_years']" ), "schema": { "fields": [ "report_year", "model_case_nrelatb", "projection_year", "technology_description", "scenario_atb", # there are nulls in ~%5 of the records in the field # it would be a part of a composite primary_key, but nulls. "cost_recovery_period_years", "capital_recovery_factor", "debt_fraction", "fixed_charge_rate", "fuel_cost_per_mwh", "wacc_nominal", "wacc_real", ], }, "sources": ["nrelatb"], "etl_group": "nrelatb", "field_namespace": "nrelatb", }, "core_nrelatb__yearly_projected_cost_performance": { "description": "Projections of costs and performance for various technologies.", "schema": { "fields": [ "report_year", "model_case_nrelatb", "projection_year", "technology_description", "cost_recovery_period_years", "scenario_atb", # These two detail fields have nulls in them! which is fine for the data but means we don't have non-null PKs "technology_description_detail_1", "technology_description_detail_2", "capacity_factor", "capex_per_kw", "capex_overnight_per_kw", "capex_overnight_additional_per_kw", "capex_grid_connection_per_kw", "capex_construction_finance_factor", "heat_rate_mmbtu_per_mwh", "heat_rate_penalty", "levelized_cost_of_energy_per_mwh", "net_output_penalty", "opex_fixed_per_kw", "opex_variable_per_mwh", ], }, "sources": ["nrelatb"], "etl_group": "nrelatb", "field_namespace": "nrelatb", }, "core_nrelatb__yearly_technology_status": { "description": "Annual table indicating whether technologies in the ATB scenarios are mature or default.", "schema": { "fields": [ "report_year", "technology_description", "technology_description_detail_1", "technology_description_detail_2", "is_technology_mature", "is_default", ], }, "sources": ["nrelatb"], "etl_group": "nrelatb", "field_namespace": "nrelatb", }, }