Climate Module
The CliMaPan-Lab climate module simulates environmental effects and their economic impacts. This module has been streamlined to focus on two main climate damage mechanisms plus an option to disable climate effects entirely.
Climate Damage Types
AggPop (Aggregate Population)
Aggregate population-level climate damage affects the entire economy uniformly:
Description: Climate shocks impact all economic agents equally
Use case: Modeling economy-wide climate effects
Implementation: Uniform damage multipliers applied across all sectors
params['climateModuleFlag'] = True
params['climateShockMode'] = 'AggPop'
Idiosyncratic
Individual-level climate damage with heterogeneous effects:
Description: Climate shocks vary across individual agents and sectors
Use case: Modeling differential climate vulnerability
Implementation: Varied damage based on agent characteristics
params['climateModuleFlag'] = True
params['climateShockMode'] = 'Idiosyncratic'
None
Disables climate damage effects while maintaining other climate calculations:
Description: No economic damage from climate shocks
Use case: Baseline scenarios without climate impacts
Implementation: Climate module tracks emissions but applies no damage
params['climateModuleFlag'] = True
params['climateShockMode'] = 'None'
Climate Parameters
Key climate-related parameters:
# Enable/disable climate module
'climateModuleFlag': True,
# Climate damage type
'climateShockMode': 'AggPop', # or 'Idiosyncratic' or 'None'
# Climate shock timing
'climate_shock_start': 120, # months until shocks activate
# Emission intensities
'climateZetaGreen': 0.01, # green energy emission intensity
'climateZetaBrown': 0.5, # brown energy emission intensity
# Climate sensitivity parameters
'climateSensitivity': 6.90625,
'climateT0': 0, # initial temperature
# Damage parameters
'climateAlpha_d': 0.05, # benchmark damage
'climateSigma_d': 0.9, # storm sensitivity
'psi_h': 0.1, # household damage parameter
'psi_f_g': 0.15, # green firm damage parameter
'psi_f_b': 0.25, # brown firm damage parameter
Climate Variables
The climate module tracks several key variables:
CO2 Emissions: Total and sectoral emissions
CO2 Concentration: Atmospheric concentration levels
Temperature: Global temperature anomaly
Radiative Forcing: Climate forcing effects
Climate Damage: Economic damage from climate effects
Command Line Usage
Use the climate damage options via command line:
# Run with aggregate population damage
climapan-run --climateDamage AggPop --settings CT
# Run with idiosyncratic damage
climapan-run --climateDamage Idiosyncratic --settings CTRa
# Run without climate damage
climapan-run --climateDamage None --settings BAU
Integration with Economic Scenarios
Climate damage works with all economic scenarios:
Carbon Tax Scenarios
# Carbon tax with aggregate climate damage
params = {
'settings': 'CT',
'climateModuleFlag': True,
'climateShockMode': 'AggPop',
'co2_tax': 0.05
}
# Carbon tax with revenue recycling and idiosyncratic damage
params = {
'settings': 'CTRa',
'climateModuleFlag': True,
'climateShockMode': 'Idiosyncratic',
'co2_tax': 0.03
}
COVID-Climate Interactions
# Combined pandemic and climate scenario
params = {
'settings': 'CT',
'covid_settings': 'LOCK',
'climateModuleFlag': True,
'climateShockMode': 'AggPop'
}
Historical Context
Note
Previous versions of CliMaPan-Lab included flood-specific climate damage mechanisms. These have been removed and consolidated into the more flexible AggPop and Idiosyncratic damage types, which can represent various climate impacts including floods, droughts, storms, and other climate events.
Best Practices
Start with AggPop: For initial explorations, use aggregate damage for simplicity
Use Idiosyncratic for detailed analysis: When studying inequality effects
Calibrate carefully: Climate parameters should be calibrated to real-world data
Consider interactions: Climate effects interact with other policies and shocks
Validate results: Compare outputs with and without climate effects
Example Analysis
import matplotlib.pyplot as plt
from climapan_lab.model import EconModel
from climapan_lab.base_params import economic_params
# Run scenarios with different climate damage types
scenarios = ['None', 'AggPop', 'Idiosyncratic']
results = {}
for scenario in scenarios:
params = economic_params.copy()
params['climateModuleFlag'] = True
params['climateShockMode'] = scenario
params['settings'] = 'CT'
params['steps'] = 240
model = EconModel(params)
results[scenario] = model.run()
# Compare GDP trajectories
plt.figure(figsize=(10, 6))
for scenario, result in results.items():
df = result.variables.EconModel
plt.plot(df['GDP'], label=f'Climate Damage: {scenario}')
plt.title('GDP Under Different Climate Damage Scenarios')
plt.xlabel('Time Steps (Months)')
plt.ylabel('GDP')
plt.legend()
plt.show()