The 35_transport module calculates the transport demand composition as a part of the CES structure.
Interface plot missing!
Description | Unit | A | B | |
---|---|---|---|---|
cm_startIter_EDGET | starting iteration of EDGE-T | x | ||
cm_startyear | first optimized modelling time step | \(year\) | x | x |
pm_boundCapEV (tall, all_regi) |
installed capacity of electric vehicles | x | ||
pm_cesdata (tall, all_regi, all_in, cesParameter) |
parameters of the CES function | x | ||
pm_cesdata_sigma (ttot, all_in) |
elasticities of substitution | x | x | |
pm_cf (tall, all_regi, all_te) |
Installed capacity availability - capacity factor (fraction of the year that a plant is running) | x | ||
pm_esCapCost (tall, all_regi, all_teEs) |
Capital energy cost per unit of consumption for end-use capital (energy service layer) | x | ||
pm_eta_conv (tall, all_regi, all_te) |
Time-dependent eta for technologies that do not have explicit time-dependant etas, still eta converges until 2050 to dataglob_values. | \(efficiency (0..1)\) | x | |
pm_fe2es (tall, all_regi, all_teEs) |
Conversion factor from final energies to energy services. Default is 1. | x | ||
pm_FEPrice (ttot, all_regi, all_enty, sector, emiMkt) |
parameter to capture all FE prices across sectors and markets (tr$2005/TWa) | x | x | |
pm_gdp (tall, all_regi) |
GDP data | \(trn US\$ 2005\) | x | x |
pm_pop (tall, all_regi) |
population data | \(bn people\) | x | |
pm_prodCouple (all_regi, all_enty, all_enty, all_te, all_enty) |
own consumption | x | ||
pm_shFeCes (ttot, all_regi, all_enty, all_in, all_teEs) |
Final energy shares for CES nodes | x | ||
pm_vintage_in (all_regi, opTimeYr, all_te) |
historical vintage structure. | \(arbitrary\) | x | |
qm_budget (ttot, all_regi) |
Budget balance | x | x | |
sm_EJ_2_TWa | multiplicative factor to convert from EJ to TWa | x | ||
sm_eps | small number: 1e-9 | x | x | |
vm_cap (tall, all_regi, all_te, rlf) |
net total capacities | x | ||
vm_capFac (ttot, all_regi, all_te) |
capacity factor of conversion technologies | x | ||
vm_cesIO (tall, all_regi, all_in) |
Production factor | x | ||
vm_deltaCap (tall, all_regi, all_te, rlf) |
capacity additions | x | ||
vm_demFeForEs (ttot, all_regi, all_enty, all_esty, all_teEs) |
Final energy which will be used in the ES layer. | x | ||
vm_demFeSector_afterTax (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
fe demand per sector and emission market after tax. Demand sectors should use this variable in their fe balance equations so demand side marginals include taxes effects. | \(TWa\) | x | x |
vm_prodEs (ttot, all_regi, all_enty, all_esty, all_teEs) |
Energy services (unit determined by conversion factor pm_fe2es). | x | ||
vm_prodUe (ttot, all_regi, all_enty, all_enty, all_te) |
Useful energy production | \(TWa\) | x | |
vm_transpGDPscale (ttot, all_regi) |
dampening factor to align edge-t non-energy transportation costs with historical GDP data | x |
Description | Unit | |
---|---|---|
vm_shUePeT (ttot, all_regi, all_te) |
share of the Uepet production from a certain LDV type in the total Uepet production. Unit: percent |
Transport demand composition is calculated for LDV categories, electric trains and an aggregate category HDV. The CES transport branch has 3 nodes (LDV, HDV and electric trains). LDVs are in turn divided into ICE cars, BEVs, FCEVs. The CES branch is in useful energy units (EJ). A correction for the different efficiency of LDV powertrains is therefore included. HDVs include both passenger and freight modes. Vehicles capacity addition for LDVs is calculated in REMIND.
p35_pass_FE_share_transp(ttot,all_regi) "Share of 'non-LDV passenger FE' in 'total non-LDV FE. Unit: share [0..1]"
p35_pass_nonLDV_ES_efficiency(ttot,all_regi) "Non-LDV passenger energy service per non-LDV FE. Unit: bn pkm/EJ"
p35_passLDV_ES_efficiency(ttot,all_regi) "LDV passenger energy service per non-LDV FE. Only correct if applied to CES-input, as BEV and H2FCV have higher efficiencies. Unit: bn pkm/EJ"
p35_freight_ES_efficiency(ttot,all_regi) "Freight energy service per freight FE. Unit: bn tkm/EJ"
p35_bunkers_fe(tall,all_regi) "Bunkers FE demand (fedie) [TWa]"
p35_pass_FE_target_share "The target share for the harmonization of non-LDV passenger FE (p35_pass_FE_share_transp). Unit: share [0..1]"
p35_harmonizing_year "Year when full harmonization of shares and efficiencies would be reached."
p35_share_seliq_t(ttot,all_regi) "share of liquids used for transport sector (fedie + fepet). Unit 0..1"
p35_share_seh2_t(ttot,all_regi) "share of hydrogen used for transport sector (feh2t). Unit 0..1"
p35_share_seel_t(ttot,all_regi) "Share of electricity used for transport sector (feelt). Unit 0..1"
$ifthen not "%cm_LDV_mkt_share%" == "off"
p35_shUePeT_bound(all_te,bound_type) "define upper and/or lower bound for LDV EV (apCarElT), hydrogen (apCarH2T) or petrol (apCarPeT) market share [ex. apCarElT.upper 90, apCarPeT.lower 5]" / %cm_LDV_mkt_share% /
$endif
$ifthen.shLDVsales not "%cm_share_LDV_sales%" == "off"
p35_shLDVSales_bound(ttot,ttot,ext_regi,all_te,bound_type) "define upper and/or lower bound for LDV sales - EV (apCarElT), hydrogen (apCarH2T) or petrol (apCarPeT) - at a given year range" / %cm_share_LDV_sales% /
$endif.shLDVsales
;
Transportation Final Energy Balance
\[\begin{multline*} \sum_{\left(entySe,te\right)\$se2fe(entySe,entyFe,te)}\left( vm\_demFeSector\_afterTax(ttot,regi,entySe,entyFe,"trans",emiMkt) \right) = \sum_{transType\_35} v35\_demTransType(ttot,regi,entyFe,emiMkt,transType\_35) \end{multline*}\]
Transportation per type
\[\begin{multline*} v35\_demTransType(ttot,regi,entyFe,emiMkt,"LDV") = \left( \sum_{fe2ue(entyFe,entyUe,te)\$LDV35(te)} v35\_demFe(ttot,regi,entyFe,entyUe,te) \right)\$\left(sameas(emiMkt,"ES") \& \left(NOTsameas(entyFe,"fedie")\right)\right) \end{multline*}\]
\[\begin{multline*} v35\_demTransType(ttot,regi,entyFe,emiMkt,"nonLDV\_noBunkers") = \left( \left( \sum_{fe2ue(entyFe,entyUe,te)} v35\_demFe(ttot,regi,entyFe,entyUe,te) - \sum_{pc2te(entyFE2,entyUe,te,entyFE)}\left( pm\_prodCouple(regi,entyFE2,entyUe,te,entyFE) \cdot vm\_prodUe(ttot,regi,entyFE2,entyUe,te) \right) \right) - \sum_{all\_emiMkt} v35\_demTransType(ttot,regi,entyFe,all\_emiMkt,"nonLDV\_Bunkers") \right)\$\left(sameas(emiMkt,"ES") \& sameas(entyFe,"fedie")\right) + \left( \left( \sum_{fe2ue(entyFe,entyUe,te)\$\left(NOT LDV35(te)\right)} v35\_demFe(ttot,regi,entyFe,entyUe,te) - \sum_{pc2te(entyFE2,entyUe,te,entyFE)}\left( pm\_prodCouple(regi,entyFE2,entyUe,te,entyFE) \cdot vm\_prodUe(ttot,regi,entyFE2,entyUe,te) \right) \right) \right)\$\left(sameas(emiMkt,"ES") \& \left(sameas(entyFe,"feh2t") or sameas(entyFe,"feelt")\right)\right) \end{multline*}\]
\[\begin{multline*} v35\_demTransType(ttot,regi,entyFe,emiMkt,"nonLDV\_Bunkers") = \left( p35\_bunkers\_fe(ttot,regi) \right)\$\left(sameas(emiMkt,"other") \& sameas(entyFe,"fedie")\right) + 0\$\left(sameas(emiMkt,"other") \& NOT sameas(entyFe,"fedie")\right) \end{multline*}\]
Transformation from final energy to useful energy
\[\begin{multline*} pm\_eta\_conv(t,regi,te) \cdot v35\_demFe(t,regi,entyFe,entyUe,te) = vm\_prodUe(t,regi,entyFe,entyUe,te) \end{multline*}\]
Hand-over to CES
\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") = \sum_{fe2ue(entyFe,entyUe,te)\$ue2ppfen(entyUe,in)} vm\_prodUe(t,regi,entyFe,entyUe,te) \end{multline*}\]
Definition of capacity constraints for FE to ES transformation:
\[\begin{multline*} vm\_prodUe(t,regi,entyFe,entyUe,te) \leq \sum_{teue2rlf(te,rlf)}\left( vm\_capFac(t,regi,te) \cdot vm\_cap(t,regi,te,rlf) \right) \end{multline*}\]
Share of LDV stock
\[\begin{multline*} \sum_{fe2ue(entyFe,"uepet",te2)\$LDV35(te2)} vm\_prodUe(t,regi,entyFe,"uepet",te2) \cdot \frac{ vm\_shUePeT(t,regi,te) }{ 100 } = \sum_{fe2ue(entyFe,"uepet",te)} vm\_prodUe(t,regi,entyFe,"uepet",te) \end{multline*}\]
\[\begin{multline*} \sum_{fe2ue(entyFe,"uepet",te)\$LDV35(te)} vm\_shUePeT(t,regi,te) = 100 \end{multline*}\]
Share of LDV sales
\[\begin{multline*} v35\_shLDVSales(t,regi,te) \cdot \frac{ \sum_{\left(te2,rlf\right)\$\left(te2rlf(te2,rlf) and LDV35(te2)\right)} vm\_deltaCap(t,regi,te2,rlf) }{ 100 } = \sum_{rlf\$te2rlf(te,rlf)} vm\_deltaCap(t,regi,te,rlf) \end{multline*}\]
Limitations Not very flexible implementation of new transport alternatives
Transport demand composition is calculated based on the EDGE-transport model. This realization allows the EDGE-transport model to interact with REMIND. EDGE is set to run in between iterations. EDGE runs every 5 iterations, to allow REMIND to stabilize in between. Transport structure is defined in detail in EDGE, and only aggregate values are then fed to REMIND. The CES transport branch has 2 nodes (passenger and freight transport) each divided into Short-Medium distance and Long distance options. The CES branch is in energy services units (passenger or ton km). Bunkers (Shipping and Internaitional Aviation) represent the Long distance CES leaves. Vehicles capacity addition is calculated in EDGE (REMIND has no vintage tracking).
Transportation Final Energy Balance
\[\begin{multline*} \sum_{\left(entySe,te\right)\$se2fe(entySe,entyFe,te)}\left( vm\_demFeSector\_afterTax(ttot,regi,entySe,entyFe,"trans",emiMkt) \right) = \sum_{fe2es(entyFe,esty,teEs)\$\left(NOT es\_lo35(esty)\right)} vm\_demFeForEs(ttot,regi,entyFe,esty,teEs)\$sameas(emiMkt,"ES")+ \sum_{fe2es(entyFe,esty,teEs)\$es\_lo35(esty)} vm\_demFeForEs(ttot,regi,entyFe,esty,teEs)\$sameas(emiMkt,"other") \end{multline*}\]
Calculating dampening factor to align edge-t non-energy transportation costs with historical GDP data
\[\begin{multline*} vm\_transpGDPscale(ttot,regi) \cdot \left(\sum\left(fe2es(entyFe,esty,teEs)\$entyFeTrans(entyFe), pm\_esCapCost("2005",regi,teEs) \cdot vm\_prodEs("2005",regi,entyFe,esty,teEs)\right)\right) = \left(p35\_transportGDPshare("2005",regi) \cdot pm\_gdp("2005",regi)\right) \end{multline*}\]
Limitations EDGE-transport runs in between iterations and is therefore not fully optimized.
Description | Unit | A | B | |
---|---|---|---|---|
f35_factorVintages (all_regi, opTimeYr, all_te) |
factor to be able to better reproduce the 2010 decrease of liquids and solids demand | x | ||
f35_transp_eff (all_regi, char35) |
read-in of regionalized transport mobility shares and efficiencies | x | ||
p35_bunkers_fe (tall, all_regi) |
Bunkers FE demand (fedie) | \(TWa\) | x | |
p35_bunkers_fedemand (tall, all_regi, all_GDPscen, EDGE_scenario_all) |
Bunkers FE demand | \(EJ\) | x | |
p35_cesdata_sigma (all_in) |
substitution elasticities | x | x | |
p35_demByTech (tall, all_regi, all_GDPscen, all_demScen, EDGE_scenario_all, all_enty, all_in, all_teEs) |
Aggregate FE Demand per transport fuel technology | \(TWa\) | x | |
p35_esCapCost (tall, all_regi, all_GDPscen, all_demScen, EDGE_scenario_all, all_teEs) |
Capital costs for the transport system | \(\$/pkm or \$/tkm\) | x | |
p35_fe2es (tall, all_regi, all_GDPscen, all_demScen, EDGE_scenario_all, all_teEs) |
Aggregate energy efficiency of transport fuel technologies | \(trn pkm/Twa or trn tkm/Twa\) | x | |
p35_fe2es_aux (tall, all_regi, all_GDPscen, all_demScen, EDGE_scenario_all, all_teEs) |
Aggregate energy efficiency of transport fuel technologies | \(trn pkm/Twa or trn tkm/Twa\) | x | |
p35_freight_ES_efficiency (ttot, all_regi) |
Freight energy service per freight FE. Unit: bn tkm/EJ | x | ||
p35_harmonizing_year | Year when full harmonization of shares and efficiencies would be reached. | x | ||
p35_pass_FE_share_transp (ttot, all_regi) |
Share of ‘non-LDV passenger FE’ in ’total non-LDV FE. Unit: share | \(0..1\) | x | |
p35_pass_FE_target_share | The target share for the harmonization of non-LDV passenger FE (p35_pass_FE_share_transp). Unit: share | \(0..1\) | x | |
p35_pass_nonLDV_ES_efficiency (ttot, all_regi) |
Non-LDV passenger energy service per non-LDV FE. Unit: bn pkm/EJ | x | ||
p35_passLDV_ES_efficiency (ttot, all_regi) |
LDV passenger energy service per non-LDV FE. Only correct if applied to CES-input, as BEV and H2FCV have higher efficiencies. Unit: bn pkm/EJ | x | ||
p35_share_seel_t (ttot, all_regi) |
Share of electricity used for transport sector (feelt). Unit 0..1 | x | ||
p35_share_seh2_t (ttot, all_regi) |
share of hydrogen used for transport sector (feh2t). Unit 0..1 | x | ||
p35_share_seliq_t (ttot, all_regi) |
share of liquids used for transport sector (fedie + fepet). Unit 0..1 | x | ||
p35_shFeCes (tall, all_regi, all_GDPscen, all_demScen, EDGE_scenario_all, all_enty, all_in, all_teEs) |
Shares of fuels by CES node | x | ||
p35_shLDVSales_bound (ttot, ttot, ext_regi, all_te, bound_type) |
define upper and/or lower bound for LDV sales - EV (apCarElT), hydrogen (apCarH2T) or petrol (apCarPeT) - at a given year range | x | ||
p35_shUePeT_bound (all_te, bound_type) |
define upper and/or lower bound for LDV EV (apCarElT), hydrogen (apCarH2T) or petrol (apCarPeT) market share | \(ex. apCarElT.upper 90, apCarPeT.lower 5\) | x | |
p35_transportGDPshare (ttot, all_regi) |
transportation share in GDP | \(percentage\) | x | |
p35_valconv | temporary parameter used to set convergence between regions | x | ||
q35_demFeTrans (ttot, all_regi, all_enty, all_emiMkt) |
Transportation final energy demand | x | x | |
q35_demTransBunkers (ttot, all_regi, all_enty, all_emiMkt) |
Tranportation non LDV Bunkers FE demand | x | ||
q35_demTransLDV (ttot, all_regi, all_enty, all_emiMkt) |
Tranportation LDV FE demand | x | ||
q35_demTransNonLDVnoBunkers (ttot, all_regi, all_enty, all_emiMkt) |
Tranportation non LDV without Bunkers FE demand | x | ||
q35_esm2macro (ttot, all_regi, all_in) |
hand over amount of entyFe/entyUe from ESM(GENERIS) to the MACRO module | x | ||
q35_limitCapUe (ttot, all_regi, all_enty, all_enty, all_te) |
capacity constraint for ES production | x | ||
q35_shLDVSales (ttot, all_regi, all_te) |
calculate the share of LDV sales | x | ||
q35_shUePeT (ttot, all_regi, all_te) |
calculate share of the Uepet production from a certain LDV type in the total Uepet production | x | ||
q35_shUePeTbal (ttot, all_regi) |
shares sum must be equal to 100 | x | ||
q35_transFe2Ue (ttot, all_regi, all_enty, all_enty, all_te) |
energy tranformation fe to es | x | ||
q35_transGDPshare (ttot, all_regi) |
Calculating dampening factor to align edge-t non-energy transportation costs with historical GDP data | x | ||
v35_demFe (ttot, all_regi, all_enty, all_enty, all_te) |
fe demand | \(TWa\) | x | |
v35_demTransType (ttot, all_regi, all_enty, all_emiMkt, transType_35) |
Tranportation FE demand per type: LDV, nonLDV without Bunkers and nonLDV Bunkers | x | ||
v35_shLDVSales (ttot, all_regi, all_te) |
share of LDV sales per tech | x |
description | |
---|---|
adjte_dyn35(all_te) | technologies with adjustment costs on capacity additions - transport module additions |
all_demScen | all possible demand scenarios |
all_emiMkt | emission markets |
all_enty | all types of quantities |
all_esty | energy services |
all_GDPscen | all possible GDP scenarios |
all_in | all inputs and outputs of the CES function |
all_regi | all regions |
all_te | all energy technologies, including from modules |
all_teEs | energy service technologies |
bound_type | auxiliar set to allow different values for upper and lower bound defined in a single switch |
ces_transport_dyn35(all_in, all_in) | CES tree structure - transport |
cesOut2cesIn(all_in, all_in) | CES tree structure |
cesParameter | parameters of the CES functions and for calibration |
char35 | characteristics of transport technologies |
cm_GDPscen | cm_GDPscen as set for use in GDX |
EDGE_scenario_all | EDGE-T scenarios, used to get the bunkers share on total liquids demand. |
EDGE_scenario(EDGE_scenario_all) | Selected EDGE-T scenario |
emi_sectors | comprehensive sector set used for more detailed emissions accounting (REMIND-EU) and for CH4 tier 1 scaling - potentially to be integrated with similar set all_exogEmi |
emi2te(all_enty, all_enty, all_te, all_enty) | map emissions to technologies |
enty_dyn35(all_enty) | all types of quantities - transport module additions |
enty(all_enty) | all types of quantities |
entyFe(all_enty) | final energy types. |
entyFe2Sector(all_enty, emi_sectors) | final energy (stationary and transportation) mapping to sectors (industry, buildings, transportation and cdr) |
entyFeTrans(all_enty) | final energy types from transport sector |
entySe(all_enty) | secondary energy types |
entyUe_dyn35(all_enty) | Energy service types |
entyUe(all_enty) | Useful energy types |
es_lo35(all_esty) | energy services long distance (bunkers) |
es2ppfen_dyn35(all_esty, all_in) | matching ES to ppfEn in MACRO |
es2ppfen(all_esty, all_in) | matching ES in ESM to ppfEn in MACRO |
esty_dyn35(all_esty) | Energy service types |
esty(all_esty) | energy service types. Have to be added by modules. |
ext_regi | extended regions list (includes subsets of H12 regions) |
FE_Elec_fety35(all_enty) | set for reporting |
FE_Transp_fety35(all_enty) | set for reporting |
fe_transport_liquids_dyn35(all_enty) | liquids used by the transport module |
fe2ces_dyn35(all_enty, all_in, all_teEs) | map FE carriers to CES nodes via appliances |
fe2es_dyn35(all_enty, all_esty, all_teEs) | map FE carriers to ES via appliances |
fe2es(all_enty, all_esty, all_teEs) | map FE carriers to ES via ES technologies |
fe2ue_dyn35(all_enty, all_enty, all_te) | map FE carriers to ES via appliances |
fe2ue(all_enty, all_enty, all_te) | map FE carriers to ES via appliances |
in_dyn35(all_in) | all inputs and outputs of the CES function - transport module additions |
in(all_in) | All inputs and outputs of the CES function |
iteration | iterator for main (Negishi/Nash) iterations |
LDV35(all_te) | all technologies describing light duty vehicles |
learnte_dyn35(all_te) | technologies with endogenous learning-by-doing - transport module additions |
modules | all the available modules |
notIn_emi2te_dyn35(all_enty, all_enty, all_te, all_enty) | remove emission pathways: CH4 from nat. gas |
notIn_entyFe2Sector_dyn35(all_enty, emi_sectors) | mapping final energy to transport sector |
notIn_entyFeTrans_dyn35(all_enty) | final energy types - transport module additions |
notIn_se2fe_dyn35(all_enty, all_enty, all_te) | gas techs for transport not used in complex |
opTimeYr | actual life time of ??? in years |
pc2te(all_enty, all_enty, all_te, all_enty) | mapping for own consumption of technologies |
ppfen_dyn35(all_in) | all energy inputs because of unit conversion - transport module additions |
ppfEn(all_in) | Primary production factors energy |
ppfenFromUe(all_in) | all ppfEn that are equivalent to UE - is filled automatically from the content of fe2ue |
regi_group(ext_regi, all_regi) | region groups (regions that together corresponds to a H12 region) |
regi(all_regi) | all regions used in the solution process |
rlf | cost levels of fossil fuels |
se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
t(ttot) | modeling time, usually starting in 2005, but later for fixed delay runs |
tall | time index |
te_dyn35(all_te) | technologies - transport module additions |
te(all_te) | energy technologies |
te2rlf(all_te, rlf) | all technologies to grades |
teAdj(all_te) | technologies with adjustment costs on capacity additions |
teEs_dyn35(all_teEs) | technologies - transport module additions |
teEs(all_teEs) | ES technologies which are actually used (to be filled by module realizations). |
teFe2rlf_dyn35(all_te, rlf) | mapping for final energy to grades - transport module additions |
teFe2rlf(all_te, rlf) | mapping for final energy to grades |
teLearn(all_te) | Learning technologies (investment costs can be reduced) |
teue2rlf_dyn35(all_te, rlf) | mapping for ES production technologies to grades |
teue2rlf(all_te, rlf) | mapping for ES production technologies to grades |
transType_35 | transport type |
ttot(tall) | time index with spin up |
ue2ppfen_dyn35(all_enty, all_in) | matching ES in ESM to ppfEn in MACRO |
ue2ppfen(all_enty, all_in) | matching UE in ESM to ppfEn in MACRO |
Alois Dirnaichner, Robert Pietzcker, Marianna Rottoli
01_macro, 04_PE_FE_parameters, 40_techpol, core