{ "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-05-15T18:04:20.739338Z", "iopub.status.busy": "2026-05-15T18:04:20.739038Z", "iopub.status.idle": "2026-05-15T18:04:21.198102Z", "shell.execute_reply": "2026-05-15T18:04:21.197476Z" } }, "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-05-15T18:04:21.200032Z", "iopub.status.busy": "2026-05-15T18:04:21.199837Z", "iopub.status.idle": "2026-05-15T18:04:21.399876Z", "shell.execute_reply": "2026-05-15T18:04:21.399062Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario\n", "baseline 3676.9\n", "ghg_mid 2410.6\n", "ghg_high 1795.8\n", "Name: area_mha, dtype: float64\n" ] }, { "data": { "image/png": "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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-05-15T18:04:21.401990Z", "iopub.status.busy": "2026-05-15T18:04:21.401778Z", "iopub.status.idle": "2026-05-15T18:04:21.477285Z", "shell.execute_reply": "2026-05-15T18:04:21.476709Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " cropland grassland\n", "scenario \n", "baseline 1359.4 2317.5\n", "ghg_mid 975.0 1435.6\n", "ghg_high 812.5 983.3\n" ] }, { "data": { "image/png": "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lxN7N/A36ZrWKVOmtLhAsAMAIAznNTty5IidPHkysXcFcSRbtmyWL1++vz1XLsEOAIAw4w91efLksQwZMjBxfpiH9D///NOOHj3q7ufPn/9vrY9gBwBAmDW/+kNdzpw5E3t3EAfSp0/v/le40/v6d5plGTwBAEAY8fepU00dvCPD/3s//26fSYIdAABhiOuWe0uKOLoOPcEOAADAIwh2AADA07766itXI5YQo4i1nXnz5lliYfAEAAAeccsLCxN0e/uHP5yg28ONUWMHAACSJCZfjj2CHQAASDDXrl2zESNG2K233mpp06a1woUL22uvvWb79+93zZgff/yx1ahRw9KlS2fTp0935V955RW7+eabXfm77rrLFi1aFFif/3mzZ8+2atWquefdcccdrvk1KsePH7cWLVq4dWo0atmyZW3WrFkhZbQP3bt3t759+1qOHDnc5MGDBg0KKfPDDz/YAw884LZZunRpW7p0qSU2gh0AAEgw/fv3d8HupZdesl27dtnMmTMtb968gcf79evnAtXu3butXr169tZbb9mbb75pb7zxhn333XduWePGjV2oCtanTx/r1auXbd261QU8lVGAi8yFCxesYsWK9vnnn9uOHTusY8eO1rp1a9uwYUNIualTp1rGjBnd8pEjR7qA6Q9vCpxNmzZ1c86tX7/e3nnnHbfviY1gBwAAEsSZM2dcUFNIatOmjRUvXtzuu+8+a9++faBMjx49XGAqWrSoFShQwAU6BaYnnnjCSpYs6UKhau3GjBkTsu6uXbtas2bNrFSpUjZhwgTLmjWrTZo0KdL9KFiwoPXu3dutp1ixYtatWzcXGD/55JOQcnfeeacNHDjQSpQoYU899ZRVqlTJvvzyS/fYsmXLXPicNm2aW49q7oYOHWqJjcETSJoGZbWwM+hUYu8BACRpCkIXL160WrVqRVlG4cnv9OnT9uuvv9q9994bUkb3v/3225BlVatWDfycKlUqtx5tL6qrdwwfPtw++ugj++WXX9w+6abauYjBLpgu9+W/9JfWrWZkNedGtg+JhWAHAAAS9NJZ0YkYriKbvFfXV43JhL4poiijpt3Ro0e7Wj/1r9M2VVN46dKlkHKpU6e+bn1qgvXvQ0y3l5BoigUAAAlCTZoKd/7mzBvJkiWLa45ds2ZNyPK1a9e6Jtdg6ufmd+XKFduyZYvdfvvtFpnV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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-05-15T18:04:21.478742Z", "iopub.status.busy": "2026-05-15T18:04:21.478645Z", "iopub.status.idle": "2026-05-15T18:04:21.559233Z", "shell.execute_reply": "2026-05-15T18:04:21.558649Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gas ch4 co2 n2o\n", "scenario \n", "baseline 4231.8 -752.6 1777.3\n", "ghg_mid 3781.5 -10841.5 1433.5\n", "ghg_high 3009.1 -12407.4 1174.9\n" ] }, { "data": { "image/png": "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AAAAkRXsrl69KidOnJAPPvjAuU3H2TkcDvP16dOn4d0lAAAAvBHsWrVqZa4+sWjRIiZPAAAAxORgd/r0aVmxYoXkypUrco4IAAAAUTN5onLlyvLHH3+82LMBAAAg+lTs6tatK926dZNDhw5J4cKFg0yeqFevXkQeHwAAACIr2OmMWDVo0KAgjzF5AgAAIAYFO89rwwIAACCGjrEDAABADA92b775pgQGBjrvDx48WG7duuW8f/36dSlQoEDEHyEAAAAiNtitXbtWHj586Lw/bNgwuXHjhvP+kydP5NixY2HdHQAAALwV7PTKEqHdBwAAgHcxxg4AACC2BTtdykRvntsAAAAQw5Y70a7Xli1bSvz48c39Bw8emDXtEidObO67jr8DAABANA52/v7+bvebN28epM37778fMUcFAACAyAt2s2fPDv/eAQAAEGWYPAEAAGATBDsAAACbsE2w27Jli3Pmrudtz549znbBPT516lS3fR06dEgqVKggCRMmlEyZMsmgQYOCrNu3detWKV68uCRIkEBy5MgRZB8AAADRdoxddFe2bFm5ePGi27Z+/frJhg0bpESJEkHGC9asWdN538/Pz/n97du3pVq1alKpUiUTCP/66y8zG1hn//bo0cO0OXnypLnEWps2bWT+/Pmyfft26dChg6RJk0YaNGgQ6a8VAADA1sEuXrx4kj59euf9x48fy4oVK6RTp05B1ttLnjy5W1tXCxYsMEu5zJkzxyztUqhQIRPuRo8eLd27d3dW+LJkySJjx441P5M/f37Zu3evjBw5kmAHAAC8xjZdsZ401F27ds1U2zxp2EudOrWULFnShLRnz545H9u5c6fphrXW61M1atSQCxcuyKlTp5xtqlev7rZPbaPhTgNlcHSdP60Gut4AAAAikm2D3cyZM03Yypw5s9v2L7/8UhYvXmy6aBs3bmy6V4cMGeJ8/NKlS5IuXTq3n7Hu62OhtXny5IkJk8EZOnSo6fK1bp7HBQAAYPtgN2DAgBAnRVg3rZS5OnfunKxdu1Zat24dZH+ff/65lClTRooVK2ZCnU6MGDFihFsbz65ba+KE6/awtHHVu3dvCQwMdN7Onj0b7nMBAAAQo8fYabepVtZCky1btiCTI1KlSiX16tV77v5Lly5tukUvX75sqm469s6qzFmuXLlivlpVupDaxI0b1zxvcLRr17V7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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-05-15T18:04:21.561028Z", "iopub.status.busy": "2026-05-15T18:04:21.560908Z", "iopub.status.idle": "2026-05-15T18:04:21.657671Z", "shell.execute_reply": "2026-05-15T18:04:21.657299Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "category Grass & leaves Grains Crop residues Oilseed cakes By-products\n", "scenario \n", "baseline 3860.9 1206.4 629.7 438.2 284.3\n", "ghg_mid 3524.6 1267.0 611.1 382.9 261.9\n", "ghg_high 2831.9 1323.8 524.0 373.6 134.2\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnQAAAHWCAYAAAD+VRS3AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUWFJREFUeJzt3Qe8z/X///+H7HmyRxmHJCGhMhKylU2UkZWRlZCRBiWrQiUze5Y+NgnZmYlC+MgIfey95/t3eTz+/9f7+36f5XAO7/M653a9XN4f5/16v96v1+s9PufcezxXPI/H4xEAAAC41iOBvgAAAABEDYEOAADA5Qh0AAAALkegAwAAcDkCHQAAgMsR6AAAAFyOQAcAAOByBDoAAACXI9ABAAC4HIEOcdKECRMkXrx4Yd66du0akGs5ePCguEWOHDmkatWq4ibTpk2ToUOHBvoyAOCBSPBgDgu4w/jx4+Wpp57y25YlS5aAXQ8ebKDbsWOHdOrUibcZQKxDoEOclj9/fnnuuecCfRmA182bN61imyABv54BRB5NrkAEvv/+eylevLgkT55cUqRIIZUqVZKtW7eG2u+3336T6tWrS5o0aSRJkiRSqFAh+eGHH0Ltt2HDBnnxxRdtH60E9uzZ0/6AR0aZMmXsFlLTpk2tCdTXiBEjpGDBgnbNKVOmtCrk+++/77fPsWPHpHXr1vL4449LokSJJDg4WPr06SO3bt2K9Hdi9uzZ8swzz9jryZkzp3z99dfexy5duiSPPvqonSMkbV6OHz++fP755xEe//r16/LJJ59I3rx57Rxp06aVl19+WdatW+fd59tvv5VSpUpJhgwZ7HMqUKCADBo0yO991fdt4cKF8s8///g1rztu3Lghffv2tfcpceLEkj59emnWrJmcPHky1PV06dJFMmXKJMmSJbPzbtmyxd5//Rx8aTWwRo0akjp1arv2Z599ViZOnOi3z8qVK+06Jk+ebMd97LHH7Px///23Bbr+/fuHek9Wr15tz5k5c2aE7x2AOMYDxEHjx4/36Nd/w4YNnps3b/rdHJ999pknXrx4nubNm3sWLFjgmTVrlqd48eKe5MmTe3bu3Ondb/ny5Z5EiRJ5XnrpJc/333/vWbx4sadp06Z2fD2PQ5+TLFkyz9NPP+2ZPn26Z+7cuZ5KlSp5smXLZvseOHAgwmsuXbq03UJq0qSJJ3v27N77emw9XocOHTxLlizxLFu2zDNy5EhPx44dvfscPXrUkzVrVnveqFGjbJ9PP/3UkzhxYrv2u9HnPfbYY3bt48aN8yxatMjTsGFDO+/nn3/u3e/dd9+19+vcuXN+z3/vvfc8SZIk8Zw6dSrcc+hn8fLLL3sSJEjg6dq1q51j3rx5nvfff99eo+85RowYYe+7fhZDhgzxpEuXztOsWTO/9/7FF1/0ZMqUybN+/XrvTd2+fdtTuXJlu84+ffp4li5d6vnuu+/s9elndeXKFe9x3njjDc8jjzzi6dGjh723Q4cOtfcxKCjIPgfH7t27PSlTpvTkypXLM2nSJM/ChQvtufr+DBw40LvfihUrbJueq27duvb69Lt2+vRpT61atez9vXXrlt/78tprr3myZMni910FAAId4nSgC+umfygPHTpkQUJDka+LFy9aKKhXr55321NPPeUpVKhQqD+wVatW9WTOnNkCg6pfv74nadKknmPHjnn30T/W+vzoDHTt27f3PProoxEeq3Xr1p4UKVJ4/vnnH7/tX3zxhV2Lb2ANi55Pw+62bdv8tleoUMGTKlUqz+XLl+3+vn37LABpyHJcvXrVkzZtWr/AFRYNQnotY8aM8USWvtf6Oehz48eP7zlz5oz3sVdffdXvfQoZgP/zn//4bd+8ebNtHz58uN3X90Tvd+/ePczn+wa6119/3cKxfo98ValSxUK9E3CdQFeqVKlQ1+U8Nnv2bO+2f//9176XGjwBwBdNrojTJk2aJJs3b/a7aVPXzz//bE2Pb775pv3r3LTprHTp0tZUprRpbPfu3dKwYUO777vvK6+8IkePHpU9e/bYYytWrJBy5cpJxowZvefXZsf69etH62t64YUX5Ny5c/LGG2/I3Llz5dSpU6H2WbBggTVdarOv7zVXqVLFHl+1atVdz5MvXz5r1vXVoEEDuXDhgvz+++92X5thdTTs8OHD9T8evYMTTp8+Le3bt4/w+D/99JO9382bN49wP20C1+ZubY7V9zNhwoT2ud2+fVv++9//3vV16HuhTcPVqlXzey+0iVSbVp3P2nlP6tWr5/f8unXrhurvtnz5cvuss2bN6rddm2WvXLki69ev99tep06dUNelzcT6/mqTsmPkyJHW3NqqVau7vi4AcQu9bhGnad+ssAZFHD9+3P59/vnnw3zeI4884refTnUS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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-05-15T18:04:21.659336Z", "iopub.status.busy": "2026-05-15T18:04:21.659230Z", "iopub.status.idle": "2026-05-15T18:04:21.672288Z", "shell.execute_reply": "2026-05-15T18:04:21.671616Z" } }, "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", "
scenariobaselineghg_midghg_high
category
animal_production23.8225.8829.22
consumption0.040.040.04
crop_production168.55135.73145.61
feed_conversion0.030.030.03
fertilizer38.7521.6916.43
land_use0.010.301.37
processing0.030.030.03
trade48.9165.09105.80
production_stability39.58273.84474.14
ghg_costNaN-281.32-1644.67
\n", "
" ], "text/plain": [ "scenario baseline ghg_mid ghg_high\n", "category \n", "animal_production 23.82 25.88 29.22\n", "consumption 0.04 0.04 0.04\n", "crop_production 168.55 135.73 145.61\n", "feed_conversion 0.03 0.03 0.03\n", "fertilizer 38.75 21.69 16.43\n", "land_use 0.01 0.30 1.37\n", "processing 0.03 0.03 0.03\n", "trade 48.91 65.09 105.80\n", "production_stability 39.58 273.84 474.14\n", "ghg_cost NaN -281.32 -1644.67" ] }, "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 }