pudl.models.glue module

Database models that pertain to the entire PUDL project.

These tables include many lists of static values, as well as the “glue” that is required to relate information from different data sources to each other.

class pudl.models.glue.FERCAccount(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Static list of all the FERC account numbers and descriptions.

description
ferc_account_id
class pudl.models.glue.FERCDepreciationLine(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Static list of all the FERC account numbers and descriptions.

description
line_id
class pudl.models.glue.Plant(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

A co-located collection of electricity generating infrastructure.

Plants are enumerated based on their appearing in at least one public data source, like the FERC Form 1, or EIA Form 923 reporting. However, they may not appear in all data sources. Additionally, plants may in some cases be broken down into smaller units in one data source than another.

This is the home table for PUDL assigned plant IDs. These IDs are manually generated each year when new FERC and EIA reporting is integrated, and any newly identified plants are added to the list with a new ID.

This table is read in from a spreadsheet stored in the PUDL repository:

results/id_mapping/mapping_eia923_ferc1.xlsx

name
plant_id_pudl
class pudl.models.glue.PlantEIA923(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

A plant listed in the EIA 923 form.

A single plant typically has only a single operator. However, plants may have multiple owners, and so the same plant may show up under multiple FERC respondents (utilities).

plant_id_eia
plant_id_pudl
plant_name
class pudl.models.glue.PlantFERC1(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

A mapping between manually signed PUDL plant IDs, and pairs of utility IDs and plant names. Because FERC does not assign plant IDs, without doing a lot of work the best we can get for a unique identifier is that combination. However, because plant names are not constant from year to year (they are freeform strings which change depending on the whim of the person filling out the form) there may be many combinations of utility ID and plant name representing the same plant in different years. Furthermore, the same plant may be reported by different utilities in the same year due to shared ownership. This table allows all of those different combinations – which ultimately map to a single collection of infrastructure on the ground – to a single PUDL plant ID.

This table is read in from a spreadsheet stored in the PUDL repository:

results/id_mapping/mapping_eia923_ferc1.xlsx

plant_id_pudl
plant_name
utility_id_ferc1
class pudl.models.glue.Utility(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

A power plant owning or operating entity, that reports in at least one of the datasets we have integrated.

This is the home table for PUDL assigned utility IDs. These IDs are manually generated each year when new FERC and EIA reporting is integrated, and any newly identified utilities are added to the list with a new ID.

This table is read in from a spreadsheet stored in the PUDL repository:

results/id_mapping/mapping_eia923_ferc1.xlsx

name
utility_id_pudl
class pudl.models.glue.UtilityEIA923(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

An EIA operator, typically a utility company.

EIA does assign unique IDs to each operator, as well as supplying a name.

utility_id_eia
utility_id_pudl
utility_name
class pudl.models.glue.UtilityFERC1(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Mapping between FERC Respondent ID and PUDL Utility ID. This mapping is manually generated each year when new FERC Form 1 data is integrated into PUDL, if any new FERC respondents have appeared.

This table is read in from a spreadsheet stored in the PUDL repository:

results/id_mapping/mapping_eia923_ferc1.xlsx

utility_id_ferc1
utility_id_pudl
utility_name_ferc1
class pudl.models.glue.UtilityPlantAssn(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Enumerates existence of relationships between plants and utilities.

plant_id_pudl
utility_id_pudl