A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

MESSAGEix

A versatile, dynamic systems-optimization modeling framework developed by the IIASA Energy, Climate, and Environment (ECE) Program since the 1980s.
https://github.com/iiasa/message_ix

Category: Climate Change
Sub Category: Integrated Assessment and Climate Policy

Keywords

energy-system gams integrated-assessment integrated-assessment-model open-source strategic-planning

Keywords from Contributors

data-warehouse modeling-tool energy-systems iamc-format integrated-assessment-scenarios macro-energy scenario-data timeseries-format archiving measur

Last synced: about 17 hours ago
JSON representation

Repository metadata

The integrated assessment and energy systems model MESSAGEix

README.md

The MESSAGEix framework

DOI
PyPI version
Anaconda version
Documentation build
Build status
Test coverage
Contributor Covenant

MESSAGEix is a versatile, dynamic, model framework for energy-engineering-economy-environment (E4) systems research.

MESSAGE (without “…ix”) is a specific formulation of a generic linear programming (LP) optimization model for strategic energy planning and integrated assessment of E4 systems, developed by the IIASA Energy, Climate, and Environment (ECE) Program since the 1980s.
To incorporate feedback between prices and demand levels for energy and commodities, the LP model can optionally be linked to the economic general equilibrium (GE) MACRO model.

The message_ix Python package—also fully usable from R—includes:

  • Implementations of MESSAGE, MACRO, and their linkage, in GAMS,
  • Application programming interfaces (APIs) and tools for model building and scientific programming,
  • Extensive documentation and a complete test suite.

The framework is built on IIASA's ix modeling platform (ixmp), which provides data warehouse features for numerical scenario analysis.

Documentation

Complete documentation of the framework is available at https://docs.messageix.org.
This includes:

Other forms of documentation:

  • The online documentation is built automatically from the contents of the
    message_ix GitHub repository.
  • Documentation for the ‘latest’ or ‘stable’ release is shown by default.
  • Use the chooser to access the ‘latest’ version, corresponding to the main branch and including the latest development code; or to access docs for a specific release, e.g. v3.2.0.
  • For offline use, the documentation can be built from the source code.
    See the file doc/README.rst

Commitment to our Community

  • We aim to create a community that is welcoming to everyone.
    Please respect our Code of Conduct at all times when interacting with message_ix and the community.
  • We warmly welcome all contributions to our community. Please take a look at our guidelines for contributing to development.
  • If you are looking to understand how the message_ix team operates and how we decide what to do with your contributions, please read our governance guidelines.
  • We highly value code security.
    To learn more about our security practice and advice, please visit our security policy.
  • We strive to entertain a welcoming and inclusive community.
    If you struggle to use message_ix, please check our guidelines for getting support.
  • We also:
    • Host an annual MESSAGEix Community Meeting.
    • Publish, at least once per year, a community newsletter.
      You are cordially invited to subscribe by filling this form and ticking the box for “MESSAGEix Community”.

License

Copyright © 2018–2025 IIASA Energy, Climate, and Environment (ECE) Program

The MESSAGEix framework is licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License in LICENSE or at http://www.apache.org/licenses/LICENSE-2.0.

