{ "cells": [ { "cell_type": "markdown", "id": "intro", "metadata": {}, "source": [ "# Tutorial 1 — Analysis\n", "\n", "Companion notebook to [Tutorial Part 1](../tutorial.rst). It loads the three solved scenarios from `results/tutorial_01/` and produces three small comparison figures: total cropland, net GHG emissions by gas, and the objective-cost breakdown.\n", "\n", "Run the Part 1 workflow first:\n", "\n", "```bash\n", "tools/smk -j4 --configfile config/tutorial/01_ghg_prices.yaml\n", "```\n", "\n", "Then execute this notebook (`pixi run -e dev jupyter lab`, or from the command line with `pixi run -e dev jupyter execute docs/tutorials/tutorial_01_analysis.ipynb`)." ] }, { "cell_type": "markdown", "id": "693f5122", "metadata": {}, "source": [ "## A note on baseline numbers\n", "\n", "The `baseline` scenario here is a *model baseline*, not an observation. Consumption is fixed to observed 2020 food-group totals, but production, trade, and land allocation are still being optimised subject to the LP's cost objective. The model therefore uses **less** agricultural land than the real world — our baseline total is ~1.6 Bha of cropland + grazed grassland, against roughly 4.8 Bha globally in reality.\n", "\n", "One direct consequence: the baseline already has strongly **net-negative emissions** (around −3.7 GtCO₂eq/year in the output below) because the model implicitly spares land relative to the real-world footprint and then books the regrowth carbon sequestration. This is *not* a prediction that today's food system is net-negative; it is a starting point from which the scenarios in this tutorial measure *relative* change as the GHG price rises.\n", "\n", "Most serious studies avoid this by **coercing the model toward the observed production system**. The common mechanism is `validation.production_stability` (see `config/sensitivity.yaml` and `config/gsa.yaml`), which adds an L1 penalty per Mha / Mt of deviation from baseline production. That penalty pulls land use, livestock, and grassland back toward observed levels while still allowing the optimiser some flexibility. For strict validation without any flexibility, `config/validation.yaml` uses hard constraints (`use_actual_yields`, `use_actual_production`, `enforce_baseline_feed`, and so on). We deliberately omit both in this tutorial to keep the config short and focused on the GHG-price response." ] }, { "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:27.481679Z", "iopub.status.busy": "2026-06-15T21:31:27.481411Z", "iopub.status.idle": "2026-06-15T21:31:27.888680Z", "shell.execute_reply": "2026-06-15T21:31:27.887994Z" } }, "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", "results = project_root / \"results\" / \"tutorial_01\" / \"analysis\"\n", "scenarios = [\"baseline\", \"ghg_mid\", \"ghg_high\"]\n", "\n", "\n", "def load(filename: str) -> pd.DataFrame:\n", " \"\"\"Concatenate a per-scenario parquet file across the three scenarios.\"\"\"\n", " return pd.concat(\n", " pd.read_parquet(results / f\"scen-{s}\" / filename).assign(scenario=s)\n", " for s in scenarios\n", " )" ] }, { "cell_type": "markdown", "id": "cropland-md", "metadata": {}, "source": [ "## Total agricultural land use\n", "\n", "`land_use.parquet` aggregates the area (Mha) allocated to every crop and grazed grassland per scenario. Because every scenario uses `validation.enforce_baseline_diet: true`, consumption is identical across scenarios, so any change in total agricultural land reflects how the optimiser reorganises production in response to the GHG price." ] }, { "cell_type": "code", "execution_count": 2, "id": "cropland", "metadata": { "execution": { "iopub.execute_input": "2026-06-15T21:31:27.890347Z", "iopub.status.busy": "2026-06-15T21:31:27.890183Z", "iopub.status.idle": "2026-06-15T21:31:28.021458Z", "shell.execute_reply": "2026-06-15T21:31:28.020919Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario\n", "baseline 3686.7\n", "ghg_mid 3050.3\n", "ghg_high 2372.3\n", "Name: area_mha, dtype: float64\n" ] }, { "data": { "image/png": "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AIcg2AEAADgEwQ4AAMAhCHYAAAAOQbADAABwiFwNdtOmTZOaNWtKsWLFbKtfv77861//8jzetWtXKVCggNdWr149r2MkJSVJv379pGTJkhIUFCRt27aVw4cPe5U5c+aMdOnSRYKDg23T22fPns2x1wkAAOD4YFe2bFl56623ZOvWrbY1adJEnnjiCdm9e7enTMuWLeXIkSOebenSpV7HGDBggCxevFgWLlwo69evlwsXLkjr1q3l2rVrnjKdO3eWHTt2yLJly2zT2xruAAAAnMQ/N0/epk0br/tvvvmm1eLFx8fLvffea/sKFSokpUuXTvP5586dk1mzZsncuXOlWbNmtm/evHlSrlw5WblypbRo0UISEhIszOkx69ata2VmzpxptYN79uyRqlWrZvvrBAAA8Kk+dlrDprVuFy9etNDltmbNGgkNDZUqVapIjx495Pjx457Htm3bJleuXJHmzZt79oWHh0uNGjVkw4YNdn/jxo3W/OoOdUqbc3Wfu0xatIk3MTHRawMAAMjLcj3Y7dy5U+68806rmevdu7c1q1avXt0ea9WqlcyfP1+++eYbmTBhgmzZssWaazV0qaNHj0rBggWlePHiXscMCwuzx9xlNBimpPvcZdIyZswYT5883bQWEAAAIC/L1aZYpU2h2udNBzN88sknEh0dLXFxcRbunnrqKU85rYWrU6eOlC9fXr766ivp0KFDusd0uVw20MIt+e30yqQUExMjgwYN8tzXGjvCHQAAyMtyPdhpjVulSpXstgY3rZV75513ZPr06anKlilTxoLdjz/+aPe1793ly5dt1GvyWjttrm3QoIGnzLFjx1Id68SJE1azlx6tQdQNAAAgv8j1pti0atLcTa0pnTp1Sg4dOmQBT9WuXVsCAgJkxYoVnjI6cnbXrl2eYKf99XSQxebNmz1lNm3aZPvcZQAAAJwgV2vsXnnlFetHp02c58+ft8ETOlhCR7HqtCUjRoyQJ5980oLc/v37rbzOV9e+fXt7vvZ96969uwwePFhCQkKkRIkSMmTIEImMjPSMkq1WrZpNmaIDL9y1gD179rQpURgRCwAAnCRXg502kep8clrLpiFNJyvWUPfoo4/KpUuXbGDFBx98YP3vNNw1btxYFi1aJEWLFvUcIzY2Vvz9/aVTp072nKZNm8rs2bPFz8/PU0YHYPTv398zelYnMZ4y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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "land = load(\"land_use.parquet\")\n", "totals = land.groupby(\"scenario\")[\"area_mha\"].sum().reindex(scenarios)\n", "print(totals.round(1))\n", "\n", "ax = totals.plot.bar(ylabel=\"Total agricultural land (Mha)\", rot=0, color=\"#3b745f\")\n", "ax.set_title(\"Total agricultural land\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "09e56590", "metadata": {}, "source": [ "## Grassland area\n", "\n", "`land_use.parquet` also covers grazed grassland (crop code `grassland`). Separating it from cropland shows whether the reduction in cropland is offset by more grazing land, or whether both shrink together." ] }, { "cell_type": "code", "execution_count": 3, "id": "6771ff35", "metadata": { "execution": { "iopub.execute_input": "2026-06-15T21:31:28.022879Z", "iopub.status.busy": "2026-06-15T21:31:28.022784Z", "iopub.status.idle": "2026-06-15T21:31:28.092342Z", "shell.execute_reply": "2026-06-15T21:31:28.091966Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " cropland grassland\n", "scenario \n", "baseline 1422.9 2263.8\n", "ghg_mid 1418.0 1632.4\n", "ghg_high 1211.8 1160.6\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQ/xJREFUeJzt3Qm8jHX/x/+P7Pu+h5BEpFCWypK9kHRTRMqekKy5VWixVUhuKglZW+5I6baVLNmFbPlVCEUka9nN//H+/v8z/5lxznFOnW2u83o+HsOZa75zXddcc82Z9/luVyqfz+czAAAARLzrknoHAAAAED8IdgAAAB5BsAMAAPAIgh0AAIBHEOwAAAA8gmAHAADgEQQ7AAAAjyDYAQAAeATBDgAAwCMIdsDf9N1339kTTzxhxYsXtwwZMliWLFmsYsWKNmrUKPvjjz+S5LgOGTLEUqVKlSTb3rdvn9v21KlTk2T7kezrr792x07/J4UbbrjBHn/88Vi9v6+99lqi7ZcXJeVnFClDmqTeASASTZo0ybp162alS5e2fv36WdmyZe3ixYu2ceNGe+utt2zNmjU2d+7cpN5NAMlMx44drWHDhkm9G/Awgh0QRwptTz75pNWrV8/mzZtn6dOnDzymZX369LGFCxfGuI6zZ89axowZOfbJjC6dfe7cOd4bxLu//vrLMmXKZNdff727AQmFplggjoYNG+aaUt55552QUOeXLl06a9q0aUgzV+PGje2TTz6x22+/3TXbDh061D22fft2e+CBByxnzpxu+W233WbTpk2LspluxowZ1rt3bytQoIALHjVr1rTNmzdfc38/+OADq1+/vhUsWNA9r0yZMvbss8/an3/+GVJOTXFqTv7xxx/tvvvucz8XKVLEBdXz58+HlP3111+tZcuWljVrVsuePbs9/PDDdvjw4Wvuy9atW91rmTx58lWP/e9//3OPzZ8/390/evSode7c2e2DjnPevHntrrvusqVLl15zO59++qndeuut7nklSpSwN954I8omMN3v3r27q2XVcVF5//HXe1SlShXLlSuXZcuWzTWza78V/oJ99dVXVqtWLcudO7c7vkWLFrWHHnrIfZH7TZw40SpUqOCOqY7ZzTffbP/+979jfA2q/X3kkUfc+aP16v9WrVrZzz//HFJOTd96HcuWLXN/cOTJk8ftS/Pmzd37FEy1yv3793fnkELG3XffbevXr7e4uHLlir3yyivudeqcrVy5sn355ZeBx1euXOn2Z/bs2Vc99/3333ePbdiwIdr167j17ds30MVBx1/bCF/funXrrEmTJu61qlzJkiWtV69eIWV++OEHa926teXLl8+9t3qP//Of/0T5+dL6Bw0aZIUKFXLvd926dW337t0hZZcsWeI+rwpm2uaNN95oXbp0sd9//z2knP9c+/bbb+1f//qX+3xr/4IfCz+m6sKh80L7qf197LHH7ODBgzG8E0DUqLED4uDy5cvui7xSpUoucMSWfsHv2rXLnnvuOfeFlTlzZvelUb16dfdLfNy4ce4LSuFNAeu3335zX8DBFAQULt599107efKk+4JQoFC4U3iJjr7cFNT0paftfv/99zZy5Ej3ha7XEv7Fr1DaoUMHF+hWrFhhL730kgtvL7zwQqC2UV96Cg3Dhw+3m266yRYsWODC3bUo3CjcTpkyxW0jPKDoWGhfpW3btu64KURoGydOnHD3jx07FuM2VFuqUFOjRg0Xai9duuT6hemYRkW1rgojen0KPNoHf58yfWkrwMjatWutR48e9ssvvwSOhcrcf//9ds8999h7771nOXLkcI9rHy5cuODC05w5c1yzvZ6r/bjuuutceN65c2eMr0PrVlO/wp3CzaFDh1xAvOOOO9xzFeDCm/i0L7NmzbIDBw64LgJt2rQJeY87derkwpWCk2qX9YeFjtXp06cttsaPH2/FihWzsWPHBgJJo0aNbPny5VatWjV3LPQeK0ApiIY/V/uvW3T0x8v06dPt5ZdfduvRHyDaz+D3fdGiRS7UKaiNHj3avUc6XosXLw6U0THS50uPvf766+691fN69uzpgtjgwYOv+nzpDwd9vk6dOmUDBgxw29DnNnXq1K7MTz/95F6jjrU+E9qmtq+AvG3bNkubNm3IOnVs9f517dr1qj+kgimQ6w9F/ZGhPwK13ueff96FTp3z4e81ECMfgFg7fPiwqmt8jzzySKyfU6xYMV/q1Kl9u3fvDlmudaRPn963f//+kOWNGjXyZcqUyXfixAl3f9myZW6bFStW9F25ciVQbt++fb60adP6OnbsGFg2ePBgVzY6ev7Fixd9y5cvd+W2bt0aeKxdu3Zu2YcffhjynPvuu89XunTpwP2JEye6cp9++mlIuU6dOrnlU6ZMifF4jBs3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3cA/pGtap06d2uIDwQ4AgAic1+zw4cN24sSJpN4VxJMcOXJYgQIF/vFcuQQ7AAAijD/U5cuXzzJlysTE+REe0v/66y87cuSIu1+wYMF/tD6CHQAAEdb86g91uXPnTurdQTzImDGj+1/hTu/rP2mWZfAEAAARxN+nTjV18I5M/9/7+U/7TBLsAACIQFy33FtSxdN16Al2AAAAHkGwAwAAnvb111+7GrHEGEWs7cybN8+SCoMnAADwiBueXZCo29s34v5E3R6ujRo7AACQLDH5ctwR7AAAQKK5cuWKjRw50m688UZLnz69FS1a1F555RXbt2+fa8b88MMPrVatWpYhQwabMWOGK//iiy/a9ddf78rfdttttnDhwsD6/M+bM2eOVa9e3T3vlltucc2v0Tl27Ji1atXKrVOjUcuXL2+zZ88OKaN96Nmzp/Xv399y5crlJg8eMmRISJkffvjBatSo4bZZtmxZW7JkiSU1gh0AAEg0AwcOdMHu+eeft507d9qsWbMsf/78gccHDBjgAtWuXbusQYMG9sYbb9jrr79ur732mn333XduWdOmTV2oCtavXz/r06ePbd682QU8lVGAi8q5c+esUqVK9vnnn9v27dutc+fO1rZtW1u3bl1IuWnTplnmzJnd8lGjRrmA6Q9vCpzNmzd3c86tXbvW3nrrLbfvSY1gBwAAEsXp06ddUFNIateunZUsWdLuvvtu69ixY6BMr169XGAqXry4FSpUyAU6BaZHHnnESpcu7UKhau3Gjh0bsu7u3bvbQw89ZGXKlLGJEyda9uzZbfLkyVHuR+HCha1v375uPSVKlLAePXq4wPjRRx+FlLv11ltt8ODBVqpUKXvsscescuXK9uWXX7rHli5d6sLn9OnT3XpUczds2DBLagyeQPI0JLtFnCEnk3oPACBZUxA6f/681alTJ9oyCk9+p06dsl9//dXuuuuukDK6v3Xr1pBl1apVC/ycJk0atx5tL7qrd4wYMcI++OAD++WXX9w+6abaufBgF0yX+/Jf+kvrVjOymnOj2oekQrADAACJeumsmISHq6gm79X1VWMzoW+qaMqoaXfMmDGu1k/967RN1RReuHAhpFzatGmvWp+aYP37ENvtJSaaYgEAQKJQk6bCnb8581qyZcvmmmNXrVoVsnz16tWuyTWY+rn5Xbp0yTZt2mQ333yzRWXlypX2wAMPWJs2baxChQquOTa8z961aLDE/v37XY2i35o1ayypUWMHAAAShUaPqr+cRpqmS5fONakePXrUduzYEW3zrAZFqJ+b+uOpL9uUKVNsy5YtNnPmzJBy//nPf1xwVOBTbdzx48etffv2Ua5TI3L/+9//uoCYM2dOGz16tB0+fPiqsBiTunXruj5/6nunGkA1Gw8aNMiSGsEOAAAkGo2GVR+4F154wdV2qd9a165doy2vEbIKTRrxqv5tqimbP3++C3HB1Gdu5MiRblSsQuCnn35qefLkiXYf9u7d6wZMaLoTjYpt1qyZnTwZ+77S1113nc2dO9c6dOhgd955p91www02btw4a9iwoSWlVL6oGolxFZ1UGmGjN11Vw0hgDJ4AgGin6lAo0ahR1YCldJrHTsdCge62224zL76vcckg9LEDAADwCIIdAACAR9DHDgAARCz1baNX2f+PGjsAAACPINgBAAB4BMEOAADAIwh2AAAAHkGwAwAA8AiCHQAAgEcQ7AAAQIr19ddfW6pUqezEiRMJvi1tZ968eQm6DeaxAwDAKxL7coxDYn9tVSQOauwAAECydeHChaTehYhCsAMAAInm9OnT9uijj1rmzJmtYMGCNmbMGKtVq5b16tUrcCWJl19+2R5//HF34ftOnTq55QMGDLCbbrrJMmXKZCVKlLDnn3/eLl68GFjv1q1brXbt2pY1a1bLli2bVapUyTZu3Oge+/nnn61JkyaWM2dOt91bbrnFvvjiiyj379ixY9aqVSu7/vrr3bbKly9vs2fPDimj/e3Zs6f179/fcuXKZQUKFLAhQ4aElPnhhx+sRo0aliFDBitbtqwtWbLEEgNNsQAAINH07t3bvvnmG5s/f77lz5/fXnjhBfv222/ttttuC5R59dVXXXB77rnnAssU2KZOnWqFChWybdu2ucCnZQpXorB4++2328SJEy116tS2ZcsWS5s2rXvsqaeecjV/K1ascMFu586dliVLlij379y5cy4UKkgqIC5YsMDatm3rwmSVKlUC5aZNm+Zey7p162zNmjUuiN51111Wr149u3LlijVv3tzy5Mlja9eutVOnTgWCa0Ij2AEAgESrrVMgmjVrltWpU8ctmzJligtrwe69917r27dvyLLgkKdavT59+tgHH3wQCHb79++3fv362c033+zulypVKlBejz300EOu9k0U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fvjhwM+qhatcubILeQsWLLDmzZtH+zyfz+cGWvgF/xxdmXDDhw+3oUOH/qP9BwAASEzJvik2WMGCBV2w++GHH9x99b27cOGCG/UaTM21qrXzl/ntt9+uWtfRo0cDZaIycOBA14fPfztw4EC8vx4AAIAUG+yOHTvmApYCnlSqVMnSpk1rS5YsCZTRyNnt27db9erV3X0NklAwW79+faDMunXr3DJ/maioqTdbtmwhNwAAgOQsSZtiNTXJjz/+GLivfnSaiiRXrlzuNmTIEHvooYdckNu3b5/9+9//dvPVPfjgg668BkB06NDB+vTpY7lz53bP6du3r5UvXz4wSrZMmTJuyhQNvHj77bfdss6dO7spURgRCwAAvCRJg93GjRutdu3agfu9e/d2/7dr184mTpxo27Zts/fff99NJqxwp7IffPCBZc2aNfCcMWPGWJo0aaxly5Z29uxZq1Onjk2dOtVSp04dKDNz5kzr2bNnYPSsJjGOae48AACASJTKp1EEuCaNilUNoZpwaZZNBEOyW8QZcjKp9wDJWSSe08J5DURUBomoPnYAAACIHsEOAADAIwh2AAAAHkGwAwAA8AiCHQAAgEcQ7AAAADwiWV8rFv/cDc8uiMjDuC9DUu8BAACRh2AHIOJE4h8s/LECIFkGO13aa+XKle7/v/76y/LmzWu33367uyZrhgxUswAAACT7YDdr1iwbN26crV+/3vLly2eFCxe2jBkz2h9//GE//fSTC3WPPvqoDRgwwIoVK5awew0AAIC/F+wqVqxo1113nT3++OP24YcfWtGiRUMeP3/+vK1Zs8bmzJljlStXtgkTJliLFi1is2oAAAAkZrB76aWX7P7774/28fTp01utWrXc7eWXX7a9e/fG1/4BAAAgPoNdTKEuXJ48edwNAAAAETQq9uzZs3bx4sWQZdmyZfun+wQAAIDEmKBYI2G7d+/uBlBkyZLFcubMGXIDAABAhAS7fv362VdffeUGSKhv3bvvvmtDhw61QoUK2fvvv58wewkAAID4b4r97LPPXIDTQIn27dvbPffcYzfeeKOb4mTmzJluyhMAAABEQI2d5q0rXrx4oD+d7svdd99tK1asiP89BAAAQMIEuxIlSrirTkjZsmXdvHb+mrwcOXLEdXUAAABIqmD3xBNP2NatW93PAwcODPS1e+aZZ1z/OwAAAERIHzsFOL/atWvb999/bxs3brSSJUtahQoV4nv/AAAAkBjz2IkuLxZ+iTEAAABESLD78ssv3e3IkSN25cqVkMfee++9+No3AAAAJGSw05x1L774olWuXNkKFixoqVKliusqAAAAkByC3VtvvWVTp061tm3bJsT+AAAAILFGxV64cMGqV6/+d7cHAACA5BLsOnbsaLNmzUqYvQEAAEDCNsX27t078LMGS7zzzju2dOlSu/XWWy1t2rQhZUePHv339wYAAAAJG+w2b94ccv+2225z/2/fvj1kOQMpAAAAknmwW7ZsWcLvCQAAABK3jx0AAAAifLqT9u3bx6ocExQDAAAk82CnueuKFStmt99+u/l8voTdKwAAACRcsOvatavNmTPH9uzZ42rv2rRpY7ly5Yr7FgEAAJC0fewmTJhghw4dsgEDBthnn31mRYoUsZYtW9qiRYuowQMAAIi0wRPp06e3Vq1a2ZIlS2znzp12yy23WLdu3VwT7ZkzZxJuLwEAAJBwo2I1Z51u6m+nSYsBAAAQQcHu/PnzNnv2bKtXr56VLl3atm3bZuPHj7f9+/dblixZEm4vAQAAEH+DJ9TkqsETRYsWtSeeeML9nDt37tg+HQAAAMkl2L311lsu1BUvXtyWL1/ublH55JNP4nP/AAAAEN/B7rHHHuNasAAAAF6ZoBgAACSMG55dEHGHdt+I+5N6FxCGa8UCAACkpGCnq04cOHAgViv84IMPbObMmf90vwAAAJAQTbF58+a1cuXKWfXq1a1p06ZWuXJlK1SokGXIkMGOHz/uJitetWqVGylbuHBhe+edd+K6HwAAAEiMYPfSSy9Zjx49bPLkyW507Pbt20Mez5o1q9WtW9feffddq1+//j/dJwAAACTk4Il8+fLZwIED3e3EiRP2888/29mzZy1PnjxWsmRJRswCAABESrALliNHDncDAABA8sGoWAAAgJRcYwcAAGBDskfmQRhy0ryKGjsAAACPINgBAAB4BMEOAAAgJfex+/jjj+3DDz+0/fv324ULF0Ie+/bbb+Nr3wAAAJCQNXbjxo2zJ554ws1rt3nzZrvzzjstd+7ctmfPHmvUqFFcVwcAAICkCnYTJkxwlwwbP368pUuXzvr3729Lliyxnj172smT3h1lAgAA4Llgp+ZXXTNWMmbMaKdPn3Y/t23b1mbPnh3/ewgAAICECXYFChSwY8eOuZ+LFStma9eudT/v3bvXfD5fXFcHAACApAp29957r3322Wfu5w4dOtgzzzxj9erVs4cfftgefPDB+NovAAAAJPSoWPWvu3Llivu5a9eulitXLlu1apU1adLE3QcAAECEBLvrrrvO3fxatmzpbgAAAIjACYpXrlxpbdq0sWrVqtkvv/zilk2fPt3V3AEAACBCgt1///tfa9CggRsRq3nszp8/75ZrdOywYcMSYh8BAACQEMHu5ZdftrfeessmTZpkadOmDSzXFChcdQIAACCCgt3u3butRo0aVy3Pli2bnThxIr72CwAAAAkd7AoWLGg//vjjVcvVv65EiRJxXR0AAACSKth16dLFnn76aVu3bp2lSpXKfv31V5s5c6b17dvXunXrFl/7BQAAgISe7kTXhtU1YWvXrm3nzp1zzbLp06d3wa579+5xXR0AAACSIthdvnzZNbn26dPHBg0aZDt37nSTFZctW9ayZMkSX/sEAACAhA52qVOndlOd7Nq1y11xonLlyn9nmwAAAEgOfezKly9ve/bsSYh9AQAAQGIGu1deecX1p/v888/t0KFDdurUqZBbXKxYscJdY7ZQoUJuIMa8efNCHvf5fDZkyBD3uCZErlWrlu3YsSOkjCZI7tGjh+XJk8cyZ85sTZs2tYMHD4aUOX78uLVt29ayZ8/ubvqZqVkAAICl9GDXsGFD27p1qwtQ119/veXMmdPdcuTI4f6Piz///NMqVKhg48ePj/LxUaNG2ejRo93jGzZssAIFCli9evXcVS78evXqZXPnzrU5c+a4/n9nzpyxxo0bu/6Afq1bt7YtW7bYwoUL3U0/K9wBAACk6FGxy5Yti7eNN2rUyN2iotq6sWPHukEazZs3d8umTZtm+fPnt1mzZrlpVzQ6d/Lkye46tXXr1nVlZsyYYUWKFLGlS5cG+gMqzK1du9aqVKniyuiqGbrOrSZbLl26dLy9HgAAgIgKdjVr1oz2MdWExZe9e/fa4cOHrX79+oFlmlZF21+9erULdps2bbKLFy+GlFGzbbly5VwZBbs1a9a45ld/qJOqVau6ZSoTXbBTE6//OrgS12ZmAACAZN8UG061ZhMmTLCKFStapUqV4mevzFyoE9XQBdN9/2P6P126dFc1AYeXyZcv31Xr1zJ/magMHz480CdPN9UCAgAAeDLYffXVV9amTRt3ibE3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XoqYoBgAACAlINgBAAB4BMEOsVKrVi3r1atXkh2txx9/3Jo1a5Zs9gfed8MNN7hrSic3sTn3k+u+I+kk9Dnx9ddfuzleT5w4EW2ZIUOG2G233Ran9fK7Pu5S1OAJeMcnn3xiadOmTerdABId5z4iVd++fa1Hjx5JvRueR7BDRMqVK1dS7wKQJDj3EamyZMnibkhYNMUi1i5dumTdu3d3V+DQpdWee+65wAWJZ8yY4SZ/zpo1qxUoUMBat27tLtnmd/z4cXv00Uctb968ljFjRitVqpRNmTIl8Pgvv/zi5hrMmTOnW7euCLJv375YV8+rmWHYsGHWvn17tw9FixZ1k1AHi+s24G26PI/OycyZM1vBggVtzJgxV51Xf/31V4zn1OrVq13TUoYMGdz5P2/ePNcctWXLllg3XS1atMhuv/1297m499573efmf//7n5UpU8bN6N+qVSu3H37h+6jyTZo0cc8vXry4zZw5M96OESJHUp/Pfps2bXLPzZQpk1WvXt12794dbVOsvlN69uwZ+E4ZMGCAtWvXLqTbjf+Snv3793d/1Oj7RetB9Ah2iLVp06ZZmjRpbN26dTZu3Dj3i+Pdd991j124cMFeeukl27p1q/tlsHfvXtcvzu/555+3nTt3ui+sXbt22cSJE901fP2/bGrXru3+kluxYoWtWrXK/dywYUO33th6/fXX3S+UzZs3u/kKn3zySfv+++/jdRvw1tVovvnmG5s/f767vODKlSvt22+/jfU5pS9SBary5cu75+n81xdTXOlLavz48e5LVddHbtmypesLNWvWLFuwYIHbtzfffDPa5+tzpj9QvvrqK/v4449twoQJIX9UIWVILufzoEGD3HY2btzovi8UJKMzcuRI94eI/sjXvuvas/r+iOq7R4FV3z2jRo1yFxrQa0Q0NI8dcC01a9b0lSlTxnflypXAsgEDBrhlUVm/fr2q8nynT59295s0aeJ74oknoiw7efJkX+nSpUPWff78eV/GjBl9ixYtcvfbtWvne+CBB0L25+mnnw7cL1asmK9NmzaB+1pXvnz5fBMnToz1NpBynDp1ypc2bVrfRx99FFh24sQJX6ZMmQLn1bXOKf2fO3du39mzZwNlJk2a5M77zZs3X3Mfli1b5souXbo0sGz48OFu2U8//RRY1qVLF1+DBg2iPPd3797tyq9duzbw+K5d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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "is_grassland = land[\"crop\"] == \"grassland\"\n", "by_land_type = pd.DataFrame(\n", " {\n", " \"cropland\": land[~is_grassland].groupby(\"scenario\")[\"area_mha\"].sum(),\n", " \"grassland\": land[is_grassland].groupby(\"scenario\")[\"area_mha\"].sum(),\n", " }\n", ").reindex(scenarios)\n", "print(by_land_type.round(1))\n", "\n", "ax = by_land_type.plot.bar(ylabel=\"Area (Mha)\", rot=0)\n", "ax.set_title(\"Cropland vs grassland by scenario\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "emissions-md", "metadata": {}, "source": [ "## Net GHG emissions by gas\n", "\n", "Stacked bars decompose net emissions (in MtCO₂-equivalent) into CO₂, CH₄, and N₂O contributions. As the GHG price rises, the optimiser cuts the cheapest-to-abate emission sources first." ] }, { "cell_type": "code", "execution_count": 4, "id": "emissions", "metadata": { "execution": { "iopub.execute_input": "2026-06-15T21:31:28.093557Z", "iopub.status.busy": "2026-06-15T21:31:28.093468Z", "iopub.status.idle": "2026-06-15T21:31:28.166332Z", "shell.execute_reply": "2026-06-15T21:31:28.165881Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gas ch4 co2 n2o\n", "scenario \n", "baseline 4367.6 -759.3 1937.4\n", "ghg_mid 4071.5 -6263.1 1841.5\n", "ghg_high 3650.8 -10196.8 1581.6\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "emissions = load(\"net_emissions.parquet\")\n", "by_gas = (\n", " emissions.groupby([\"scenario\", \"gas\"])[\"mtco2eq\"]\n", " .sum()\n", " .unstack(\"gas\")\n", " .reindex(scenarios)\n", ")\n", "print(by_gas.round(1))\n", "\n", "ax = by_gas.plot.bar(stacked=True, ylabel=\"Emissions (MtCO2eq)\", rot=0)\n", "ax.set_title(\"Net GHG emissions by gas\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "452f2c00", "metadata": {}, "source": [ "## Animal feed composition\n", "\n", "`feed_by_category.parquet` breaks down dry-matter feed use (Mt) by category — grass & leaves, grains, oilseed cakes, residues, and so on. Even when total livestock output is fixed (which is roughly the case here, since consumption is fixed), the *mix* of feed that supports it changes as the optimiser substitutes cheap-to-emit feeds for cleaner alternatives." ] }, { "cell_type": "code", "execution_count": 5, "id": "85c88973", "metadata": { "execution": { "iopub.execute_input": "2026-06-15T21:31:28.167627Z", "iopub.status.busy": "2026-06-15T21:31:28.167542Z", "iopub.status.idle": "2026-06-15T21:31:28.247673Z", "shell.execute_reply": "2026-06-15T21:31:28.247095Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "category Grass & leaves Crop residues Grains Oilseed cakes By-products\n", "scenario \n", "baseline 2803.4 1852.2 1222.9 412.5 289.5\n", "ghg_mid 2340.7 1856.7 1271.5 411.8 289.5\n", "ghg_high 1997.7 1792.0 1259.0 339.1 268.3\n" ] }, { "data": { "image/png": "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vXq1XXXVVXH2BUzoCM7TtWzZMvv444/txx9/tAwZMtgvv/xiKR01dAAA4Kz8/PPPNnnyZHvnnXciYU4aNWpkLVq08Ntjxoyx+vXr23333WeVKlWypUuX2uDBg+2aa67x2rxrr73WlixZ4mUPHjxozZo1syuuuMLKly9vdevWjZzn+uuv933lypWzJ554It7pPnbu3Gm7d+/2+//6178S/Fr27dtn7dq18+u58sorrWPHjpHpYeK73ueee866dOkSOYaCbe7cuW379u1+/+WXX/byV199td18882+jGg48OocCrxly5a1Tz75xM4UNXQAAOCsLF++3EOTQszJLFiwwMtq1KboOd27d/fbixcvtvvvv99WrVplM2bMsF27dnkNmyicybBhw+yWW26xxx9/PMb+2DTNh66lQYMGNnv27Bgh81R69Ohh1apVs1GjRvngE4U7nfeRRx6xli1bxnm9rVu39rD2yiuveI3gxIkT7aabbrK8efPa+PHj7X//+5/XXKpGcuzYsda5c2cPbwqkb7zxhlWtWtWOHz/u6/ueKQIdAABI1A78v/76q91xxx1e0xYOR3LDDTdEwpwo3D3//PO2Y8cOS5cunQe4I0eOeA3cTz/9ZJ06dbLq1at7rZboWI8++qgdOHDA99euXfuE6zh8+LDX6CkUTpkyxerUqWOzZs3y46p2bcOGDSd9HXqOwprCmeg1KKSd7Ho1V5xq7T799FO78847bfTo0darV6/I8b799lurWLHiCU3NtWrVsm7duvlzdM1xNU0nFIEOAACcFYUZNYeqVk21YSVKlPDBEGpmjR5sED1BroKQQt+XX37pYUe1Uzlz5vT9l156qYelOXPmeA2bwpGOp/KqzVJAU63Z0KFDbfr06TGu5YcffrALLrjAa/969uzpza8KdaqtU43aqahWTiFM1xDtZNerwKc+hHq9CmXqs6fzhY+nmri2bduecC414aqP4dy5c61Vq1bePB0OgqeLPnQAAOCsqNbt1ltv9cAU7rcmqkmLz6FDh7xvWuHChf3+66+/HnlMk+mqxq9x48be/0yhSP3OFBrz58/v/fAGDRrkNWmxXXbZZd4U+8UXX/j9rl27esAcOHBgnKEqNp3zhRdesH/++cfvK6QqoJ3seuX222/3foF6rppmw7VwOt7w4cMjzcM6hmr6RLWQGoWrJtgHH3wwzteTUNTQAQCAs6baKTVHXnfddR5mVFOn8KXpQ+KSI0cOe+aZZ3ywQJEiRTz4hK1cudKfpyCnvmUKSBo8MGDAABs3bpzXiOkx9T+LLWfOnN70qZou1dBlypTJm2dffPFFb7pVrZ8m7I2Pav169+7tNW2q6VMNn56rGr/4rlcyZsxod911l4e3NWvWRPbr2tVEq6lRFFIVFBV8Vaup6VTUv06vRyt/jBgx4gzffbM0IRaCS5Bw1eqePXv8SwgAQFL8XVFN0bp166x48eIeVpBync5nTQ1dAP2745ykvoRk46E3aib1JQAAkOToQwcAABBwBDoAAICAI9ABAAAEHIEOAAAg4Ah0AAAAAUegAwAACDimLQEAIOj65TyHx96ToGKaMFcT/2oxek0srDVLtfaqVnS48MILLbl66qmnfLWGZs2anfBYv379bP/+/b5aRXJHoAMAAGdNqx9oeatFixb5KhFa4eE///mP74sd6BT+tLh9YvrnDI+p1R9SAppcAQDAWdFapxMnTrTRo0d7mPOAccEFvhSWFrnXgvZaSkvrqlapUsUmT55s3377rd/Wkl5aTuvrr7/2561fv97y5s3ry3ZpGTHVnmm5rri0bt3aj1m/fn0rX7687xs7dqw/7+qrr/Ylv1atWuX7tU5qxYoV/TrKli0bWWZLxxg2bJjf1qodd955p11xxRVWr149f13RtXW6pjA9R88NUy2eXofOqyXGtPasTJ061V9j+LyffPLJOfm2UUMHAADOynfffWclS5b0IBafH374wUPQa6+9ZkeOHPG1UUeNGuXBacGCBR6kwgFKa5+WK1fOQ5KC2G233Wa//vqrZc2a9YTj6rnz58+3bNmyeSicMGGC39faql999ZW1aNHCvv/+exs4cKD16NHDmjdv7s/btWtXnLV1Wobtxx9/tO3bt3s4a9q06Slfv5qZtSaraifV3KxQ2blzZw9vTzzxhK85W7VqVa+11JJv5wKBDgAAnHOXXXaZ3XDDDX577dq1viC9wpxof/78+T30XXTRRf6YFrWXypUrW8GCBT2UKRTFpsCVLVs2v60ApXKqoQvbtm2bB8ibbrrJnnvuOQ+NNWvWjFxLtLlz59rrr7/utxVOmzRpkqDXNmXKFK9xVA2gqP+ggp3UqlXLunXr5oG1bt26XlN3LtDkCgAAzopqsn7++WevWYtPOHRJKBSyNGnSnFAmrn2neiz2cdu2bWsrVqyIbH/99ZcHRIWqadOmeWB8/PHHrVOnTiccS8+Pj/rnKaiFHTp0KMbzVBMXPufKlSv9pwwePNiborNkyWKtWrXyQSLnAoEOAACcFTWf3nHHHT4wYvfu3ZGQ895773lTaWyXX365HT58ONI3buHChbZ161ZvZhXVqI0bN85vL1261DZv3uz90E6lUaNGfs5w/zU1carmLFwrqP587dq180CnptzYVJum8CUazKG+fmElSpTwY+mYf//9tw/4CGvcuLENHz7cnyNHjx615cuX++2ffvrJ+wGqCfbBBx+M87yJgSZXAABw1t555x1v0lRzp2qzFOg0bYnCTjhghanGTIFIAxoOHDhgmTJl8kEV6iOnJtI8efJ406iOpWlD1Ectrv5zsVWrVs2nTrn11lu9Nk3B6pZbbrFKlSp5U6qaVHVuNYe+8sorJzz/ySef9Bo+DYooWrSo1alTJ/KYAuvHH3/sjxUrVsybTg8ePOiPqXlYtZM1atTwmkSNuFW4rVChgvXp08f71+m8qqULD8ZIbGlCJ6tfRIQ6MebMmdNHwKjDZFL6d8e4R/ukRg+9UTOpLwEAzuvfFTX1rVu3zooXL+5BKKXRKFcFMA1KSO0OncZnTQ1dANX88qGkvoRkZE1SXwAAAEmOPnQAACDZUHMmtXOnj0AHAAAQcAQ6AACAgCPQAQAABByBDgAAIOAIdAAA4Kxpzrf+/fv7pMGaSFdzsGkN1vCKCacjeo43JAzTlgApCHMUxsQ8hUgtyr37f1dYOBdWtlqZoHJt2rTxSYC1QH2uXLl839SpU2316tUnrF8avdZpXM4kBKZ2BDoAAHBWtI6rlsnSihDhMBdeikvGjBljEyZMsPz589uPP/7oqzYo+H3wwQe+qkL69Ol9n1aGEK22sG/fPl+nVdOYKCx+8cUXtmnTJl+BQeumilam0BJhGTNm9PuffPKJr/CQGhHoAADAWdG6pVrPNXfu3PGWWbBggZcrWbKk31f57t27+22tb6qgtmrVqjifq/Vhtd6rlgXT8xTwtIzWyy+/7CEvc+bMvr7qBRek3p5kqfeVAwCARKNatbBff/3Vm1lLlSpl7dq183033HBDJMyJwl316tWtbNmy1rFjR6+5O3LkSJzHbtGihf/Mly+fXXrppb4clpZL0/HuvfdeGzlypO3cuTNFLoWWUAQ6AABwVjQAQs2uu3bt8vslSpTwfnBamD68T82nYQpuWux+8ODBXis3f/5809Ly8QW66KCmvndqptVP1ex169bNtm7dapUrV7avvvoq1X6SSR7o/vzzT0/XefLk8epTJfply5ZFHtcH3K9fPytUqJBXqdaoUcM7WEY7fPiwdenSxfLmzWtZs2a1xo0b28aNG2OU0ReqZcuWvhCyNt1WFS4AADg7qim79dZbvdk0+m/rgQMH4l10XqNiCxcu7PfVf+50qY/dli1b7MYbb7Qnn3zSawBV65daJWmgU8i6/vrrvTPk559/7tWtr7zyil144YWRMoMGDfIEP2zYMPvmm2+sYMGCVqdOHf8gw5TO1RlTHS7VRq9RNg0bNvRRNGHNmzf3fy3MmDHDN91WqAMAAGdPAx/KlSvnAxuuuOIK//s+e/Zse/TRR08oq+bSZ555xq699lqrVq1aZFDD6dizZ481adLEz3nllVd6QGzVqlWq/SjThFQFlkQee+wx+/rrr+OtItWlqWZOga13796R2rgCBQrYiy++aB06dPAPVG3qY8eOtWbNmnmZv/76y1P/9OnTrV69erZmzRr/cqlqNjyCRrerVKliP/30k7fxn8revXu9Zk/n0xcxKa25vHSSnj85Kf3TmqS+hGSFaUtiYtoSJGdn+ndFtVvqQ1a8ePFU3WcsNTh0Gp91ktbQffrpp1apUiW76667fCiz2uBHjRoVeVwvYvPmzVa3bt3IPqV4daLUaBdR86xSeXQZhUB1sgyX0dBo/U8TDnOitnbtC5eJTcFR/7NFbwAAAMlRkga63377zUaMGOFt75pfRqNcunbtau+9954/rjAnqpGLpvvhx/QzQ4YMMea9iauMAmNs2hcuE9vAgQMj/e20hdv5AQAAkpskDXTHjx+3q6++2gYMGOC1c2pC1fBmhbz4hkKHm2Jj74stdpm4yp/sOBqZo2rw8KbJEgEAAJKjJA10F110kfdti1a6dGnbsGGD39YACIldi6bhyeFaO5XRMOfwsOj4ymgkTGyaoDB27V900676NERvAAAAyVGSBjqNgFm7dm2Mff/73/8iy3aoE6DC2KxZsyKPK7zNmzfPqlat6vcrVqzoo2Sjy2jWaM1rEy6jwQ+qZVu6dGmkzJIlS3xfuAwAAEBQJenSX4888ogHKjW5Nm3a1APXm2++6ZuoOVQjXPW4+tlp023NV6dpSET92zTvTY8ePXwuOy070rNnTx/GXLt27UitX/369b05V7NJS/v27X1qk4SMcAUAAEjOkjTQXXPNNT5/nPqraT4a1cgNHTo0ssSH9OrVyw4ePGidOnXyZlWNVJ05c6Zlz549UmbIkCGWLl06D4UqW6tWLZ8PR7NIh2nxXg24CI+G1eTDmtsOAAAg6JJ0HrogYR665Il56GJiHrqYmIcOqWUeunM5P2lCf8+qS5RWbPjPf/7jXaFUqaLWszZt2vjj3377rVfAqIJl/fr1Pm3Z9u3b7Vzr16+fLzjw8ssvn/Wxzud1n+48dElaQ4cz07QPH1vYSr5EMdT88iHekRiYeBo4X1q3bu1zuH7//fe+DKfCT4MGDXyuWHVzUhBSmEMKXcsVAAAE2y+//GJTpkzxPvAKc1KsWDFfzvPZZ5/1+19++aWHutjUVUorPWnWi/Lly8dYKECrQKmrlaY406ICGvAYpho3LR2mx26++ebI9GKq8bzzzjv9eFotStcWHy08oLVgdV4tH/bJJ5/4fi1Xpm5hWl9e5/3555/jrJHUWvSaQ1dLjWp50po1a/pr1DWppjI8o4ZeU3iJsnCNZWKjqgcAAJyV7777zgcuanBiNM0ysXHjRg818dH66uojr/XcZefOnf5TS4Nqjfb58+f7VGJaJlR97FUDOH78eJ8VQ4FMTbtjx461zp07eyBTn3w1Yet4ahpVuFIf+9h0nttvv90mTZrkAzQ1N+7u3bv9MS03+tJLL/ltXYMGcU6bNi3yXF3vHXfc4UFNy5jqeZpL97PPPvMp2XRezcKh2Tw++OADD7fq/x/9+hIbgQ4AAJy1U034Hx/VjmlddQ1+VG2YattE4UzhLXrZTgVD1YypNlB98hSa5NixY5GBkHPnzrXXX3/db+fNm9eaNGkS53kVBlWLF56+7IILLvCZMkThS8fYt2+fB73o5T/Vr01B7YknnojMuKFlRLX6lZqYwzREQVOzaalR9R1Uf0K9PtUangsEOgAAcFa02pNqzHbs2BGjlk6h6ZJLLrF8+fLF+9xLL73Ua9PmzJljs2fP9tktVqxY4YGobdu2XuMWmx5ToNLjcT12NrS4gWbF0FRqurYffvjBm1LDVFuoQDd16lSv+dMsGzqnmlNVmxgXvR69NjXD6rqXL18eYyaOxEAfOgAAcFbU3NqoUSMf/PD333/7Pg2KUK1U3759T/pcNcmqdk/TialfnMKR+sPpeFrbPdw3TjVlqpUTlR0+fHik+fLo0aMekkRTl40ePdpv63FNjxYX1cytWbPGa9fCx1d59cHTGvFa2EDXEnuKM12r+gpqpSnV/mkgiI6lfnYKpdEhTrWJGqWaLVs2D3+q9VPw1ajbxEYNHQAAOGsKX6p9Uud/BaLwtCUPPPDASZ+3cuVK74em8KRQ1bJlS6/tEi0mcOutt3qTqkLbLbfc4oMOVEa1gTVq1PCA9c8///giA6op1NQpqrlTc6pWnqpTp06c582VK5eHPV2jmlZ1HA3gUFi86667rEyZMlakSJE4n6+ymjdX59I1qXlYNXYaTKH+drpWPVdNwxoMMnjwYH8/9DrUN0/T1SQ25qEL4Dx05d4tl6TnT05WtmLikmjnci6qIGKeQqSWeeiQMp3OZ02TKwAAQMAR6AAAAAKOQAcAABBwBDoAAICAY5QrAKQS/+74/6dUSO0eeuP/zysGpATU0AEAAAQcgQ4AACDgaHIFACDgzmVzekKbp7UAveZK06bVEzTJ76hRoyxr1qyW1IoVK2bTpk2zsmXLntHzNUFwoUKF7Nprr7Xkiho6AACQKD7++GNf8kprs2ri5DFjxpyTd1YrQ5xPU6ZM8bVdkzMCHQAASFSqoTtw4IAvr6WlwBYtWhR5bOTIkdasWbM4n6cltfr162fXX3+9XXbZZfbBBx/EeOyVV17x5b769OljW7Zssdtvv92PX7ZsWV9fNeyrr77y/apR69y5sy8rFl1bt2rVqsh9LSWm5bnkzz//tDvvvNOXHtOmpb2mT59un376qb3wwgt21VVX2VtvveXrtuoay5cv7+fRkmdJjSZXAACQKBSG1OSq5aoqVqzoC9Ir2P373/+2KlWqeBnd1hYfBbevv/7afvvtNw9kN9xwgxUuXDgSFMPhS6Hw8ssv9/VYt27d6udT4FLIuvvuu23cuHEe/j766KOTni/avffeazfffLPXNMq2bdssX758vr6rgp/CoTz88MO+huvjjz/u93fu3GlJjRo6AACQqE2uO3bs8PVHe/fu7SFpzpw5HrrmzZvnge3GG2+M9xgPPPCA/7z00ks9zKm2Laxt27aR27Nnz7aHHnrIb+fPn9+aNGli//3vf23t2rWWJUsWD3OiUKk1c09l//79tnDhQnvkkUci+xTm4lKtWjWvqevbt6/NnDnTLrzwQktqBDoAAJCo0qVLZ3fccYfNmDHDMmfObK1atfIANGzYsEgt13vvvec1atpGjx4d77EUAMOyZcsW72Ph+9HNq/Fd27FjxyL3Dx06ZKdLr021iKVKlfLX1LBhQ0tqBDoAAJDoVCunwCOqSRsxYoTX0LVo0cL33XfffV6bp61NmzaR573zzjv+c/369bZgwQKvpYtL7dq1I/3mtm3b5k2vNWvW9GbYgwcP2vz58yO1hnv27Ik8r0SJErZkyRK/rYEOqtELh0Wda8iQIZGyOq7kyJEjxjHUh061gnoNgwYNssWLF1tSow8dAABI1D50R48e9cEHb7zxhu+/5JJLvCZOAx3UHHoyGTNm9AEHClOvv/56pP9cbK+99pp17NjRBy8cP37cmz/D04poMEWnTp28dlBNr0WKFIk87/nnn/caw7ffftuuvvpqK1OmTOSxsWPHWpcuXXyfavJuu+0269+/v7Vs2dJat25tEydO9BpGNR+rj16GDBm8RjD8OpNSmtCp6ibhNPxabfBK6ErqSancu+X4VP6fla1W8l7w3YgX34+YWPoreS39daZ/V9REqEEH6qOm8BQE6p+mmjP1h9N1x0dNpvv27TuhaTW1OnQanzVNrgAA4JxR7ZXCnGrMThbmcHZocgUAAOeMmkW1JQSNhmeOGjoAAICAo4YOAFKJml/+3zm7IGsC/zZQm5XyhU5jmAOBDgCAAEmfPr0PHgivYhB7LjaknDCnz1ifrz7zUyHQAQAQIGnTpvVpQDZu3OhztSHlUpjTZ63P/FQIdAAABIym9ShZsqTP94aUSzVzCQlzQqADACCA9Ic+oX/skfIxyhUAACDgCHQAAAABR6ADAAAIOAIdAABAwBHoAAAAAo5ABwAAEHAEOgAAgIAj0AEAAAQcgQ4AACDgCHQAAAABR6ADAAAIOAIdAABAwBHoAAAAAi5JA12/fv0sTZo0MbaCBQtGHg+FQl6mUKFCljlzZqtRo4atXr06xjEOHz5sXbp0sbx581rWrFmtcePGtnHjxhhldu3aZS1btrScOXP6ptu7d+8+b68TAADgXEpnSaxMmTI2e/bsyP20adNGbg8aNMgGDx5sY8aMscsuu8yee+45q1Onjq1du9ayZ8/uZbp162ZTp061CRMmWJ48eaxHjx7WsGFDW7ZsWeRYzZs395A3Y8YMv9++fXsPdXoeAKQWTfsk+a/8ZGNlUl8AkMiS/P/udOnSxaiVi66dGzp0qPXt29eaNGni+959910rUKCAjR8/3jp06GB79uyxt99+28aOHWu1a9f2Mu+//74VLlzYQ2K9evVszZo1HuQWL15s1113nZcZNWqUValSxYNhqVKlzvMrBgAASGF96H7++WdvUi1evLjdfffd9ttvv/n+devW2ebNm61u3bqRshkzZrTq1avbwoUL/b5q4Y4ePRqjjI5VtmzZSJlFixZ5M2s4zEnlypV9X7hMXNSUu3fv3hgbAABAcpSkgU4h67333rMvvvjCa80U4KpWrWo7duzw26IauWi6H35MPzNkyGC5cuU6aZn8+fOfcG7tC5eJy8CBAyN97rSp1g8AACA5StJA16BBA7vjjjusXLly3mT62WefRZpWwzRQInZTbOx9scUuE1f5Ux2nT58+3qQb3v7444/Tem0AAACppsk1mkapKtypGTbcry52LdrWrVsjtXYqc+TIER/FerIyW7ZsOeFc27ZtO6H2L5qad3PkyBFjAwAASI6SVaBTvzUNYrjooou8T53C2KxZsyKPK7zNmzfPm2WlYsWKlj59+hhlNm3aZKtWrYqU0eAH1bAtXbo0UmbJkiW+L1wGAAAgyJJ0lGvPnj2tUaNGVqRIEa9V07QkGnzQqlUrbw7VlCQDBgywkiVL+qbbWbJk8WlIRH3b7r//fp+qRFOW5M6d248ZbsKV0qVLW/369a1du3Y2cuTIyLQlmtqEEa4AACAlSNJAp7nh7rnnHtu+fbvly5fPR59qepGiRYv647169bKDBw9ap06dvFlVgyhmzpwZmYNOhgwZ4lOfNG3a1MvWqlXL562Lns9u3Lhx1rVr18hoWE0+PGzYsCR4xQAAAIkvTUijA3BKqjlUjaCaapO6P125d8sl6fmTk5WtmB40Gt8Nvh8nw/cjef3uSE5/VxB8yaoPHQAAAE4fgQ4AACDgCHQAAAABR6ADAAAIOAIdAABAwBHoAAAAAo5ABwAAEHAEOgAAgIAj0AEAAAQcgQ4AACDgCHQAAAABR6ADAAAIuHRJfQE4fSvXbeBtAwAAEdTQAQAABByBDgAAIOAIdAAAAAFHoAMAAAg4Ah0AAEDAEegAAAACjkAHAAAQcAQ6AACAgCPQAQAABByBDgAAIOAIdAAAAAFHoAMAAAg4Ah0AAEDAEegAAAACjkAHAAAQcAQ6AACAgCPQAQAABByBDgAAIOAIdAAAAAFHoAMAAAg4Ah0AAEDAEegAAAACLt3pFN6zZ49NnjzZvvrqK1u/fr39/fffli9fPqtQoYLVq1fPqlateu6uFAAAAGdeQ7dp0yZr166dXXTRRfbMM8/YgQMH7KqrrrJatWrZJZdcYnPnzrU6derYFVdcYR9++GFCDgkAAIDzWUNXvnx5u++++2zp0qVWtmzZOMscPHjQpkyZYoMHD7Y//vjDevbsmVjXCAAAgLMNdKtXr/am1ZPJnDmz3XPPPb5t27YtIYcFkMhWrtvAewoAqVCCmlxPFebOtjwAAADOw6CI+fPnJ6hctWrVzuJyAAAAcM4CXY0aNSxNmjR+OxQKxVlGjx87duy0LwIAAADnIdDlypXLsmfPbq1bt7aWLVta3rx5z+K0AAAAOO8TC2vqkhdffNEWLVpk5cqVs/vvv98WLlxoOXLksJw5c0Y2AAAAJNNAlyFDBmvWrJl98cUXtnbtWrvyyiutc+fOVrhwYevbt6/9888/Z3UhAwcO9Cbbbt26Rfapabdfv35WqFAhH0WrZl+NuI12+PBh69Kli9cYZs2a1Ro3bmwbN26MUWbXrl1eqxgOnbq9e/fus7peAACAQC/9pRD31FNP2ezZs+2yyy6zF154wfbu3XvGF/HNN9/Ym2++6SEx2qBBg3xeu2HDhnmZggUL+gTG+/bti5RRANTqFRMmTLAFCxbY/v37rWHDhjH68jVv3txWrFhhM2bM8E23FeoAAABSZaBTjdj48eOtdu3aPsmwasY+++wzy5079xldgAJYixYtbNSoUd5PL7p2bujQoV7716RJEz/Xu+++68uN6fzhpcjefvtte+WVV/x6tATZ+++/bytXrvSwKWvWrPEQ99Zbb1mVKlV807mmTZvmNY0AAACpJtBplYgHH3zQa8lefvllb9rUihAfffSR1a9f/4wv4KGHHrJbbrnFA1m0devW2ebNm61u3bqRfRkzZrTq1at73z1ZtmyZHT16NEYZNc8q/IXLqM+fmlmvu+66SJnKlSv7vnAZAACAVDHKVSGoSJEi1rVrV6tYsaLvUxNnbAp6CaVm0u+++86bU2NTmJMCBQrE2K/7v//+e6SM+vZF1+yFy4Sfr5/58+c/4fjaFy4TX02ktrCzaVIGAABIFoFONmzYYM8++2y8j5/OPHSq3Xv44Ydt5syZlilTppMeM5qaYmPviy12mbjKn+o4GqTRv3//U7wKAACAADW5Hj9+/JTb6UwqrObSrVu3em1funTpfJs3b5699tprfjtcMxe7Fk3PCT+m5t8jR474KNaTldmyZcsJ59d6s7Fr/6L16dPH++iFNwVQAACAFDPKNTHUqlXLBy9oxGl4q1Spkg+Q0O1LL73Uw9isWbMiz1F4U+irWrWq31cYTJ8+fYwymi9v1apVkTIaBKFApj6AYUuWLPF94TJxUX89zbEXvQEAAAS+yVXmzJljkyZNsvXr13uTZfHixe3OO+887TVcteqEBi9E0zxyefLkiezXlCQDBgywkiVL+qbbWbJk8WlIRAMbNMFxjx49/HkaaduzZ0+f+Dg8yKJ06dI+aKNdu3Y2cuRI39e+fXuf2qRUqVKn+/IBAACCHeg6duzo88VpEILmn1M/NI0U/fe//22dOnWy119/PVEvrlevXnbw4EE/tppVNVJVfe4UBsOGDBniTbRNmzb1sqr5GzNmjKVNmzZSZty4cT6YIzwaVgM3NLcdAABASpAmpFSWAJq89+677/ZarlatWkUGFKjvnAKUpjSZOHHiaY1yDRKNclWNoJpqk7z5tR9LrP3/92JPUn4SyQ/fjVjvB9+PaOXeLXdev47J2cpWK5P6EpLX3xWknj50o0ePtu7du1vr1q1jjA694IILrG3btt48qkl+AQAAkEwDneaLu/322+N9/I477vCRqwAAAEimgW779u128cUXx/u4HtuxY0diXRcAAAASO9BpyhCtyhAfDUxQGQAAACTjUa5PPvmkTxsSl7///juxrgkAAADnItBpnrm1a9eesgwAAACSaaD78ssvz+2VAADOqZXrNvAOAylUki39BQAAgMRBoAMAAAg4Ah0AAEDAEegAAABSW6DbsGGDxbX8q/bpMQAAACTzQFe8eHHbtm3bCft37tzpjwEAACCZBzrVxKVJk+aE/fv377dMmTIl1nUBAAAgseeh6969u/9UmIu9YsSxY8dsyZIldtVVVyX0cAAAADjfgW758uWRGrqVK1fGWNdVt8uXL289e/ZMrOsCAABAYge6uXPn+s82bdrYq6++ajly5EjoUwEAAJAcAl3Y6NGjz82VAAAA4NwGurZt2yao3DvvvHNmVwIAAIBzG+jGjBljRYsWtQoVKsQ5Dx0AAACSeaDr2LGjTZgwwX777Tevrbv33nstd+7c5/bqAAAAkHjz0A0fPtw2bdpkvXv3tqlTp1rhwoWtadOm9sUXX1BjBwAAEJSJhTNmzGj33HOPzZo1y3788UcrU6aMderUyZtiNbEwAAAAArBSRJgmGNam/nTHjx9P3KsCAADAuQl0hw8ftg8++MDq1KljpUqV8gmGhw0bZhs2bLBs2bKdzqEAAABwvgdFqGlVgyKKFCnikwvrdp48eRLrOgAAAHCuA90bb7zhYa548eI2b9483+IyadKkM70WAAAAnMtAd99993mfOQAAAAR4YmEAAACkoFGuAAAACFCg0yoRf/zxR4IO+OGHH9q4cePO9roAAACQmE2u+fLls7Jly1rVqlWtcePGVqlSJStUqJBlypTJdu3a5ZMML1iwwEe+Xnzxxfbmm28m9PwAAAA4H4Hu2WeftS5dutjbb7/to11XrVoV4/Hs2bNb7dq17a233rK6deue7TUBAADgXAyKyJ8/v/Xp08e33bt32++//24HDx60vHnzWokSJRgBCwAAkNwDXbQLL7zQNwAAACQ9RrkCAAAEHIEOAAAg4Ah0AAAAAUegAwAACDgCHQAAQGoY5VqhQoUET0vy3Xffne01AQAAILED3W233Ra5fejQIRs+fLhdccUVVqVKFd+3ePFiW716tXXq1Ol0zg0AAIDzFeiefvrpyO0HHnjAunbt6qtHxC6T0PVeAQAAkIR96CZOnGj33XffCfvvvfde+89//pNY1wUAAIBzFegyZ85sCxYsOGG/9mXKlOl0DwcAAIDzHei6detmDz74oHXu3Nnef/9933T7oYceskceeeS0jjVixAi78sorLUeOHL6pT97nn38eeTwUClm/fv2sUKFCHiRr1KjhffWiHT582Lp06eJrymbNmtUaN25sGzdujFFm165d1rJlS8uZM6dvuq31aAEAAFJloHvsscfsvffes+XLl3tfOm26PWbMGH/sdFxyySX2wgsv2LfffutbzZo17dZbb42EtkGDBtngwYNt2LBh9s0331jBggWtTp06tm/fvhgBc/LkyTZhwgSvJdy/f781bNjQjh07FinTvHlzW7Fihc2YMcM33VaoAwAASAnShFQNlozkzp3bXnrpJWvbtq3XzCmw9e7dO1IbV6BAAXvxxRetQ4cOtmfPHsuXL5+N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pEgRn+A52umeAwmj5YX02WbNmtUuuugiGzJkyAmfz99//33Sz2bhwoXe/JUpUyb/Hk2ZMsWbzFasWJHg5rUvvvjCKlSo4N+vmjVr+vfv888/t9KlS/uKI/fcc49fR1jsa1T5Ro0a+fOLFy9u48aN4ysQ0O9E2LJly/y5WbJksapVq9ratWvjbXLV77euXbtGfr/17t3bWrVqFaOrR3ipxl69evk/KvW7TscBUjoCXQrz7rvvWrp06WzJkiX22muv+S/pt956yx87cuSIPfvss/b999/7L95169Z5v7ewJ5980n788Uf/A7tmzRobMWKEr4Mb/sV+0003+b+W58+fbwsWLPDb9evX9+Mm1CuvvOK/vJcvX+5zAj744IP2008/Jeo5EPdKKV9//bV9+umnvuTdV199Zd99912CPxv98VeQKleunD9P3yP9MT1d+sM6bNgwDwJaB7hp06beT2v8+PH22Wef+bW9/vrr8T5f31cF/Dlz5tjHH39sw4cPj/GPEgTvO9G3b18/z7fffuu/uxQg4/Piiy96iNc/NHXtWjdYv8vi+j2ooKrfg4MGDfIJ5fUagRRN89AhZahevXqodOnSoePHj0f29e7d2/fFZenSpaq6C+3bt8/vN2rUKNSmTZs4y7799tuhUqVKxTj24cOHQ5kzZw598cUXfr9Vq1ahW2+9Ncb1PPzww5H7RYsWDd17772R+zpW/vz5QyNGjEjwOXD69u7dG0qfPn1o4sSJkX27d+8OZcmSJfL5nOqz0c88efKEDh48GCkzatQo//4sX778lNcwd+5cLzt79uzIvoEDB/q+X3/9NbKvQ4cOoXr16sX5HVq7dq2XX7x4ceTxNWvW+L4hQ4bw1UgB34nPPvvM94WP+fTTT4fKly8febxAgQKhl156KXL/n3/+CRUpUuSE3zs33HBDjHNdc801/rsQSMmooUthKleu7E0eYVq39ueff7Zjx475v7LVhKnlztSEouYV0Zq2on99T5gwwZs41FyhWpToZpFffvnFnxfu16LmjEOHDtmvv/6a4Ou78sorI7d1nWoOCdewJNY5ENNvv/1mR48etWuvvTbGguClSpVK8GejZjA9rqa1sOjjJVT0OQoUKODNbJdeemmMffHVuKnWWDU4qjEKu/zyy735DSnjO6GmX4nrO7Bnzx7bsmVLjHOkTZvWKlaseNJjho9L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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "feed = load(\"feed_by_category.parquet\")\n", "by_category = (\n", " feed.groupby([\"scenario\", \"category\"])[\"mt_dm\"]\n", " .sum()\n", " .unstack(\"category\")\n", " .reindex(scenarios)\n", ")\n", "# Order columns by total feed use for a cleaner stacked plot.\n", "by_category = by_category.reindex(\n", " columns=by_category.sum().sort_values(ascending=False).index\n", ")\n", "print(by_category.round(1))\n", "\n", "ax = by_category.plot.bar(stacked=True, ylabel=\"Feed (Mt DM)\", rot=0)\n", "ax.set_title(\"Feed use by category\")\n", "ax.legend(bbox_to_anchor=(1.02, 1), loc=\"upper left\", fontsize=8)\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "objective-md", "metadata": {}, "source": [ "## Objective breakdown\n", "\n", "Each column is a cost category in billion USD. The `ghg_cost` column only appears in scenarios with a non-zero GHG price, and at these GHG prices it is *negative*: the model achieves net-negative emissions (cropland shrinks and regrowth sequesters carbon), so `ghg_price × net_emissions` is a revenue term that reduces the objective. Production-side categories (`crop_production`, `animal_production`, `trade`, `fertilizer`) shift as the solver reorganises supply under the carbon price. The sum across columns matches the LP's reported objective value (up to the 1% tolerance enforced by the extractor)." ] }, { "cell_type": "code", "execution_count": 6, "id": "objective", "metadata": { "execution": { "iopub.execute_input": "2026-06-15T21:31:28.248997Z", "iopub.status.busy": "2026-06-15T21:31:28.248911Z", "iopub.status.idle": "2026-06-15T21:31:28.259248Z", "shell.execute_reply": "2026-06-15T21:31:28.259052Z" } }, "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", " \n", "
scenariobaselineghg_midghg_high
category
animal_production888.08911.50960.46
consumption0.040.040.04
crop_production1599.471480.441365.70
feed_conversion103.90112.41114.28
fertilizer48.8350.3442.12
land_use0.6313.9316.37
processing453.86456.63453.01
resource_supply112.29110.61107.05
trade75.5581.69100.37
production_stability147.90330.54887.48
ghg_costNaN-17.51-992.89
\n", "
" ], "text/plain": [ "scenario baseline ghg_mid ghg_high\n", "category \n", "animal_production 888.08 911.50 960.46\n", "consumption 0.04 0.04 0.04\n", "crop_production 1599.47 1480.44 1365.70\n", "feed_conversion 103.90 112.41 114.28\n", "fertilizer 48.83 50.34 42.12\n", "land_use 0.63 13.93 16.37\n", "processing 453.86 456.63 453.01\n", "resource_supply 112.29 110.61 107.05\n", "trade 75.55 81.69 100.37\n", "production_stability 147.90 330.54 887.48\n", "ghg_cost NaN -17.51 -992.89" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "breakdown = load(\"objective_breakdown.parquet\").set_index(\"scenario\").reindex(scenarios)\n", "breakdown.round(2).T" ] } ], "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 }