Skip to content

Data exchange between IAMs and PyPSA

This page documents what data can be exchanged between IAMs and PyPSA.

IAM → PyPSA (in active use)

Four pathway variables are exchanged from the IAM to PyPSA. Each has a distinct format.

Variable Dimensionality What it is Produced by
Demand one value per (region, year, sector) Annual sectoral electricity demand — a yearly total, not an hourly profile Coupler.build_regional_demand()
Costs several components per (region, technology, year) Investment, FOM, VOM, efficiency, lifetime, fuel cost, CO2 intensity Coupler.extract_cost_parameters(year)
Capacities one value per (region, technology, year) Installed-capacity targets from the IAM iampypsa.transforms.capacities.build_capacity_targets(...)
CO2 price one value per (region, year) The regional carbon-price pathway Coupler.build_co2_prices()

A few things worth knowing about all four:

  • All data comes in long-format tables with key columns like region, year, ... and a value + unit column.
  • Units and the underlying IAM symbol names are declared in a YAML config (remind_symbols_gdx.yaml / remind_symbols_mif.yaml for the REMIND backends) and applied once, at load time.
  • Costs can be set by the IAM, by the PyPSA default, or to a fixed value (see Technology mapping). A separate Coupler.discount_rates(year) method supplies the per-region discount rate, merged into the cost table alongside these components. For consistency with the IAM, additional technologies may need to be added on the PyPSA side.
  • Demand is supplied as an annual total per sector and IAM region. This is then downscaled to country level (see Downscaling demand), based on SSP projections for GDP and population as well as heating degree days (HDDs) and cooling degree days (CDDs). The temporal downscaling into an hourly demand profile happens on the PyPSA side, such that the profile's annual sum matches the IAM's annual sectoral total.
  • Capacities aren't downscaled the way demand is — see the scope note at the top of Downscaling demand. Reconciling them with a model's existing plant database is its own step, see Harmonising capacities.

PyPSA → IAM (not currently in use)

A reverse direction will be implemented in the future to enable bidirectional iterative coupling. The main parameters planned for exchange from PyPSA to the IAM are: capacity factors, market values, sectoral prices, battery and hydrogen storage capacities, and grid transmission and firm-capacity constraints.

This is not implemented in iampypsa yet.

Next