In addition and per good scientific practice, you must cite the appropriate publications when you use MESSAGEix in scientific work.
Again, see ‘User guidelines and notice’ or the file NOTICE.rst.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: MESSAGEix
message: >-
  Thank you for using the MESSAGEix framework! Please cite
  the GitHub repository and the MESSAGEix framework manuscript 
  (https://doi.org/10.1016/j.envsoft.2018.11.012).
type: software
version: 3.10.0
# Format: "yyyy-mm-dd"
date-released: "2025-02-19"
authors:
  - given-names: Paul Natsuo
    family-names: Kishimoto
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-8578-753X"
  - given-names: Fridolin
    family-names: Glatter
    affiliation: IIASA
    orcid: "https://orcid.org/0009-0007-9452-2473"
  - given-names: Maik
    family-names: Budzinski
    affiliation: Aalborg University
    orcid: "https://orcid.org/0000-0003-2879-1193"
  - given-names: Miguel Poblete
    family-names: Cazenave
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0001-8280-910X"
  - given-names: Oliver
    family-names: Fricko
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-6835-9883"
  - given-names: Matthew J.
    family-names: Gidden
    orcid: "https://orcid.org/0000-0003-0687-414X"
  - given-names: Daniel
    family-names: Huppmann
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-7729-7389"
  - given-names: Jarmo S.
    family-names: Kikstra
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0001-9405-1228"
  - given-names: Peter
    family-names: Kolp
    orcid: "https://orcid.org/0000-0003-0122-2839"
  - given-names: Diamantis
    family-names: Koutsandreas
    orcid: "https://orcid.org/0000-0003-4683-090X"
  - given-names: Volker
    family-names: Krey
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0003-0307-3515"
  - given-names: Nikolay
    family-names: Kushin
  - given-names: Francesco
    family-names: Lovat
    orcid: "https://orcid.org/0000-0002-4331-980X"
  - given-names: Marek
    family-names: Makowski
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-6107-0972"
  - given-names: Alessio
    family-names: Mastrucci
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-5611-7780"
  - given-names: Measrainsey
    family-names: Meng
    orcid: "https://orcid.org/0000-0003-2783-2029"
  - given-names: Jihoon
    family-names: Min
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-0020-1174"
  - given-names: Clara
    family-names: Orthofer
    orcid: "https://orcid.org/0000-0002-7049-7791"
  - given-names: Michael
    family-names: Pimmer
  - given-names: Jan
    family-names: Steinhauser
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-5989-6855"
  - given-names: Gamze
    family-names: Ünlü
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0003-0080-7122"
  - given-names: Adriano
    family-names: Vinca
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0002-3051-178X"
  - given-names: Laura
    family-names: Wienpahl
    orcid: "https://orcid.org/0000-0003-2049-8531"
  - given-names: Behnam
    family-names: Zakeri
    affiliation: IIASA
    orcid: "https://orcid.org/0000-0001-9647-2878"
  - given-names: Thomas
    family-names: Zipperle
    orcid: "https://orcid.org/0000-0003-2512-9508"
identifiers:
  - type: url
    value: "https://github.com/iiasa/message_ix"
    description: "Main repository of the MESSAGEix framework on Github"
  - type: doi
    value: 10.5281/zenodo.4005684
    description: "Zenodo entry"
repository-code: "https://github.com/iiasa/message_ix"
url: "https://docs.messageix.org/en/stable/index.html"
abstract: >-
  MESSAGEix is a versatile, dynamic, model framework for
  energy-engineering-economy-environment (E4) systems
  research.


  MESSAGE (without “…ix”) is a specific formulation of a
  generic linear programming (LP) optimization model for
  strategic energy planning and integrated assessment of E4
  systems, developed by the IIASA Energy, Climate, and
  Environment (ECE) Program since the 1980s. To incorporate
  feedback between prices and demand levels for energy and
  commodities, the LP model can optionally be linked to the
  economic general equilibrium (GE) MACRO model.


  The message_ix Python package—also fully usable from
  R—includes:

      Implementations of MESSAGE, MACRO, and their linkage, in GAMS,
      Application programming interfaces (APIs) and tools for model building and scientific programming,
      Extensive documentation and a complete test suite.

  The framework is built on IIASA's ix modeling platform
  (ixmp), which provides data warehouse features for
  high-powered numerical scenario analysis.
keywords:
  - "integrated assessment"
  - "energy systems"
  - "macro-energy"
  - modelling
  - "scenario analysis"
  - "data visualisation"
  - "Python package"
license: Apache-2.0
doi: 10.5281/zenodo.4005684
references:
  - title: "The MESSAGEix Integrated Assessment Model and the ix modeling platform (ixmp): An open framework for integrated and cross-cutting analysis of energy, climate, the environment, and sustainable development"
    journal: "Environmental Modelling & Software"
    year: 2019
    authors:
    - given-names: Daniel
      family-names: Huppmann
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0002-7729-7389"
    - given-names: Matthew J.
      family-names: Gidden
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0003-0687-414X"
    - given-names: Oliver
      family-names: Fricko
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0002-6835-9883"
    - given-names: Peter
      family-names: Kolp
      orcid: "https://orcid.org/0000-0003-0122-2839"
    - given-names: Clara
      family-names: Orthofer
      orcid: "https://orcid.org/0000-0002-7049-7791"
    - given-names: Michael
      family-names: Pimmer
    - given-names: Nikolay
      family-names: Kushin
    - given-names: Adriano
      family-names: Vinca
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0002-3051-178X"
    - given-names: Alessio
      family-names: Mastrucci
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0002-5611-7780"
    - given-names: Keywan
      family-names: Riahi
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0001-7193-3498"
    - given-names: Volker
      family-names: Krey
      affiliation: IIASA
      orcid: "https://orcid.org/0000-0003-0307-3515"
    doi: "10.1016/j.envsoft.2018.11.012"
    url: "pure.iiasa.ac.at/15157/"
    volume: 112
    month: 2
    start: 143
    end: 156
    type: article
    

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 1,619
Total Committers: 26
Avg Commits per committer: 62.269
Development Distribution Score (DDS): 0.492

Commits in past year: 170
Committers in past year: 7
Avg Commits per committer in past year: 24.286
Development Distribution Score (DDS) in past year: 0.535

Name Email Commits
Paul Natsuo Kishimoto m****l@p****e 822
Fridolin Glatter g****r@i****t 183
Laura Wienpahl 5****n 130
Ben b****i@l****m 121
Francesco Lovat f****t@g****m 102
FRICKO Oliver f****o@i****t 72
Matthew Gidden m****n@g****m 48
dependabot[bot] 4****] 29
Marek Makowski m****k@i****t 28
Daniel Huppmann dh@d****t 23
adrivinca a****a@y****t 12
volker-krey k****y@i****t 10
GamzeUnlu95 g****6@g****m 9
MiguelPobleteCazenave p****e@i****t 6
behnam2015 3****5 4
Jarmo Kikstra 4****a 4
Jihoon g****s@g****m 3
Measrainsey Meng m****y@p****e 3
Thomas Zipperle t****e 2
Clara c****r@t****e 2
Maik Budzinski 5****z 1
Nikolay Kushin z****h@g****m 1
Peter Kolp p****p 1
amastrucci m****c@i****t 1
fonfon b****b@f****t 1
lumbric l****c@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 351
Total pull requests: 496
Average time to close issues: 8 months
Average time to close pull requests: about 1 month
Total issue authors: 60
Total pull request authors: 31
Average comments per issue: 2.57
Average comments per pull request: 3.27
Merged pull request: 362
Bot issues: 0
Bot pull requests: 29

