iiasa / iiasa/message-ix-models

Store IEA energy balance info in structure files

Open
#136 1 comment 0 reactions 0 assignees View on GitHub
enh structure
Dominant language
Python
Stars
32
Forks
57
Avg merge
2d 3h
Merged PRs (30d)
5

Description

We use various files like `commodity.yaml`, `node/R12.yaml`, to store **code lists**: these are lists of **codes** with an **identifier** `R12_AFR`, *name*, *description*, and 0 or more **annotations**. For instance:
https://github.com/iiasa/message-ix-models/blob/c9f163822325e6b411e5841f381fb07f89380df1/message_ix_models/data/commodity.yaml#L6-L14

These annotations carry precise information about each code that can be directly usable in preparing model structure and data. In this case, the `ipcc-1996-name:` annotation gives the exact name that appears in a particular data source. This is a simple, clear, and unambiguous statement that a certain external name/code/ID should be used in correspondence with `c=coal`.

In particular, the IEA (extended) energy balances have particular code lists for concepts named FLOW and PRODUCT; these are dimensions in the data.

To do:
- Establish an ID and form for annotations that give correspondence between MESSAGEix-GLOBIOM codes and those appearing in IEA (E)EB. For instance, something like:

```yaml
solar_pv_ppl:
name: solar_pv_ppl
description: Solar photovoltaic power plant (no storage)
# ...
iea-eb:
- {PRODUCT: elect.output in gwh, FLOW: solar PV}
```
- Update the existing code lists with these annotations.
- Provide or extend tools that read this structural information from the code lists and prepare Python data structures that are needed for other operations; in particular for converting the IEA (E)WEB data to form(s) needed by MESSAGEix-GLOBIOM.
- Provide or extend tools for writing these structures out for convenience/reference, for instance in a form similar to the “Excel mapping files” that are sometimes used.

cf. iiasa/message_data#505

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the existing code lists in commodity.yaml and node/R12.yaml, then locate the tools that load or write these structure files. Define the annotation format, update the relevant code lists, and determine the Python structures and reference output needed for IEA energy-balance conversion. Done means the mappings are represented consistently and usable by the conversion workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.