frommimosaimportMIMOSA,load_paramsparams=load_params()params["model structure"]["damage module"]="ACCREU"params["economics"]["damages"]["accreu"]["adaptation"]="sectoral"params["economics"]["damages"]["accreu"]["adaptation_determination"]="analytical_optimum"# First run optimal adaptation simulation (ada)model_ada=MIMOSA(params)sim_ada=model_ada.run_simulation()# Then, reduce the adaptation effectiveness, turning off analytical solution of optimal adaptationparams["economics"]["damages"]["accreu"]["adaptation_effectiveness_scale_factor"]=0.5params["economics"]["damages"]["accreu"]["adaptation_determination"]="solver_control"# And run the model with the same control variable values as the optimal adaptation simulation,# but with reduced adaptation effectivenessmodel=MIMOSA(params)control_variables=model.simulator.control_variablescontrol_variables_values={var:getattr(sim_ada,var).extract_values()forvarincontrol_variables}sim=model.run_simulation(**control_variables_values)model.save_simulation(sim,"run_accreu_ada_red_eff")
frommimosaimportMIMOSA,load_params,load_adaptation_readinessadaptation_readiness=load_adaptation_readiness()defreduce_adaptation_costs(ssp,concrete_model):adaptation_vars=["labourprod_adaptation_costs_abs","slr_adaptation_costs_abs","riverine_adaptation_costs_abs",]# Keep the mitigation level (mitigation_level) the samecontrol_values={"mitigation_level":concrete_model.mitigation_level.extract_values()}def_get_adapt_readiness(t,r):year=str(int(concrete_model.year(t)))returnadaptation_readiness.loc[(ssp,r),year]foradapt_varinadaptation_vars:values=getattr(concrete_model,adapt_var).extract_values()# Reduce these values by the adaptation readiness in each year/regionreduced_values={(t,r):_get_adapt_readiness(t,r)*valuefor(t,r),valueinvalues.items()}control_values[adapt_var]=reduced_valuesreturncontrol_valuesparams=load_params()params["model structure"]["damage module"]="ACCREU"params["economics"]["damages"]["accreu"]["adaptation"]="sectoral"params["economics"]["damages"]["accreu"]["adaptation_determination"]="analytical_optimum"model_ada=MIMOSA(params)# First run optimal adaptation simulation (ada)sim_ada=model_ada.run_simulation()# Then, calculate the reduced adaptation costs based on the adaptation readiness and the optimal adaptation simulation resultsreduced_control_variables_values=reduce_adaptation_costs(params["SSP"],sim_ada)# Finally, run the model again with these reduced adaptation costs, turning off analytical solution of optimal adaptationparams["economics"]["damages"]["accreu"]["adaptation_determination"]="solver_control"model=MIMOSA(params)sim=model.run_simulation(**reduced_control_variables_values)model.save_simulation(sim,"run_accreu_ada_impl_gap")
BCR of adaptation
BCR calculations and tables: diagnostics/adaptation_bcr.py.