Past year issues: 27
Past year pull requests: 62
Past year average time to close issues: 21 days
Past year average time to close pull requests: 8 days
Past year issue authors: 8
Past year pull request authors: 6
Past year average comments per issue: 1.44
Past year average comments per pull request: 2.76
Past year merged pull request: 52
Past year bot issues: 0
Past year bot pull requests: 15

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/iiasa/message_ix

Top Issue Authors

  • khaeru (58)
  • OFR-IIASA (47)
  • LauWien (25)
  • glatterf42 (25)
  • gidden (23)
  • behnam-zakeri (19)
  • ClaraLuisa (13)
  • volker-krey (12)
  • danielhuppmann (12)
  • meng25meng (8)
  • PelinaP (8)
  • zsalimian (8)
  • Jihoon (7)
  • DIUANA (7)
  • aaronliuqy (6)

Top Pull Request Authors

  • khaeru (126)
  • gidden (71)
  • glatterf42 (63)
  • OFR-IIASA (44)
  • LauWien (30)
  • dependabot[bot] (29)
  • behnam-zakeri (28)
  • danielhuppmann (22)
  • volker-krey (13)
  • ClaraLuisa (12)
  • francescolovat (11)
  • ywpratama (6)
  • GamzeUnlu95 (5)
  • adrivinca (5)
  • macflo8 (4)

