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
|
Weighted average fleet emissions. |
|
Apply declining fleet-average CO2 regulation to a sector. |
|
Clear cached baselines. |