{ "cells": [ { "cell_type": "markdown", "id": "intro", "metadata": {}, "source": [ "# Tutorial 2 — Analysis\n", "\n", "Companion notebook to [Tutorial Part 2](../tutorial.rst). It loads the three solved `tutorial_02` scenarios, inspects the extracted consumer values, compares food-group consumption and the objective breakdown across scenarios, and finally compares total GHG emissions against the fixed-diet run from Tutorial 1.\n", "\n", "Prerequisites: both tutorial workflows must have been solved locally.\n", "\n", "```bash\n", "tools/smk -j4 --configfile config/tutorial/01_ghg_prices.yaml\n", "tools/smk -j4 --configfile config/tutorial/02_consumer_values.yaml\n", "```" ] }, { "cell_type": "markdown", "id": "setup-md", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "setup", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T18:04:25.859374Z", "iopub.status.busy": "2026-05-15T18:04:25.859094Z", "iopub.status.idle": "2026-05-15T18:04:26.221075Z", "shell.execute_reply": "2026-05-15T18:04:26.220708Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "project_root = Path(\"..\", \"..\").resolve()\n", "scenarios = [\"baseline\", \"ghg_mid\", \"ghg_high\"]\n", "\n", "\n", "def load_analysis(config_name: str, filename: str) -> pd.DataFrame:\n", " \"\"\"Concatenate a per-scenario parquet file for a given tutorial config.\"\"\"\n", " results = project_root / \"results\" / config_name / \"analysis\"\n", " return pd.concat(\n", " pd.read_parquet(results / f\"scen-{s}\" / filename).assign(\n", " scenario=s, config=config_name\n", " )\n", " for s in scenarios\n", " )" ] }, { "cell_type": "markdown", "id": "values-md", "metadata": {}, "source": [ "## Inspect the extracted consumer values\n", "\n", "The `baseline` solve fixes consumption at observed 2020 levels; the dual variables of the binding per-(food, country) equality constraints on the `food_consumption` links are the consumer values. Each value is expressed in bn USD per Mt of that food in that country — the marginal utility the non-baseline scenarios use when letting diet shift." ] }, { "cell_type": "code", "execution_count": 2, "id": "values", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T18:04:26.222986Z", "iopub.status.busy": "2026-05-15T18:04:26.222840Z", "iopub.status.idle": "2026-05-15T18:04:26.254841Z", "shell.execute_reply": "2026-05-15T18:04:26.254488Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
foodfood_groupcountryvalue_bnusd_per_mt
0meat-cattlered_meatTWN2.110807
1meat-cattlered_meatJPN2.091281
2meat-cattlered_meatCHN2.077854
3meat-cattlered_meatKOR2.069054
4meat-cattlered_meatRUS2.053319
5meat-cattlered_meatTLS2.045189
6meat-cattlered_meatVNM2.037207
7meat-cattlered_meatPHL2.022915
8meat-cattlered_meatMNG2.017018
9meat-cattlered_meatIDN2.014013
\n", "
" ], "text/plain": [ " food food_group country value_bnusd_per_mt\n", "0 meat-cattle red_meat TWN 2.110807\n", "1 meat-cattle red_meat JPN 2.091281\n", "2 meat-cattle red_meat CHN 2.077854\n", "3 meat-cattle red_meat KOR 2.069054\n", "4 meat-cattle red_meat RUS 2.053319\n", "5 meat-cattle red_meat TLS 2.045189\n", "6 meat-cattle red_meat VNM 2.037207\n", "7 meat-cattle red_meat PHL 2.022915\n", "8 meat-cattle red_meat MNG 2.017018\n", "9 meat-cattle red_meat IDN 2.014013" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "values = pd.read_csv(\n", " project_root / \"results/tutorial_02/consumer_values/baseline/values.csv\"\n", ")\n", "\n", "# Top 10 (food, country) pairs by absolute consumer value.\n", "top = (\n", " values.reindex(\n", " values[\"value_bnusd_per_mt\"].abs().sort_values(ascending=False).index\n", " )\n", " .head(10)[[\"food\", \"food_group\", \"country\", \"value_bnusd_per_mt\"]]\n", " .reset_index(drop=True)\n", ")\n", "top" ] }, { "cell_type": "markdown", "id": "consumption-md", "metadata": {}, "source": [ "## Does the diet actually move?\n", "\n", "Tutorial 1 held consumption fixed; Tutorial 2 lets it respond. The stacked bars below show global food-group consumption (Mt) for each scenario — we expect animal-product categories to contract and plant-based categories to expand as the GHG price rises." ] }, { "cell_type": "code", "execution_count": 3, "id": "consumption", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T18:04:26.256580Z", "iopub.status.busy": "2026-05-15T18:04:26.256485Z", "iopub.status.idle": "2026-05-15T18:04:26.417907Z", "shell.execute_reply": "2026-05-15T18:04:26.417458Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnMAAAHWCAYAAAAciQ/OAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbipJREFUeJzt3QWcVOX3P/BDd3eXCEt3CdINBhISsnSDSCNKSYOASCPSCCpIi3S5tCDhUtJKd5fzf33O93/nNzNbM8suM3fv5/16jczcuXPnTsgczvM850Sz2Ww2ISIiIiJTiu7tEyAiIiKi8GMwR0RERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEc+ae7cuRItWrRgL7169fLKuZw/f/6NPi+Z019//SWDBw8O9vvSokULyZo1q1fOi4iirpjePgGi0MyZM0dy587ttC19+vR808ing7khQ4ZIhQoVggRuX375pXz66adeOzciipoYzJFPy5cvnxQrVkys4MWLF5oBjBmT/1tGVTly5PD2KRBRFMRhVjK1VatWSenSpSV+/PiSKFEiqVq1quzevTvIfrt27ZLKlSvrPti3TJkysnbt2iD77dmzR9555x2JGzeuZgD79++vQZa7bDabjBgxQrJkyaLHQCC6ceNGzdLgYti2bZsGbgsWLJCePXtKhgwZJE6cOHLmzBm9//vvv5eCBQvqMZInTy4ffvihBAYGOj2X6zFDGsrDcB+ea8yYMTJ8+HDJnDmz/dw2b97s1uu6e/eunmf27Nn1PFOnTi21atWSEydO2Pe5ffu2dOrUSV9L7Nixdd8BAwbIs2fPnI6Fc+nSpYu+dj8/P/088FrXrFnjtN+NGzekXbt2kilTJn3OVKlS6WezadMm+z54nXi9rkJ6vxcvXix9+/aVdOnSScKECaVu3bpy7do1efDggT5XypQp9dKyZUt5+PBhsOc9Y8YMefvtt/Wc8uTJI0uWLHEakm/QoIFer1ixon1qALYH99nA06dP9XuWLVs2fd/w/nXu3Fnfc0d4XJ06dWT9+vVSpEgRiRcvnmat8V0hIouzEfmgOXPm2PD13LNnj+3FixdOF8OiRYt0n2rVqtlWrFhhW7p0qa1o0aK22LFj23bu3Gnfb9u2bbZYsWLpfdgH++Ix0aJFsy1ZssS+3/Hjx23x48e35cmTx/bDDz/YVq5caatevbotc+bM+jznzp0L87z79++v+7Zr1862fv1626xZs/Tx6dKls5UvX96+39atW3W/DBky2OrXr29btWqVbc2aNbZbt27ZRowYofc1btzYtnbtWtv8+fNt2bNntyVJksR26tQp+zFwPMdjGvz9/W1ZsmSx38Z543iZMmWylS1b1rZs2TLbTz/9ZCtevLi+LwEBAaG+pvv379vy5s1rS5AggW3o0KG23377TY/x6aef2rZs2aL7PHnyxFagQAHdZ9y4cbYNGzbYvvzyS1vMmDFttWrVcjoeziVr1qy2EiVK2H788UfbunXrbBUqVNB9//77b/t+eO9TpUplmzlzpn6G+NwGDhzo9JnhdeL1unJ9b4z3G/u3aNFCP5vp06fbEiZMaKtYsaKtatWqtl69eul5jx492hYjRgxb165dg5w33kPj+4HPrEaNGrod7ydcv37d/vlNmTLFtnv3br1ge3CfzX///aevE68d7xeeH+8f3sfChQvbnj596vRaM2bMqM+P7wQ+hwYNGuhzbd++PdTPkIiiNgZz5NPBXHAXBHSvXr2ypU+f3pY/f369bnjw4IEtderUtjJlyti3lSpVSrfhPsPLly9t+fLl0x9H/KBCo0aNbPHixbNdvXrVab/cuXO7Fczdvn3bFidOHD2OI/yY4/HBBRfvvvuu07537tzRc3ANgC5evKjHbtKkSbiDObxfCLocg7TkyZPbqlSpEurrQgCHx2/cuDHEfRAYYR8EZ44QGGE7ghQDbqdJk0af34D3PHr06LaRI0fatyHQ6t69e6jn5mkwV7duXaf9cHxs79atm9P2Dz74QN8bR9gvpO/HW2+9Zd+GwA774jnD+mwQVGLfMWPGOO2Hf3RgOwJZx9caN25c24ULF+zb8HniPNu3bx/Ku0REUR2HWcmnzZ8/X/bv3+90wZyykydPyr///iuffPKJRI/+f19jDJ199NFHOlz6+PFjefTokezdu1fq16+v9xlixIihj718+bIeC7Zu3apDsWnSpHHar1GjRk7n9N9//8nLly/tl1evXul2PCeGFBs2bOi0f6lSpUJcwYhzdYQh4idPngQZOsRQY6VKldweFg1OvXr1dHjVgCFnDDPu2LHD/hqC8+uvv+qwYpUqVULcZ8uWLZIgQQJ9nx0Zr8P1vDEE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YEWNOPjzzz91uLNy5coePfmBAwekYsWK9tvGsKa/v79MmzZNjh49KvPnz9cCv8jGYV/UskuUKJH9MRMmTJCYMWNKw4YNtYcbzmHu3LlOE0wXLVqkrcaMVa8oLDx58mSPzpWIiIjItMEcMmCOXAv8hncuWYUKFUKtbvzbb7+5Nez77bff6iUkyZMn1/pzRERERJYM5hw7MBARERGR7wh30WCsBkUHBZT3ePvtt7U9CUWuSts68y2WQL4HREREr7MAAv1UW7VqpXPY3n33Xe3Liq4LWIjw+PFjTw9HRERERG8ymMMihe3bt2uTeixMwGXlypW6DatKiYiIiMiHh1mXLVsmP//8sy5eMNSqVUvixYunK0qxCpWIiIiIfDQzh6HU4DonoNcph1mJiIiIfDyYQ0eFQYMGydOnT+3bUN8NfUyNXq1ERERE5KPDrN988412VDCKBmM1K7o2oN6bO3XhiIiIiMiLwVy+fPm00T2K8J44cUKL/n788cfStGlTnTdHRERERD5eZw5BG/qbEhEREZEJgrlVq1a5fUD0PSUiIiIiHwrmPvjgA7cOhvlzr169et1zIiIiIqKIDOb+++8/d49HRERERL5cmoSIiIiITLgAArXkNm/eLHXq1NHb/fv3l2fPntnvjxEjhnz11VdaooSIiIiIfCyYmz9/vqxZs8YezE2ePFny5s1rL0eCMiXp06eXzz77LPLOloiIiIjCF8wtWrQoSKC2ePFiyZ49u15H3bkpU6YwmCMiikRPq2fg+0tE4QvmTp06JW+//bb9NoZTo0f/vyl3JUqUkM6dO7t7OCIiCodFto/4vsnffA+IwhPM3bt3T2LG/L/db9y4EWTFq+McOiIiIiLyoWAOvViPHTsmuXLlCvb+I0eO6D5ERBR5du74xPJvb+VKln8LiMJXmqRWrVoycOBAefr0abArXYcMGSK1a9d293BERERE9CYzc59//rn8+OOPmpnr0qWLzp9DxwesYsXK1pcvX+o+REQUedo8rcy3l4jCF8ylSZNGAgICpGPHjtKvXz+x2Wy6HQFd1apVZerUqboPEREREflgMAfZsmWT9evXy+3bt+XMmTO67a233pLkyZNH1vkRERERUUQFcwYEbyhFQkRERETexd6sRERERCbGYI6IiIjIasOsRETkHUvPjbb8W99Tyln+PSByxMwcERERkYkxmCMiIiIyMQ6zEhGZSNxkPbx9CkTkY5iZIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmZhXg7kdO3ZI3bp1JX369BItWjRZsWKF0/02m00GDx6s98eLF08qVKggx48fd9rn2bNn0rVrV0mZMqUkSJBA3nvvPbl8+bLTPnfu3JFPPvlEkiRJohdcv3v37ht5jURERERRNph79OiRFCxYUCZPnhzs/WPGjJHx48fr/fv375e0adNK1apV5cGDB/Z9unfvLr/88ossWbJEdu3aJQ8fPpQ6derIq1ev7Ps0adJEDh8+LOvXr9cLriOgIyIiIjI7r5YmqVmzpl6Cg6zcxIkTZcCAAVKvXj3dNm/ePEmTJo0sXrxY2rdvL/fu3ZPZs2fLggULpEqVKrrPwoULJVOmTLJp0yapXr26BAYGagC3Z88eKVmypO4za9YsKV26tJw8eVJy5cr1Bl8xERERkUXmzJ07d06uXr0q1apVs2+LEyeOlC9fXgICAvT2wYMH5cWLF077YEg2X7589n12796tQ6tGIAelSpXSbcY+wcHw7f37950uRERERL7GZ4M5BHKATJwj3Dbuw5+xY8eWZMmShbpP6tSpgxwf24x9gjNy5Ej7HDtckO0jIiIi8jU+3wECCyNch19dt7ly3Se4/cM6Tv/+/aVHj/+rtI7MnLcDuob9ff7jinRHvX0CREREPsZnM3NY7ACu2bPr16/bs3XY5/nz57paNbR9rl27FuT4N27cCJL1c4Qh3cSJEztdiIiIiHyNzwZz2bJl00Bs48aN9m0I3LZv3y5lypTR20WLFpVYsWI57XPlyhU5duyYfR8sdMBCiX379tn32bt3r24z9iEiIiIyK6+O26GMyJkzZ5wWPaBsSPLkySVz5sxadmTEiBGSM2dOveB6/PjxtdQIYC5b69atpWfPnpIiRQp9XK9evSR//vz21a1+fn5So0YNadu2rcyYMUO3tWvXTsuXcCUrERERmZ1Xg7kDBw5IxYoV7beNOWr+/v4yd+5c6dOnjzx58kQ6deqkQ6lYkbphwwZJlCiR/TETJkyQmDFjSsOGDXXfypUr62NjxIhh32fRokXSrVs3+6pXFBYOqbYdERERkZlEs2ElAIUJCyCQCcTwrLfmz+Wfl1+s7qi/tZdATOmwRayu8/RKYmX8Dnj3O+ALvwVEppkzR0RERERhYzBHREREZGIsXGYiR89d9PYpEBERkY9hZo6IiIjIxBjMEREREZkYgzkiIiIiE+OcOSITqbSts7dPwQcEevsEiIh8CjNzRERERCbGYI6IiIjIxBjMEREREZkYgzkiIiIiE2MwR0RERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEyMwRwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmRiDOSIiIiITYzBHREREZGIM5oiIiIhMjMEcERERkYnF9PYJEJH7Gvbn/7JH+YUhInLCzBwRERGRiTGYIyIiIjIxBnNEREREJubTwdzgwYMlWrRoTpe0adPa77fZbLpP+vTpJV68eFKhQgU5fvy40zGePXsmXbt2lZQpU0qCBAnkvffek8uXL3vh1RARERFFPJ+fTZ03b17ZtGmT/XaMGDHs18eMGSPjx4+XuXPnyttvvy3Dhg2TqlWrysmTJyVRokS6T/fu3WX16tWyZMkSSZEihfTs2VPq1KkjBw8edDoWkRkcPXfR26dAREQ+xueDuZgxYzpl4xyzchMnTpQBAwZIvXr1dNu8efMkTZo0snjxYmnfvr3cu3dPZs+eLQsWLJAqVaroPgsXLpRMmTJpgFi9evU3/nqIiIiILDPMCqdPn9Zh1GzZssnHH38sZ8+e1e3nzp2Tq1evSrVq1ez7xokTR8qXLy8BAQF6G9m3Fy9eOO2DY+XLl8++DxEREZGZ+XRmrmTJkjJ//nwdQr127ZoOo5YpU0bnxSGQA2TiHOH2hQsX9Dr2iR07tiRLlizIPsbjQ4K5drgY7t+/H4GvjIiIiMgCwVzNmjXt1/Pnzy+lS5eWHDly6HBqqVKldDsWRbgOv7puc+XOPiNHjpQhQ4a81vkTERERidWHWR1hNSqCOgy9GvPoXDNs169ft2frsM/z58/lzp07Ie4Tkv79++ucO+Ny6dKlCH89RERERJYK5jDsGRgYKOnSpdM5dAjWNm7caL8fgdv27dt1KBaKFi0qsWLFctrnypUrcuzYMfs+IcH8u8SJEztdiIiIiHyNTw+z9urVS+rWrSuZM2fWbBrmzGHumr+/vw6TouzIiBEjJGfOnHrB9fjx40uTJk308UmSJJHWrVtrORKUJUmePLkeE9k9Y3UrERERkZn5dDCH4r6NGzeWmzdvSqpUqXSe3J49eyRLlix6f58+feTJkyfSqVMnHUrFgokNGzbYa8zBhAkTtLxJw4YNdd/KlStrXTrWmCMiIqKoIJoNqwEoTMgIItOH+XNeG3IdnMQ7z+tLBt8TS+N3wPLfgSkdtojVdZ5eydq/BURmnjNHRERERM4YzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEyMwRwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmRiDOSIiIiITYzBHREREZGIM5oiIiIhMjMEcERERkYnF9PYJEBGR+ypt68y3SwL5HhA5YGaOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEyMwRwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmRiDOSIiIiITY29WIiITadiff20f9faHQORjmJkjIiIiMjEGc0REREQmxnw9EZGJHD130dunQEQ+hpk5IiIiIhNjMEdERERkYgzmiIiIiEyMwRwRERGRiTGYIyIiIjIxSwVzU6dOlWzZskncuHGlaNGisnPnTm+fEhEREdFrsUwwt3TpUunevbsMGDBADh06JOXKlZOaNWvKxYtc5k9ERETmZZlgbvz48dK6dWtp06aN+Pn5ycSJEyVTpkwybdo0b58aERERUbhZIph7/vy5HDx4UKpVq+a0HbcDAgK8dl5EREREr8sSHSBu3rwpr169kjRp0jhtx+2rV68G+5hnz57pxXDv3j398/79++It+e59J1Z3zIvvvy/gd4DfAXlm8/bX0Pu8+PeA8Rtgs/FzIN9hiWDOEC1aNKfb+J/RdZth5MiRMmTIkCDbMTRL3pNkIt99q+N3gGRUEq+/CQ8ePJAkSbx/HkSWCeZSpkwpMWLECJKFu379epBsnaF///7So0cP++3//vtPbt++LSlSpAgxAIzK8K9RBLKXLl2SxIkTe/t0yEv4PSCrfweQBEAglz59em+fCpG1grnYsWNrKZKNGzfKhx9+aN+O2++//36wj4kTJ45eHCVNmlSsDn95W/EvcHLG7wFZ+TvAjBz5GksEc4As2yeffCLFihWT0qVLy8yZM7UsSYcOHbx9akREREThZplgrlGjRnLr1i0ZOnSoXLlyRfLlyyfr1q2TLFmyePvUiIiIiMLNMsEcdOrUSS/kOQw5Dxo0KMjQM1kLvwfE7wCR74lm4/pqIiIiItOyRNFgIiIioqiKwRwRERGRiTGYM7kKFSpI9+7dvfb8LVq0kA8++MBnzoecZc2aVfsQ+xp3vie+eu5mEtnv4bZt27Tu5t27d0PcZ/DgwVKoUCGPjsu/R4g8Y6kFEBT5li9fLrFixeJbTfyekOrVq5d07dqV7wZRJGIwRxEqefLkfEeJ3xOyS5gwoV6IKPJwmDUKePnypXTp0kU7VKDd2BdffGFvAr1w4UItlJwoUSJJmzatNGnSRNuYGe7cuSNNmzaVVKlSSbx48SRnzpwyZ84c+/3//POP1uhLliyZHhsdM86fP+/28AiGeUaMGCGtWrXSc8icObMWbHbk6XPQ/0FbIXx+CRIkkHTp0smECROCfAaPHz8O9f0PCAjQYbC4cePqd2XFihU6dHb48GG3h9l+++03KVy4sH6HKlWqpN+xX3/9Vfz8/LRLQOPGjfU8QvqeYP+6devq47NlyyaLFi3ix2yCz99w8OBBfWz8+PGlTJkycvLkyRCHWfH3Vbdu3ex/X/Xt21f8/f2dpmsYLRT79Omj/0DE3104DhEFj8FcFDBv3jyJGTOm7N27VyZNmqR/oX/33Xd63/Pnz+Wrr76SP//8U/+SPnfunM5zM3z55Zfy119/6Q9vYGCgTJs2TXvZGj8CFStW1H9V79ixQ3bt2qXXa9Soocd119dff61/0R86dEjr/HXs2FFOnDgRoc9hVehs8vvvv8uqVau0Pd3OnTvljz/+cPv9RzCAICp//vz6OHxX8OPqKfzQTp48WQMD9Oxs2LChztVavHixrF27Vs/t22+/DfHx+E4igN+yZYv8/PPPMnXqVKd/dJBvf/4DBgzQ5zlw4ID+XYTgMSSjR4/WYB3/aMS5o9cr/m4K7u81BKn4e23MmDFa8B2vkYiCgTpzZF7ly5e3+fn52f777z/7tr59++q24Ozbtw8pO9uDBw/0dt26dW0tW7YMdt/Zs2fbcuXK5XTsZ8+e2eLFi2f77bff9La/v7/t/fffdzqfTz/91H47S5YstmbNmtlv41ipU6e2TZs2ze3noODdv3/fFitWLNtPP/1k33b37l1b/Pjx7Z9BWO8//kyRIoXtyZMn9n1mzZql35FDhw6F+dZv3bpV9920aZN928iRI3Xb33//bd/Wvn17W/Xq1YP9npw8eVL337Nnj/3+wMBA3TZhwgR+/Cb7/NeuXavbjGMOGjTIVrBgQfv9adKksY0dO9Z+++XLl7bMmTMH+XukbNmyTs9VvHhx/buNiIJiZi4KKFWqlA6LGNB79vTp0/Lq1Sv91ziGLdG2DMMsGIIB9KUF/Ct9yZIlOgyCIQ1kVhyHTs6cOaOPM+a9YMjj6dOn8vfff7t9fgUKFLBfx3liyMTIukTUc1jR2bNn5cWLF1KiRAmnBuC5cuVy+/3HcBjuxxCbwfF47nJ8jjRp0uhwW/bs2Z22hZRpQ0YY2Rxkjwy5c+fWYTgy3+eP4V4I7vO+d++eXLt2zek5YsSIIUWLFg31mMZxma0lCh4XQERhCIiqVaumF8ydw7w4BHHVq1e3D2HWrFlTLly4oENhmzZtksqVK0vnzp1l3LhxOmcFf8kGN38Jx3KX6+pW/KDg2BBRz2FFxrxIx0Decbs77z/2Devx7nB8DhwvtOd093WQeT9/COnzduecwzpvInLGzFwUsGfPniC3sZAB82Ju3rwpo0aNknLlymm2I7h/2SJowpwlBHyY52RMkC5SpIhm+FKnTi1vvfWW0wUZgIjwJp4jqsqRI4f+4O3bt8++DfOP8H66C9+JI0eOyLNnz+zbMO/pTcIiCUyKd3xeZIxCq11G5vz88f80srSO52yMIBBR+DGYiwIw4RwTofED+MMPP+hE808//VRXrsWOHVtvY0gGk6QxwdnRwIEDZeXKlTrUefz4cVmzZo3+uAJWyWExBIZpMbEaiye2b9+ux758+XKEnPubeI6oCkPTWAXYu3dv2bp1q35+mHgePXp0t7NcWN2MbEe7du10uBOrUpGVfZOZMgwLYsFL27ZtdbI7ht7btGmjK1sp6n3+qDk3cuRI/XsHf2fh/3Wsqmdmlij8GMxFAc2bN5cnT57oPBQMkeIvS/zljIzb3Llz5aeffpI8efJohs74i9qAYK9///46P+Xdd9/V+SuYQweY94QVpggK69Wrp0EefizwXCg3ERHexHNEZePHj9c5knXq1JEqVarIO++8o++h4xyo0OA9Xr16tZahwLxJrEpEgA/uHiMiYGVjpkyZpHz58vo9wPcX2VqKep8/VsuiVA3+3sK5Y54spn68ye8bUVQTDasgvH0SRBQxHj16JBkyZNAyEa1btw7XMTB/sWXLljpZndkxczHj54/MIAJQlLNxHTkgIvdwAQSRiWGuEeZGIiuLH1/U4gIMW7tr/vz5uvIUQQDqESJzgh9WBnK+z4yfPxZcbdiwQbOwmKuH+oSYXoEhXyIKHw6zEpkchs4LFiyow2zIzGDuoVH42R1Xr16VZs2aaXbks88+kwYNGtgXwXTo0MFeMsb1gvvI+8z2+WNOH6Z/FC9eXIeFjx49qivpjbm6ROQ5DrMSUYiw+hkrJEOab8V5bVEbP38ic2AwR0RERGRiHGYlIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5InrjUJoiadKkfOeJiCIAV7MS0RuHdm0PHjxgaRMiogjAYI6I3qgXL15IrFix+K4TEUUQDrMSmdzPP/8s+fPn1/ZLKVKksHcCgO+//17y5s0rceLEkXTp0kmXLl3sj0P7J6OhPQoAV6pUSds5GQYPHqzN1xcsWCBZs2aVJEmSyMcff6wZNcP69eulbNmyOmSK50bD97///tt+//nz5yVatGjy448/SoUKFbSZ+sKFC4MdZp02bZrkyJFDYseOLbly5dLnJSKisDGYIzKxK1euSOPGjaVVq1YSGBgo27Ztk3r16onNZtPgqHPnzhqwoWXSqlWr5K233tLH4f7atWtrK6d169bJwYMHpUiRIlK5cmW5ffu2/fgIzFasWCFr1qzRy/bt22XUqFH2+xE09ujRQ/bv3y+bN2/WVk0ffvihNk93hH6f3bp103OsXr16kNfxyy+/yKeffio9e/aUY8eOSfv27bXZ+9atWyP1/SMiihJsRGRaBw8etOF/4/Pnzwe5L3369LYBAwYE+7jNmzfbEidObHv69KnT9hw5cthmzJih1wcNGmSLHz++7f79+/b7e/fubStZsmSI53P9+nU9n6NHj+rtc+fO6e2JEyc67TdnzhxbkiRJ7LfLlClja9u2rdM+DRo0sNWqVSuMd4CIiJiZIzIxNFhHNg3DrGiQPmvWLLlz54721Pz333/1vuAgE/fw4UMdGnVsnn7u3DmnYVIMryZKlMh+G0O1OLYB+zZp0kSyZ8+uQ7XZsmXT7RcvXnR6vmLFioX6OpCxQ9N1R7iN7UREFLqYYdxPRD4sRowYsnHjRgkICJANGzbIt99+KwMGDNAhz9BgGBSBGYZlXTnOZXNdqID5b45DqHXr1pVMmTJpEJk+fXq9L1++fPL8+XOnxyVIkCDM14JjO8JQsOs2IiIKipk5IpNDwIMs1pAhQ+TQoUO6gAABHrJqIQV1mB+H+XIxY8bUeXSOl5QpU7r1vLdu3dLM2RdffKEZQD8/P80Khgceu2vXLqdtCFCxnYiIQsfMHJGJ7d27VwO2atWq6apU3L5x44YGQViN2qFDB91es2ZNXYX6+++/S9euXXXFa+nSpeWDDz6Q0aNH6+pRDMtiMQS2hTUsCsmSJdNh2pkzZ2qWD0Or/fr1C9fr6N27tzRs2NC+CGP16tWyfPly2bRpU7iOR0RkJQzmiEwM89R27NghEydOlPv370uWLFnk66+/1uANnj59KhMmTJBevXppxq1+/fr2bB4CNwzJYiUsAsC0adPKu+++K2nSpHHrubFydcmSJbpKFUOrCAgnTZqkJUg8hQDym2++kbFjx+rxMPduzpw54ToWEZHVsGgwERERkYlxzhwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmRiDOSIiIiITYzBHREREZGIM5oiIiIhMjMEcERERkYkxmCMiIiIyMQZzRERERCbGYI6IiIhIzOv/AYNEsvQJQjV9AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "consumption = load_analysis(\"tutorial_02\", \"food_group_consumption.parquet\")\n", "by_group = (\n", " consumption.groupby([\"scenario\", \"food_group\"])[\"consumption_mt\"]\n", " .sum()\n", " .unstack(\"food_group\")\n", " .reindex(scenarios)\n", ")\n", "\n", "ax = by_group.plot.bar(stacked=True, ylabel=\"Global consumption (Mt)\", rot=0)\n", "ax.set_title(\"Food-group consumption\")\n", "ax.legend(bbox_to_anchor=(1.02, 1), loc=\"upper left\", fontsize=8)\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "breakdown-md", "metadata": {}, "source": [ "## Objective breakdown with the utility term visible\n", "\n", "The `consumer_values` column represents utility gained from (or disutility of deviating from) baseline consumption, entering the minimisation as a subtraction. It is negative when the flexible diet still sits close enough to baseline that the piecewise utility is net positive; it can turn positive at high GHG prices, when the optimiser pushes consumption far enough away from baseline that the cumulative utility loss exceeds the gain. Meanwhile `ghg_cost` is negative because the model achieves net-negative emissions at these prices — the gap between `ghg_cost` columns in Tutorial 1 vs Tutorial 2 measures how much extra mitigation the flexible diet unlocks." ] }, { "cell_type": "code", "execution_count": 4, "id": "breakdown", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T18:04:26.419402Z", "iopub.status.busy": "2026-05-15T18:04:26.419290Z", "iopub.status.idle": "2026-05-15T18:04:26.432206Z", "shell.execute_reply": "2026-05-15T18:04:26.431538Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
categoryghg_costconsumer_valuescrop_productionanimal_production
scenario
baselineNaNNaN168.5523.82
ghg_mid-392.95-306.0693.5418.45
ghg_high-2586.44-141.6564.367.72
\n", "
" ], "text/plain": [ "category ghg_cost consumer_values crop_production animal_production\n", "scenario \n", "baseline NaN NaN 168.55 23.82\n", "ghg_mid -392.95 -306.06 93.54 18.45\n", "ghg_high -2586.44 -141.65 64.36 7.72" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "breakdown = (\n", " load_analysis(\"tutorial_02\", \"objective_breakdown.parquet\")\n", " .set_index(\"scenario\")\n", " .reindex(scenarios)\n", ")\n", "columns = [\"ghg_cost\", \"consumer_values\", \"crop_production\", \"animal_production\"]\n", "breakdown[columns].round(2)" ] }, { "cell_type": "markdown", "id": "compare-md", "metadata": {}, "source": [ "## Fixed-diet vs flexible-diet at the same GHG price\n", "\n", "Tutorial 1 and Tutorial 2 share the same GHG prices but differ in whether diet is allowed to respond. The gap between the two bars at each GHG price is a rough measure of the additional, demand-side abatement available when consumption is free to move." ] }, { "cell_type": "code", "execution_count": 5, "id": "compare", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T18:04:26.433785Z", "iopub.status.busy": "2026-05-15T18:04:26.433689Z", "iopub.status.idle": "2026-05-15T18:04:26.513773Z", "shell.execute_reply": "2026-05-15T18:04:26.513195Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario baseline ghg_mid ghg_high\n", "config \n", "tutorial_01 5256.5 -5626.5 -8223.4\n", "tutorial_02 5256.5 -7859.0 -12932.2\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWlNJREFUeJzt3QncTPX///+X5bKWXbbsbbY2ElpQ2dOiopQoiZCylKSFFlokS0VZK5IWig8VCi1kiyi0iJC97GWf/+35/v7O/Gfmmmtz7ed63G+3cZkzZ86cmTln5jWv9/v1fmcLBAIBAwAAQKaXPb13AAAAACmDwA4AAMAnCOwAAAB8gsAOAADAJwjsAAAAfILADgAAwCcI7AAAAHyCwA4AAMAnCOwAAAB8gsAOKWLixImWLVu2qJc+ffrYpk2b3P+1XlqrUKGCdejQ4bTvv2DBArfv+uvR9rTd0/Hee+/ZsGHDknSf48eP2wUXXGAvvPBCcNmiRYtswIABtm/fPjtda9euddvQ+5MakvM6ne59d+3a5e5brFgxy5cvn9WtW9e+/PLLWOv973//s7vvvttq1KhhMTEx7j2ORvc944wz7K+//rKM4oknnrBy5cpZzpw5rVChQm5ZgwYN3CW1RDuHdexo2Z49exK8f2rvX3yPlZzPn23btrnnuWrVqiTd75133rHixYvbwYMHg8sGDRpkn3zyiSXHG2+8kWqfo8l5nZJz3/fff98uvvhiy5Mnj5UuXdoefvhhO3ToUNg6X331ld17773uczB//vxWpkwZu/HGG23FihWxtnf11Ve7bWRVBHZIURMmTLDFixeHXXr06GGlSpVy/2/RooUvXvEnn3zSpk+fnmaBnT7M9+7daw8++GBYYDdw4MBkB3baRmoFdsl5nU7H0aNH7dprr3XB2PDhw+3TTz+1EiVKWNOmTW3hwoVh62q/vv/+e6tatapddNFFcW5T26tdu7Y9/vjjlhHoOT3//PMuKNVzmjdvXpo8bmY+h5Oz7wrsdI4kJbD7999/3fHSt29fO/PMMzNNYJce7/HkyZPtjjvusMsuu8w+++wze/rpp93za9WqVdh6o0aNcp9TDz30kM2ePdud3/oRV6dOHRf0hXr22Wfd6/TLL79YVpQzvXcA/lK9enWrVatW1Nt0AvpF5cqV0+yxTpw4YS+//LL7tapfqpmBvtiULUvL10nGjRtnP/30kwt6lamThg0busDt0UcftSVLlgTXHTNmjGXP/n+/bbt37x71l7+nW7du1qZNG3vuueesbNmylp70/EQ/mM4666w0e9zcuXNn2nM4rff97bfftr///tvuu+8+ywxOnjzpPmfS+nXS4z7yyCPWuHFjdz5656uC4TvvvNMFes2aNXPLX3/99VjHu36wnXPOOS5gvuaaa4LL69evb+eff7698sor9tZbb1lWQ8YOaSIyTX/kyBG75JJL3Em5f//+4Ho7duywkiVLumYUnfRy7Ngx94WqFLw+eNS8cc8999ju3btjNVfqy1v3V1Bx5ZVX2tKlS5O0n+vXr3cfFrq/mvK6dOkS1pQSXzNhIBBwvxLVpJA3b14rXLiw3XrrrfbHH38E19HzmjVrlv35559hzdXxmTFjhmsGbNeuXXCZmob0gSgVK1YMbsdrLtb/tU58zdJ6L2677bbgh6m3jdBswPjx411QpCaSIkWK2M0332zr1q2L9VqoqXLNmjXuA1ofyspyxfU66QNaTSX6kFagqqbQl156yb1/yaUsnD7QvaBO1Fx51113uWMhtDnVC+oSo2XLlu45el8+cVEmVq/h77//Hus2ZW9y5coVbLZcuXKlXX/99e510HGtJihlSrZu3Rrn9vVaqhlWlImM6332JObcUfO+XouZM2eG3Vfvnc4Dva8JNbVt2bLFZVgKFChgBQsWdK935Pl5uvsXH51zOnbKly/vjtFLL73UBQOR4tr33377zdq2bRt8D6pUqeKOT4/OJ2WSRPvlnSPxveZedknHjNdMLrrf4cOHXdDnbcdrLvaatOPq4uJl1PX+//zzzy5T620j9PzavHmze+1Dn4+Cm1OnTsV6LfS66bXX54fWnT9/ftTXSceynvu5557rjgc1geq5ecdFcihjvn37drf9UPpc0vkWmu2P9iNG6yjjruMvUrt27VzrSLTPb78jsEOq/PILvUSjD+EPPvjApdKViRJ9+OhXmj6sp0yZYjly5HDL1I9CXz76AFZQpP/PnTvXfSj+999/wW126tTJhgwZ4pqo1Fx1yy23uC8bNWEmxs6dO90vPWVEFKC9++67rp+HsjmJ0blzZ9ev47rrrnPNLdqGPoTr1avnti1adsUVV7jgM7S5Oj56zvpQ0weYR5kAr1l22rRpwe3oiy2xFETol67oy8zbhtcMM3jwYOvYsaNVq1bNPYaaPlavXu2CJn0hRn5B33DDDe5Xs157NV3FZcOGDe691Ourfm56DGUk9foll967Cy+8MNZyb5nej9OhgEzvo96L+OhLVetGBhA6LyZNmuS+EPWDQV/wjRo1cseFXnsdzwoK1W8uvi8ifdHp9ZLPP//cvV9xZYUSe+4o4FRWpH379u4Hh9elQgHIyJEjXeCdEAX8+pH20UcfuSBFx3+TJk3iDdaTcm7HRceZ9l+vpR7zgQcecJ8DiWmCUzcEBW06ZhT86FjUsa9MqHf86nzSayEKqL1zJL5MnAJzBT36sRRK99MPvubNmwe3o8+DpND7X6lSJfej2NuGF/woGNYxOmfOHNcUqR+E+ixSH+don2EjRoxwTZj6zFQwrOA6rqbookWLuvdGx5yOV/1Yuvzyy5Pd1OllnyPPWfV51f54t8dFSYEffvjBfUZFatCggTvPQvtGZxkBIAVMmDAhoMMp2uX48eOBjRs3uv9rvVBTp051y4cNGxZ46qmnAtmzZw/MmTMnePuUKVPc7R9//HHY/ZYtW+aWv/HGG+76unXr3PWePXuGrTd58mS3vH379gk+h759+wayZcsWWLVqVdjyRo0auW3Mnz8/uEzbK1++fPD64sWL3TqvvPJK2H23bNkSyJs3b+DRRx8NLmvRokXYfRNSpUqVQNOmTWMtf/nll91j6rWNpOVPP/10rOV63NDX4sMPP4z13GTv3r1uv5s3bx62fPPmzYHcuXMH2rZtG1ym7Wkb48ePj/V4ka9TpJMnT7rj45133gnkyJEj8M8//yT6vtHExMQEOnfuHGv5okWL3D6+9957Ue/XrVs3d3t8+vfv747PQ4cOxbteq1atAmeffbZ7bp7Zs2e77c+cOdNdX758ubv+ySefBJJK76vuu3v37rDl9evXd5eknjuyZ88et8+1a9cO/PDDD4F8+fIF7rrrrrD7RTuHvX2J67ybNGlSiuxfNDpG8+TJE7j55pvDln/33Xfu/qGPFW3fmzRp4p7z/v37w+7fvXt3t13vWPT2J/KzKy7eZ9r3338f67b8+fNH/SzyXse4PldDz/Fq1aqFPTfPY4895tZdsmRJ2PIHHnjAfa798ssvYa9F5cqVA8eOHQtbN67P6VAnTpxw9zv33HPD3vfE3DfS888/7+6zffv2WLc1btw4cN5558V7/zvvvDOQM2dOdz5FOnbsmHve+lzPasjYIUWpEmzZsmVhF/26i0vr1q3dr2w1K6pZQB2O9evbo1/Ras5QpiM0C6jmTmW9vF9jakYQZfwitx/5+JEZxf+Lg/5vG/rlF9mRXtmEhGg/1YShjE3otrWP2l5yfjXqF3Na9qUSZQKUMYmsJlb/MmXlolWZKkOaGGqCVHZPWQBlZfXrXFlWZbV+/fXXZO97fE3bCTV7x0fvgbJM6i4QHzUrKWsTWtSgrI+OBa+/kLJbaqpXtmn06NEue5TSEnvuiN6LqVOnuuyHsj7KHGq/Eiuu8847L5Ozf3rNQ2/3umjoGFWXjsjH1v6raTY+up+OYWUa1bwYun1l1HS7mglP93yVtD5nlX1TVl+FPqF0DuszLrLAQOegzr2E6DVRZl/bVjZa76v+Kmsf2S3jdMV1XsZ3vqowS4UXr776qtWsWTPW7TExMe74ykjV7GmFwA4pSn06VDwRekmImmLVZKMPDDWDhFJTlao+9UGiEzX0oi9Yr7+SOiqLvhBCaZv60goVuR01OXnbiLx/tG1Go/3Uh6f6PUVuX18QiRkOIi4KsNR0nZa811NVcpHUF8y73aMvR/WvSoj6AF111VXuw1ZNu998840L/r1+TYlpfouP3uvIfZN//vnH/VU/wdPlvQcJ7aOCN71uXhOeugKoWUzBqwJZUT809ZNSEKMfM/pBoddVFYEp0dcwKeeOR01r2g8FNfqxlZRCnbjOu2jvRVL375lnngm7zSvIieucj2tZKN1XAYuamiMfW4GdnO456x0f6XHOxnW+ereHirZuNL169XJB1E033eT6YaoASeesfrCmxPkabd+8czau81VN5UoEqDo8vq4yefLkSfY+ZkZUxSJdqQ+EOrmed9557oNefVfUR8uj/kg6+dW3IxpvKAHvA0JfCOrc69GHd+SHhj6UQqnzsLeNaNmYhDI03n7q16UCFXVEjhRtWWJp215gklh6PA39ESm+L9pQ3uupjs3RMhLap9PJhKkflN5z9dkLzaokdYywuKg/WLRO3d4yVW2fLu89iHzukRS86ZhWHyYFLurArfcisoO49lXjd+kHgfouql+eghj1w3rssccsuRJ77ngUVOp1UvbjqaeecoUd6s+VGHGdd5E/qk5n/+6//363L5HnUug5H21/4hsDUdlS731SxXM03udCUnnHh46XxAZPXhCo4yT0syIpwaVej7jO19D9Suo5q76h+lHi9ccN3bfQ4pDT4fXf1HEX2odYx48K2TQMSrSgTv04dUloCKK9e/cmeL76ERk7pCtVnSqLoy96DVWhzIZS6x59oOsLQs0vkZlAXVQBKV51mVLzoVSgEVnAEbkN7wtCnZ3Vuf7HH38MW19fzAnRfuoLWpmoaPsZ2gFdH9xJ+RWpTsQqOIjkfQFE25a+1BQshFJTTOSgn3FtQwUSCjD0oR5KTYzajlf1mlTel0nol5det4SqTRNLTWv6Qggd1kTvv56HMlJe9uJ0qLpZx4qysglREKfMl4qAFLDp9Yyrc7peE2U/dNzri1LNoSkhseeOqGBBxTIqEND/lVHU8C4qikmMuM67+AYkTuz+6T2Ldi5pWA4FRJGPraFuvCKQuCjDrPNd3QLUcT/a43ufC/GdZ9F473Nc52xc56tEnrORlcrxbUPnpJr0I48fdY/RMRZZzJFYum/kD1MVuqREE6fOSQW/kcVGKsLRZ1XkWHYqClFAp+NUP0Tis23bNncOhgaMWQUZO6SbsWPHui9cNVmpCUgXpdXV70iVo+orcvvtt7sPbjWPaGBKLVNziQIM9d9RVZ2+zNUErP5tqizU7aoGU0WVKr4S00QoqmjV8B6qjFOaX1/gemwFCgnR/iqzoC/05cuXu+E81JSlX9Dffvut+zJS85bo/wpkNSSCsiMaaiK+Jmt9OSqT440N5/G+4NSkqYpGPW99GSrToUyEmk+UeVGlrz7wX3vtNfeFHcrLYGmsJ91PX5TKVOhLTffXL2L9WtcvZ30J69ey1knoQzUu6j+ppjdtT0PT6INXr0NiK5cT06yvZl0Nl6AqPvVz8gYqjRzIV1/+XvbW+xLWF4r3RRv5nqhJXa9lYjId+nJXMKdgSUMxRI6lpf5l2i81bykrpuBWx4QyfKF9TJMjseeOjlGdO3puel91PKq/nY5hvUeJGUxb+67mV+27fhzp2FGwqr52yd2/+LJuqvjUuapMv95zvdb64k9M9wmdNxoSSV0DdG7qPVdFsob3UEDl9UlT069+5Ghf9TmjITYUbMb1I0HBitbX8aJ+bKF0zqrvoLavgEbnnM5ZvQZqdlTFs851vZYKdqIN4+FlevUe6djR+ahlPXv2dEGcPr+0DWXEFYDpONPzU6vI6VAArn3RMa0gWOM9qor97LPPtuRS1lTDrujzSlXx+lxQ3z0ddzqWNPSUR5XL+jzTMj3HyD6QkePvff//bj/dgDZTS+/qDfiDV72lCrJoIiumVq9e7aouIyvEjhw5EqhZs2agQoUKrupNVDU5ZMiQwEUXXeSq1c4444zABRdc4Koff/vtt+B9jx49Gujdu3fgrLPOcuvVqVPHVatGVoLGZ+3ata4KVvcvUqRIoGPHjoFPP/00wapYjypDL7/8clf9puenyrO77747rGpL1Xa33nproFChQq5qK6HT8Pfff3frffDBB7Fu69evX6B06dKuWjN0H/VaqBK3bNmybj9URadq32ivhSqSK1as6KpSI6vaxo4dG7jwwgsDuXLlChQsWDBw4403Bn7++eew+2t7er7RRHudVBnqvZdlypQJPPLII4HPPvss0a9xQnbs2OFec71/3nEwd+7cJFVyR75Geg+iVXDG56233nL30esfWXm5fv36wB133OGOD92u11YVqRMnTkyxqtjEnDuqcNR9SpQoEasy0au6nj59eoJVsStWrAi0bNnSbf/MM890z23nzp3J3r+EnDp1KjB48GB3nOsY1bGq4yvyseKq2NTye++91x2HqqguXrx4oF69eoHnnnsubD1V8Gq/tE5cFeeh2rVrF6hatWqs5ToHr7jiCld1HFm5u3TpUvfYOpe0P3oMnX+RVbGbNm1yFaN6nXVb6Dny559/uor1okWLun09//zz3fsYWqHtvRZaHina66TPYX0O6nNV+33llVcGvvnmm0S/xomhanXvc6ZkyZKBHj16BA4ePBi2jh4rrvM12mdou3btAjVq1AhkRdn0T3oHlwDi51UORht8FalPGShlQ5TZi6/KGxBl7TVGnrJGyuAhbR04cMBlVNW9QeMaZjUEdkAmoGZlDUqq/kPeSPhIG2oeVZOXKigjh9YA4qI+iioUUrM70tbAgQNdU7X6LGbFH2IUTwCZgPrCqS9iYip0/ShyLLNol9SyceNG69evX6LGMwRC+4TpR1hWnNJKEjpfQ6c5S2kFChRw/QKzYlAnZOwAZHgaZNUbbzAu9CoBMgbNOZvQcDEq1Elozl2cHgI7AJniiyKhMb0SMxg2gNSnYXIih26JFF9lMZKHwA4AAMAn6GMHAADgE1mzZ2EGoI6jGhlbA1QmZ2JyAADgb4FAwBXiqPlag4jHh8AunSioK1u2bHo9PAAAyGQ0G0lCs34Q2KUTb4JrvUmJnfIKAABkzUGXy5YtG4wd4kNgl0685lcFdQR2AAAgIYnpukXxBAAAgE8Q2AEAAPgEgR0AAIBP0McOAIAM7OTJk3b8+PH03g2kopiYGMuRI0eKbIvADgCADDp22Y4dO2zfvn3pvStIA4UKFbKSJUsme2xbAjsAADIgL6g766yzLF++fAxm71MK4P/991/btWuXu16qVKlkbY/ADgCADNj86gV1RYsWTe/dQSrLmzev+6vgTu95cpplKZ4AACCD8frUKVOHrCHf/3uvk9ufksAOAIAMirnEs45sKTRvPIEdAACATxDYAQCADE3FBbfccoubglOZLfU/rFChgg0bNiy9dy3DoXgCAABkaG+//bZ98803tmjRIitWrJgVLFjQli1bZvnz50/vXctwCOwAAECGtmHDBqtSpYpVr149uKx48eLpuk8ZFU2xAAAgWU6dOmUvvviinXPOOZY7d24rV66cPf/88+62NWvW2DXXXOOG9NDQLffff78dOnQoeN8OHTrYTTfdZEOGDHFjuGmdbt26BatDGzRoYK+88op9/fXXrhlW1yWyKXb9+vV25ZVXWp48eaxq1ao2b948t/4nn3ySpd5dMnYAACBZ+vXrZ2PGjLFXX33VBVfbt293gZb6xjVt2tTq1Knjmk41Ttt9991n3bt3t4kTJwbvP3/+fBfU6e/vv/9ubdq0sYsvvtg6depk06ZNs8cee8x++ukn9/9cuXJFDSwVHJYrV86WLFliBw8etN69e2fJd9VXgd2AAQNs4MCBYctKlCjhRu/2RnfW7W+99Zbt3bvXLr/8cnv99detWrVqwfWPHj1qffr0sSlTpth///1n1157rb3xxht29tlnB9fRfXv06GEzZsxw12+44QYbOXKkmw7Ezyo8Nssyk0152lqmMWB/eu8BAJwWBVHDhw+31157zdq3b++WVa5c2QV4Cvb0XfrOO+8E+8NpvZYtW7oMn76jpXDhwm65Bua94IILrEWLFvbll1+6wK5IkSJujDcFdJpyK5o5c+a45toFCxYE11HGsFGjRlnuXfVdU6yCNP1S8C5KAXteeuklGzp0qDt49MtBb77edB2UnocfftimT59u77//vn377bcuXXz99de7UcA9bdu2tVWrVtnnn3/uLvp/u3bt0vy5AgCQ3tatW+eSIkqERLvtoosuCityuOKKK1yG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bpzbFgAAQKYqnsiIFIxNnTrV9WNTkUL58uVdwPboo48G18mRI4fNmjXLjTl3xRVXuGZkBXIapsRTsGBBN6xLt27dXAZO/fQUwIU2o6qAYvbs2a5P3+uvv+6yeSNGjGCoEwAAkK58E9ipGvb7779PcD1l7/73v//Fu06NGjXs66+/jncdDYnyww8/JHk/AQAA0j2wW716dawqUM06cejQobDlqkYFAABABg7sNOCv+piFzpl6/fXXu7/ecv3VtF0AAADIwIGdChIAAADgg8BOxQgAAADwSfGEBtX1hgVRVaim0AqtOG3RokXK7yEAAABSNrBTJemTTz4ZHPS3TZs2dvjw4eDt6l+n4UY0hRcAAAAycGD31ltvuem9QmmqLm/miZdeeskN1EtgByCj2fRCJmtNGJDeOwDA9zNPaLiTiy66KM7bmzVrZsuXL0+p/QIAAEBqBXaa9D50gnvNHRs6if0ZZ5xh+/fvT+rjAwAAIK0DuyJFitiGDRuC1yMnvP/tt9/cOgAAAMjggd3VV1/t5kONi27TOgAAAMjggV3fvn1tzpw5dtttt9myZctcs6suS5cutVtuucXmzZvn1gEAAEAGr4q95JJL3HAm9913n02bNi3stsKFC9v7779vl156aWrsIwAAAFJ6gOIbb7zRGjVqZF988YXrUyfnnnuuNW7c2PLnz5+UTQEAACA9AzvJly+f3XzzzSm9HwAAAEirPnYAAADI2AjsAAAAfILADgAAwCcI7AAAALJqYJcjRw7btWtXrOV///23uw0AAACZJLALBAJRlx89etRy5cqVEvsEAACA1BzuxJtOLFu2bDZ27Fg744wzgredPHnSvv76a7vgggtOZx8AAACQloHdq6++GszYjR49OqzZVZm6ChUquOUAAADI4IHdxo0b3d+GDRu6KcU0jRgAAAAycR+7+fPnu6Du2LFj9ssvv9iJEydSZ88AAACQuoHdf//9Zx07dnRTi1WrVs02b97slvfo0cNeeOGFpG4OAAAA6RXYPfbYY/bjjz/aggULLE+ePMHl1113nU2dOjWl9gsAAACp1cfO88knn7gArk6dOq5C1lO1alXbsGFDUjcHAACA9MrY7d69284666xYyw8fPhwW6AEAACCDB3aXXXaZzZo1K3jdC+bGjBljdevWTdm9AwAAQOo1xQ4ePNiaNm1qa9eudRWxw4cPt59//tkWL15sCxcuTOrmAAAAkF4Zu3r16tl3331n//77r1WuXNnmzJljJUqUcIFdzZo1U2q/AAAAkNoZO6lRo4a9/fbbp3NXAAAAZJSMHQAAADJ5xi579uwJVr3qdmaiAAAAyOCB3fTp0+O8bdGiRTZy5EgLBAIptV8AAABIrcDuxhtvjLVs/fr11q9fP5s5c6bdeeed9uyzzyb18QEAAJCefey2bdtmnTp1sgsvvNA1va5atcoVU5QrVy6l9gsAAACpGdjt37/f+vbta+ecc44bu+7LL7902brq1atbetPcterjF+2ybNmy4HrRbh89enTYttasWWP169e3vHnzWpkyZeyZZ56J1cysMfs0vIvmy61UqVKsbQAAAGTYptiXXnrJXnzxRStZsqRNmTIlatNsetL4etu3bw9b9uSTT9q8efOsVq1aYcsnTJjgBln2FCxYMPj/AwcOWKNGjaxhw4YuIPz111+tQ4cOlj9/fuvdu7dbZ+PGjda8eXOXtZw0aZIb169r165WvHhxu+WWW1L9uQIAACQrsHvsscdcBkvZOjW7xjWO3bRp0yw95MqVywWdnuPHj9uMGTOse/fusap5CxUqFLZuqMmTJ9uRI0ds4sSJljt3bpeNVHA3dOhQ69WrVzDDp2bnYcOGuftUqVLFli9fbkOGDCGwAwAAGb8p9u6777bWrVtbkSJFXIYrrktGoaBuz549LtsWScFesWLF3Ly3CtJOnToVvE0zaKgZVkGdp0mTJq5f4aZNm4LrNG7cOGybWkfBnQLKaI4ePeqygaEXAACAdMnYKYOVmYwbN84FW2XLlg1brsrda6+91mUf1UdQzasKAJ944gl3+44dO6xChQph99GUad5tFStWdH+9ZaHrqJBE2ypVqlTUOXYHDhyYCs8UAAAgk8w8MWDAgDiLIryLMmWhtm7dal988YV17Ngx1vYUwNWtW9cuvvhiF9SpMOLll18OWyey6dYrnAhdnph1QmlYGBWfeJctW7Yk+bUAAABI8bli05KaTW+//fZ414nMsKk4omjRonbDDTckuP06deq4ZtGdO3e6rJv63ikjF2rXrl3ur5eli2udnDlzuseNRk27oc27AAAAWS6wU184XRJLmTMFduoTGBMTk+D6K1eudEOWqKBClM17/PHH7dixY64gQ+bMmWOlS5cOBpBaR8O8hNI6qr5NzGMC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AAAAPgzsjh07Zrfddps98MADUW9fsWKFFS9e3CZNmmQ///yz9e/f3/r162evvfZarHXnzZtn27dvD16uueaa4G0bN2605s2b21VXXWUrV660xx9/3Hr06OECOc/ixYutTZs21q5dOxdQ6m/r1q1tyZIlqfTsAQAAEpYtEAgELBOZOHGiPfzww7Zv374E1+3WrZutW7fOvvrqq2DGrmLFii5gu/jii6Pep2/fvjZjxgx3P0+XLl1cAKeAThTUHThwwD777LPgOk2bNrXChQvblClTEvU8dP+CBQva/v37rUCBAom6DwAAGdqAgpZpDNhvmUVSYoZMk7E7HXoBihQpEmv5DTfcYGeddZZdccUV9tFHH4XdpuCtcePGYcuaNGliy5cvt+PHj8e7zqJFi1LleQAAACRGTvMpBV8ffPCBzZo1K7jsjDPOsKFDh7qALnv27C4zp+zb22+/bXfddZdbZ8eOHVaiRImwben6iRMnbM+ePVaqVKk419HyuBw9etRdQqNvAACAlJSuGbsBAwZELWYIvShTllTqY3fjjTfaU089ZY0aNQouL1asmPXs2dNq165ttWrVsmeeeca6du1qL730Utj99bihvNbq0OXR1olcFmrw4MEujepdVOQBAADgm4xd9+7d7fbbb493nQoVKiRpm2vXrnXFEJ06dbInnngiwfXr1KljY8eODV4vWbJkrMzbrl27LGfOnFa0aNF414nM4oVSIUevXr3CMnYEdwAAwDeBnTJouqQUZeoU1LVv394Nj5IYKqRQ86qnbt26NnPmzLB15syZ4zJ8MTExwXXmzp3rsn+h62g4lrhoWBRdAAAALKv3sdu8ebP9888/7u/Jkydt1apVbvk555zj+s4pqGvYsKEralBmzMuo5ciRww2DIupLp+DskksucX3sFMCNGDHCXnzxxbAKWA2Rom0o66e+euPGjQurdn3ooYfs6quvdvdTk++nn37qhlD59ttv0/x1AQAAyHSBnfrLKTDzKDiT+fPnW4MGDezDDz+03bt32+TJk93FU758eTfMiee5556zP//80wV85513no0fPz5YOCEaDmX27NkuG/f6669b6dKlXfB3yy23BNdRZu799993Tb1PPvmkVa5c2aZOnWqXX355GrwSAAAAPhnHzi8Yxw4A4DuMY5cqGMcOAAAgC/L1AMUAAABZSabpYwcAADK4TDRNl1+RsQMAAPAJAjsAAACfILADAADwCQI7AAAAnyCwAwAA8AkCOwAAAJ8gsAMAAPAJAjsAAACfILADAADwCQI7AAAAnyCwAwAA8AkCOwAAAJ8gsAMAAPAJAjsAAACfILADAADwCQI7AAAAn8iZ3juQVQUCAff3wIED6b0rAAAgA/NiBS92iA+BXTo5ePCg+1u2bNn02gUAAJDJYoeCBQvGu062QGLCP6S4U6dO2bZt2+zMM8+0bNmy8Qqnwq8bBc1btmyxAgUK8Poi0+DYRWbFsZt6FKopqCtdurRlzx5/LzoydulEb8zZZ5+dXg+fZSioI7BDZsSxi8yKYzd1JJSp81A8AQAA4BMEdgAAAD5BYAdfyp07tz399NPuL5CZcOwis+LYzRgongAAAPAJMnYAAAA+QWAHAADgEwR2SDMNGjSwhx9+ON1e8Q4dOthNN92UYfYH/lGhQgUbNmyYZTSJOcYz6r4j9aT2e75gwQI3Puu+ffviXGfAgAF28cUXJ2m7fGYnDuPYIcuaNm2axcTEpPduAKmGYxwZVZ8+fezBBx9M793wJQI7ZFlFihRJ710AUhXHODKqM844w12Q8miKRZo6ceKEde/e3QoVKmRFixa1J554Ijip8aRJk6xWrVpumrWSJUta27ZtbdeuXcH77t271+68804rXry45c2b184991ybMGFC8Pa//vrL2rRpY4ULF3bbvvHGG23Tpk2JTuureWLQoEF27733un0oV66cvfXWW2H3SepjwB80lY+Ovfz581upUqXs1VdfjXX8/Pvvv/EeO4sWLXJNT3ny5HHH+SeffOKaq1atWpXopq0vvvjCLrnkEnf8X3PNNe78+Oyzz6xKlSputP877rjD7Ycnch+1fsuWLd39K1asaJMnT06x1wgZR3ofr54VK1a4++bLl8/q1atnv/zyS5xNsfpu6NGjR/C7oW/fvta+ffuw7jPedJyPPvqo+9Gi7wltB+EI7JCm3n77bcuZM6ctWbLERowY4T5wxo4d6247duyYPfvss/bjjz+6D5GNGze6fnGeJ5980tauXeu+yNatW2ejRo2yYsWKBT+kGjZs6H4Bfv311/btt9+6/zdt2tRtN7FeeeUV90G0cuVK69q1qz3wwAO2fv36FH0MZD69evWy7777zmbMmGFz5861b775xn744YdEHzv6olVAVaNGDXc/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "emissions = pd.concat(\n", " [\n", " load_analysis(\"tutorial_01\", \"net_emissions.parquet\"),\n", " load_analysis(\"tutorial_02\", \"net_emissions.parquet\"),\n", " ]\n", ")\n", "totals = (\n", " emissions.groupby([\"config\", \"scenario\"])[\"mtco2eq\"]\n", " .sum()\n", " .unstack(\"scenario\")\n", " .reindex(columns=scenarios)\n", ")\n", "print(totals.round(1))\n", "\n", "ax = totals.T.plot.bar(ylabel=\"Net GHG (MtCO2eq)\", rot=0)\n", "ax.set_title(\"Fixed-diet (tutorial_01) vs flexible-diet (tutorial_02)\")\n", "plt.tight_layout()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }