nodes.gold_emissions

nodes.gold_emissions

Gold Layer Emissions Hamilton Nodes

Emissions calculation nodes for gold layer.

All functions are Hamilton nodes tagged with layer=‘gold’ and domain=‘emissions’.

Functions

Name Description
facilities_production_annual Aggregate monthly production to annual with BOE conversions.
facilities_with_emissions Calculate emissions for facility-level monthly production data.
operator_facility_emissions Allocate facility emissions to operators based on BOE share.
operator_parent_dimension Build operator parent dimension mapping (BAID -> parent_id, parent_name).
operator_parent_emissions Aggregate operator emissions to parent level using parent dimension.
operator_petrinex_emissions Calculate Petrinex emissions at operator-year level from operator-facility emissions.

facilities_production_annual

nodes.gold_emissions.facilities_production_annual(
    facilities_production_monthly: pd.DataFrame,
)

Aggregate monthly production to annual with BOE conversions.

facilities_with_emissions

nodes.gold_emissions.facilities_with_emissions(
    facilities_production_monthly: pd.DataFrame,
)

Calculate emissions for facility-level monthly production data.

operator_facility_emissions

nodes.gold_emissions.operator_facility_emissions(
    facilities_with_emissions: pd.DataFrame,
    operator_facility_production: pd.DataFrame,
)

Allocate facility emissions to operators based on BOE share.

operator_parent_dimension

nodes.gold_emissions.operator_parent_dimension(
    operator_petrinex_emissions: pd.DataFrame,
    business_associate_raw: pd.DataFrame,
)

Build operator parent dimension mapping (BAID -> parent_id, parent_name).

Creates a code-driven parent aggregation dimension that groups related Business Associate IDs under canonical parent company names using name normalization and conservative fuzzy matching.

Args: operator_petrinex_emissions: Operator-level emissions data (must have operator_baid, operator_name) business_associate_raw: Optional Business Associate data from bronze layer

Returns: DataFrame with columns: operator_baid, operator_name_raw, operator_parent_id, operator_parent_name, normalization_score

operator_parent_emissions

nodes.gold_emissions.operator_parent_emissions(
    operator_petrinex_emissions: pd.DataFrame,
    operator_parent_dimension: pd.DataFrame,
)

Aggregate operator emissions to parent level using parent dimension.

Args: operator_petrinex_emissions: Operator-level emissions (by BAID) operator_parent_dimension: Parent dimension mapping

Returns: DataFrame aggregated by operator_parent_id and year

operator_petrinex_emissions

nodes.gold_emissions.operator_petrinex_emissions(
    operator_facility_emissions: pd.DataFrame,
)

Calculate Petrinex emissions at operator-year level from operator-facility emissions.