by Simon DanischSep 30 2019
Julia & graphic enthusiast. Interested in high performance computing, GPUs and machine learning.

Reactive Mimi Demo

Without running this Notebook in the cloud, you won't be able to interact with the Parameters, since the simulation can't run in the browser. For this we will need to cache the results of the simulation. Here is a preview of how it looks when running this notebook:

You can remix this notebook and press run-all, to interact with the below model visualization:

using Mimi, MimiDICE2013
# Makie & Visualization libraries
using AbstractPlotting, WGLMakie, Markdown
# Javascript & Compute graph libraries
using Observables, Hyperscript, JSServe
# Import needed functionality
using JSServe: with_session, Slider
using JSServe.DOM

# Set Plotting Theme
  markersize = 5,
  font = "Dejavu Sans", 
  resolution = (500, 400)

# Create model instances
baseline = MimiDICE2013.get_model()
run(baseline) # run baseline one time
interacted = MimiDICE2013.get_model()

function run_model(control)
	set_param!(interacted, :emissions, :MIU, fill(control, 60))
  return something.(interacted[:climatedynamics, :TATM], 0.0)

# Create visualization
with_session() do session
  time_tatm = getdataframe(baseline, :climatedynamics, :TATM)
  time = time_tatm.time
  control_rate_s = JSServe.Slider(LinRange(0, 1, 100))
  control_rate = map(control_rate_s) do r
    round(r, digits = 3)
  year = JSServe.Slider(1:length(time))
  data = map(run_model, control_rate)
  scene = scatter(time, something.(time_tatm.TATM, 0.0))
  scatter!(time, data, color = :red)
  scene[Axis].names.axisnames = ("Year", "Temperature Increase")
  scene[Axis].names.textsize = (8, 8)
  dmg_estimated = map(year, control_rate) do year_idx, _
    round(interacted[:damages, :DAMAGES][year_idx], digits = 4)
	selected_year = map(year) do i
  b = DOM.font("● baseline", color = :black)
  ec = DOM.font("● with emission control", color = :red)
  return md"""
    # Explore Climate

    Set amount of emission control: $(control_rate_s) $(control_rate)
    # Temperature Increase

    $b | $ec


    # Estimated damage in year $(selected_year)


    $(dmg_estimated) trillion USD per year.