You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The "modeling protocol" format (MP) generated by PBL & co., based on the above.
The format used by an AddPolicy script/class in message_data.
Each of the above has its own data model (set of fields). In these cases the data model seems implicit in the file format, and not separately and completely described or defined.
None of the above is likely suitable to be a generic policy data model (GPDM below). In other words, for certain kinds of policy that are thus far not captured, we might find that those data models/formats are ill-fitted to capture necessary information.
There is probably value in a such a generic policy data model and accompanying format. In particular, our code to implement policies in the model could avoid having to work with many different data models for policy information.
It is not necessarily our role (or within our resources) to establish/promulgate such a data model/format.
At the moment, in message-ix-models we have the following:
.ExogenousEmissionPrice: one attribute: the URL of a reference MESSAGE scenario from which PRICE_EMISSION values should be copied.
.TaxEmission: one attribute, value. (Code that uses this class constructs a future emission price trajectory that increases exponentially from this initial value.)
message_ix_models.tools.newclimate.structure.NewClimatePolicy —a subclass, with 24 attributes like id, reference, name etc.
Some concrete changes we could make in message-ix-models:
Create an intermediate class that is a subclass of Policy and parent/super class to NewClimatePolicy.
This class could have some of the fields that appear to be shared across NCP, MP, AddPolicy, etc. like id, reference, geo, etc.
Then the existing NewClimatePolicy would inherit these attributes, not redefine them. Future classes (if any prove needed) for MP, AddPolicy, or others would likewise inherit.
This class would not necessarily be a GPDM, but it would at least reveal what is common across the existing data models/formats.
We don't have a name for this, but it could be something like GenericPolicy.
Choose a common representation for use within message-ix-models.
Implement this as a subclass of (1).
@yiyi1991 suggests a data model including, at least, the quantitative attributes arrival, depth, and speed, of which any ≥2 can be used to construct a univariate, piecewise linear projection of a certain measure that can in turn be used to construct model data.
Add code to convert from (1) to (2), and/or from the MP, AddPolicy, or other visible format(s) to (2).
This would achieve our internal goal of having model-building code work with a single, consistent data model; abstract from the differences/imprecision of the several source formats.
This may involve defining further subclasses of (1).
Clarify language and definitions.
@yiyi1991 pointed out that in the IAMC the word ‘policy’ is often used with a narrow meaning, i.e. climate policy, that excludes many things that are labeled/regarded as ‘policy’ in other research domains or in the real world. From this particular viewpoint, the parent class name could be confusing.
My preference here would be to look for an established definition from policy research that is both precise and broad/encompassing, and then state clearly that the existing Policy class corresponds to that definition.
Another option is to choose another word like ‘Anchor’, ‘Phenomenon’, ‘Outcome’, etc. and rename the top-level class to that.
I can take on at least (1) and (4) in a future PR. For (2) and (3) we plan to solicit feedback in the 2026-05-07 MESSAGE meeting, but feedback from colleagues is also welcome here.
Discussing #499 with @yiyi1991 raised several points:
.tools.newclimate#499.At the moment, in message-ix-models we have the following:
message_ix_models.tools.policy.Policy: a generic parent class with zero attributes. This was created in Transport improvements from 2025-W20 #349.message_ix_models.model.transport.policy…—2 subclasses:.ExogenousEmissionPrice: one attribute: the URL of a reference MESSAGE scenario from which PRICE_EMISSION values should be copied..TaxEmission: one attribute, value. (Code that uses this class constructs a future emission price trajectory that increases exponentially from this initial value.)message_ix_models.tools.newclimate.structure.NewClimatePolicy—a subclass, with 24 attributes like id, reference, name etc.Some concrete changes we could make in message-ix-models:
GenericPolicy.I can take on at least (1) and (4) in a future PR. For (2) and (3) we plan to solicit feedback in the 2026-05-07 MESSAGE meeting, but feedback from colleagues is also welcome here.