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:
message-ix-models/message_ix_models/data/commodity.yaml
Lines 6 to 14 in c9f1638
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:
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