Software

This is a partial list. For more, see Github.

On this page:

MESSAGEix

I am the lead maintainer of the stack of packages that comprise the MESSAGEix integrated assessment modeling (IAM) framework. These include:

  • message-ix-models —tools to build, solve, and process input and output data for the MESSAGEix-GLOBIOM family of global- and national-scope IAMs.

    message_data is a collection of private/closed-source code (~15,000 SLOC) and data built on message-ix-models for specific projects, model variants, embargoed or incomplete work, etc.

  • message_ix —Python and GAMS implementation of the generic MESSAGE IAM, which can be parametrized for different concrete models.

  • ixmp —data storage backends and base classes for message_ix and others.

Transport & energy systems data and models

  • genno is a Python package for describing and executing complex calculations on labelled, multi-dimensional data. It aims to make these calculations efficient, transparent, and easily validated as part of scientific research.

    A 玄能 (genno or gennoh) is a type of hammer used in Japanese woodworking. The package name is warning, by reference, to the adage “When you hold a hammer, every problem looks like a nail”: you shouldn’t hit everything with genno, but it is still a useful and versatile tool.

  • Tools for the Transport Data Commons (transport-data/tools on GitHub). These implement the SDMX-based community data processes for the TDC Initiative, a multi-stakeholder effort to improve the quality and accessibility of data for transport development and supporting research and assessment. Parts of these evolved from the first iteration of the iTEM Open Data (transportenergy/database on GitHub) code.

  • Figures for IPCC AR6 WGIII Chapter 10. These begin with the contents of the AR6 WG III scenarios database, which includes projections of transport, energy, and other quantities from model-based research. The data are selected, transformed, and plotted in a variety of forms. A subset of the figures were published in Chapter 10 of the Working Group III contribution to the Sixth Assessment Report of the IPCC.

  • iam-units —unit definitions for energy, transport, and integrated-assessment research.

Statistical Data and Metadata eXchange (SDMX)

SDMX is an ISO standard for exchange of statistical data and metadata. The standard includes a versatile and general-purpose information model (IM)—a set of concepts, terms, and their defined relationships—which I have found immensely useful when trying to reconcile different ways of speaking about data in transport disciplines and other domains of research related to sustainability, climate, energy, and the environment.

  • sdmx1 is a complete Python implementation of the SDMX IM and a client for SDMX web services operated by many data providers.

Others

gb2260

China's GB/T 2260 standard defines six-digit numerical codes for the administrative divisions of China, at the county level and above. For instance, the Haidian district of Beijing has the code 110108.

The most recent version of the official standard, designated "GB/T 2260-2007", was published in 2008. However, codes are routinely revised, and the National Bureau of Statistics (NBS) publishes an updated list online annually.

This repository contains a Python script that attempts to produce an up-to-date list of the GB/T 2260 codes, with extra information including English names, Pinyin transcriptions, administrative levels, etc.

The repository also contains the output of the script, e.g. in data/unified.csv, that can be bookmarked for use with Github's built-in CSV viewer and search functions.

pyGDX

PyGDX is a Python package for accessing data stored in GAMS Data eXchange (GDX) files. GDX is a proprietary, binary file format used by the General Algebraic Modelling System (GAMS); pyGDX uses the Python bindings for the GDX API.

It makes use of the widely-used and well-supported xarray to provide multidimensional labelled data structures which can be easily manipulated for calculations and plotting.

Documentation is available at http://pygdx.readthedocs.org.