gcubed.model_parameters.emission_intensities

Safe service-denominated capital-emissions intensity arithmetic.

@dataclass(frozen=True)
class CapitalEmissionIntensityResult:

Capital-emissions intensities and cell-level reconciliation evidence.

Attributes

intensities: Exact service-denominated intensity values.

diagnostics: One reconciliation record per gas/sector/region cell.

CapitalEmissionIntensityResult(intensities: pandas.DataFrame, diagnostics: pandas.DataFrame)
intensities: pandas.DataFrame
diagnostics: pandas.DataFrame
has_errors: bool

Return whether any cell cannot support a valid intensity.

def calculate_capital_emission_intensities( *, emissions: pandas.DataFrame, capital_services: pandas.DataFrame, calibration_year: int) -> CapitalEmissionIntensityResult:

Divide EMSK by capital services using the exact zero rule.

Zero services produce an exact zero intensity. A nonzero numerator over a zero denominator remains visible as unallocated emissions and receives an error classification instead of being hidden by infinity replacement.

Arguments

emissions: Calibration-year EMSK values indexed gas/sector/region.

capital_services: Matching base_rate_of_return_on_capital * CAP values.

calibration_year: Year recorded in the diagnostic.

Returns

Exact intensities plus complete cell-level diagnostics. Invalid cells are classified in the result so callers can write the report before failing.

Exceptions

Raises ValueError for incompatible shapes, labels, or year columns.