Source code for pudl.metadata.resources.ferc1_eia_record_linkage
"""Definitions for the connection between FERC1 and EIA."""
from typing import Any
[docs]
RESOURCE_METADATA: dict[str, dict[str, Any]] = {
"out_eia__yearly_plant_parts": {
"description": """Output table with the aggregation of all EIA plant parts. For use with matching to FERC 1.
Practically speaking, a plant is a collection of generator(s). There are many
attributes of generators (i.e. prime mover, primary fuel source, technology
type). We can use these generator attributes to group generator records into
larger aggregate records which we call "plant parts". A plant part is a record
which corresponds to a particular collection of generators that all share an
identical attribute and utility owner. E.g. all of the generators with unit_id=2, or all
of the generators with coal as their primary fuel source.
The EIA data about power plants (from EIA 923 and 860) is reported in tables
with records that correspond to mostly generators and plants. Other datasets
(cough cough FERC1) are less well organized and include plants, generators and
other plant parts all in the same table without any clear labels. This plant part table
is an attempt to create records corresponding to many different plant parts in order to
connect specific slices of EIA plants to other datasets.
Because generators are often owned by multiple utilities, another dimension of
this plant part table involves generating two records for each owner: one for the
portion of the plant part they own and one for the plant part as a whole. The
portion records are labeled in the ``ownership_record_type`` column as ``owned``
and the total records are labeled as ``total``.
This table includes A LOT of duplicative information about EIA plants. It is primarily
meant for use as an input into the record linkage between FERC1 plants and EIA.""",
"schema": {
"fields": [
"record_id_eia",
"plant_id_eia",
"report_date",
"plant_part",
"generator_id",
"unit_id_pudl",
"prime_mover_code",
"energy_source_code_1",
"technology_description",
"ferc_acct_name",
"utility_id_eia",
"true_gran",
"appro_part_label",
"appro_record_id_eia",
"ferc1_generator_agg_id",
"capacity_eoy_mw",
"capacity_factor",
"capacity_mw",
"construction_year",
"fraction_owned",
"fuel_cost_per_mmbtu",
"fuel_cost_per_mwh",
"fuel_type_code_pudl",
"generator_retirement_date",
"unit_heat_rate_mmbtu_per_mwh",
"installation_year",
"net_generation_mwh",
"generator_operating_year",
"operational_status",
"operational_status_pudl",
"ownership_record_type",
"ownership_dupe",
"planned_generator_retirement_date",
"plant_id_pudl",
"plant_name_eia",
"plant_name_ppe",
"plant_part_id_eia",
"record_count",
"total_fuel_cost",
"total_mmbtu",
"utility_id_pudl",
"utility_name_eia",
"report_year",
"plant_id_report_year",
],
"primary_key": ["record_id_eia"],
},
"sources": ["eia860", "eia923"],
"etl_group": "outputs",
"field_namespace": "eia",
},
"out_eia__yearly_generators_by_ownership": {
"description": "A mega table of all EIA generators with ownership integrated.",
"schema": {
"fields": [
"plant_id_eia",
"generator_id",
"report_date",
"unit_id_pudl",
"plant_id_pudl",
"plant_name_eia",
"utility_id_eia",
"utility_id_pudl",
"utility_name_eia",
"technology_description",
"energy_source_code_1",
"prime_mover_code",
"generator_operating_date",
"generator_retirement_date",
"operational_status",
"capacity_mw",
"fuel_type_code_pudl",
"planned_generator_retirement_date",
"capacity_factor",
"fuel_cost_from_eiaapi",
"fuel_cost_per_mmbtu",
"fuel_cost_per_mwh",
"unit_heat_rate_mmbtu_per_mwh",
"net_generation_mwh",
"total_fuel_cost",
"total_mmbtu",
"ferc_acct_name",
"generator_operating_year",
"operational_status_pudl",
"capacity_eoy_mw",
"fraction_owned",
"ownership_record_type",
],
},
"sources": ["eia860", "eia923"],
"etl_group": "outputs",
"field_namespace": "eia",
},
"out_pudl__yearly_assn_eia_ferc1_plant_parts": {
"description": """This table links power plant data reported in FERC Form 1 to related EIA data. It
answers the question "What EIA data reported about plants or generators should be
associated with a given plant record found in the FERC Form 1."
Each record in this table corresponds to a single FERC Form 1 record reported in one of
several tables describing power plants (large steam, hydro, small, etc.). These FERC
records can correspond to an entire plant, individual generators within a plant, all
generators in a plant with the same prime mover type, or just the respondent's ownership
share of any of those categories (or other categories). Furthermore, the same utility
may report the same plant in different ways in different years.
The EIA data associated with each FERC plant record comes from our Plant Parts EIA
table. The EIA data in each record represents an aggregation of several slices of an EIA
plant, across both physical characteristics and utility ownership.""",
"schema": {
"fields": [
"record_id_ferc1",
"record_id_eia",
"match_type",
"plant_name_ppe",
"plant_part",
"report_year",
"report_date",
"ownership_record_type",
"plant_name_eia",
"plant_id_eia",
"generator_id",
"unit_id_pudl",
"prime_mover_code",
"energy_source_code_1",
"technology_description",
"ferc_acct_name",
"generator_operating_year",
"utility_id_eia",
"utility_id_pudl",
"true_gran",
"appro_part_label",
"appro_record_id_eia",
"record_count",
"fraction_owned",
"ownership_dupe",
"operational_status",
"operational_status_pudl",
"plant_id_pudl",
"total_fuel_cost_eia",
"fuel_cost_per_mmbtu_eia",
"net_generation_mwh_eia",
"capacity_mw_eia",
"capacity_factor_eia",
"total_mmbtu_eia",
"unit_heat_rate_mmbtu_per_mwh_eia",
"fuel_type_code_pudl_eia",
"installation_year_eia",
"plant_part_id_eia",
"utility_id_ferc1",
"utility_name_ferc1",
"plant_id_ferc1",
"plant_name_ferc1",
"asset_retirement_cost",
"avg_num_employees",
"capacity_factor_ferc1",
"capacity_mw_ferc1",
"capex_annual_addition",
"capex_annual_addition_rolling",
"capex_annual_per_kw",
"capex_annual_per_mw",
"capex_annual_per_mw_rolling",
"capex_annual_per_mwh",
"capex_annual_per_mwh_rolling",
"capex_equipment",
"capex_land",
"capex_per_mw",
"capex_structures",
"capex_total",
"capex_wo_retirement_total",
"construction_type",
"construction_year_eia",
"construction_year_ferc1",
"installation_year_ferc1",
"net_generation_mwh_ferc1",
"not_water_limited_capacity_mw",
"opex_allowances",
"opex_boiler",
"opex_coolants",
"opex_electric",
"opex_engineering",
"opex_fuel",
"fuel_cost_per_mwh_eia",
"fuel_cost_per_mwh_ferc1",
"opex_misc_power",
"opex_misc_steam",
"opex_nonfuel_per_mwh",
"opex_operations",
"opex_per_mwh",
"opex_plant",
"opex_production_total",
"opex_rents",
"opex_steam",
"opex_steam_other",
"opex_structures",
"opex_total_nonfuel",
"opex_transfer",
"peak_demand_mw",
"plant_capability_mw",
"plant_hours_connected_while_generating",
"plant_type",
"water_limited_capacity_mw",
"fuel_cost_per_mmbtu_ferc1",
"fuel_type",
"license_id_ferc1",
"opex_maintenance",
"opex_total",
"capex_facilities",
"capex_roads",
"net_capacity_adverse_conditions_mw",
"net_capacity_favorable_conditions_mw",
"opex_dams",
"opex_generation_misc",
"opex_hydraulic",
"opex_misc_plant",
"opex_water_for_power",
"ferc_license_id",
"capex_equipment_electric",
"capex_equipment_misc",
"capex_wheels_turbines_generators",
"energy_used_for_pumping_mwh",
"net_load_mwh",
"opex_production_before_pumping",
"opex_pumped_storage",
"opex_pumping",
"total_fuel_cost_ferc1",
"total_mmbtu_ferc1",
"fuel_type_code_pudl_ferc1",
"unit_heat_rate_mmbtu_per_mwh_ferc1",
],
"primary_key": ["record_id_ferc1"],
},
"field_namespace": "pudl",
"etl_group": "outputs",
"sources": ["eia860", "eia923", "ferc1"],
},
}
"""Resources definition for granular connection between FERC1 and EIA."""