{
"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-06-15T21:31:29.258081Z",
"iopub.status.busy": "2026-06-15T21:31:29.257686Z",
"iopub.status.idle": "2026-06-15T21:31:29.609443Z",
"shell.execute_reply": "2026-06-15T21:31:29.608944Z"
}
},
"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-06-15T21:31:29.611062Z",
"iopub.status.busy": "2026-06-15T21:31:29.610927Z",
"iopub.status.idle": "2026-06-15T21:31:29.631505Z",
"shell.execute_reply": "2026-06-15T21:31:29.631076Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
food
\n",
"
food_group
\n",
"
country
\n",
"
value_bnusd_per_mt
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
ASM
\n",
"
9.063333
\n",
"
\n",
"
\n",
"
1
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
MEX
\n",
"
9.047287
\n",
"
\n",
"
\n",
"
2
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
CAN
\n",
"
9.023025
\n",
"
\n",
"
\n",
"
3
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
USA
\n",
"
9.010561
\n",
"
\n",
"
\n",
"
4
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
PRI
\n",
"
8.971029
\n",
"
\n",
"
\n",
"
5
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
DOM
\n",
"
8.960794
\n",
"
\n",
"
\n",
"
6
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
BHS
\n",
"
8.958312
\n",
"
\n",
"
\n",
"
7
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
PAN
\n",
"
8.957988
\n",
"
\n",
"
\n",
"
8
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
HTI
\n",
"
8.955171
\n",
"
\n",
"
\n",
"
9
\n",
"
meat-sheep
\n",
"
red_meat
\n",
"
CRI
\n",
"
8.953406
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" food food_group country value_bnusd_per_mt\n",
"0 meat-sheep red_meat ASM 9.063333\n",
"1 meat-sheep red_meat MEX 9.047287\n",
"2 meat-sheep red_meat CAN 9.023025\n",
"3 meat-sheep red_meat USA 9.010561\n",
"4 meat-sheep red_meat PRI 8.971029\n",
"5 meat-sheep red_meat DOM 8.960794\n",
"6 meat-sheep red_meat BHS 8.958312\n",
"7 meat-sheep red_meat PAN 8.957988\n",
"8 meat-sheep red_meat HTI 8.955171\n",
"9 meat-sheep red_meat CRI 8.953406"
]
},
"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-06-15T21:31:29.632918Z",
"iopub.status.busy": "2026-06-15T21:31:29.632831Z",
"iopub.status.idle": "2026-06-15T21:31:29.786135Z",
"shell.execute_reply": "2026-06-15T21:31:29.785751Z"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"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-06-15T21:31:29.787784Z",
"iopub.status.busy": "2026-06-15T21:31:29.787701Z",
"iopub.status.idle": "2026-06-15T21:31:29.797779Z",
"shell.execute_reply": "2026-06-15T21:31:29.797413Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
category
\n",
"
ghg_cost
\n",
"
consumer_values
\n",
"
crop_production
\n",
"
animal_production
\n",
"
\n",
"
\n",
"
scenario
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
baseline
\n",
"
NaN
\n",
"
NaN
\n",
"
1599.47
\n",
"
888.08
\n",
"
\n",
"
\n",
"
ghg_mid
\n",
"
-112.44
\n",
"
-3432.51
\n",
"
1339.72
\n",
"
811.96
\n",
"
\n",
"
\n",
"
ghg_high
\n",
"
-1797.31
\n",
"
-2749.24
\n",
"
989.12
\n",
"
517.53
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"category ghg_cost consumer_values crop_production animal_production\n",
"scenario \n",
"baseline NaN NaN 1599.47 888.08\n",
"ghg_mid -112.44 -3432.51 1339.72 811.96\n",
"ghg_high -1797.31 -2749.24 989.12 517.53"
]
},
"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-06-15T21:31:29.799036Z",
"iopub.status.busy": "2026-06-15T21:31:29.798947Z",
"iopub.status.idle": "2026-06-15T21:31:29.877290Z",
"shell.execute_reply": "2026-06-15T21:31:29.876745Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"scenario baseline ghg_mid ghg_high\n",
"config \n",
"tutorial_01 5545.8 -350.1 -4964.5\n",
"tutorial_02 5546.1 -2248.8 -8986.5\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWiFJREFUeJzt3QfcjfX/x/GPvbKyyU4ymkbRoGFkNFT0U6IkJalQSEMqVFZUmmhroIgKJWVkRSQyMrMjK9v5P97f3+86/3POvfd9Lq/n43Fxn+t8z3Wuc53rOudzPt+VJRAIBAwAAABRL2tG7wAAAABSB4EdAACATxDYAQAA+ASBHQAAgE8Q2AEAAPgEgR0AAIBPENgBAAD4BIEdAACATxDYAQAA+ASBHZJs7NixliVLlliXnj172oYNG9zfKpfeKlSoYB06dEj243/44Qe37/rfo+1pu8nx0Ucf2fDhw5P0mOPHj9u5555rgwYNCq6bO3eu9evXz/755x9Lrt9//91tQ+9PWkjJcUruY3fu3OkeW7RoUcubN6/Vq1fPvvvuuxjlvvrqK7vzzjvtvPPOsxw5crj3ODZ67BlnnGF//fWXZRZPPPGElStXzrJnz26FChVy6xo2bOiWtBLbNaxzR+t2796d4OPTev/ie66UfP5s3brVvc6lS5cm6XHvvfeeFStWzA4cOBBcN2DAAPviiy8sJV577bU0+xxNyXFKyWPHjRtnF154oeXOndtKly5tDz/8sB08eDCszPfff2933323+xzMly+flSlTxm644QZbvHhxjO1deeWVbhv4fwR2SLYxY8bYvHnzwpZu3bpZqVKl3N/Nmzf3xdF98sknbeLEiekW2OnDfO/evfbggw+GBXbPPPNMigM7bSOtAruUHKfkOHr0qF1zzTUuGHv55Zftyy+/tBIlSljTpk1t1qxZYWW1Xz///LNVr17dLrjggji3qe3VrVvXHn/8ccsM9Jqef/55F5TqNc2YMSNdnjear+GU7LsCO10jSQns/v33X3e+9OrVy/Lnzx81gV1GvMcffvih/ec//7E6derY119/bU8//bR7fa1atQorN2rUKPc59dBDD9nUqVPd9a0fcZdeeqkL+kI9++yz7jj98ccf6fY6MrvsGb0DiF41a9a02rVrx3qfLkC/qFy5cro914kTJ+yll15yv1b1SzUa6ItN2bL0PE7yzjvv2G+//eaCXmXq5KqrrnKB22OPPWbz588Pln3rrbcsa9b//o7t2rVrrL/8PQ888IC1adPGnnvuOStbtqxlJL0+0Q+m4sWLp9vz5sqVK2qv4fTe93fffdf+/vtvu+eeeywanDx50n3OpPdx0vM++uij1rhxY3c9eterguHbb7/dBXrXXXedW//qq6/GON/1g+3ss892AfPVV18dXN+gQQOrWrWqDRkyxN588810ez2ZGRk7pLrINP2RI0fsoosuchflvn37guW2b99uJUuWdNUouujl2LFj7gtVKXh98Kh646677rJdu3bFqK7Ul7cer6Di8ssvtwULFiRpP1etWuU+LPR4VeXdd999YVUp8VUTBgIB9ytRVQp58uSxwoUL2y233GJ//vlnsIxe15QpU2zjxo1h1dXxmTRpkqsGbNeuXXCdqob0gSgVK1YMbserLtbfKhNftbTei1tvvTX4YeptIzQbMHr0aBcUqYrkzDPPtJtuuslWrlwZ41ioqnL58uXuA1ofyspyxXWc9AGtqhJ9SCtQVVXoiy++6N6/lFIWTh/oXlAnqq6844473LkQWp3qBXWJ0bJlS/cavS+fuCgTq2O4du3aGPcpe5MzZ85gteWSJUusRYsW7jjovFYVlDIlW7ZsiXP7OpaqhhVlIuN6nz2JuXZUva9jMXny5LDH6r3TdaD3NaGqts2bN7sMS4ECBaxgwYLueEden8ndv/jomtO5U758eXeOXnzxxS4YiBTXvq9Zs8batm0bfA+qVavmzk+PridlkkT75V0j8R1zL7ukc8arJhc97tChQy7o87bjVRd7VdpxNXHxMup6/1esWOEytd42Qq+vTZs2uWMf+noU3Jw6dSrGsdBx07HX54fKzpw5M9bjpHNZr71KlSrufFAVqF6bd16khDLm27Ztc9sPpc8lXW+h2f7YfsSojDLuOv8i6fNStSOxfX6fjgjskOJffqFLbPQh/Omnn7pUujJRog8f/UrTh/XHH39s2bJlc+vUjkJfPvoAVlCkv6dPn+4+FA8fPhzcZqdOnWzw4MGuikrVVTfffLP7slEVZmLs2LHD/dJTRkQB2vvvv+/aeSibkxidO3d27TquvfZaV92ibehDuH79+m7bonWXXXaZCz5Dq6vjo9esDzV9gHmUCfCqZSdMmBDcjr7YEktBhH7pir7MvG141TADBw60jh07Wo0aNdxzqOpj2bJlLmjSF2LkF/T111/vfjXr2KvqKi7r1q1z76WOr9q56TmUkdTxSym9d+eff36M9d46vR/JoYBM76Pei/joS1VlIwMIXRcffPCB+0LUDwZ9wTdq1MidFzr2Op8VFKrdXHxfRPqi0/GSb775xr1fcWWFEnvtKOBUVqR9+/buB4fXpEIByMiRI13gnRAF/PqR9vnnn7sgRed/kyZN4g3Wk3Jtx0XnmfZfx1LPef/997vPgcRUwakZgoI2nTMKfnQu6txXJtQ7f3U96ViIAmrvGokvE6fAXEGPfiyF0uP0g69Zs2bB7ejzICn0/leqVMn9KPa24QU/CoZ1jk6bNs1VReoHoT6L1MY5ts+wESNGuCpMfWYqGFZwHVdVdJEiRdx7o3NO56t+LF1yySUprur0ss+R16zavGp/vPvjoqTAL7/84j6jIukc0nUW2jb6tBYAkmjMmDEBnTqxLcePHw+sX7/e/a1yoT755BO3fvjw4YGnnnoqkDVr1sC0adOC93/88cfu/vHjx4c9buHChW79a6+95m6vXLnS3X7kkUfCyn344Yduffv27RN8Db169QpkyZIlsHTp0rD1jRo1ctuYOXNmcJ22V758+eDtefPmuTJDhgwJe+zmzZsDefLkCTz22GPBdc2bNw97bEKqVasWaNq0aYz1L730kntOHdtIWv/000/HWK/nDT0Wn332WYzXJnv37nX73axZs7D1mzZtCuTKlSvQtm3b4DptT9sYPXp0jOeLPE6RTp486c6P9957L5AtW7bAnj17Ev3Y2OTIkSPQuXPnGOvnzp3r9vGjjz6K9XEPPPCAuz8+ffv2defnwYMH4y3XqlWrwFlnneVem2fq1Klu+5MnT3a3Fy1a5G5/8cUXgaTS+6rH7tq1K2x9gwYN3JLUa0d2797t9rlu3bqBX375JZA3b97AHXfcEfa42K5hb1/iuu4++OCDVNm/2OgczZ07d+Cmm24KWz9nzhz3+NDnim3fmzRp4l7zvn37wh7ftWtXt13vXPT2J/KzKy7eZ9rPP/8c4758+fLF+lnkHce4PldDr/EaNWqEvTZP7969Xdn58+eHrb///vvd59off/wRdiwqV64cOHbsWFjZuD6nQ504ccI9rkqVKmHve2IeG+n55593j9m2bVuM+xo3bhw455xz4n387bffHsiePbu7niJpH/W69bmOQICMHZJNPcEWLlwYtujXXVxat27tfmWrWlHVAmpwrF/fHv2KVnWGMh2hWUBVdyrr5f0aUzWCKOMXuf3I54/MKP43DvrvNvTLL7IhvbIJCdF+qgpDGZvQbWsftb2U/GrUL+b0bEslygQoYxLZm1jty5SVi62XqTKkiaEqSGX3lAVQVla/zpVlVVZr9erVKd73+Kq2E6r2jo/eA2WZ1FwgPqpWUtYmtFODsj46F7z2Qspuqape2abXX3/dZY9SW2KvHdF78cknn7jsh7I+yhxqvxIrruvOuy5Tsn865qH3e000dI6qSUfkc2v/VTUbHz1O57AyjapeDN2+Mmq6X9WEyb1eJb2vWWXflNVXR59Quob1GRfZwUDXoK69hOiYKLOvbSsbrfdV/ytrH9ksI7niui7ju17VMUsdL4YNG2a1atWKcb9em86vzNSbPSMR2CHZ1KZDnSdCl4SoKlZVNvrAUDVIKFVVqdenPkh0oYYu+oL12iupobLoCyGUtqkvrVCR21GVk7eNyMfHts3YaD/14al2T5Hb1xdEYoaDiIsCLFVdpyfveKqXXCS1BfPu9+jLUe2rEqI2QFdccYX7sFXV7k8//eSCf69dU2Kq3+Kj9zpy32TPnj3uf7UTTC7vPUhoHxW86bh5VXhqCqBqMQWvCmRF7dDUTkpBjH7M6AeFjqt6BKZGW8OkXDseVa1pPxTU6MdWUjrqxHXdxfZeJHX/+vfvH3af1yEnrms+rnWh9FgFLKpqjnxuBXaS3GvWOz8y4pqN63r17g8VW9nYdO/e3QVRN954o2uHqQ5Iumb1gzU1rtfY9s27ZuO6XlVVrkSAeofH11RG70FK99Ev6BWLdKM2EGrkes4557gPerVdURstj9oj6eJX247YeEMJeB8Q+kJQ416PPrwjPzT0oRRKjYe9bcSWjUkoQ+Ptp35dKlBRQ+RIsa1LLG3bC0wSS8+noT8ixfdFG8o7nmrYHFtGQvuUnEyY2kHpPVebvdCsSlLHCIuL2oPF1qjbW6de28nlvQeRrz2Sgjed02rDpMBFDbj1XkQ2ENe+avwu/SBQ20W1y1MQo3ZYvXv3tpRK7LXjUVCp46Tsx1NPPeU6dqg9V2LEdd1F/qhKzv7de++9bl8ir6XQaz62/YlvDERlS733ST2eY+N9LiSVd37ofEls8OQFgTpPQj8rkhJc6njEdb2G7ldSr1m1DdWPEq89bui+hXYOSQ6v/abOu9A2xDp/1JFNw6DEFtSpHaeWhIYg0o+qhK7X0wUZO6Qb9TpVFkdf9BqqQpkNpdY9+kDXF4SqXyIzgVrUA1K83mVKzYdSB43IDhyR2/C+INTYWY3rf/3117Dy+mJOiPZTX9DKRMW2n6EN0PXBnZRfkWpErA4HkbwvgNi2pS81BQuhVBUTOehnXNtQBwkFGPpQD6UqRm3H6/WaVN6XSeiXl45bQr1NE0tVa/pCCB3WRO+/XocyUl72IjnUu1nnirKyCVEQp8yXOgEpYNPxjKtxuo6Jsh867/VFqerQ1JDYa0fUYUGdZdRBQH8ro6jhXdQpJjHiuu7iG5A4sfun9yy2a0nDcigginxuDXXjdQKJizLMut7VLEAN92N7fu9zIb7rLDbe+xzXNRvX9SqR12xkT+X4tqFrUlX6keePmsfoHIvszJFYemzkD1N1dEmNKk5dkwp+IzsbqROOPqsix7JTpxAFdDpP9UMkPgpodQ2GBoynMzJ2SBdvv/22+8JVlZWqgLQora52R+o5qrYit912m/vgVvWIBqbUOlWXKMBQ+x31qtOXuaqA1b5NPQt1v3qDqUeVenwlpopQ1KNVw3uoZ5zS/PoC13MrUEiI9leZBX2hL1q0yA3noaos/YKePXu2+zJS9ZbobwWyGhJB2RENNRFflbW+HJXJ8caG83hfcKrSVI9GvW59GSrToUyEqk+UeVFPX33gv/LKK+4LO5SXwdJYT3qcviiVqdCXmh6vX8T6ta5fzvoS1q9llUnoQzUuaj+pqjdtT0PT6INXxyGxPZcTU62val0Nl6BefGrn5A1UGjmQr778veyt9yWsLxTvizbyPVGVuo5lYjId+nJXMKdgSUMxRI6lpfZl2i9VbykrpuBW54QyfKFtTFMisdeOzlFdO3ptel91Pqq9nc5hvUeJGUxb+67qV+27fhzp3FGwqrZ2Kd2/+LJu6vGpa1WZfr3nOtb64k9M8wldNxoSSU0DdG3qPVePZA3voYDKa5Omql/9yNG+6nNGQ2wo2IzrR4KCFZXX+aJ2bKF0zartoLavgEbXnK5ZHQNVO6rHs651HUsFO7EN4+FlevUe6dzR9ah1jzzyiAvi9PmlbSgjrgBM55len2pFkkMBuPZF57SCYI33qF7sZ511lqWUsqYadkWfV+oVr88Ftd3TeadzSUNPedRzWZ9nWqfXGNkGMnL8Pe/+5Aa0vkMPEiSV13tLPchiE9ljatmyZa7XZWQPsSNHjgRq1aoVqFChguv1Juo1OXjw4MAFF1zgequdccYZgXPPPdf1flyzZk3wsUePHg306NEjULx4cVfu0ksvdb1VI3uCxuf33393vWD1+DPPPDPQsWPHwJdffplgr1iPeoZecsklrvebXp96nt15551hvbbU2+6WW24JFCpUyPXaSuiSW7t2rSv36aefxrivT58+gdKlS7vemqH7qGOhnrhly5Z1+6FedOrtG9uxUI/kihUrul6pkb3a3n777cD5558fyJkzZ6BgwYKBG264IbBixYqwx2t7er2xie04qWeo916WKVMm8Oijjwa+/vrrRB/jhGzfvt0dc71/3nkwffr0JPXkjjxGeg9i68EZnzfffNM9Rsc/suflqlWrAv/5z3/c+aH7dWzVI3Xs2LGp1is2MdeOejjqMSVKlIjRM9HrdT1x4sQEe8UuXrw40LJlS7f9/Pnzu9e2Y8eOFO9fQk6dOhUYOHCgO891jupc1fkV+Vxx9djU+rvvvtudh+pRXaxYsUD9+vUDzz33XFg59eDVfqlMXD3OQ7Vr1y5QvXr1GOt1DV522WWu13Fkz90FCxa459a1pP3Rc+j6i+wVu2HDBtdjVMdZ94VeIxs3bnQ91osUKeL2tWrVqu59DO2h7R0LrY8U23HS57A+B/W5qv2+/PLLAz/99FOij3FiqLe69zlTsmTJQLdu3QIHDhwIK6Pniut6je0zVO/Beeedl+R98ass+iejg0sA/8/rORjb4KtIe8pAKRuizF58vbwBUdZeY+Qpa6QMHtLX/v37XUZVzRs0riHMCOyATEbVyhqUVO2HvJHwkT5UPaoqL/WgjBxaA4iL2iiqo5Cq3ZG+1GREVdVqs8gPsf+i8wSQyagtnNoiJqaHrh9FjmUW25JW1q9fb3369EnUeIZAaJsw/Qg7Xae0Suh6DZ3mLLWpXbXaBRLU/T8ydgAyFQ2y6o03GBdakACZg+acTWi4GHXUSWjOXaQeAjsAme6LIqExvRIzGDaAtKdhciKHbokUX89ipD4COwAAAJ+gjR0AAIBP0Jc/DaihqEbC1oCUKZmIHAAAIBAIuM45qtLWwOLxIbBLAwrqypYty5kIAABSjWYoSWgmEAK7NOBNaK03ILFTXAEAAMQ1ELMSRl584ZvAThMRa25RjciviZE1H54mk9ccnF6qUoMVaq5GzUepUcA1l6TmJfUcPXrUzTmoCbu1DU2mrPn1QiNgPbZbt25uknrRHIAasFSTdieGV/2qoI7ADgAApIbENO+Kms4TCrY0+bomjlZgp4nONShkaLClCYaHDh3qJkDXhN+aHFqTC4cOGqnJ3ydOnOgmVtaE7QcPHnQTH588eTJYRoOTLl261L755hu36G9NXAwAAJCZRc1wJ71797Y5c+bYTz/9FOv9ehlqVKjATVk9LztXokQJe+GFF6xz5862b98+K1asmL3//vtuCpjQ9nBTp061Jk2a2MqVK6169eph8/7p73r16tmqVausatWqiUqZFixY0D0fGTsAAJASSYkroiZjp2pRDUp66623WvHixd1cmm+99VbYVECagqlx48bBdbly5bIGDRq4OTdl8eLFdvz48bAyCgY1hZNXZt68ee7ghU7mfOmll7p1XhkAAIDMKGra2P355582atQo6969uz3++OO2YMEC1w5Owdudd94ZnFdTGbpQur1x40b3t8rkzJnTChcuHKOM93j9r8AxktbFNXenMoNaQiNrAABSg5oKKSkB/8qRI4dly5bt9ArsNDacMnYDBgxwt5WxW7FihQv2FNjF1bBQVbQJNTaMLBNb+fi2M3DgQNdpAwCA1KLvHSUU/vnnHw7qaaBQoUKub0BKx7+NmsCuVKlSru1bqGrVqtn48ePd3zoYootAZT07d+4MZvFURvPaqSNGaNZOZerXrx8ss2PHjhjPv2vXrhjZQE+fPn1cJjGyWzIAAMnlBXWqMcqbNy8D3vuUAvh///3XxSISGsP4OrBTj9g//vgjbN3q1autfPny7u+KFSu6oGz69OkumycK4mbNmuU6T4iGRVG6U2Vat27t1m3bts1+++0316NW1ElCjRNV1Vu3bl23bv78+W6dF/xFUnWwFgAAUqv61QvqihQpwkH1uTx58rj/FdzpPU9JtWzUBHaPPPKIC6xUFaugTIGXxqvTIkpdqkes7q9SpYpb9Ld+5Wj4ElEHiI4dO1qPHj3chXLmmWe6Me3OO+88u/baa4NZwKZNm1qnTp3sjTfecOvuvfdeNyRKYnrEAgCQUl6bOn2H4fSQ93/vtd770yKwq1Onjht/TtWe/fv3dxm64cOH2+233x4s89hjj7lBh7t0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q56w69atC1tXunRp+/77723hwoXWvn1784uiRYu69oKR2bmdO3fGyOJJnz59bN++fcFl8+bN6bi3AAAASQzslJn76KOPYqz3grsNGzaYX+TMmdNq1apl06dPD1uv2/Xr149RXlOpFShQIGwBAADItFWxTz75pK1atSrW+8qUKWM//vijTZs2zfyie/furoq5du3aVq9ePXvzzTfdUCfqPAIAABDVgV358uXdEpdSpUr5qjq2TZs29vfff1v//v3dAMVqXzh16tR4jwEAAEBUzTzx2Wef2ccff2yrV692HQmqVKlibdu2tVtuucX8pkuXLm4BAADwVRu7U6dOuSyWlt9//90NVFypUiVbsWKFW3fbbbf5Zhw7AAAAX2fsNPPCjBkzbNKkScGx7Dxap/HsXn75ZTcNFwAAADJxYDd27Fh76aWXYgR1cv3117tx7BT8EdgByEhRNx5jv4zeAQCnZVXsmjVr7Nprr43zft23du3a1NovAAAApFVglydPHvvnn3/ivF/TaKkMAAAAMnlgp7HcRo0aFef9r776qisDAACATN7Grm/fvtawYUM3tlvPnj3t3HPPdb1gV65caUOGDLEvv/zSZs6cmbZ7CwAAgJQHdppK65NPPrF7773Xxo8fH3Zf4cKF3dh2l112WWI3BwAAgIwcoPimm26yJk2a2Lfffus6U8g555xjjRs3trx586b2vgEAACAtZ55QAKcADwAAAFHaeeL777+36tWru96vkfbt22c1atSwn376KbX3DwAAAKkd2Gnw4U6dOlmBAgVi3FewYEHr3LmzDR06NLGbAwAAQEYFdr/++qs1bdo0zvvVzm7x4sWptV8AAABIq8Bux44dliNHjjjvz549u+3atSupzw8AAID0DuzKlCljy5cvj/P+ZcuWWalSpVJrvwAAAJBWgV2zZs3sqaeesiNHjsS47/Dhw/b0009bixYtkvr8AAAASO/hTp544gmbMGGCG7eua9euVrVqVcuSJYubeULTiZ08edLNTgEAAIBMHtiVKFHC5s6da/fff7/16dPHTScmCu40aPFrr73mygAAACAKBiguX768TZ061fbu3Wtr1651wV2VKlXclGIAAACIkjZ2nrvvvtv1gK1Tp47VrVs3GNQdOnTI3QcAAIAoCezeffdd11kikta99957qbVfAAAASKuqWE0lpqpXLQcOHLDc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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
}