Configuration and input data

This page describes the structure and format of inputs required for building MESSAGEix-Transport.

Both input data and configuration are stored in files under message_ix_models/data/transport/.

In most cases, these files are read from a subdirectory like …/data/transport/nodes/, where nodes denotes the message_ix_models node code list—for instance, “R12”—for which MESSAGEix-Transport will be built. This value is retrieved from the model.Config.regions setting on a Context object.

  • If the file data or configuration settings have a node (\(n\)) dimension, the file must be placed in such a subdirectory. Data for one node list is not usable for base models using a different node list.

  • For other data, a node list–specific file may be used. If none exists, the file of the same name in …/data/transport/ is used as a default. For example, …/data/transport/R12/set.yaml is used if it exists; if not, then …/data/transport/set.yaml is used.

Configuration and model structure

General (config.yaml, required)

The contents of this configuration file exactly map to the attributes of the class transport.Config. The class stores all the settings understood by the code for building, solving, and reporting MESSAGEix-Transport. The class also defines the default values for each setting (there is no file …/data/transport/config.yaml containing defaults.) It also has methods for reading the configuration from file; see the detailed description of Config.from_context().

The following is the configuration file for a base model with R12 nodes:

→ View data/transport/R12/config.yaml on GitHub

Technology code list (technology.yaml)

This file gives the code list for the MESSAGE technology concept/set/dimension. Some annotations (iea-eweb-flow, input, report) and the child hierarchy give information about technologies’ grouping according to transport modes.

→ View message_ix_models/data/transport/technology.yaml on GitHub

Code lists for other MESSAGE sets (set.yaml)

This file gives code lists for other MESSAGE concepts/sets/dimensions.

→ View message_ix_models/data/transport/set.yaml on GitHub

Code list CL_TRANSPORT_SCENARIO

This code list, stored in the file message_ix_models/data/sdmx/IIASA_ECE_CL_TRANSPORT_SCENARIO(1.0.0).xml, contains an SDMX code list for distinct MESSAGEix-Transport scenarios. The codes have IDs like LED-SSP1 that give a short identifier used in transport.workflow and elsewhere, and names that give a complete, human-readable description. Every code has all of following annotations:

SSP-URN

Complete URN of a code in ICONICS:SSP(2024) or another code list for the SSP used for sociodemographic input data and to control other settings in transport.build.

Example annotation text: 'urn:sdmx:org.sdmx.infomodel.codelist.Code=ICONICS:SSP(2024).1'

is-LED-Scenario

Example annotation text: True

repr() of Python True or False, the former indicating that “Low Energy Demand (LED)” settings should be used. See also Config.project.

EDITS-activity-id

Example annotation text: 'HA'

For EDITS (project.edits), the identity of an ITF PASTA scenario providing exogenous transport activity.

base-scenario-URL

Example annotation text: 'ixmp://ixmp-dev/SSP_SSP1_v1.1/baseline_DEFAULT_step_13'

URL of a base scenario used to build the corresponding MESSAGEix-Transport scenario.

Input data flows

The module transport.data contains a number of Dataflow instances, listed below, that each describe an input or output data flow. For each of the input data flows:

  • the Dataflow.path attribute gives a file path where a CSV file with input data is expected.

  • the Dataflow.key attribute gives the Key where loaded and transformed data from the file is available. (See also transport.key.exo, which allows access to all of these keys.) The key also expresses the dimensions of the input data flow.

  • The additional metadata explains the measure concept, units of measure, etc.

Through transport.build.main() (ultimately, transport.build.add_exogenous_data() and Dataflow.add_tasks()), each of these files is connected to a genno.Computer used for building MESSAGEix-Transport. Its contents are available as a quantity at the corresponding key, which is used as an input for further model-building computations.

Example: mode_share_freight

  • Contents of the file freight-mode-share-ref.csv are available at the key freight mode share:n-t:ref.

  • The key indicates the dimensionality of this quantity is \((n, t)\).

  • The corresponding CSV file has column headers “node”, “technology”, and “value”.

Not all files are currently or always used in model-building computations. Some submodules of transport use additional data files loaded or processed via other methods; see below under “Other data sources.” Most of the files have a header comment including the source of the data and units of measurement. In some cases—where a header comment would be too long—extended information is below. The git history of files, or the GitHub “blame” view can also be used to inspect the edit history of each file, line by line.

Quick links to each of the data flows: act_non_ldv activity_freight activity_ldv age_ldv cap_new_ldv class_ldv constraint_dynamic disutility demand_scale elasticity_f elasticity_p emi_intensity energy_other fuel_emi_intensity ikarus_availability ikarus_fix_cost ikarus_input ikarus_inv_cost ikarus_technical_lifetime ikarus_var_cost input_adj_ldv input_base input_ref_ldv input_share lifetime_ldv load_factor_ldv load_factor_nonldv mer_to_ppp mode_share_freight pdt_cap_proj pdt_cap_ref pop_share_attitude pop_share_cd_at pop_share_driver population_suburb_share speed t_share_ldv

message_ix_models.model.transport.data.act_non_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_ACTIVITY(2025.3.11)'>

Fixed activity of non-LDV technologies. [dimensionless]

  • Key and dimensions: <activity:n-t-y:non-ldv+exo>

  • Input file at path: act-non_ldv.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.activity_freight = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_FREIGHT_ACTIVITY(2025.3.11)'>

Freight transport activity [gigametric_ton / kilometer]

  • Key and dimensions: <freight activity:n:exo>

  • Input file at path: freight-activity.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.activity_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_LDV_ACTIVITY(2025.3.11)'>

Activity (driving distance) per light duty vehicle [kilometer / year]

  • Key and dimensions: <ldv activity:scenario-n-y:exo>

  • Input file at path: ldv-activity.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

node = R12_AFR [1]

Obtained from literature, based on estimates from South Africa. The reported value for South Africa is lower (18000 km/year, source) than the one for Kenya (22000 km/year, source).

node = R12_FSU [1]

Based on Russia estimates (source).

node = R12_NAM [1]

