The 11_aerosols module calculates air pollution emissions for those sectors (currently indst, trans, res, and power) and species (currently BC, OC, and SO2) that are priced in REMIND. It uses the emission factors from mrremind::calcGAINS2025. Important note: These emissions are not reported, but only used to calculate air pollution costs. Instead, the air pollutant emissions for all species and all 35 GAINS sectors are calculated and reported in remind2::reportAirPollutantEmissions.
Interface plot missing!
| Description | Unit | A | |
|---|---|---|---|
| cm_APsource | data source for air pollution baseyear (2020) emissions | x | |
| cm_startyear | first optimized modelling time step | \(year\) | x |
| pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
emission factor by technology for all types of energy-related emissions | \(GtC/TWa, Mt CH4/TWa, Mt N/TWa, Mt SO2/TWa, Mt BC/TWa, Mt OC/TWa\) | x |
| pm_share_ind_fesos (tall, all_regi) |
Share of coal solids (coaltr) used in the industry (rest is residential) | x | |
| pm_share_ind_fesos_bio (tall, all_regi) |
Share of biomass solids (biotr) used in the industry (rest is residential) | x | |
| pm_ts (tall) |
(t_n+1 - t_n-1)/2 for a timestep t_n | x | |
| vm_cesIO (tall, all_regi, all_in) |
Production factor | x | |
| vm_demPe (tall, all_regi, all_enty, all_enty, all_te) |
primary energy demand | \(TWa, Uranium: Mt Ur\) | x |
| vm_prodFe (ttot, all_regi, all_enty, all_enty, all_te) |
final energy production | \(TWa\) | x |
| Description | Unit | |
|---|---|---|
| vm_costpollution (tall, all_regi) |
costs of air pollution policies | \(T\$\) |
Calculation of air pollution emissions for those sectors (currently indst, trans, res, and power) and species (currently BC, OC, and SO2) that are priced in REMIND. It uses the emission factors from mrremind::calcGAINS2025. Important note: These emissions are not reported, but only used to calculate air pollution costs. Instead, the air pollutant emissions for all species and all 35 GAINS sectors are calculated and reported in remind2::reportAirPollutantEmissions.
\[\begin{multline*} vm\_costpollution(t,regi) = \sum_{emi2te(enty,enty2,te,enty3)}\left( 0.000001 \cdot pm\_ts(t) \cdot \left( \left( \left(p11\_EF\_uncontr(enty,enty2,te,regi,enty3,"indst")-pm\_emifac(t,regi,enty,enty2,te,enty3)\right) \cdot vm\_demPe(t,regi,enty,enty2,te) \cdot p11\_share\_sector(t,enty,enty2,te,"indst",regi) \cdot p11\_costpollution(te,enty3,"indst") \right)\$\left( sectorEndoEmi2te11(enty,enty2,te,"indst") \& pe2se(enty,enty2,te) \right) + \left( \left(p11\_EF\_uncontr(enty,enty2,te,regi,enty3,"res")-pm\_emifac(t,regi,enty,enty2,te,enty3)\right) \cdot vm\_demPe(t,regi,enty,enty2,te) \cdot p11\_share\_sector(t,enty,enty2,te,"res",regi) \cdot p11\_costpollution(te,enty3,"res") \right)\$\left(sectorEndoEmi2te11(enty,enty2,te,"res") \& pe2se(enty,enty2,te) \right) + \left( \left(p11\_EF\_uncontr(enty,enty2,te,regi,enty3,"trans")-pm\_emifac(t,regi,enty,enty2,te,enty3)\right) \cdot vm\_prodFe(t,regi,enty,enty2,te) \cdot p11\_share\_sector(t,enty,enty2,te,"trans",regi) \cdot p11\_costpollution(te,enty3,"trans") \right)\$\left(sectorEndoEmi2te11(enty,enty2,te,"trans") \& se2fe(enty,enty2,te) \right) + \left( \left(p11\_EF\_mean(enty,enty2,te,enty3)-pm\_emifac(t,regi,enty,enty2,te,enty3) \right) \cdot vm\_demPe(t,regi,enty,enty2,te) \cdot p11\_share\_sector(t,enty,enty2,te,"power",regi) \cdot p11\_costpollution(te,enty3,"power") \right)\$\left(sectorEndoEmi2te11(enty,enty2,te,"power") \& pe2se(enty,enty2,te) \right) + \left( \left(p11\_EF\_uncontr("peoil","seel","dot",regi,enty3,"power")-p11\_EF\_mean("peoil","seel","dot",enty3)\right) \cdot vm\_demPe(t,regi,"peoil","seel","dot") \cdot p11\_costpollution("dot",enty3,"power") \right)\$\left( sameas(enty,"peoil") \& sameas(enty2,"seel") \& sameas(te,"dot") \right) + \left( \left(p11\_EF\_mean(enty,enty2,te,enty3)-pm\_emifac(t,regi,enty,enty2,te,enty3)\right) \cdot vm\_demPe(t,regi,enty,enty2,te) \cdot p11\_share\_sector(t,enty,enty2,te,"trans",regi) \cdot p11\_costpollution(te,enty3,"trans") \right)\$\left(sectorEndoEmi2te11(enty,enty2,te,"trans") \& pe2se(enty,enty2,te) \right) \right) \right) \end{multline*}\]
Limitations EDGE-transport runs in between iterations and is therefore not fully optimized.
| Description | Unit | A | |
|---|---|---|---|
| f11_emifacs_sectREMIND_sourceCEDS (tall, all_regi, all_enty, all_enty, all_te, all_sectorEmi11, emisForEmiFac11, all_APscen, all_APssp) |
GAINS2025 emission factors weighted by CEDS emissions | x | |
| f11_emifacs_sectREMIND_sourceGAINS (tall, all_regi, all_enty, all_enty, all_te, all_sectorEmi11, emisForEmiFac11, all_APscen, all_APssp) |
GAINS2025 emission factors weighted by GAINS emissions | x | |
| p11_EF_mean (all_enty, all_enty, all_te, all_enty) |
global mean pollutant emission factor in 2005 | x | |
| p11_EF_uncontr (all_enty, all_enty, all_te, all_regi, all_enty, sectorEndoEmi11) |
regional uncontrolled pollutant emission factor | x | |
| p11_cesIO (tall, all_regi, all_in) |
cesIO parameter specific for the module | x | |
| p11_costpollution (all_te, all_enty, sectorEndoEmi11) |
pollutant abatement costs in | \(\$/t\) | x |
| p11_emiFacAP (tall, all_regi, all_enty, all_enty, all_te, sectorEndoEmi11, all_enty) |
air pollutant emission factors | \(Gt(species)/TWa\) | x |
| p11_share_ind_fehos (tall, all_regi) |
Share of heating oil used in the industry (rest is residential) | x | |
| p11_share_sector (tall, all_enty, all_enty, all_te, sectorEndoEmi11, all_regi) |
share of technology that goes into industry, residential, and transport sectorEndoEmi11 | \(1\) | x |
| p11_share_trans (tall, all_regi) |
share of transport FE liquids (fedie and fepet) and all FE liquids | \(share\) | x |
| q11_costpollution (tall, all_regi) |
calculates the costs for air pollution policies | x |
| description | |
|---|---|
| all_APscen | all air pollutant scenarios |
| all_APssp | all air pollutant SSPs. GAINSlegacy means the SSP is picked with all_APscen and there are no variations |
| all_enty | all types of quantities |
| all_in | all inputs and outputs of the CES function |
| all_regi | all regions |
| all_sectorEmi11 | all sectors with emissions |
| all_te | all energy technologies, including from modules |
| cm_APssp | cm_APssp as set for use in GDX |
| emi2te(all_enty, all_enty, all_te, all_enty) | map emissions to technologies |
| emiAP(all_enty) | Used for allocation of emission factors |
| emiExog(all_enty) | exogenous emissions |
| emisForEmiFac11(all_enty) | types of emissions that are only calculated in a post-processing routine after the optimization |
| enty(all_enty) | all types of quantities |
| entyFe(all_enty) | final energy types. |
| entySe(all_enty) | secondary energy types |
| fe2ppfEn(all_enty, all_in) | mapping between CES FE variables and ESM FE variables |
| fe_tax_sub_sbi(all_in, all_in) | correspondence between tax and subsidy input data resolution and model sectoral resolution. For FE which takes the pathway I to the CES |
| in(all_in) | All inputs and outputs of the CES function |
| pe2se(all_enty, all_enty, all_te) | map primary energy carriers to secondary |
| regi(all_regi) | all regions used in the solution process |
| se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
| seAgg2se(all_enty, all_enty) | map secondary energy aggregation to SE |
| sectorEndoEmi11(all_sectorEmi11) | sectors with endogenous emissions |
| sectorEndoEmi2te11(all_enty, all_enty, all_te, sectorEndoEmi11) | map sectors to technologies |
| sectorEndoEmi2te_dyn11(all_enty, all_enty, all_te, sectorEndoEmi11) | map sectors to technologies |
| t(ttot) | optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps |
| tall | time index, each year from 1900 to 3000 |
| te(all_te) | energy technologies |
| ttot(tall) | time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps |
Sebastian Rauner, David Klein, Jessica Strefler