Top Issue Labels

  • docs (71)
  • enh (67)
  • bug (48)
  • ci (30)
  • help wanted (18)
  • discuss (17)
  • gams (16)
  • macro (16)
  • awaiting info (16)
  • question (15)
  • good first issue (14)
  • timeslice (13)
  • reporting (10)
  • duplicate (5)
  • invalid (4)
  • R (2)
  • tutorials (2)
  • wontfix (1)
  • dependencies (1)

Top Pull Request Labels

  • docs (96)
  • ci (88)
  • enh (73)
  • bug (39)
  • dependencies (32)
  • reporting (23)
  • timeslice (11)
  • macro (10)
  • safe to test (8)
  • python (7)
  • gams (5)
  • tutorials (4)
  • discuss (2)
  • awaiting info (1)
  • R (1)
  • p:Spigot (1)

Package metadata

pypi.org: message-ix

The MESSAGEix integrated assessment model framework

  • Homepage:
  • Documentation: https://message-ix.readthedocs.io/
  • Licenses: Apache Software License
  • Latest release: 3.10.0 (published 2 months ago)
  • Last Synced: 2025-04-25T13:06:18.581Z (1 day ago)
  • Versions: 18
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 1,410 Last month
  • Rankings:
    • Dependent packages count: 4.746%
    • Average: 13.597%
    • Downloads: 14.409%
    • Dependent repos count: 21.634%
  • Maintainers (3)
conda-forge.org: message-ix

  • Homepage: https://github.com/iiasa/message_ix
  • Licenses: Apache-2.0
  • Latest release: 3.6.0 (published over 2 years ago)
  • Last Synced: 2025-04-01T02:08:53.245Z (26 days ago)
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Rankings:
    • Forks count: 15.623%
    • Dependent repos count: 24.103%
    • Average: 31.441%
    • Stargazers count: 34.5%
    • Dependent packages count: 51.54%

Dependencies

ci/rtd-requirements.txt pypi
  • ixmp main
.github/workflows/conda.yaml actions
  • actions/cache v3 composite
  • iiasa/actions/setup-conda main composite
.github/workflows/nightly.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • iiasa/actions/setup-gams main composite
.github/workflows/pytest.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • iiasa/actions/setup-gams main composite
  • r-lib/actions/setup-r v2 composite
  • styfle/cancel-workflow-action 0.11.0 composite
  • ts-graphviz/setup-graphviz v1.2.0 composite
Dockerfile docker
  • ${base_image} latest build
.github/workflows/lint.yaml actions
.github/workflows/publish.yaml actions
doc/requirements.in pypi
  • gitpython ==3.1.34
  • numpydoc ==1.5.0
  • sphinx ==6.2.1
  • sphinx-rtd-theme ==1.2.2
  • sphinxcontrib-bibtex ==2.5.0
doc/requirements.txt pypi
  • alabaster ==0.7.13
  • babel ==2.12.1
  • certifi ==2023.7.22
  • charset-normalizer ==3.2.0
  • docutils ==0.18.1
  • gitdb ==4.0.10
  • gitpython ==3.1.34
  • idna ==3.4
  • imagesize ==1.4.1
  • jinja2 ==3.1.2
  • latexcodec ==2.0.1
  • markupsafe ==2.1.3
  • numpydoc ==1.5.0
  • packaging ==23.1
  • pybtex ==0.24.0
  • pybtex-docutils ==1.0.2
  • pygments ==2.16.1
  • pyyaml ==6.0.1
  • requests ==2.31.0
  • six ==1.16.0
  • smmap ==5.0.0
  • snowballstemmer ==2.2.0
  • sphinx ==6.2.1
  • sphinx-rtd-theme ==1.2.2
  • sphinxcontrib-applehelp ==1.0.4
  • sphinxcontrib-bibtex ==2.5.0
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.1
  • sphinxcontrib-jquery ==4.1
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.5
  • urllib3 ==2.0.4
pyproject.toml pypi
  • PyYAML *
  • click *
  • genno [pyam] >= 1.18.1
  • ixmp >= 3.7.0
  • numpy *
  • pandas >= 1.2
  • scipy *

Score: 16.097184121056845