Based on US estimates (source <https://afdc.energy.gov/data/10309>`__), Canada estimates tend to [be] lower in general.

node = R12_PAO [1]

Estimates for AU is 11000 in 2020, it’s a sharp decrease from 12600 in 2018 (maybe a Covid effect?). Whereas JP is 8532 (source) in 2016.

node = R12_PAS [1]

Based on Singapore by Chong et al. (2018).

node = R12_SAS [1]

Based on India, mainly Delhi estimate by Goel et al. (2015).

message_ix_models.model.transport.data.age_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_AGE(2025.3.11)'>

Mean age of LDVs as of the model base period [year]

  • Key and dimensions: <age:n-t-y:ldv+exo>

  • Input file at path: ldv-age.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.cap_new_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_CAP_NEW(2025.3.11)'>

New capacity values for LDVs [megavehicle]

  • Key and dimensions: <cap_new:nl-t-yv:ldv+exo>

  • Input file at path: ldv-new-capacity.csv

  • Required for build: False

Applied as historical_new_capacity and bound_new_capacity_{lo,up} values for LDVs.

In particular, values up to 2015 (the final period before \(y_0\)) are used for historical_new_capacity. Values from \(y_0\) onwards are used for bound_new_capacity_lo and bound_new_capacity_up.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.class_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_LDV_CLASS(2025.3.11)'>

Share of light-duty vehicles by class [dimensionless]

  • Key and dimensions: <ldv class:n-vehicle_class:exo>

  • Input file at path: ldv-class.csv

  • Required for build: False

Empty or missing values are treated as zero.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.constraint_dynamic = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_CONSTRAINT_DYNAMIC(2025.3.11)'>

Values for dynamic constraints [dimensionless]

  • Key and dimensions: <constraint-dynamic:t-c-name>

  • Input file at path: constraint-dynamic.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

The values for growth_* are allowable annual decrease or increase (respectively) in activity of each technology. For example, a value of 0.01 means the activity may increase by 1% from one year to the next. For periods of length >1 year, MESSAGE compounds the value. Some values used include:

  • ±0.0192 = (1.1 ^ (1 / 5)) - 1.0; or ±10% each 5 years.

  • ±0.0371 = (1.2 ^ (1 / 5)) - 1.0; or ±20% each 5 years.

  • ±0.0539 = (1.3 ^ (1 / 5)) - 1.0; or ±30% each 5 years.

  • ±0.0696 = (1.4 ^ (1 / 5)) - 1.0; or ±40% each 5 years.

Values for initial_*_up are initial values for growth constraints. If these values are not large enough, they can cause infeasibilities in the base period for technologies that do not have historical_activity.

See also:

  • ldv.constraint_data() that handles values for technology="LDV".

  • non_ldv.growth_new_capacity() that handles values for technology="P ex LDV".

message_ix_models.model.transport.data.disutility = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_DISUTILITY(2025.3.11)'>

Disutility cost of LDV usage [kiloUSD_2005 / vehicle]

  • Key and dimensions: <disutility:n-cg-t-y:per vehicle>

  • Input file at path: disutility.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.demand_scale = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_DEMAND_SCALE(2025.3.11)'>

Scaling of total demand relative to base year levels [dimensionless]

  • Key and dimensions: <demand-scale:n-y>

  • Input file at path: demand-scale.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.elasticity_f = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_ELASTICITY_F(2025.3.11)'>

‘Elasticity’ of freight activity with respect to GDP(PPP) [dimensionless]

  • Key and dimensions: <elasticity:scenario-n-y:F+exo>

  • Input file at path: elasticity-f.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.elasticity_p = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_ELASTICITY_P(2025.3.11)'>

‘Elasticity’ of PDT per capita with respect to GDP(PPP) per capita [dimensionless]

  • Key and dimensions: <elasticity:scenario-n-y:P+exo>

  • Input file at path: elasticity-p.csv

  • Required for build: True

The code that handles this input data flow interpolates on the ‘year’ dimension. The ‘node’ dimension is optional; if not provided, values are broadcast across all existing nodes.

Input data for MESSAGEix-Transport.

Codes on the ‘scenario’ dimension are partial URNs for codes in the SSP_2024 code list. Used via pdt_per_capita(), which interpolates on the \(y\) dimension.

message_ix_models.model.transport.data.emi_intensity = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_EMISSIONS_INTENSITY(2025.3.11)'>

Emissions intensity of fuel use [gram / exajoule]

  • Key and dimensions: <emissions intensity:t-c-e:transport>

  • Input file at path: emi-intensity.csv

  • Required for build: True

In particular, the units are mass of emissions species ‘e’ per MJ of input energy commodity ‘c’

Input data for MESSAGEix-Transport.

See the file on GitHub for inline comments and commit history.

Currently only used in ssp.transport.

message_ix_models.model.transport.data.energy_other = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_ENERGY(2025.3.11)'>

2020 demand for OTHER transport energy [terajoule]

  • Key and dimensions: <energy:c-n:transport other>

  • Input file at path: energy-other.csv

  • Required for build: False

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.fuel_emi_intensity = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_FUEL_EMI_INTENSITY(2025.3.11)'>

GHG emissions intensity of fuel use [metric_ton / kiloWa]

  • Key and dimensions: <fuel-emi-intensity:c-e>

  • Input file at path: fuel-emi-intensity.csv

  • Required for build: True

Values are in GWP-equivalent mass of carbon, not in mass of the emissions species.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.ikarus_availability = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_IKARUS_AVAILABILITY(2025.3.11)'>

Availability of non-LDV transport technologies [kilometer / year]

  • Key and dimensions: <ikarus availability:source-t-c-y:exo>

  • Input file at path: ikarus/availability.csv

  • Required for build: True

  • ‘source’ is either “IKARUS” or “Krey/Linßen”.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.ikarus_fix_cost = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_IKARUS_FIX_COST(2025.3.11)'>

Fixed cost of non-LDV transport technologies [kiloEUR_2000]

  • Key and dimensions: <ikarus fix_cost:source-t-c-y:exo>

  • Input file at path: ikarus/fix_cost.csv

  • Required for build: True

Costs are per vehicle.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.ikarus_input = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_IKARUS_INPUT(2025.3.11)'>

Input energy intensity of non-LDV transport technologies [gigajoule / hectovehicle / kilometer]

  • Key and dimensions: <ikarus input:source-t-c-y:exo>

  • Input file at path: ikarus/input.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.ikarus_inv_cost = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_IKARUS_INV_COST(2025.3.11)'>

Investment/capital cost of non-LDV transport technologies [megaEUR_2000]

  • Key and dimensions: <ikarus inv_cost:source-t-c-y:exo>

  • Input file at path: ikarus/inv_cost.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.ikarus_technical_lifetime = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_IKARUS_TECHNICAL_LIFETIME(2025.3.11)'>

Technical lifetime of non-LDV transport technologies [year]

  • Key and dimensions: <ikarus technical_lifetime:source-t-c-y:exo>

  • Input file at path: ikarus/technical_lifetime.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.ikarus_var_cost = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_IKARUS_VAR_COST(2025.3.11)'>

Variable cost of non-LDV transport technologies [EUR_2000 / hectovehicle / kilometer]

  • Key and dimensions: <ikarus var_cost:source-t-c-y:exo>

  • Input file at path: ikarus/var_cost.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.input_adj_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_LDV_INPUT_ADJ(2025.3.11)'>

Calibration factor for LDV fuel economy [dimensionless]

  • Key and dimensions: <ldv input adj:n-scenario:exo>

  • Input file at path: ldv-input-adj.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.input_base = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_INPUT(2025.3.11)'>

Base model input efficiency [gigaWa]

  • Key and dimensions: <input:t-c-h:base>

  • Input file at path: input-base.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.input_ref_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_FUEL_ECONOMY(2025.3.11)'>

Reference fuel economy for LDVs [gigaWa / gigavehicle / kilometer]

  • Key and dimensions: <fuel economy:nl-m:ldv+ref>

  • Input file at path: ldv-input-ref.csv

  • Required for build: False

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.input_share = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_INPUT_SHARE(2025.3.11)'>

Share of input of LDV technologies from each commodity [dimensionless]

  • Key and dimensions: <input-share:t-c-y:exo>

  • Input file at path: input-share.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.lifetime_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_LIFETIME(2025.3.11)'>

Technical lifetime (maximum age) of LDVs [year]

  • Key and dimensions: <lifetime:scenario-nl-t-yv:ldv+exo>

  • Input file at path: lifetime-ldv.csv

  • Required for build: True

Values are interpolated across the model horizon. In MESSAGE(V)- Transport, this quantity had the additional dimension of driver_type, and values were 20 years for driver_type=’average’, 15 y for ‘moderate’, and 10 y for ‘frequent’.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.load_factor_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_LOAD_FACTOR_LDV(2025.3.11)'>

Load factor (occupancy) of LDVs [dimensionless]

  • Key and dimensions: <load factor ldv:scenario-n-y:exo>

  • Input file at path: load-factor-ldv.csv

  • Required for build: True

Units are implicitly passengers per vehicle.

Input data for MESSAGEix-Transport.

The code that handles this file interpolates on the \(y\) dimension.

Original source for the R12 version: duplicate of R11/load-factor-ldv.csv with R12_CHN and R12_RCPA values filled from R11_CPA.

Values for scenario="LED" added in PR #225, prepared using a method described in this Slack message.

Todo

Transcribe the method into this document.

message_ix_models.model.transport.data.load_factor_nonldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_LOAD_FACTOR_NONLDV(2025.3.11)'>

Load factor (occupancy) of non-LDV passenger vehicles [passenger / vehicle]

  • Key and dimensions: <load factor nonldv:t:exo>

  • Input file at path: load-factor-nonldv.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.mer_to_ppp = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_MER_TO_PPP(2025.3.11)'>

Conversion from market exchange rate (MER) to PPP [dimensionless]

  • Key and dimensions: <mer to ppp:n-y>

  • Input file at path: mer-to-ppp.csv

  • Required for build: False

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.mode_share_freight = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_FREIGHT_MODE_SHARE(2025.3.11)'>

Mode shares of freight activity in the model base period [dimensionless]

  • Key and dimensions: <freight mode share:n-t:exo>

  • Input file at path: freight-mode-share-ref.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.pdt_cap_proj = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_P_ACTIVITY(2025.3.11)'>

Projected passenger-distance travelled (PDT) per capita [kilometer / year]

  • Key and dimensions: <P activity:scenario-n-t-y:exo>

  • Input file at path: pdt-cap.csv

  • Required for build: False

Input data for MESSAGEix-Transport.

This file is only used for \(s\) values such as scenario="LED", in which case it is the source for projected PDT per capita.

Values for scenario="LED" added in PR #225 using a method described in this Slack message.

Todo

Transcribe the method into this document.

message_ix_models.model.transport.data.pdt_cap_ref = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_PDT(2025.3.11)'>

Reference (historical) passenger-distance travelled (PDT) per capita [kilometer / year]

  • Key and dimensions: <pdt:n:capita+ref>

  • Input file at path: pdt-cap-ref.csv

  • Required for build: True

In particular, this is the PDT per capita in the model base year, currently 2020

Input data for MESSAGEix-Transport.

node = R12_CHN [4]

Based on the vehicle activity method Liu, et al. 2022 estimate the total PDT for R12_CHN for year (2017) is 9406 billion pkm. This is the latest corrected estimate available from Liu, et al. 2022. Based on similar estimates for 2013 & 2015, I estimate the average growth of PDT to be 8% per year. Using the growth rate and 2017 estimate, the total PDT for year (2020) comes out to be 11848.9 billion pkm.

R12_CHN population estimate from IMAGE: 1.4483 billion

Thus PDT/capita = 11848.9 / 1.4483

message_ix_models.model.transport.data.pop_share_attitude = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_MA3T_ATTITUDE(2025.3.11)'>

Share of population by technology propensity/attitude [dimensionless]

  • Key and dimensions: <ma3t attitude:attitude:exo>

  • Input file at path: ma3t/attitude.csv

  • Required for build: True

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.pop_share_cd_at = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_MA3T_POPULATION(2025.3.11)'>

Share of population by census division and area type [dimensionless]

  • Key and dimensions: <ma3t population:census_division-area_type:exo>

  • Input file at path: ma3t/population.csv

  • Required for build: True

Values sum to roughly 1 across ‘area_type’ for each census_division.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.pop_share_driver = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_MA3T_DRIVER(2025.3.11)'>

Share of population by driver type, census_division, and area_type [dimensionless]

  • Key and dimensions: <ma3t driver:census_division-area_type-driver_type:exo>

  • Input file at path: ma3t/driver.csv

  • Required for build: True

Values sum to roughly 1 across ‘area_type’ for each combination of other dimensions.

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.population_suburb_share = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_POPULATION_SUBURB_SHARE(2025.3.11)'>

Share of MSA population that is suburban [dimensionless]

  • Key and dimensions: <population suburb share:n-y:exo>

  • Input file at path: population-suburb-share.csv

  • Required for build: False

Input data for MESSAGEix-Transport.

message_ix_models.model.transport.data.speed = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_SPEED(2025.3.11)'>

Vehicle speed [kilometer / hour]

  • Key and dimensions: <speed:scenario-n-t-y:exo>

  • Input file at path: speed.csv

  • Required for build: True

  • This is the mean value for all vehicles of all technologies for the given mode.

  • The code that handles this file interpolates on the ‘year’ dimension.

Input data for MESSAGEix-Transport.

In MESSAGE(V)-Transport, values from Schäefer et al. (2010) were used.

message_ix_models.model.transport.data.t_share_ldv = <Dataflow wrapping 'DataflowDefinition=IIASA_ECE:DF_TECH_SHARE(2025.3.11)'>

Share of total stock for LDV technologies [dimensionless]

  • Key and dimensions: <tech share:n-t:ldv+exo>

  • Input file at path: ldv-t-share.csv

  • Required for build: True

  • Values must sum to 1 across the ‘t’ dimension.

  • Technology codes annotated “historical-only: True” (e.g. ICE_L_ptrp) must be omitted or have zero values. If not, incompatible/infeasible constraint values are created.

Input data for MESSAGEix-Transport.

Other data sources

transport makes use of the tools.exo_data mechanism to retrieve data from common (not transport-specific) sources. DataSourceConfig, transport.Config.ssp, and other settings determine which sources and quantities are used.

These include:

  • GDP and population from the project.ssp data sources or other sources including the ADVANCE project, the Global Energy Assessment project, the SHAPE project, etc.

    Note

    Formerly, file gdp.csv was used.

    This is no longer supported; instead, use databases via exo_data.prepare_computer() or introduce quantities with the same dimensions and units into the Computer used for model building/reporting.

  • Energy from the IEA Extended World Energy Balances.

  • IEA_Future_of_Trucks.

  • MERtoPPP.

ldv-fix_cost.csv, ldv-inv_cost.csv, ldv-fuel-economy.csv

Data on costs and efficiencies of LDV technologies.

Formerly this data was read from ldv-cost-efficiency.xlsx, a highly-structured spreadsheet that performs some input calculations. The function get_USTIMES_MA3T() reads data from multiple sheets in this file. To understand the sheet names and cell layout expected, see the code for that function.

As the name implies, the data for MESSAGE (V)-Transport was derived from the US-TIMES and MA³T models.

mode-share/default.csv

Measure

Share of each mode in passenger transport activity in the model base year

Dimensions

\((n, t)\) with transport modes expressed in the \(t\) dimensions.

Units

dimensionless

Notes

node = R12_AFR [2]

These new estimates are mainly based on IMAGE regional estimates (average of EA, WA, and SA) after discussion with Jarmo as well as an additional literature search + guesstimates from vehicle count etc. Still, no comprehensive source to validate these. Only broad qualitative impressions formed from the literature. More details in [other] notes.

node = R12_CHN [3]

Based on the total pdt and mode share breakdown from 2017^ as reported in Liu, et al. 2022, and extrapolating to 2020 (assuming the mode share in 2020 is the same as the one in 2017).

Subtracting Waterways from PDT. RAIL includes both urban PT & RAIL. BUS includes both local buses and COACH.

node = R12_MEA [2]

These new estimates are mainly based on IMAGE regional estimates (average of ME & NA) guesstimates from vehicle count etc. Same as [R12_AFR].

node = R12_PAO [2]

Estimated from weighing Japan (0.80) & Aus/NZ (0.2) by population. JP source is ATO, Statistics Japan, IEA. AU source is BITRE 2021. Motorcycle share is guess-timate based on no. of motorbikes, load factor, and comparing it to cars. BUS estimate for Japan is based on ATO data, less certain as source is missing. More details in [other] notes.

node = R12_SAS [2]

Estimated from India ATO & OECD sources. Rest of SA is likely to have lower RAIL share. 2W share also includes 3W (Auto rickshaw).