ClimateMARGO / interactive

Interactive Pluto notebooks about ClimateMARGO.jl
https://margo.plutojl.org/
MIT License
8 stars 0 forks source link

surface max slopes to make it easier to interpret #12

Closed declann closed 8 months ago

declann commented 8 months ago

On appearances introduction.jl allows me to set a full immediate deployment of mitigation (the kind of thing I do immediately to interpret a model).

However, the controls are clamped behind the scenes in enforce_maxslope.

To make the user aware of this clamping behavior the control plots could indicate the clamped deployments. Alternatively we could remove the clamps altogether and/or describe them with a toggle button - I think justifying them is a good idea anyways? The notebook is otherwise very informative about the mechanics!

Removing the call to enforce_maxslope in forward_controls_temp gives me sight of a cost analysis for complete mitigation and there is always a net benefit. This causes issues in the optimization step for a temperature target (higher temperatures unreachable). Clearly, this is a really significant feature in the model to surface visually and make the user fully aware.

declann commented 8 months ago

There are comments about the slopes in this example:

https://github.com/ClimateMARGO/ClimateMARGO.jl/blob/fbbe619f21cc50f8cdf137d6243773edcf3381f2/examples/default_configuration.jl#L280C3-L280C3

Second, we set upper limits on how quickly each control can be ramped up or down.

We can modify a similarly constructed max_slopes param by adding it to the call to optimize_controls inside opt_controls_temp definition.

declann commented 8 months ago

Supplementary information in the margo paper has the following:

image

fonsp commented 8 months ago

Hey @declann! You suggested that the plots could visually indicate the max slope. Can you draw a picture of what you have in mind?

declann commented 8 months ago

Sure @fonsp !

Looking at the interactive visuals under 'Mitigating emissions':

The initial view is probably ok, because the ramp up to full deployment takes ~40 years.

image

However, if I move the lever to the left it appears like full immediate deployment of mitigation but it isn't:

image

Further, we can't really know whats going on without inferring it backwards from the Emissions chart below it.

So, I think an overlay like this helps:

image

And, I think a note should explain that due to inertia and practicalities there is a limit to how fast mitigation can actually be ramped up.

Trying to keep changes low-key with that approach, what do you think?

Would need similar overlay in the 'Costs & damages' and CDR 'picking up the slack' interactions (including for CDR).

Ps: I'm reimplementing bits of the ClimateMARGO model in a new language calculang and developing different visuals and interactions - your notebooks are very helpful for inspiration/understanding the model and to figure about interacting with the Julia codebase, so thanks!

hdrake commented 8 months ago

Hi @declann, thanks for pointing out this inconsistency between the apparent controls shown in the notebook and those actually employed in the underlying model instance.

I like both of your ideas of visualizing the max-deployment clamps to satisfy initial condition controls and also for allowing the clamps to be toggled on or off. I won't have the capacity to solve this for a while, but you're more than welcome to make a PR here if you think you know how to fix it.

declann commented 8 months ago

Cool @hdrake

Right now it isn't feasible I do a PR on Julia/Plots.jl code but maybe I'll be able to do it eventually.

Sorry for going offtopic: I'm replicating some climatemargo numbers in a calculang model. Approach for my own interactives will be to derive mitigation control values from emissions projections. Those controls look like https://twitter.com/calculang/status/1716211017875706013 (source in vega editor but I will also add constant emissions controls)

I'll be going a bit outside climatemargo model intended scope (where I permit changing past emissions for instance), and will be sure to highlight that, and maybe not even report some economics outputs in new scenarios. I don't think I'll get optimization into this model in the immediate future, but hopefully will be able to add to interesting climate interactives - for simpler scenarios.

Thanks for the nice straightforward model to work and learn with!

fonsp commented 8 months ago

Thanks! I fixed it in https://github.com/ClimateMARGO/interactive/commit/36331561243dc5d46e0d1bb97e5106ce3fc31f23 by applying the enforce_maxslope! function to the controls before plotting them.

hdrake commented 8 months ago

Thanks! I fixed it in 3633156 by applying the enforce_maxslope! function to the controls before plotting them.

Thanks, @fonsp, but it looks like the changes unfortunately broke https://margo.plutojl.org/introduction.html!

fonsp commented 8 months ago

Sorry! Fixed again yesterday