message_ix icon indicating copy to clipboard operation
message_ix copied to clipboard

Add Constant Elasticity Substitution to Bin translation layer

Open Wegatriespython opened this issue 2 months ago • 2 comments

What is this about?

Given A CES production function with a set of inputs and outputs we can implement a python based translation into a Linear set of constraints which best approximate the CES function. Inspired by #954

Example Say I have Bike Factory as my technology :

Inputs to bike factory are Carbon, Aluminium, Lithium Outputs from bike factory are Bikes

Material 1 : is a CES between Carbon and Aluminium Take a positive elasticity of substitution between Carbon and Aluminium

Now this system can be automatically translated (to a certain precision) into a set of binned technologies with corresponding bounds. This can extend to a nested CES. Mirroring it in reporting we can automatically convert it back into CES form, removing a lot of manual work in hardcoded aggregation maps.

Wegatriespython avatar Oct 22 '25 09:10 Wegatriespython

I infer this is a proposed improvement to the MACRO CGE model and its GAMS implementation/supporting Python code in the message_ix package. If that's correct, perhaps add the MACRO label to the issue to make it clear.

khaeru avatar Oct 22 '25 10:10 khaeru

Ah no I should have made it clearer. I meant this for the LP model actually. While its not uniquely defined and there is a certain irreducible approximation error there is a linearization mapping for a given CES function. This would mean creating bins of technologies like the mode idiom used in modern message techs or _1, _2 used for messageV technologies.

Wegatriespython avatar Oct 22 '25 10:10 Wegatriespython