SourceCode.ftt_core.ftt_emissions_regulation

SourceCode.ftt_core.ftt_emissions_regulation#

Centralized emissions regulation functions for FTT sectors.

Single entry point: implement_emissions_regulation. Mirrors the flow of ftt_mandate.py, sectors call it each sub-timestep of the annual loop with their current sales/capacity arrays plus a per-region info array, and this module handles segment/class grouping, eligibility, per-region timelines, and baseline caching. The target depends only on the integer year and the cached baseline, so repeated within-year calls share the

same target and are deterministic.

Regulation info (per region):

[start_year, end_year, max_reduction] - max_reduction = 1.0 → target reaches 0 at end_year - max_reduction = 0.5 → target reaches 50% of baseline at end_year - max_reduction <= 0 → regulation off for that region

Behaviour:
  • Baseline is the fleet-average CO2 at the region’s start_year, computed live and cached across years in this module.

  • Target declines linearly from baseline to baseline * (1 - max_reduction) over [start_year, end_year]. After end_year the target stays at that floor (regulation persists, does not expire).

  • Sales shift from high-emitting techs to eligible low-emitting techs proportionally to their existing share of the eligible pool.

Functions:

get_fleet_emissions: Weighted average fleet CO2 implement_emissions_regulation: Main entry point reset_baseline_cache: Clear cached baselines (for tests / fresh runs)

@author: Amir Akther

Functions

get_fleet_emissions(sales, emissions_intensity)

Weighted average fleet emissions.

implement_emissions_regulation(cap, ...)

Apply declining fleet-average CO2 regulation to a sector.

reset_baseline_cache()

Clear cached baselines.