Scenario databases hosted by IIASA

The Energy, Climate and Environment program (ECE) at IIASA is hosting many databases for the community to facilitate scenario analysis, model comparison and dissemination.

Access and permission management

There are public and project-internal (private) database instances or platforms. Access to project-internal platforms is managed via the Scenario Services Manager. To participate in a project, please create an account and send the username to the project managers by email.

You can see all public and private database instances to which you have access, including your view/submit/edit permissions, in the Services tab of the manager.

_images/ece-manager-screenshot.png

Screenshot of the “Overview” page of the Scenario Services Manager

Model registration

To participate in a model comparison project using the IIASA scenario database infrastructure, you have to “register” your model. A model registration requires three specifications:

  • A model name including a version number, preferably using semantic versioning

  • A list or mapping of region names as they will be submitted (uploaded) to an IIASA database instance by the modeling team, and how the region names should appear in the processed scenario data

  • A model mapping to perform region aggregation from native_regions to common_regions and renaming of model native regions (optional)

Option 1) Registration using an Excel template

If you do not feel comfortable using GitHub, please use the Excel template and send it to the project managers by email.

Option 2) Registration using a GitHub pull request

The preferred approach for model registration is starting a GitHub pull request. Please contact the administrators if permissions for the project repository are required.

Please follow the Model registration user guide.

Scenario version management

When submitting a scenario (a.k.a. “run”) to an IIASA database instance with an already existing model-scenario combination, the database will save the new submission as a new version of that run. The version number is incremented automatically and the new version will be automatically set as default version for that model-scenario name.

To select other (non-default) versions, you can use the “Switch to Advanced View” button in the scenario-selection tab of an IIASA Scenario Explorer or you can use the default_only=False option of the function pyam.read_iiasa() or the ixmp4 package (read the docs), see also the Section Database API.

Scenario processing

When submitting a scenario (a.k.a. “run”) to an IIASA database instance, the server executes a scenario-processing workflow including region-aggregation and scenario validation prior to saving the scenario to the database. The processing uses the nomenclature package (read the docs).

The region-aggregation and validation is configured via a project-specific GitHub repository, usually named https://github.com/iiasa/<project>-workflow. Please contact the respective project managers or the Scenario Services team if you need access.

You can also run the project workflow locally (on your computer) before submission to an IIASA database instance, to make sure that the validation and processing works. See Executing scenario processing locally for more information!

Database API

You can query scenario data from an IIASA database instance via a Rest API or the Python packages. The queries depend on the type of the database as explained below.

Scenario Apps and ixmp4 instances

New Scenario Explorer instances (set up since 2025) use the ScSe Apps infrastructure and the ixmp4 package as a database backend. You can list all ixmp4 platforms hosted by IIASA (and to which you have access) using pyam.iiasa.platforms().

You can use pyam.read_iiasa() for simple queries or the ixmp4 package for connecting to a platform and executing other requests.

import ixmp4

platform = ixmp4.Platform("<instance>")

# get a table of all "scenario runs" in the database
platform.runs.tabulate()

# get a table of all IAMC variables
platform.iamc.variables.tabulate()

Legacy Scenario Explorer instances

You can use the pyam package to connect to a legacy Scenario Explorer instance developed by the Scenario Services and Scientific Software team from 2018 until 2024. For example, you can get a list of all scenarios in a database instance. You can also use pyam.read_iiasa() to query scenario data from a legacy instance.

import pyam

conn = pyam.iiasa.Connection("<instance>")

# get a table of all scenarios in the database
conn.properties()

# query scenario data and meta indicators from the database
df = pyam.read_iiasa(conn, .. <filter_arguments>)

Refer to pyam.iiasa.Connection for more information.

Note

Read the pyam documentation for more information about working with the IIASA scenario databases and Python.