{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "38f854fa-0614-4a70-89fa-17acfc2ef9e9",
   "metadata": {},
   "source": [
    "# Data assimilation in MITgcm\n",
    "\n",
    "In this tutorial, we follow a modified MITgcm tutorial, `verification/lab_sea`, in which a regional spherical-polar coordinate ocean model is constrained to synthetic sea-surface temperature (SST) data via the adjoint method through automatic differentiation.\n",
    "\n",
    "## Goals\n",
    "1. Understanding MITgcm data assimilation workflows\n",
    "2. Gain physical intuition for what to expect when constraining a general circulation model to observational data, particularly with regards to model sensitivity to controls\n",
    "3. Probe model output using python tools `xmitgcm` and `xarray`\n",
    "\n",
    "```{tip}\n",
    "A Jupyter Notebook, [labsea_assim_tutorial](../../../assets/lab_sea/labsea_assim_tutorial) (after downloading, rename it to `labsea_assim_tutorial.ipynb`), is provided for users' convenience. It reproduces the steps and figures described in this visualization tutorial. Users can also add more sophisticated analysis on top of this notebook. `code` and `input` used to configure the MITgcm simulation can be found [here](https://github.com/ECCO-Hackweek/ecco-2024/blob/main/assets/lab_sea/).\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e72eeb4e-ed2c-48a3-baf2-5968c8885a2a",
   "metadata": {},
   "source": [
    "### The model\n",
    "We use a regional domain encompassing the Labrador Sea within the bounding box given by $79^\\circ $E, $41^\\circ $E,  $47^\\circ $N, and $77^\\circ $N. The domain has horizontal size $(n_x, n_y) = (16, 20)$ with $2^\\circ$ grid spacing in either horizontal direction. Unlike the verification exercises default configuration, we implement $n_z=21$ vertical levels. This tutorial takes advantage of the low number of spatial degrees of freedom combined with a short simulation time of 6 days to quickly demonstrate the key concepts to monitor when performing adjoint-based data assimilation. Higher resolution global ocean model adjoints are much more memory-intensive, but many of the same takeaways from this example will translate."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "796b910b-d2c3-4cce-9f5b-bcb5a7109f50",
   "metadata": {},
   "source": [
    "![alt text](labsea_bathy.png \"Labrador Sea Bathymetry\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "870e005d-51cd-4780-a845-14a37ff5bb75",
   "metadata": {},
   "source": [
    "### Run the forward model\n",
    "The regional model is initalized with bathymetry (pictured above), initial temperature $\\theta_0$, initial salinity $S_0$, external forcings, and a number of model parameters specified in files like [data](../../../assets/lab_sea/input/data) within the `input` directory. The model has been compiled with MITgcm `checkpoint68i` code with specific modifications made in `code`. The code directory is set up to compile the adjoint executable, but if one is just interested in simply analyzing model diagnostics or computing a misfit (but not *reducing* it), they can exclude `adjoint` from `code/packages.conf`. \n",
    "\n",
    "Let's examine some forward model output produces in the 0th run directory `run/iter0000`. We use `xmitgcm.open_mdsdataset` to load diagnostic and model grid data."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "857f6cb4-1218-403f-894a-6cc4fa3ed387",
   "metadata": {},
   "source": [
    "### Load diagnostic data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "07b6d04a-81c6-4a2a-aa0d-059539c6f814",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import xarray as xr\n",
    "import xmitgcm\n",
    "from xmitgcm.utils import *\n",
    "import matplotlib.pyplot as plt\n",
    "import subprocess\n",
    "import glob\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "3713e233-54e4-4c6c-a824-3e2ca38e4be6",
   "metadata": {},
   "outputs": [],
   "source": [
    "root_dir = '/efs_ecco/mgoldber/MITgcm_c68i/verification/lab_sea/ecco_hackathon/'\n",
    "run_dir = root_dir + 'run/'\n",
    "run_dir0 = run_dir + 'iter0000/'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "0aa89eed-20bb-4de2-bf5d-4c6beb5de5f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "prefix = 'diags3d' # other available daily diagnostics found in this run:\n",
    "                   # diags2D, diagsEXF, diagsSI, diagsKPP\n",
    "\n",
    "ds = xmitgcm.open_mdsdataset(run_dir0,\n",
    "                        grid_dir = run_dir0,\n",
    "                        prefix = [prefix],\n",
    "                        default_dtype=np.float32,\n",
    "                        delta_t=900,\n",
    "                        ref_date='1979-01-01 00:00:00'\n",
    "                            )\n",
    "ds['XC'] = xr.where(ds.XC > 180, ds.XC - 360, ds.XC)\n",
    "ds['XG'] = xr.where(ds.XG > 180, ds.XG - 360, ds.XG)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f251fb8d-69cb-480b-a676-d48d171c0291",
   "metadata": {},
   "source": [
    "### Look at model-data misfit\n",
    "The observational data used in this experiment is comprised of a single SST field occuring in the sixth record of the file `labsea_SST_fields_linear_rec006`. Our specifications in `data.ecco` instruct the model to compute a misfit between the model SST and this dataset on the sixth day of the run. Let's add the dataset to our dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "379850d9-6b4a-4883-90b3-444a0ae20c47",
   "metadata": {},
   "outputs": [],
   "source": [
    "nz, nx, ny = ds.hFacC.shape\n",
    "nday = 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "1e4a1568-4bdc-4c5e-b15a-7225da0c7e2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_sst = read_raw_data(run_dir0 + '/labsea_SST_fields_linear_rec006', dtype=np.dtype('>f8'), shape=(nday, nx, ny))\n",
    "data_sst[data_sst==-9999] = np.nan\n",
    "ds['data_sst'] = xr.DataArray(data_sst, dims=['time','YC','XC'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "370a19a8-b875-4a1b-a26a-3d3527dc0896",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHiCAYAAAA52H84AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACGlklEQVR4nOzdd3xUVfrH8e+kh5LQCc0QBAEVEGnSizQLgqyConTQVYFFV11ZVGAtqLiKK4suSBFFBLEgoigd6UXERu+9p/fM+f3BL2MmM6k3mQnJ5/165aVzzzn3PPcMmWfyzL13bMYYIwAAAAAAAMCDfLwdAAAAAAAAAEoeilIAAAAAAADwOIpSAAAAAAAA8DiKUgAAAAAAAPA4ilIAAAAAAADwOIpSAAAAAAAA8DiKUgAAAAAAAPA4ilIAAAAAAADwOIpSAAAAAAAA8DiKUoAFEydOlM1mk81mK7Q5OnXqJJvNpk6dOhXaHAAAAEBJxXt6wHsoSsHj1q5d63jRt9lsKlu2rOLj43Mcl5CQoNDQUKexa9euLfyAiwljjL755hsNGDBA9erVU5kyZRQUFKRatWqpWbNmevDBB/X+++9rz5492e7n8uXL+ve//62uXbsqLCxMgYGBCg0NVb169dSuXTuNHTtWX331lS5duuQYM2TIEKfnLT8/EydOLOQVAlCUZM4V6T9+fn6qUKGCIiIi1KFDBz355JP6/PPPlZyc7O2QvS4lJUULFixQ3759Vbt2bZUqVUqlSpVSeHi4WrZsqSFDhmju3Lk6cuRItvs5deqUJk2apPbt26ty5coKCAhQhQoV1KBBA3Xu3FnPPfecli9frpiYGMeY9D+2rPzMnTu3kFcIQEHiPf216+jRo25fh319fVWuXDmFh4frtttu0xNPPKGPPvpIsbGx3g4ZxZiftwMAYmNj9dVXX2nAgAHZ9luyZImio6M9FFXxcv78efXr10/r1q1zaTt58qROnjypn376SZ9++qkkac+ePWrQoIFL32XLlmnIkCG6ePGi0/bk5GRFR0fr4MGD2rhxo9555x21atVKW7ZsKZwDAlBipaWl6cqVK7py5YqOHj2qH3/8UVOnTlXlypU1ZswYPffcc/LzK9y3N+mfpE+YMKHIFMwPHDig++67T7/88otL2/Hjx3X8+HFt375dH374oaSrfxQGBQW59J0zZ45Gjx6tuLg4p+3pa75v3z6tXbtWr7/+uvr37+/IGwDAe/prn91uV1RUlKKionT8+HFt3bpV06dPV9myZTVixAi99NJLKl26dKHGULt2bR07dkyDBw/mw4oSgqIUvCooKEiJiYn66KOPckxgH330kdMY5E5KSop69Oihn3/+WZLUtGlTDR06VLfccovKli2r6Oho7dmzR+vXr9eyZcsUFRXldj8bN27Uvffeq5SUFPn6+urBBx9Ur169FBERIV9fX507d04//fSTli9frk2bNjmNfeWVV/T000+73e+SJUv0/PPPS5Jefvll9e7d222/KlWq5HMFAFzrHnvsMT3++OOOx7Gxsbpy5Yp++eUXrVq1SitXrtSFCxf0wgsvaOnSpfrmm29UuXJlL0bsWZcvX1aXLl108uRJSVLHjh318MMP68Ybb1SpUqV05coV/fbbb1qzZo2WL1+uhIQEt/tZtGiRhg8fLmOMgoKCNHToUPXo0UM1a9aUMUanT5/Wjh07tGzZMv30009OY+fMmeNSyEo3ffp0vffee5Kk2bNnq0WLFm771axZM79LAMDLeE9/7erdu7defvllx+P4+HhFRkbqjz/+0Lp16/TNN98oJiZGb7/9tpYtW6ZvvvlG9erV82LEKG4oSsGr7rnnHi1atEgrVqzQ2bNnFRYW5rbf+fPn9cMPP0i6+sK5cOFCT4Z5Tfvggw8cBamhQ4fqgw8+kI+P85W7HTp00KOPPqqkpCQtWLBA5cqVc9nPU0895ShILV++XF27dnXpc8cdd2j8+PE6duyYVq1a5dheo0YN1ahRw218O3bscOp388035+MoARRnVapUcfvacMcdd+gf//iHfv/9dw0cOFC7du3Stm3b1LdvX61atUoBAQFeiNbzXn/9dUdBKquztzp37qzRo0crJiZGc+bMka+vr1N7Wlqaxo4dK2OMypYtqw0bNqhx48Yu+7nnnnv0r3/9S3v27NGvv/7q2B4REZFlfBk/VIiIiOB1HiiGeE9/7SpXrpzb1+Xu3btr7NixOn78uEaMGKEVK1Zo//79uvvuu7V161a3fy8A+cE9peBV3bt3V1hYmNLS0rRgwYIs+y1YsECpqamqWrWqunXr5sEIr31fffWVJMnPz09vvfWWS0Eqo8DAQA0ZMsTljcTp06e1bds2SdK9997rtiCVUXh4uIYNG2YtcADIpZtuukkbN25U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Vf3lL39xPDexsbH63//+p+eff16JiYn6/fffNXXqVD3//POFejwAkFHGN50VKlRwajP//4UPs2bNytW+sisg5UZiYqL69u2r7777ziPzpStdurS6deumbt26Sbp6I9ilS5dqzJgxOnHihOLi4jR27Ngcvwr9uuuu04ABAzRgwABJV3Plm2++qddff112u12rV6/WggUL9PDDDxdI3ACKB97TX1WQ7+m/+uqrLM/2Cg8P19GjRwtsruxkl2Olq2ftTpo0KVf7sprzPJ3TUXi4fA9FRpkyZXTvvfdKunqKb/ppvn369FHZsmXzvL+cPskw//+tSNltz+8+JDlO2W3btq3LN0dk95N+iqkndenSRStWrHAkl/379+vnn3/O0z7KlCmjv//975o6dapj22effVaAUQJAznbt2uX4//r16zu1zZ492/Hm9ZZbbtHcuXO1Z88eRUdHKzU1VebqvTYdn+Rn9xqfG6+88oqjINWxY0ctWrRIBw8eVGxsrNLS0hzzpX9IYHW+rPj6+qpPnz5atmyZ49K+1atX69KlS3naT4UKFfTqq6/q2WefdWzjdR5AZryn9957+sKWXY5dtWqVoyBVp04dTZ8+Xb/88osiIyOdcuwLL7xQILF4Oqej8HCmFIqUQYMGaf78+frhhx8c23J7mq/kXLE/e/Zstqeynjt3zu24jP9/7tw51apVK8t9ZPfJScWKFXXu3DlduHDB7SUSRU21atV01113Od44HDx4MFdf15vZ0KFDNWrUKKWmpurgwYMFHSYAZGvFihWO/2/Xrp1T28yZMyVJ119/vTZt2qTg4GC3+8j46Xp+GWP0wQcfOOJYvXq1fHzcfxZYEPPlRqNGjdSqVSv9+OOPMsbo8OHDqlixYp73M3LkSL322muSxOs8ALd4T1+whgwZoiFDhnhl7oxyk2PLlSunzZs3Z3l2WkHlPE/mdBQuzpRCkXL77berWrVqSk1NVWpqqqpWraru3bvnenzGRLF169Zs+27bts3tuEaNGjn+f/v27dnuI7v29ILO/v37dezYsWz3U1Rk/EQnqz+echIQEOD4Iye/+wCA/Pjtt9+0atUqSVKtWrXUvHlzp/b0+4X07t07yzevxhj99NNPlmO5fPmyzp49K0nq169flq+HsbGx2rdvn+X5cqsgXucLYh8Aijfe0xc/Fy5c0CeffCLp6mXimZ/P9BzbpUuXbC+XzOrLNtLl9r5dnszpKFy8k0CR4uvrq4EDByowMFCBgYF6+OGH83QD1WbNmqlcuXKSpA8//DDLb72IiYnRokWLJEk33nij44aIktS5c2fHnB9++GGWc+3YscPpJoyZ3XPPPY7/f+ONN3J9DAUtL6eqZkwSERER+drHiRMnHJ82ZdwHABSmhIQEDRo0yPF69fTTT8vPz/mE8NTUVEnZ3+fj66+/1unTp7OdKygoSJKUlJSUZZ/0uXKab9asWY6bh+dXbl+jM745t9lsCg8Pz/M+pKxzBQCk4z198WK32zVkyBBHPnvkkUdc7imVmxz7888/a8uWLdnOlZscm9v5cpPT4X0UpVDkvP7660pMTFRiYqLefPPNPI0NDAzUiBEjJF2tnru70Z4xRqNGjXLcqG/UqFFO7dWqVVPv3r0lXX0hS090GcXGxuqRRx7JNpa//OUvatiwoSTpvffey/EmfL/99puWLl2abZ/86Nu3r6ZPn57jV3fPnTvXcYbBdddd53Tp3h9//KHu3btr/fr12e4jMTFRjzzyiOOPm/R1BIDC9Mcff6hdu3aOe1107NhRjz32mEu/evXqSZKWLl3q9nT+Q4cO6fHHH89xvvQ/eg4dOpRln8qVKzv+oPr000+VnJzs0mf79u0F8mUQHTp00Pz5893OkdGkSZN04MABSVfvjVKpUiVH23fffad+/fo53S/EncuXL2vMmDGOx7zOA8gK7+mLh+PHj6tnz5769ttvJUkNGjTQhAkTXPql59gNGzbo8OHDLu0XLlzI1Rdj5CbHZpzPak6H93FPKRQ7L774or744gsdPnxYL730kn777TcNGzZM1atX15EjRzRt2jStXbtWktS6dWu3iejf//63VqxYoZiYGA0YMEDr1q3Tfffdp5CQEP3yyy967bXXtH//fjVv3jzLU1B9fX21cOFCtWnTRrGxsRoxYoQ+++wzDRgwQPXr15e/v7/Onz+vXbt26ZtvvtGmTZv097//Xb169SrQ9Thx4oSeeOIJ/eMf/1CvXr3UoUMH1a9fX+XLl1diYqL27t2rzz77zJFobDab3n77badTZ40xWrFihVasWKG6deuqd+/eatWqlWrWrKlSpUrp4sWL2rZtm2bOnKkjR45IulrYevrppwv0WACUTOfPn3f6FDsuLk5XrlzRL7/8olWrVmnFihWOYvhtt92mxYsXy9/f32U/gwYN0jPPPKNTp06pTZs2evbZZ3XTTTcpMTFRq1ev1tSpU5WUlKRbb70129P927RpoyNHjujrr7/W//73P7Vt29bxyW5ISIiqVKkiHx8fPfTQQ/rvf/+rn3/+We3bt9eTTz6punXrKioqSt9++62mT5+uMmXKqHr16tq/f3++12fPnj16+OGHNWbMGPXp00ft2rXT9ddfr9DQUMXGxurXX3/Vxx9/rI0bN0q6epl15j8Q7Xa7PvvsM3322Wdq0qSJ7rrrLrVo0ULVqlVTQECAzp8/rw0bNmjGjBmOs2GbNWumwYMH5ztuAMgO7+k9IzIy0inHJiQkKDIyUn/88YfWrl2rb775xnFWUv369fXNN98oNDTUZT+DBg3S0qVLFRsbq44dO+of//iHmjVrJmOMNm3apLfeektnz55V69attXnz5izjadOmjdasWaPt27frtdde0x133KHSpUtLkoKDg1WjRg3HfAWR01EEGMDD1qxZYyQZSWbOnDl5Hj9nzhzH+DVr1rjtc+TIEdOgQQNHP3c/bdu2NZcuXco2zrJly2Y5fsKECWbChAmOx1nZvXu3qVevXraxpP9MmjTJZXzHjh2NJNOxY8e8LpUxxpjevXvnam5JJjQ01MybN89lH4cPHzbly5fP9X6aN29uDh06lKv4Mj6f+fn3AKB4ypgrcvNTuXJl88orr5iUlJQs95mcnGy6d++e5T6Cg4PNokWLzODBg40kEx4e7nY/u3btMoGBgW73MXjwYEe/yMhIc8stt2Q5X4UKFcy6dessv843adIk1+tUrVo1s3z5cpd9bNiwwZQuXTrX++nWrZu5ePFiruLLmCuzytsArj28p/fse/qCdOTIkTzl2JCQEPPUU0+ZuLi4bPc7dOjQLPfh6+trpk6dmuNanzx50lSoUMHtPjKuXUHldHgfZ0qhWKpdu7Z2796tmTNn6rPPPtNvv/2m6OhoVahQQU2bNtVDDz2kAQMGZHuD1k6dOun333/X5MmT9e233+rMmTMqX768mjdvrtGjR6tHjx6aOHFijrE0btxYf/zxhz755BN9+eWX2rlzpy5cuCC73a6KFSuqfv36ateune69917deuutBbgKV3311Vfat2+fvv/+e23cuFG///67Tp48qdjYWAUFBalixYq6+eab1b17dz300ENOl3Oki4iI0Llz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7969VblyZQUHB+vGG2/USy+9xO8Lij0/bwcAeFOfPn0UFRWV53FpaWnq3bu3li1bJh8fH918882KiYnRqlWrtGrVKk2ZMkVPP/10IUQMFC1t27Z1u71BgwYejgTwnNdee03jxo2TJNWpU0dlypTR7t27NWbMGK1cuVJffvmlfHz43A8lW7169VSlShW3bfx+oLh655139M477+R53Pz58zV48GClpaWpRo0aqlWrln777Te9+OKLWrp0qdauXatSpUoVQsSA91GUQol200036YYbblDLli3VsmVLNW/ePFfjpkyZomXLlqlq1ar6/vvv1aRJE0nSJ598ooEDB+rZZ59Vx44d1aJFi8IMH/C6DRs2eDsEwKM2b96sf/7zn/Lx8dHHH3+sBx98UJK0e/du9ejRQ19//bXeeustPphAiffPf/5TQ4YM8XYYgEdVqlRJd999t1q2bKkWLVrogw8+0Oeff57tmKNHj2r48OFKS0vTG2+8oaefflo2m03Hjh1Tjx49tH37dj377LOaNm2ah44C8Cw+pkCJtnHjRs2ZM0ePPfaYmjVrlqsxycnJeuONNyRJb7/9tqMgJUkDBgzQ8OHDZYzJ1Wm6AIBry8svvyxjjEaMGOEoSElSkyZN9NZbb0m6eiZVSkqKt0IEAHjJ888/r6VLl+qFF15Qz549VaZMmRzHTJkyRUlJSerevbueeeYZ2Ww2SVJ4eLhmz54tSZoxY4bOnTtXqLED3kJRCsijNWvW6MqVKwoJCdF9993n0j58+HBJ0vfff6+YmBhPhwcAKCTR0dFauXKlpD9f6zO6//77FRISokuXLmnNmjWeDg8AcI0xxujLL7+U5D6vtGnTRg0aNFBKSoqWLFni6fAAj6AoBeTRli1bJEktW7aUv7+/S3uzZs0UFBSkpKQk/fzzzx6ODvCsMWPGqHv37urZs6cef/xxffvttzLGeDssoFDs2rVLycnJCgoK0q233urS7u/v77hse+vWrZ4ODyhSFi9erD59+qhLly564IEH9O677+brPp5AcXb8+HGdOXNGUtb36UzfTl5BccU9pYA8OnDggKSrN7d1x8/PT7Vq1dKBAwd04MABtW/f3pPhAR717rvvOj1+77331KFDBy1evFiVK1f2UlRA4Uh//b/uuuvk5+f+LVSdOnW0atUqR1+gpFq2bJnT44ULF2rChAn65JNP1LNnTy9FBRQt6bkiMDBQ1atXd9sn/W8O8gqKK86UAvLoypUrkqTy5ctn2Se9Lb0vUNz07NlTixYt0qFDh5SYmKiTJ0/q3XffVUhIiNavX69evXopNTXV22ECBYrXfyBn119/vV599VXt3r1b0dHRiomJ0Q8//KBWrVrpypUr6tOnj3bs2OHtMIEiIT1XlCtXznEvqczIKyjuOFMKyKPExERJUkBAQJZ9AgMDJUkJCQkeiQnwtO+++87pcY0aNTRq1Ci1atVKbdu21datW7VgwQINHDjQSxECBY/XfyBnL7zwgsu2bt26qWPHjmrfvr22bdumf/zjH1q1apUXogOKFvIKQFEK16hnn31WX3/9dZ7HzZkzR61bt7Y0d1BQkKSr38KXlaSkJElScHCwpbmAglbYvzstWrTQfffdpwULFuiLL76gKIVihdd/IP8CAgL00ksvqUePHlq7dq2uXLmS7VmHQElAXgEoSuEadfr0ae3bty/P4+Li4izPnZtTaHNziQfgDZ743WndurUWLFiggwcP5nkeoCjj9R+wJv3DDbvdrsOHD6tZs2ZejgjwrvRcERkZKWOM20v4yCso7rinFK5JH3/8sYwxef7p2rWr5bnr1asnSTp8+LDb9tTUVB0/ftypL1BUeOJ3J/1bKbmnFIqb9Nf048ePZ/nvOz038PoPuMr4rcXkCODPXJGUlKTTp0+77UNeQXFHUQrIo1atWkmStm3bppSUFJf2nTt3KikpSQEBAbrllls8HB3gfb///rskqWbNml6OBChYTZs2lb+/vxITE/XTTz+5tKekpGj79u2S/swVAP6Unh8kcgQgXf0217CwMEnSxo0b3fZJ305eQXFFUQrIo86dO6t8+fKKjo7W4sWLXdpnzZolSerRo4fKli3r6fAArzp37pzmz58vSQVyZiJQlISEhDj+Xae/1mf02WefKTo6WhUrVlSnTp08HB1Q9P373/+WJDVo0EA1atTwcjSA99lsNt17772S3OeVTZs2ae/evfL399c999zj6fAAj6AoBeRRYGCgnn76aUnSU089pd27dzvaPvnkE82aNUs2m03jx4/3VohAoRo3bpzmz5+v+Ph4p+27d+9Wt27ddOXKFVWpUkWPPvqolyIECs/48eNls9n0wQcfaMGCBY7tu3fv1lNPPSXp6hcKZPdNSkBxtWLFCo0bN05Hjhxx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",
      "text/plain": [
       "<Figure size 1200x400 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "vmin, vmax = (-12, 12)\n",
    "cmap = plt.get_cmap('RdBu_r')\n",
    "cmap.set_bad(color='#d3d3d3')\n",
    "\n",
    "def plot_model_data_misfit(ds):\n",
    "    \n",
    "    fig, axes = plt.subplots(1, 3)\n",
    "    (ax1, ax2, ax3) = axes\n",
    "\n",
    "    model_sst = ds.THETA.isel(time=5, Z=0).where(ds.hFacC.isel(Z=0))\n",
    "    p = model_sst.plot(ax=ax1, cmap=cmap, vmin=vmin, vmax=vmax, extend='both', add_colorbar=False)\n",
    "    ax1.set_title('Model SST', fontsize=20)\n",
    "    ax1.set_ylabel('Latitude', fontsize=14)\n",
    "    ax1.set_xlabel('Longitude', fontsize=14)\n",
    "    \n",
    "    \n",
    "    data_sst = ds.data_sst.isel(time=5).where(ds.hFacC.isel(Z=0))\n",
    "    p = data_sst.plot(ax=ax2, vmin=vmin, vmax=vmax, cmap=cmap, extend='both', add_colorbar=False)\n",
    "    ax2.set_title('Data SST', fontsize=20)\n",
    "    ax2.set_ylabel('')\n",
    "    ax2.set_xlabel('Longitude', fontsize=14)\n",
    "    \n",
    "    misfit_sst_offline = (model_sst - data_sst)\n",
    "    p = misfit_sst_offline.plot(ax=ax3, vmin=vmin, vmax=vmax, cmap=cmap, extend='both', add_colorbar=False)\n",
    "    ax3.set_title('Model - Data', fontsize=20)\n",
    "    ax3.set_xlabel('Longitude', fontsize=14)\n",
    "    ax3.set_ylabel('')\n",
    "    \n",
    "    cbar_ax = fig.add_axes([0.1, -0.05, 0.8, 0.05])  # Position [left, bottom, width, height]\n",
    "    cbar = fig.colorbar(p, cax=cbar_ax, orientation='horizontal')\n",
    "    cbar_ax.tick_params(labelsize=16)\n",
    "    cbar.ax.set_xlabel('Potential Temperature [degC]', fontsize=14)\n",
    "    \n",
    "    ax1.tick_params(axis='both', labelsize=13)\n",
    "    ax2.tick_params(axis='both', labelsize=13)\n",
    "    ax3.tick_params(axis='both', labelsize=13)\n",
    "    \n",
    "    fig.set_size_inches(12,4)\n",
    "    fig.tight_layout()\n",
    "    return fig, axes\n",
    "fig, axes = plot_model_data_misfit(ds)\n",
    "#fig.savefig('model_data_misfit_spatial.png', dpi=500, bbox_inches='tight', facecolor='white')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "44892433-1e56-4f25-9daf-bfe8bbfa4e68",
   "metadata": {},
   "source": [
    "### Compute model-data misfit by hand\n",
    "By the end of a forward run compiled with `pkg/ecco` and `pkg/cost`, a file `costfunctionXXXX` is created containing the scalar cost functional $J:\\mathbb{R}^n\\rightarrow\\mathbb{R}$ given by\n",
    "$\n",
    "J({\\bf u}) = \\frac{1}{2}\\left({\\bf d} - \\textbf{Obs}({\\bf u})\\right)^T{\\bf R}^{-1}\\left({\\bf d} - \\textbf{Obs}({\\bf u})\\right) \n",
    "+\\frac{1}{2}({\\bf u} - {\\bf u}_0)^T{\\bf B}^{-1}({\\bf u} - {\\bf u}_0).\n",
    "$\n",
    "In the first term, the misfit captures the discrepency between model and data, weighted by the our uncertainty in the observations. The second term acts as a numerical regularizer for the ill-posed inverse problem, penalizing deviations from the initial guess ${\\bf u}_0$. The table below describes the terms of $J$, with notation taken from [Loose & Heimbach (2021)](https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020MS002386).\n",
    "| Variable                       | Description                                                                                                          |\n",
    "|--------------------------------|----------------------------------------------------------------------------------------------------------------------|\n",
    "| $ J({\\bf u}) $                | cost function, i.e. the scalar misfit between the model and observations                              |\n",
    "| $ {\\bf d} $                   | observational data vector                         |\n",
    "| $ \\textbf{Obs}({\\bf u}) $     | observation operator giving the \"model equivalent\" to the data                                   |\n",
    "| $ {\\bf R} $                   | observational data error covariance matrix, representing the uncertainties in the observations $ {\\bf d} $       |\n",
    "| $ {\\bf u} $                   | control variables, such as initial conditions, boundary conditions (e.g. atmospheric forcing or regional open boundaries), or model parameters |\n",
    "| $ {\\bf u}_0 $                 | prior estimate of the control variables, serving as a reference or initial guess                               |\n",
    "| $ {\\bf B} $                   | background error covariance matrix, representing uncertainties in the prior estimate $ {\\bf u_0} $          |\n",
    "\n",
    "We aim to constrain our model trajectory towards the data, thereby reducing the cost. Let's compute the misfit offline to confirm we have a full understanding of how the model is coming up with $J$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "3e3e2901-d8e2-4425-b06c-5ca56c0af81c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "online:  J_SST = 2.122397e+07\n",
      "offline: J_SST = 2.122426e+07\n",
      "relative error = 0.001353%\n"
     ]
    }
   ],
   "source": [
    "## ONLINE\n",
    "# grep the cost directly from costfunctionXXXX file\n",
    "def grep_cost(run_dir, field_name='fc', ioptim=0):\n",
    "    costfunction_filename = f'{run_dir}/costfunction{ioptim:04d}'    \n",
    "    sysstr='grep ^{}.* {} | awk \\'{{print $3}}\\' |  sed \\'s/D/E/g\\''\\\n",
    "            .format(field_name, costfunction_filename)\n",
    "    grepstr = subprocess.check_output(sysstr, shell=True)\n",
    "    grepfloat = float(grepstr.decode().strip('\\n'))\n",
    "    return grepfloat\n",
    "J_online = grep_cost(run_dir0, ioptim=0)\n",
    "\n",
    "## OFFLINE\n",
    "# SST weight: spatially uniform, values of 1.042 deg C\n",
    "model_sst_day6 = ds.THETA.isel(time=5, Z=0).where(ds.hFacC.isel(Z=0))\n",
    "data_sst_day6 = ds.data_sst.isel(time=5).where(ds.hFacC.isel(Z=0))\n",
    "\n",
    "misfit_sst_weight = read_raw_data(run_dir0 + 'sigma_sst_p010402.bin', dtype=np.dtype('>f8'), shape=(nx, ny))\n",
    "J_offline = (((model_sst_day6 - data_sst_day6) / misfit_sst_weight)**2).sum().values\n",
    "\n",
    "print(\n",
    "      f'online:  J_SST = {J_online:0.6e}\\n'\\\n",
    "      f'offline: J_SST = {J_offline:0.6e}\\n'\n",
    "      f'relative error = {100 * abs(J_offline - J_online)/abs(J_online):f}%'\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7b46da5e-7797-4d33-8c1c-64ad51d2cf8a",
   "metadata": {},
   "source": [
    "### Run the adjoint code, look at gradients $\\partial J/\\partial\\text{xx}$\n",
    "We now run the adjoint model and produce *gradients* or *sensitivities*. Here, we compute gradients of $J$ with respect to controls ${\\bf u}$. The MITgcm also gives users the ability to look at sensitivites of a number of diagnostics to said controls, but here we will restrict our focus to the cost.\n",
    "\n",
    "In this run, we control the 3d initial temperature field, $\\theta_0$, and the 2d time-varying air temperature, $\\text{atemp}$. Let's form a hypothesis for what the gradients will look like: \n",
    "- $\\partial J/\\partial \\theta_0$: Recall we found that the data was warmer than the model giving rise to a negative misfit. As such, we expect that an increase in the initial temperature $\\theta_0$ should decrease the cost $J$, thus $\\partial J/\\partial T_0 < 0$.\n",
    "- $\\partial J/\\partial \\text{atemp}$: Similarly, an increase in air temperature raises sea surface temperature. Therefore we expect the same relationship for $\\partial J/\\partial \\text{atemp}$, that an increase in $\\text{atemp}$ will decrease the cost $J$, or $\\partial J/\\partial T_0 < 0$.\n",
    "\n",
    "In this simple setup, we will see that we can confirm our hypotheses. In more complicated models, however, deeper knowledge of the model dynamics is critical towards understanding the more complex sensitivities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b2557788-e058-4e53-ad8f-970d659532b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# load dJ/dtheta\n",
    "ioptim = 0\n",
    "adxx_theta = read_raw_data(run_dir0 + f'adxx_theta.{ioptim:010d}.data', dtype=np.dtype('>f8'), shape=(nz, nx, ny))\n",
    "ds['adxx_theta'] = xr.DataArray(adxx_theta,\n",
    "                                dims=ds['THETA'].isel(time=0).dims,\n",
    "                                coords=ds['THETA'].isel(time=0).coords)\n",
    "# plot dJ/dtheta\n",
    "vmax = np.nanmax(abs(adxx_theta))\n",
    "vmin = -vmax\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "p = ds.adxx_theta.where(ds.hFacC[0]).isel(Z=0).plot(\\\n",
    "                                         x=\"XC\",y=\"YC\",\n",
    "                                         cmap=cmap, vmin=vmin, vmax=vmax, add_colorbar=False)\n",
    "cbar = fig.colorbar(p, ax=ax)\n",
    "cbar.ax.tick_params(labelsize=12)\n",
    "cbar.ax.set_ylabel('[dJ/degC]', fontsize=14)\n",
    "ax.set_ylabel('Latitude', fontsize=14)\n",
    "ax.set_xlabel('Longitude', fontsize=14)\n",
    "\n",
    "ax.set_title(r'$\\frac{\\partial J}{\\partial {\\mathrm{SST}_0}}$', fontsize=30, pad = 20)\n",
    "ax.tick_params(axis='both', labelsize=14)\n",
    "\n",
    "fig.set_size_inches(6,5)\n",
    "fig.tight_layout()\n",
    "#fig.savefig('dJdSST.png', dpi=500, bbox_inches='tight', facecolor='white')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21dcbcb8-8061-4d98-bf15-407621d0f571",
   "metadata": {},
   "source": [
    "We can do the same for the 2D time-varying control $\\mathrm{atemp}$. Below, we plot snapshots of the gradients at different time lags propagating backwards in time through the adjoint run."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "537e2b6a-a0cd-4cfe-a2bd-da6203edda04",
   "metadata": {},
   "outputs": [],
   "source": [
    "nrec = nday + 1 # using knowledge of the number of records in this file \n",
    "                # read_mds would be preferable here, but I don't think it\n",
    "                # properly implements nrec\n",
    "\n",
    "adxx_atemp = read_raw_data(run_dir0 + f'adxx_atemp.{ioptim:010d}.data', dtype=np.dtype('>f8'), shape=(nrec, nx, ny))\n",
    "adxx_atemp[adxx_atemp == 0.] = np.nan\n",
    "\n",
    "fig, axes = plt.subplots(2, 3)\n",
    "\n",
    "set_cbar = True\n",
    "\n",
    "for i, ax in enumerate(axes.ravel()):\n",
    "    fld = adxx_atemp[::-1][i]  # time-reversed order, how the adjoint operates\n",
    "\n",
    "    vmax = 1e3 if set_cbar else np.nanmax(abs(fld))\n",
    "    vmin = -vmax\n",
    "\n",
    "    # Add the field to the dataset for convenient lat/lon axis ticks on 2D plots\n",
    "    ds['fld'] = xr.DataArray(fld, dims=ds['rA'].dims, coords=ds['rA'].coords)\n",
    "    p = ds.fld.where(ds.hFacC[0]).plot(ax=ax, vmin=vmin, vmax=vmax, cmap=cmap, add_colorbar=False)\n",
    "\n",
    "    ax.set_title(r'$\\frac{\\partial J}{\\partial {\\mathrm{atemp}}}$' + f' (lag {i} day)', fontsize=16)\n",
    "\n",
    "    ax.set_xlabel('Longitude' if i >= 3 else '', fontsize=14)\n",
    "    ax.set_ylabel('Latitude' if i % 3 == 0 else '', fontsize=14)\n",
    "    \n",
    "cbar_ax = fig.add_axes([0.1, -0.05, 0.8, 0.03])  # Position [left, bottom, width, height]\n",
    "cbar = fig.colorbar(p, cax=cbar_ax, orientation='horizontal')\n",
    "cbar_ax.tick_params(labelsize=16)\n",
    "cbar.ax.set_xlabel('Sensitivity to air temperature [dJ/degK]', fontsize=14)\n",
    "\n",
    "fig.set_size_inches(10, 7)\n",
    "fig.tight_layout()\n",
    "\n",
    "#fig.savefig('dJdatemp.png', dpi=500, bbox_inches='tight', facecolor='white') # Vectorized PDF\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c9d783d2-ba6b-49a9-8c23-b7164f584b4c",
   "metadata": {},
   "source": [
    "As expected, the sensitivities are all negative. We can use the gradients to minimize our cost function through gradient descent.\n",
    "\n",
    "$\\mathbf{u}^{(k)} - \\alpha \\nabla J(\\mathbf{u}^{(k)})=:\\mathbf{u}^{(k+1)}$\n",
    "\n",
    "Any number of optimization libraries facilitate this step. We proceed using the library [optim_m1qn3](https://github.com/mjlosch/optim_m1qn3), which implements a limited memory quasi-Newton (L-BFGS) algorithm. Specifying the `doMainPack` option inside `data.ctrl`, we bundle up our gradient information into a binary file `ecco_ctrl_MIT_CE_000.opt0000`, hand it off to `optim_m1qn3`, and run the optimization, obtaining a ${\\bf u}^{(k+1)}$ in the file `ecco_ctrl_MIT_CE_000.opt0001`, which we refer to as the first iteration *control adjustment*. When we run our model with these perturbed controls, we will find that the cost $J$ decreases.\n",
    "\n",
    "There are various options available to the user when performing the optimization step specified in `data.optim` (see warning below). Of note, the user must indicate a desired cost reduction through e.g. the parameter `dfminFrac`. Typically, reductions of 2%-5% are attainable. Later on, we will plot the cost function reduction across 10 optimization iterations to see how well we did.\n",
    "\n",
    "> :::{warning}\n",
    "> Confusingly, `data.optim` is also an input file used by MITgcm to instruct the model what optimization iteration it is running, but this is different from the file named `data.optim` used by `optim_m1qn3`. Furthermore, both softwares use input files by the name of `data.ctrl`, but they serve completely different purposes."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "affe3ea9-0b47-496a-a18b-a0abf460e032",
   "metadata": {},
   "source": [
    "### Examine control adjustments\n",
    "Below we load the adjustment made to the initial temperature control $\\theta_0$. We plot the top level of the 3D array, the initial SST adjustment. Additionally, we confirm our understanding that \n",
    "$$\\theta_0^0 + \\delta\\theta_0^1 =: \\theta_0^1$$\n",
    "where the subscripts denote initial temperature and the superscripts denote optimization iteration. Unsurprisingly, the perturbation is all positive. This makes sense knowing that the model was initially cooler than the data. In other words, the new initial condition we use for the next run is a perturbed (*warmer*, specifically) value of the old initial condition that will lead the model SST to be more similar to the data on day 6."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43ad4be4-b720-400f-bbc3-2efcb5e5d1e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "run_dir0 = f'{run_dir}/iter{0:04d}/'\n",
    "run_dir1 = f'{run_dir}/iter{1:04d}/'\n",
    "\n",
    "# load control adjustments\n",
    "xx_theta = read_raw_data(run_dir1 + f'xx_theta.{1:010d}.data', dtype=np.dtype('>f8'), shape=(nz, nx, ny))\n",
    "xx_atemp = read_raw_data(run_dir1 + f'xx_atemp.{1:010d}.data', dtype=np.dtype('>f8'), shape=(nrec, nx, ny))\n",
    "xx_theta[xx_theta == 0.] = np.nan\n",
    "xx_atemp[xx_atemp == 0.] = np.nan\n",
    "\n",
    "# load initial theta\n",
    "theta0_iter0 = read_raw_data(run_dir0 + f'T.{0:010d}.data', dtype=np.dtype('>f4'), shape=(nz, nx, ny))\n",
    "theta0_iter0[theta0_iter0==0.] = np.nan\n",
    "theta0_iter1 = read_raw_data(run_dir1 + f'T.{0:010d}.data', dtype=np.dtype('>f4'), shape=(nz, nx, ny))\n",
    "theta0_iter1[theta0_iter1==0.] = np.nan\n",
    "\n",
    "# slice out SST\n",
    "SST0_iter0 = theta0_iter0[0, :, :]\n",
    "SST0_iter1 = theta0_iter1[0, :, :]\n",
    "\n",
    "# confirm that \\theta_0 + \\delta\\theta = \\theta_1\n",
    "assert np.allclose(T0_iter0 + xx_theta, T0_iter1, atol=1e-8, equal_nan=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0015974a-106a-4fc6-880f-ca7af1d84dba",
   "metadata": {},
   "outputs": [],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ds['xx_sst'] = xr.DataArray(xx_theta[0], dims=ds['rA'].dims, coords=ds['rA'].coords)\n",
    "\n",
    "p = ds.xx_sst.where(ds.hFacC[0]).plot(vmin = -.3, vmax = .3, cmap=cmap, add_colorbar=False)\n",
    "ax.set_title(r'$\\delta\\mathrm{SST}_0$', fontsize=30, pad=20)\n",
    "ax.set_ylabel('Latitude', fontsize=14)\n",
    "ax.set_xlabel('Longitude', fontsize=14)\n",
    "\n",
    "cbar = fig.colorbar(p, ax=ax)\n",
    "cbar.ax.tick_params(labelsize=16)\n",
    "cbar.ax.set_ylabel('Potential Temperature [degC]', fontsize=14)\n",
    "ax.tick_params(axis='both', labelsize=14)\n",
    "\n",
    "fig.set_size_inches(6, 5)\n",
    "fig.tight_layout()\n",
    "\n",
    "# fig.savefig('delta_sst.png', dpi=500, bbox_inches='tight', facecolor='white') # Vectorized PDF"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f546faf8-3f62-4cea-a5bf-f8eed2bf9129",
   "metadata": {},
   "source": [
    "We can repeat the process for the perturbations made to $\\mathrm{atemp}$. We find once again that the perturbations are all positive."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aeb7bee4-f762-4f04-998a-11eb74466d42",
   "metadata": {},
   "outputs": [],
   "source": [
    "fig, axes = plt.subplots(2, 3)\n",
    "set_cbar = True\n",
    "for i, ax in enumerate(axes.ravel()):\n",
    "    fld = xx_atemp[::-1][i]\n",
    "\n",
    "    vmax = 2e-2 if set_cbar else np.nanmax(abs(fld))\n",
    "    vmin = -vmax\n",
    "\n",
    "    # Add the field to the dataset for convenient lat/lon axis ticks on 2D plots\n",
    "    ds['fld'] = xr.DataArray(fld, dims=ds['rA'].dims, coords=ds['rA'].coords)\n",
    "    p = ds.fld.where(ds.hFacC[0]).plot(ax=ax, vmin=vmin, vmax=vmax, cmap=cmap, add_colorbar=False)\n",
    "\n",
    "    ax.set_title(r'$\\delta\\mathrm{atemp}$' + ' (lag {} day)'.format(i), fontsize=16)\n",
    "\n",
    "    ax.set_xlabel('Longitude' if i >= 3 else '', fontsize=14)\n",
    "    ax.set_ylabel('Latitude' if i % 3 == 0 else '', fontsize=14)\n",
    "    \n",
    "cbar_ax = fig.add_axes([0.1, -0.05, 0.8, 0.03])  # Position [left, bottom, width, height]\n",
    "cbar = fig.colorbar(p, cax=cbar_ax, orientation='horizontal')\n",
    "cbar_ax.tick_params(labelsize=16)\n",
    "cbar.ax.set_xlabel('Air temperature [degK]', fontsize=14)\n",
    "\n",
    "fig.set_size_inches(10, 7)\n",
    "fig.tight_layout()\n",
    "\n",
    "#fig.savefig('dJdatemp.png', dpi=500, bbox_inches='tight', facecolor='white') # Vectorized PDF\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "83946327-6a2c-4912-a064-d3a6b26b4f55",
   "metadata": {},
   "source": [
    "### Load diagnostic data for many optimization iterations\n",
    "At this point, one runs the model from the newly obtained control perturbations. We copy `ecco_ctrl_MIT_CE_000.opt0001` into the next run directory, `run/iter0001`, and read them into the model by setting `doMainUnpack` in `data.ctrl`. Running the model forward again, one may choose to compare the diagnostics generated by `iter0000` with those from `iter0001`. The user should also confirm that the total cost in `costfunction0001` is smaller  than that of `costfunction0000`. The optimization routine is repeated until the cost has been reduced by a desired amount. We have performed 10 optimization iterations and saved the diagnostics for each.\n",
    "\n",
    "To assess our assimilation experiment, we create a wrapper to `xmitgcm.open_mdsdataset` to concatenate diagnostic datasets from multiple optimization iterations along a new axis `ioptim`. Note that this function is not particularly robust, in that we use knowledge of the directory structure:\n",
    "\n",
    "```\n",
    "run/\n",
    "│\n",
    "└───iter0000/\n",
    "│   │   ...\n",
    "│   \n",
    "└───iter0001/\n",
    "│   │   ...\n",
    "│\n",
    "│   ...\n",
    "│ \n",
    "└───iter0009/\n",
    "    │   ...\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "3a04b19b-e2ec-48ed-89d7-ac39f0722e9e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "diagnostics from 10 optimization iterations loaded\n"
     ]
    }
   ],
   "source": [
    "def open_mdsdataset_optim(run_dir,\n",
    "                          nopts_max = None,\n",
    "                          iter_dir_pfx = 'iter',\n",
    "                          verbose=False,\n",
    "                          **open_mdsdataset_kwargs):\n",
    "    iter_dirs = np.sort(glob.glob(run_dir + iter_dir_pfx + '*/')).tolist()\n",
    "    iter_dirs = iter_dirs[:nopts_max]\n",
    "\n",
    "    ds_list = []\n",
    "    for this_iter_dir in iter_dirs:\n",
    "        if verbose: print(f'loading data from iter_dir={this_iter_dir}')\n",
    "        ds_i = xmitgcm.open_mdsdataset(this_iter_dir,\n",
    "                                       grid_dir = this_iter_dir,\n",
    "                                       **open_mdsdataset_kwargs)\n",
    "        ds_list.append(ds_i)\n",
    "        ds_i.close()\n",
    "    return xr.concat(ds_list, dim='ioptim')\n",
    "\n",
    "prefix = 'diags3d'\n",
    "\n",
    "ds = open_mdsdataset_optim(run_dir,\n",
    "                        prefix = [prefix],\n",
    "                        default_dtype=np.float32,\n",
    "                        delta_t=900,\n",
    "                        ref_date='1979-01-01 00:00:00'\n",
    "                            )\n",
    "ds['XC'] = xr.where(ds.XC > 180, ds.XC - 360, ds.XC)\n",
    "ds['XG'] = xr.where(ds.XG > 180, ds.XG - 360, ds.XG)\n",
    "\n",
    "nopts = len(ds.ioptim)\n",
    "print(f'diagnostics from {nopts} optimization iterations loaded')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0903294b-f795-46f4-9c9e-c010f18c34e9",
   "metadata": {},
   "source": [
    "### Plot the cost function reduction\n",
    "We find that from optimization iteration one to two, a considerable decrease in the cost $J$ is achieved. After a few more iterations, the cost plateaus. The cost reduction is an indicator of a successful assimilation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "e056984f-dac3-490d-ac6a-c4af02ddfd6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "costs = []\n",
    "for ioptim in range(nopts):\n",
    "    run_dir_i = f'{run_dir}/iter{ioptim:04d}'\n",
    "    costfunction_filename = f'{run_dir_i}/costfunction{ioptim:04d}'\n",
    "    field_name = 'fc'\n",
    "    costs.append(grep_cost(run_dir_i, ioptim=ioptim))\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "x = np.arange(nopts)\n",
    "ax.plot(x, costs, 'k')#, alpha=.5)\n",
    "ax.scatter(x, costs, c='k')#, alpha=.5)\n",
    "ax.set_title(r'Cost function', fontsize=30, pad=20)\n",
    "ax.set_ylabel(r'$J$', fontsize=18)\n",
    "ax.set_xlabel('Iteration', fontsize=18)\n",
    "ax.semilogy()\n",
    "yticks = [1e7, 5e6, 1e6, 5e5]\n",
    "ax.set_yticks(yticks)\n",
    "ax.set_xticks(np.arange(nopts))\n",
    "ax.set_ylim(1e6, 4e7)\n",
    "ax.tick_params(axis='both', labelsize=16)\n",
    "fig.tight_layout()\n",
    "fig.set_size_inches(6, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b446c18c-639c-499a-a279-cb7e815494cf",
   "metadata": {},
   "source": [
    "### Visualize the misfit reduction\n",
    "Lastly, we can give a qualitative \"eye test\" to assure that the assimilation did what we expected by looking at the model SST on day 6 before and after optimization."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "cf849af4-f18d-4e72-8620-4e57651a5ba7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAIZCAYAAAB3ZYx/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACZA0lEQVR4nOzdd3wUdf7H8femJ5AECL2YBEFABUSa9CICNkD0RBEQBDtyyM+GqMB5ih6e5eTQAykW5FAsiCDSQXoRUKRD6B3Se7Lz+4PLms2mz2Y2JK/n45HHIzPz/cz3s5NkP5vPzszaDMMwBAAAAAAAAFjIy9MJAAAAAAAAoPyhKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACW8/F0AgAAAGVd165dtWbNGseyYRgezObqtnfvXv3xxx86deqU0tLSVLt2bdWvX19t27aVlxfvtwIAcDWhKQUAQCkXERGhY8eOOZZXrVqlrl27ei4hwGKGYWj69On697//rd9++y3XMbVr19aQIUP0yiuvqEKFChZnCAAAioO3kwAAKGO6du0qm83m+II5R48edTqeQ4cO9XRK5cq5c+fUs2dPPf7443k2pCTp9OnTeuutt9S8eXNt27bNwgwBAEBxcaYUAAAASqXExETdcccd+vXXX53W161bV82aNVNAQID279+vP/74w7Ht8OHD6tmzpzZu3KhGjRpZnTIAACgCzpQCAABAqTR06FCnhlRwcLC+/PJLHTt2TIsWLdI333yj3bt3a9OmTU4NqOjoaN15551KTk72RNoAAKCQaEoBAACUsNWrV8swDMcXCrZu3TrNnz/fsezn56eVK1fqwQcfdLmhedu2bbV+/Xpde+21jnWHDx/WBx98YFm+AACg6GhKAQAAoNQZN26c0/LLL7+sVq1a5Tk+LCxMn3zyidO6t99+W3FxcSWSHwAAMI+mFAAAAEqVY8eOae3atY7lwMBAjRo1qsC4rl27qk2bNo7lmJgY/fDDDyWSIwAAMI8bnQMAgELJyMjQli1bdOTIEV24cEGpqamqVq2aIiIi1KFDBwUEBLh1vvPnz2vz5s06c+aMLl68qIoVK6p379667rrr8oy5fPmy9uzZo4MHD+ry5ctKSUlRSEiIwsLCdNNNN6lJkyZX7ScSnj59Wps2bdK5c+cUHR2t0NBQVatWTa1bt1ZkZKTb5ztx4oS2bt2qkydPKjk5WVWrVlXTpk3VqlUrl8vn3O27775zWu7Xr58qV65cqNhhw4Zpy5YtjuVvv/1WgwYNcmt+AADATQwAAFCqhYeHG5IcX6tWrXIZM378eKcxhf3q0qVLgfPv2bPHGDhwoBESEpLnfgIDA40BAwYY+/fvL9bjCg8Pd6xfu3at0aNHD8Pb29tlnvfee89lP5s2bTLGjBljNG3a1LDZbPk+3rCwMOPFF180zpw5U6T8ivI1a9Ysl3116dLFaUxhZWZmGl988YXRvHnzfOe87rrrjClTphhpaWmF3ndevwfr1683evToYXh5eeU6V40aNYx//etfRmZmZqHnKqpevXo5zfmf//yn0LF79+51iq1QoUKJ5goAAIqPy/cAAECuMjMz9eyzz+rGG2/Ul19+me+9eZKTkzVv3jzdcMMNpm4u/dprr6lr165avny5MjMzCxz/7bff6pZbbtG7776r33//vcCbiF+6dElvv/22brzxRi1btqzYeVrhzJkzateunQYNGqRdu3blO/bAgQMaOXKkmjZtqoMHDxZ7zjfffFOdO3fW8uXLZbfbcx1z7tw5jRo1Svfdd5/S0tKKPVd+du/e7bTcrl27Qsc2btxYVapUcSwnJibq6NGj7koNAAC4EZfvAQAAF8nJyerXr5+WLl3qtN7X11c33XST6tatK39/f509e1ZbtmxRUlKSpCuX+I0ePVrR0dGaMGFCkeZ8//339frrrzuWw8PDdeONNyokJETnzp3Tjh07XGJyNk68vb3VsGFDRUZGKiQkRDabTZcuXdLvv/+us2fPOsZdunRJd955p9asWVOkhodVjh07pi5duujYsWNO64ODg9WmTRtVr15dly9f1rZt23Tp0iXH9v3796t9+/Zavny5mjdvXqQ533nnHaebizdq1EiNGjVShQoVdObMGW3atEkpKSmO7d99951effVVvf3228V8lLmLi4vTqVOnnNZl/1S9wqhfv74uX77sWN6zZ4/q16/vlvwAAIAbefpULQAAkL/CXL4XHR1tREVFGVFRUUbbtm2dxmetz+0rr8vYhg0b5rSP0NBQ47333jPi4uJcxiYlJRnvvPOOERAQ4Bhvs9mMxYsXF/pxBQYGGj4+PoYko127dsamTZtcxqekpBinTp1yWvf1118blSpVMkaOHGn8/PPPRnJycp7zbdiwwejWrZvT47rmmmuM1NTUXMefOHHCiIqKMn755RenmHvvvTffYxofH++yr6Jcvpeenm60a9fOaXzFihWNDz74wOXxpaenG59//rlRtWpVl8v5cssju+zjq1Sp4rhcr1+/fsbevXtdxl++fNkYOnSoU5y3t7cRFRWV7zxFtX37dqc5qlatWuR99O/f32kf7777rltzBAAA7sGZUgAAlAGVKlVSpUqVJMnlhuMRERFF2tfXX3+tWbNmOZbDw8O1evXqPPcTGBio//u//1O7du106623KiUlRYZhaNSoUdq/f3+hboqdnJwsSbrrrrv0zTffyM/Pz2WMv7+/ateu7bSuS5cuOnXqlIKCggqco127dlqxYoWGDx/ueHzHjx/Xl19+qaFDh7qMr1u3bq77qVixYpGPaVFMnTpVGzdudCxXqFBBS5cuzfWMLh8fHw0aNEgtW7ZU586ddfHiRUlXLuebOHGiJk+eXKg5s84qeuGFF/I886ly5cqaNWuWoqOjtWDBAklXLvGcMWOG0xluZsXExDgtV69evcj7yBkTGxtrJiUAAFBCuKcUAABwMAxDf/vb3xzLPj4++uGHHwrVhGnfvr1T7KFDh/T9998Xeu5q1arp008/zbUhlV9MYRpSWWw2m6ZMmeLUtJgzZ06h40ua3W7X+++/77TurbfeKvASwyZNmujjjz92Wjdt2jTFx8cXeu6OHTtq0qRJBY574403nJZXrlxZ6DkKIyEhwWk5MDCwyPvIGVOU4wAAAKxDUwoAADisWrXK6SbTDz30kJo1a1bo+KefftrpTK0ffvih0LGPPfaY0w2qS0pQUJBuv/12x/LmzZvzvKm31dauXauoqCjHct26dfXUU08VKvbee+9Vq1atHMtxcXH67rvvCj33uHHjCnVW2w033ODUpNy5c2eh5yiMnE2pnGf+FUbOplTOfQIAgNKBphQAAHDI+Yl0AwYMKFJ8UFCQ2rRp41j+5ZdfCh3br1+/Is1VkJSUFF24cEHHjh3T0aNHnb6Cg4Md4+Lj43Xy5Em3zl1c69atc1p+8MEHC9UoyjJkyJB895eXwMBAde/evdDzNGnSxPF9UlJSiTZ9bDabJTEAAMB63FMKAAA45GxiVKlSRUePHi3SPkJCQhzfHz16VHa7vcDGire3d5HOyMrN5s2b9fXXX2vjxo36448/inQfoejoaF1zzTWm5neHbdu2OS23b9++SPE5x2/durVQcddee22RLpusXLmy03JsbKwqVqxY6Pj85NxP1v3GiiJnjLtyAwAA7kVTCgAAOJw4ccJp+ZZbbjG1P7vdrpiYmAIvywsNDS1SUyS73bt36+mnn9batWuLFS+Vnhthnz9/3mn5uuuuK1J848aN891fXnI2mQri6+vrtJyenl6k+PzQlAIAoPygKQUAABwuXbrk9n3Gx8cX2JTKfjldUaxbt0533HGH6RtZl5Z7SkVHRzsth4aGFim+QoUK8vHxUUZGhqQ/P1WvIEW5RLCk5XzMFy5cKPI+cjbjsj6ZEgAAlC6l5xUIAADwuLS0NLfv0zAMt+9TunIj7/vvv9+pIRUaGqrHH39cc+fO1Y4dO3Tu3DklJiYqMzNThmE4vsaPH18iOZmV81iZvTfS1XhvpYYNGzotX7hwQUlJSUXax7Fjx/LdJwAAKB04UwoAADhUrVpVp0+flnTlU8+SkpJKbWPj448/1pkzZxzLbdu21cKFC1WtWrUCY+Pi4koytWLLeUZZbGysateuXej4xMREx1lSUtEvyysNQkJCVLt2bcfvoSQdPnxYTZs2LfQ+sn+CoeR8Y3YAAFB6cKYUAABwqFGjhuP7lJQUHT9+3IPZ5G/BggWO7202m7788stCNaQkOTU8SpPq1as7LR84cKBI8fv37893f1eLG2+80Wl548aNhY7dt2+f02WoQUFBioyMdFtuAADAfWhKAQBQxpg5synnp7ctXbrUbDol5uDBg47vmzRpovr16xc6tihNDivPFGvVqpXT8oYNG4oUn3N869atTefkCb1793ZaXr16daFjc47t1atXqbpnFgAA+BMVGgCAMsbf399pOTU1tdCxvXr1clr+5JNP3JJTSYiJiXF8X5Qbgq9cubJIZ4CZOZ5F1bFjR6fluXPnFukm7J9//nm++7ta3HPPPU7L33//vdPPOz+zZ8/Od18AAKD0oCkFAEAZk/OTxrLfd6kgt99+u6699lrH8pYtWzRz5kx3peZW2e+XdPDgwUI1b9LT0zV27NgizWPmeBZV586dnS41O3HihP7zn/8UKva7777Tli1bHMshISHq16+fu1O0REREhDp16uRYTk5O1gcffFBg3Jo1a7R582bHcqVKldSnT58SyREAAJhHUwoAgDIm502di3IJno+Pj/72t785rXvyySf17bffFjmP5cuX68iRI0WOK6zmzZs7vr948WKBZ3VlZmbq8ccfd2rcFEZAQIAiIiIcy1u3bi30WTtF5eXlpb/+9a9O61588cUCc96/f7+eeOIJp3WPPvqoQkJC3J6jVd58802X5W3btuU5/vLlyxo+fLjTuhdffLFIZ9EBAABr0ZQCAKCM6datm9Py888/r3/84x/atGmTDh06pKNHjzq+zp496xI/cOBAPfLII47ltLQ03XvvvXrooYe0ffv2POfNzMzUjh07NHHiRF1//fW67bbbSvRG6QMGDHBaHjlypP71r38pLS3NZezWrVvVvXt3zZo1S5IKfUP0LNmPaVJSknr37q158+Zp9+7dioqKcjqmCQkJxXg0f3r66afVtm1bx3J8fLxuu+02TZ061eXSwYyMDM2ZM0edOnXS+fPnHesbNGig8ePHm8rD0zp27Kj77rvPsZyWlqZbb71V//3vf13Oitu8ebPat2+vw4cPO9Zde+21GjVqlGX5AgCAorMZhmF4OgkAAJC3iIgIHTt2zLG8atUqde3aNd+Y1q1b53tWSZYuXbrkehPp9PR0DRgwQN99953LtmrVqql58+YKCwuTl5eX4uLidPr0ae3du1cpKSlOY/PLNfvjCg8P19GjRwvMN7uMjAy1bNlSv/32m9P6ypUrq23btgoLC1NsbKx2797ttO8uXbqoY8eOeuONNwqVpyTt3LlTrVu3VkZGRoF5zZo1S0OHDnVa17VrV61Zs8axXNDLr6ioKHXp0kUnTpxwWh8SEqK2bduqatWqio6O1rZt23Tx4kWnMVWqVNHy5cvVokWLfOfIfgP3vH4P8jJ06FB9+umnTvlmP5vMXRITE9WpUyft2LHDaX29evXUvHlz+fn56cCBA9q9e7fT9sqVK2vjxo1q1KiR23MCAADu4+PpBAAAgPvNmzdPd955p/bt21eseF9fX33zzTeaPHmyxo8f79RsunDhgpYvX16ofVSoUKFY8xeGj4+PFi5cqO7duzudIRMdHa0lS5bkGtOjRw998803evfdd4s010033aRp06bpqaeecmm8lYTIyEht2rRJffr0cTo7LS4uTsuWLcszrmHDhlq4cGGZacZUqFBBixcv1qBBg7RixQrH+hMnTrg07LJce+21mjt3bpk5BgAAlGVcvgcAQBlUv3597dy5U1988YXuv/9+NWnSRKGhofLxKfz7UTabTS+88IKioqL00ksvKTw8vMCY4OBg3XHHHfr3v/+tM2fOqHXr1mYeRoGuueYa/frrrxo1apSCgoLyHNeiRQv95z//0c8//1zs+ywNGzZM+/bt09/+9jf16NFDdevWVYUKFZzOOHKn2rVra8uWLfr000/VrFmzfMc2bNhQ//rXv7R79+4y14ypWbOmli1bpo8//lhNmzbNc1ytWrX04osvateuXSX+ewcAANyDy/cAAEChRUVF6ddff9WFCxcUHR0tLy8vBQcHq3bt2mrcuLEaNmwob29vj+SWmJioDRs2aP/+/YqLi1NoaKhq1qyp5s2bq0GDBh7JyZ1OnTqlTZs26dy5c4qJiVFwcLCqV6+u1q1bq379+p5OzzJ79uzR7t27dfr0aaWlpal27dqqX7++brnlFnl58X4rAABXE5pSAAAAAAAAsBxvJwEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFmDBhwgTZbDbZbLYSm6Nr166y2Wzq2rVric0BAAAAlFe8pgc8h6YULLd69WrHk77NZlNwcLCSkpIKjEtOTlZoaKhT7OrVq0s+4TLCMAz9+OOPGjhwoBo2bKiKFSsqICBA9erVU8uWLfXggw/q448/1t69e/Pdz+XLl/XPf/5TPXr0UM2aNeXv76/Q0FA1bNhQHTt21OjRo/X999/r0qVLjpihQ4c6/dyK8zVhwoQSPkIASpOctSLry8fHR1WqVFFkZKQ6d+6sZ599Vt98843S0tI8nbLHpaena+7cuerfv78iIiIUFBSkoKAghYeHq02bNho6dKhmz56tqKiofPdz6tQpTZw4UZ06dVK1atXk5+enKlWqqHHjxurWrZteeuklLVmyRPHx8Y6YrH+2zHzNnj27hI8QAHfiNf3V6+jRo7k+D3t7e6tSpUoKDw/XLbfcoqefflqff/65EhISPJ0yyjAfTycAJCQk6Pvvv9fAgQPzHbdgwQLFxcVZlFXZcv78ed1///1as2aNy7aTJ0/q5MmT+vXXX/Xf//5XkrR37141btzYZeyiRYs0dOhQXbx40Wl9Wlqa4uLidOjQIa1fv14ffPCB2rZtq02bNpXMAwJQbmVmZio6OlrR0dE6evSofvnlF73//vuqVq2aRo0apZdeekk+PiX78ibrnfTx48eXmob5wYMHdd999+m3335z2Xb8+HEdP35cW7du1aeffirpyj+FAQEBLmNnzZqlZ555RomJiU7rs475/v37tXr1ar399tsaMGCAo24AAK/pr352u12xsbGKjY3V8ePHtXnzZk2dOlXBwcEaMWKEXn/9dVWoUKFEc4iIiNCxY8f08MMP82ZFOUFTCh4VEBCglJQUff755wUWsM8//9wpBoWTnp6uXr16aefOnZKkFi1aaNiwYbrpppsUHBysuLg47d27V2vXrtWiRYsUGxub637Wr1+ve+65R+np6fL29taDDz6ou+++W5GRkfL29ta5c+f066+/asmSJdqwYYNT7BtvvKHnnnsu1/0uWLBAr7zyiiTp73//u/r27ZvruOrVqxfzCAC42j355JN66qmnHMsJCQmKjo7Wb7/9phUrVmj58uW6cOGCXn31VS1cuFA//vijqlWr5sGMrXX58mV1795dJ0+elCR16dJFgwYN0vXXX6+goCBFR0dr9+7dWrVqlZYsWaLk5ORc9/PVV19p+PDhMgxDAQEBGjZsmHr16qW6devKMAydPn1a27Zt06JFi/Trr786xc6aNculkZVl6tSp+uijjyRJM2fOVOvWrXMdV7du3eIeAgAexmv6q1ffvn3197//3bGclJSkmJgY7dmzR2vWrNGPP/6o+Ph4vffee1q0aJF+/PFHNWzY0IMZo6yhKQWP6tOnj7766istW7ZMZ8+eVc2aNXMdd/78eS1dulTSlSfOefPmWZnmVe2TTz5xNKSGDRumTz75RF5ezlfudu7cWY8//rhSU1M1d+5cVapUyWU/Y8aMcTSklixZoh49eriMuf322zVu3DgdO3ZMK1ascKyvU6eO6tSpk2t+27Ztcxp34403FuNRAijLqlevnutzw+23364XX3xRf/zxhwYPHqwdO3Zoy5Yt6t+/v1asWCE/Pz8PZGu9t99+29GQyuvsrW7duumZZ55RfHy8Zs2aJW9vb6ftmZmZGj16tAzDUHBwsNatW6dmzZq57KdPnz7629/+pr179+r33393rI+MjMwzv+xvKkRGRvI8D5RBvKa/elWqVCnX5+WePXtq9OjROn78uEaMGKFly5bpwIEDuuuuu7R58+Zc/18AioN7SsGjevbsqZo1ayozM1Nz587Nc9zcuXOVkZGhGjVq6LbbbrMww6vf999/L0ny8fHRu+++69KQys7f319Dhw51eSFx+vRpbdmyRZJ0zz335NqQyi48PFyPPPKIucQBoJBuuOEGrV+/Xi1atJAkrVu3TlOnTvVwVtbJep6vUaOGXnvttXzHBgcHa9SoUfL19XVav2XLFp05c0aS9Pjjj+fakMquSZMmuv/++4ufNIAyhdf0Zdc111yjn376SXfeeack6cCBA6Xm0nWUDTSl4FFZl4FJf57Km5vPPvtMkjRw4ECXd3fzkpaWpqlTp6pbt26OG7XWrFlTd9xxh7744gvZ7fYC93Hy5Ek9/fTTql+/vgICAlS7dm316dNHy5cvL1QOWZKSkvT++++rW7duqlGjhvz8/FS9enX17NlTs2bNUmZmZpH2VxTHjh2TJFWtWrXY72gcP37c8X2DBg3ckRYAuFVgYKA+//xzx/2e3nnnHaWnp7uMi46O1qxZsxyXt1WsWNFRH3r16qVp06bledP0iIgIp09mmjhxostNYocOHeoUc+bMGU2dOlX33XefGjZsqAoVKsjf31916tRxnCVQmHqUn6zn+cjIyHzfeCjMPiSe5wEUHa/pS/41vSd5e3tr9uzZCgoKkiRNnz7d5R6zkpSYmKh58+ZpxIgRuummmxQaGipfX19Vq1ZNXbp00TvvvJPnTdOzPjAjqx59+umnLjU25ycXmqnpKEUMwGKrVq0yJBmSjFmzZhm//vqrY3n37t0u4//44w/H9l9//dWYNWuWY3nVqlW5znH06FGjSZMmjnG5fXXs2NG4dOlSnnmuXr3aCAkJyTN+4sSJxvjx4x3LedmyZYtRp06dfHNp06aNcfbs2Vzju3TpYkgyunTpku9xzUvTpk0NSYbNZsv38eZn+/btjlz79u1brH3kJfvPc9asWW7dN4CrV/ZaMX78+ELH9ezZ0xG3fv16l+3h4eH5Ph9LMlq0aGGcOXOmWLEPP/ywY3xGRobh5eVVYMxtt91mxMfHF+cwGYZhGMHBwYYko2rVqkZ6enqx9vHNN9848vnrX/9a7Fxyk71W5lW3AVx9eE1v7Wt6d4qKisq1bhXksccec8TNmTPHZXvWY8zvKzIy0ti7d2+xYnMeOzM1HaUHZ0rB41q0aOG4jjm3d1ay1t1www2OSzPyk5CQoO7du2vv3r2SpH79+umHH37Qtm3b9PXXX6tLly6Srlzecdddd+X6jsbRo0d19913Ky4uTl5eXnriiSe0fPlybd26VTNmzFDDhg01fvx4LVq0KN9cfv/9d3Xr1k2nTp1S9erVNX78eC1fvlw7duzQzz//rKefflo+Pj7asmWL+vbtm+u7+mZlHTPDMPToo48W6yNdmzRp4viUph9++EFz5sxxa44A4C7ZLy/+5ZdfXLZnZmaqbdu2ev311/Xjjz9q69atWr9+vb744gv17t1bkrRjxw498MADLrFLly51uo/Sk08+qd9//93p64033nBsNwxDktS9e3dNnjxZS5Ys0fbt27V69WrNnDlT7dq1kyQtW7ZMTz/9dLEfc9bz/MWLFzV69OhivSucvb7+5z//0cqVK4udD4Dyidf0JfuavjQoqMZmZGSoadOmGjdunL777jtt3rxZmzZt0rx58/TAAw/Iy8tLUVFR6tevn8tN7mfNmqXff/9dtWvXlnTlnmM5a+ysWbOcYszUdJQinu6KofzJ+a6KYRjG22+/bUgy6tata2RmZjrG2u12o169eoYk46233jIMwyjwXZXnnnvOsf2VV15x2W63242HHnrIMWbq1KkuY/r37+/Y/uWXX7psj4uLM5o3b+7Uhc9tnmbNmhmSjObNmxsXLlzI9Xj89NNPjnfSP/nkE5ftZt9V2bx5s9M79aGhocagQYOMjz76yPj1118L/a76yJEjnR5vkyZNjOeee86YP3++ceLEiWLlZhicKQUgd8U9U2r58uWOuEceecRl+4EDB/KNnzlzpiN++fLluY4pbF52u904ePBgvmNee+01Q7pyNmtBueVl/vz5Ts/PNWrUMEaMGGHMnDnT+OOPPwy73V6o/dx1111O+2nVqpXxyiuvGAsXLjTOnz9frNwMgzOlgLKK1/TOSvo1vTsV90ypQ4cOOeK6d+/usr2gOrZs2bJ8j5Fh/Hn2U2HyckdNh+fRlILlcitgJ0+edDxBrVy50jF25cqVhiTDy8vL0fjIr4ClpKQYlSpVMiQZ119/vZGRkZFrDrGxsUZYWJhjXHanT582vL29DUnGXXfdlefj2Lx5c74FbOHChY5tu3btyveY3H///YYko0OHDi7b3FHApk2bZvj6+uZ6SmuFChWM2267zZg2bZqRkJCQ5z6SkpKM22+/Pc9TY6+55hpj2LBhRf6Hg6YUgNwUtym1Y8cOR9w999xTrLlbtGhhSDJGjhyZ6/bi5JWXjIwMo2rVqoYk45133in2fsaPH2/YbLZcn58rVapk9OnTx5gzZ46RlpaW5z4uXLhgtGrVKs/n+euuu84YOXKksX379iLnRlMKKHt4Te+qpF/Tu0txm1LR0dGOuBYtWhRr7n79+uX7MylKU6owCqrp8Dwu30OpUKdOHXXr1k2S8+m+Wd937dpVdevWLXA/27dvV0xMjCRp6NChed5AMSQkxPGpQXv27HF84pAkrVq1ynH677Bhw/Kcq02bNrrhhhvy3L5gwQJJUqNGjQr8FKPOnTtLkrZu3VoiN0h89NFHtWvXLg0ZMkQVKlRw2paYmKhly5bpscceU8OGDbVkyZJc9xEYGKhFixbpyy+/dFxykt3x48c1a9YsdevWTb1799aFCxfc/jgAoCAVK1Z0fB8fH5/vWMMwdPbsWR04cEC7d+92fGVdOrBr1y635ma323X69Gnt37/fMdfevXsd9c3MfBMmTNCGDRt0zz33yM/Pz2lbTEyMfvjhBz300EO64YYbtG3btlz3UbVqVW3YsEEfffRRrnXrwIEDmjJlilq2bKnBgwcrMTGx2PkCKJt4TV+yr+k9rSg1VpIuXLiggwcPOtXYatWqSXJ/jbW6psN9fDydAJBlyJAhWrFihebPn69///vfkqRvvvlGkjR48OBC7WP37t2O79u2bZvv2LZt2+qjjz5yxNWqVUuSnO4X0rp163z30aZNG/3xxx+5bst60b9//36nT2vKT1pami5fvux4snanJk2a6NNPP9W0adO0ZcsWbd68WTt37tSaNWt08uRJSVc+Jequu+7SkiVLnK4Zz2Kz2fTggw/qwQcf1Llz57Ru3Tpt375d27Zt07p165ScnCxJ+vnnn9WtWzdt2rTJqXgBQEnL/iI5JCQk1zGLFi3SRx99pLVr1+b7ojq3TxYqKsMwNGfOHM2YMUObN292PE+WxHy33HKLvv32WyUmJmrDhg3aunWrduzYoTVr1jjeKDh48KC6du2qTZs2Oe79kp2vr6+eeOIJPfHEEzp+/LjWrVunX3/9VVu2bNGmTZsc90n54osvdPr0aS1durTQn6AFoHzgNb37X9PHxMQ4Xq/n5Ofnp+uuu84t8xSkMDV2/fr1+te//qXly5fr8uXLee7LHTVWsramo2TQlEKp0b9/fz355JOKj4/XggULZBiG4uLiFBgYqHvvvbdQ+8j+xFejRo18x9asWTPXuOjoaMf31atXz3cf+c1x/vz5fGPzkpSUVKy4wvL391enTp3UqVMnx7qVK1dq1KhR+uOPP5SZmamnn35a+/bty7fw1qhRQ/fee6/jZ5OQkKD//Oc/euWVV5SSkqI//vhD77//vl555ZUSfTwAkF32F51VqlRx2mb87wMfZsyYUah95ddAKoyUlBT1799fP/30kyXzZalQoYJuu+023XbbbZKu3Ah24cKFGjVqlE6cOKHExESNHj26wI9Cv+aaazRw4EANHDhQ0pVa+c477+jtt9+W3W7XypUrNXfuXA0aNMgteQMoG3hNf4U7X9N///33eZ7tFR4erqNHj7ptrvzkV2OlK2ftTpw4sVD7MlvzrK7pKDlcvodSo2LFirrnnnskXTnFN+s03379+ik4OLjI+yvonQzjf5+KlN/64u5DkuOU3Q4dOrh8ckR+X1mnmFqpe/fuWrZsmaO4HDhwQDt37izSPipWrKj/+7//0/vvv+9Y9/XXX7sxSwAo2I4dOxzfN2rUyGnbzJkzHS9eb7rpJs2ePVt79+5VXFycMjIyZFy516bjnfz8nuML44033nA0pLp06aKvvvpKhw4dUkJCgjIzMx3zZb1JYHa+vHh7e6tfv35atGiR49K+lStX6tKlS0XaT5UqVfTmm2/qhRdecKzjeR5ATrym99xr+pKWX41dsWKFoyFVv359TZ06Vb/99ptiYmKcauyrr77qllysrukoOZwphVJlyJAhmjNnjpYuXepYV9jTfCXnjv3Zs2fzPZX13LlzucZl//7cuXOqV69envvI752TsLAwnTt3ThcuXMj1EonSplatWrrzzjsdLxwOHTpUqI/rzWnYsGEaOXKkMjIydOjQIXenCQD5WrZsmeP7jh07Om2bPn26JOnaa6/Vhg0bFBgYmOs+sr+7XlyGYeiTTz5x5LFy5Up5eeX+XqA75iuMpk2bqm3btvrll19kGIaOHDmisLCwIu/n0Ucf1VtvvSVJPM8DyBWv6d1r6NChGjp0qEfmzq4wNbZSpUrauHFjnmenuavmWVnTUbI4Uwqlyq233qpatWopIyNDGRkZqlGjhnr27Fno+OyFYvPmzfmO3bJlS65xTZs2dXy/devWfPeR3/ashs6BAwd07NixfPdTWmR/Ryevf54K4ufn5/gnp7j7AIDi2L17t1asWCFJqlevnlq1auW0Pet+IX379s3zxathGPr1119N53L58mWdPXtWknT//ffn+XyYkJCg/fv3m56vsNzxPO+OfQAo23hNX/ZcuHBBX375paQrl4nn/Hlm1dju3bvne7lkXh+2kaWw9+2ysqajZPFKAqWKt7e3Bg8eLH9/f/n7+2vQoEFFuoFqy5YtValSJUnSp59+muenXsTHx+urr76SJF1//fWOGyJKUrdu3Rxzfvrpp3nOtW3bNqebMObUp08fx/f/+Mc/Cv0Y3K0op6pmLxKRkZHF2seJEycc7zZl3wcAlKTk5GQNGTLE8Xz13HPPycfH+YTwjIwMSfnf5+OHH37Q6dOn850rICBAkpSamprnmKy5CppvxowZjpuHF1dhn6Ozvzi32WwKDw8v8j6kvGsFAGThNX3ZYrfbNXToUEc9e+yxx1zuKVWYGrtz505t2rQp37kKU2MLO19hajo8j6YUSp23335bKSkpSklJ0TvvvFOkWH9/f40YMULSle55bjfaMwxDI0eOdNyob+TIkU7ba9Wqpb59+0q68kSWVeiyS0hI0GOPPZZvLvfee6+aNGkiSfroo48KvAnf7t27tXDhwnzHFEf//v01derUAj+6e/bs2Y4zDK655hqnS/f27Nmjnj17au3atfnuIyUlRY899pjjn5us4wgAJWnPnj3q2LGj414XXbp00ZNPPukyrmHDhpKkhQsX5no6/+HDh/XUU08VOF/WPz2HDx/Oc0y1atUc/1D997//VVpamsuYrVu3uuXDIDp37qw5c+bkOkd2EydO1MGDByVduTdK1apVHdt++ukn3X///U73C8nN5cuXNWrUKMcyz/MA8sJr+rLh+PHj6t27txYvXixJaty4scaPH+8yLqvGrlu3TkeOHHHZfuHChUJ9MEZhamz2+czWdHge95RCmfPaa6/p22+/1ZEjR/T6669r9+7deuSRR1S7dm1FRUVpypQpWr16tSSpXbt2uRaif/7zn1q2bJni4+M1cOBArVmzRvfdd59CQkL022+/6a233tKBAwfUqlWrPE9B9fb21rx589S+fXslJCRoxIgR+vrrrzVw4EA1atRIvr6+On/+vHbs2KEff/xRGzZs0P/93//p7rvvduvxOHHihJ5++mm9+OKLuvvuu9W5c2c1atRIlStXVkpKivbt26evv/7aUWhsNpvee+89p1NnDcPQsmXLtGzZMjVo0EB9+/ZV27ZtVbduXQUFBenixYvasmWLpk+frqioKElXGlvPPfecWx8LgPLp/PnzTu9iJyYmKjo6Wr/99ptWrFihZcuWOZrht9xyi+bPny9fX1+X/QwZMkTPP/+8Tp06pfbt2+uFF17QDTfcoJSUFK1cuVLvv/++UlNTdfPNN+d7un/79u0VFRWlH374Qf/5z3/UoUMHxzu7ISEhql69ury8vPTQQw/p3//+t3bu3KlOnTrp2WefVYMGDRQbG6vFixdr6tSpqlixomrXrq0DBw4U+/js3btXgwYN0qhRo9SvXz917NhR1157rUJDQ5WQkKDff/9dX3zxhdavXy/pymXWOf9BtNvt+vrrr/X111+refPmuvPOO9W6dWvVqlVLfn5+On/+vNatW6dp06Y5zoZt2bKlHn744WLnDQD54TW9NWJiYpxqbHJysmJiYrRnzx6tXr1aP/74o+OspEaNGunHH39UaGioy36GDBmihQsXKiEhQV26dNGLL76oli1byjAMbdiwQe+++67Onj2rdu3aaePGjXnm0759e61atUpbt27VW2+9pdtvv10VKlSQJAUGBqpOnTqO+dxR01EKGIDFVq1aZUgyJBmzZs0qcvysWbMc8atWrcp1TFRUlNG4cWPHuNy+OnToYFy6dCnfPIODg/OMHz9+vDF+/HjHcl527dplNGzYMN9csr4mTpzoEt+lSxdDktGlS5eiHirDMAyjb9++hZpbkhEaGmp89tlnLvs4cuSIUbly5ULvp1WrVsbhw4cLlV/2n2dxfh8AlE3Za0VhvqpVq2a88cYbRnp6ep77TEtLM3r27JnnPgIDA42vvvrKePjhhw1JRnh4eK772bFjh+Hv75/rPh5++GHHuJiYGOOmm27Kc74qVaoYa9asMf0837x580Ifp1q1ahlLlixx2ce6deuM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DlVERIQkKSQkRE2bNlW7du3UvXt3JScn64svvtBjjz0mSY4ClJSUJOlKYcpNQECAY8zVxszxyy4mJkbffPONGjRooM6dOztt4/j9Kev4xcfHS5JSU1O1fv16VatWTZJ0//33q0uXLpo5c6aef/55NW7cmOOXTfbfv0WLFjltu//++9WvXz91795dzz77rJYuXSqJ37/ssh+/l156SRkZGXrrrbfyjblajh+1wBxqgTnUAnOoBeZQC/5ELTCHWmAOtcAcaoE5V2UtKOZZXaVOfHy8IanQX6tWrTIMwzDOnDljhIWFGS+99JLLPrt3724EBgYaZ8+eNQzDMC5evGhIMu6///5cc2jVqpVRrVq1EnuMJam4xy+nf//734YkY9KkSS7bOH6uxy/rRnADBw502efMmTMNScZHH31kGAbHrzC/f9l17drV8Pb2dlznzPFzPX7r1q0zbDab8dlnnzntT7mcpnu1HD9qgTnUAnOoBeZQC8yhFvyJWmAOtcAcaoE51AJzrsZaUGbOlKpYsaKuHLOimTZtmi5duqS//OUvLtvuv/9+rVy5Ups2bVLfvn1VuXJlBQYG6uTJk7nu69SpU3mewlbaFff45TRjxgz5+Pho6NChLts4fq6yHm+tWrVctmWtu3z5siSOX1FFRERo9erVio6OVmBgIMcvF08//bSaN2+uTp06uZxim5ycrKNHjyo4OFhhYWFXzfGjFphDLTCHWmAOtcAcasGfqAXmUAvMoRaYQy0w52qsBV5FzraMOXXqlCQpPT3dZVvWuoyMDEmSl5eXWrZsqR07dig5Odlp7NGjR3XmzBm1bt26hDMuvXbu3Klff/1Vd955p2rWrOmynePn6pZbbpEknThxwmXb8ePHJUk1atSQxPErqoMHD8rX11dhYWGSOH65OXr0qHbu3KnIyEinL0lau3atIiMjNW7cOEll//hRC9yHWlB01IKSQy0oGLXgT9QC96EWFB21oORQCwrmyVpQ7ptS119/vSRp9uzZTuszMjL02WefycvLS61atXKsHzhwoJKTk/XRRx85jX/33XclSYMGDSrZhEuxTz75RJKcbgKZE8fPWceOHRUZGakffvhBx44dc6xPT0/Xf/7zH/n4+Khnz56O9Rw/ZxcuXJDdbndZ/8MPP2j9+vXq2bOn07XOHD9nc+bM0XfffefyJUktWrTQd999pyef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/PjxQq1WC29vb/Hmm2+KS5cuWZxnQ0ODSEhIEOPGjRNWVlay+TY2NorExEQxduxYYWtrK6ZNmyb27dvX470BIPR6fY/xCSHEyZMnRVRUlBg/frxQKpVizJgxYvr06WLNmjWiqKio12uF6P25mJSVlYnIyEjh4OAgRowYIQICAkRubq4wGo09fmb6E1dbW5vYsGGDmDhxolCpVGLSpEnilVdeEQUFBQKAeOaZZyzGVVNTIzZs2CBmz54tHB0dhY2NjRg9erQIDAwU27dvFzdv3rR43e2eOxER0a+JQggLewSIiIiIfsVycnJgMBhgNBqRnJw83OH8Yt3L93n37t1ISEgwr7waLG5ubgCAK1euDFqfREREP1c8U4qIiIiIhtX69euhUCgwe/bsIR+7srJSdo5bRUUFNm7cCGtra4SGhg54jJKSEigUCigUCpSVlQ24PyIiol8KnilFRERERMPCzc0NRqPR/O8JEyYMeQybN29GVlYWAgIC4OzsjKtXr+LTTz9FQ0MDkpOT4erqOuAxtFqtZJ4ODg4D7pOIiOiXgEkpIiIiIhoWbm5uw75tLyQkBN988w2ysrLw448/Qq1WY9q0aVi5ciViYmIGZQytVjvs8yQiIroX8UwpIiIiIiIiIiIacjxTioiIiIiIiIiIhhyTUkRERERERERENOSYlCIiIiIiIiIioiHHpBQREREREREREQ05JqWIiIiIiIiIiGjIMSlFRERERERERERDjkkpIiIiIiIiIiIackxKERERERERERHRkGNSioiIiIiIiIiIhtz/AUpu21ZmTFfuAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x400 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAIZCAYAAAB3ZYx/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACZKUlEQVR4nOzdd3gU5drH8d+mEyChd0yCdAVEmvQiAjZA9ICCIAhiQ0ReGwcU0KOoWI8c9IAUUUQUCwKKdJBeBBTpEHqHkN533j84WbPZbNoksyH5fq4r15WZee557p0ke2/unZm1GYZhCAAAAAAAALCQl6cTAAAAAAAAQPFDUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAs5+PpBAAAAIq6Tp06ae3atY5lwzA8mM316/Lly1q/fr3Onj2rK1euqGzZsqpWrZpuvfVW1axZ09PpAQCAXKIpBQBAIRcaGqrjx487llevXq1OnTp5LiHAYkuWLNGbb76pzZs3y263u2y32Wxq3bq1nn32WfXt29cDGQIAgLzg8j0AAIqYTp06yWazOb5gzrFjx5yO5+DBgz2dUrERHR2tXr166Z577tHGjRszbUhJ184827hxo/r166f7779fERERFmcKAADygjOlAAAAUOjExMSoffv22r17t9P6wMBA3XbbbapcubKioqK0bds2XbhwwbH9+++/14ULF7R8+XIFBARYnTYAAMgFzpQCAABAofPII484NaR8fHz0+uuv6+LFi1q5cqW++uorLV68WGfPntXXX3+tihUrOsauX79ew4cP90TaAAAgF2hKAQAAFLA1a9bIMAzHF7L266+/6vvvv3cs22w2ff311xo3bpwCAwOdxnp5ealfv35at26dypYt61j/xRdfaNOmTZblDAAAco+mFAAAAAqVSZMmOS0/+uijuv/++7OMqV+/vj744AOndS+99FK+5wYAAPIPTSkAAAAUGlevXtX69eud1r3wwgs5ih0wYICqVavmWP7tt9905MiRfM0PAADkH250DgAAciQlJUVbt27V0aNHdfHiRSUmJqpixYoKDQ1V27Zt8/2m0hcuXNCWLVt09uxZXbp0SaVKlVKPHj1Ut25dtzFXrlzR3r17dejQIV25ckUJCQkKCgpS+fLldcstt6hBgwbX7ScSnjlzRps3b9b58+cVERGh4OBgVaxYUS1atFBYWFi+z3fy5Elt27ZNp06dUnx8vCpUqKBGjRqpefPm8vIquPc1N2zYoNTUVMdySEiI6tWrl6NYHx8f3X777friiy8c6xYsWMAZUwAAFFYGAAAo1EJCQgxJjq/Vq1e7jBk/frzTmJx+dezYMdv59+7da/Tv398ICgpyu58SJUoY/fr1Mw4cOJCnxxUSEuJYv27dOqNr166Gt7e3yzwffPCBy342b95sjB492mjUqJFhs9myfLzly5c3XnrpJePs2bO5yi83X7NmzXLZV8eOHZ3G5FRqaqrx5ZdfGk2aNMlyzrp16xpTpkwxkpKScrxvd78HGzZsMLp27Wp4eXllOlflypWNf//730ZqamqO58qNTz/91Gm+u+++O1fx77zzjlN8+/btCyRPAABgHpfvAQCATKWmpuq5557TzTffrK+++kpRUVFux8bHx2v+/Pm66aab9NFHH+V5zldffVWdOnXSihUrnM6Wcef777/Xbbfdpvfff19//vlntjcRv3z5st5++23dfPPNWr58eZ7ztMLZs2fVunVrPfzww06fQpeZgwcPasSIEWrUqJEOHTqU5znffPNNdejQQStWrJDdbs90zPnz5zVy5Eg98MADSkpKyvNc7ly5csVpuUyZMrmKzzj+zz//NJkRAAAoKFy+BwAAXMTHx6t3795atmyZ03pfX1/dcsstqlGjhvz9/XXu3Dlt3bpVcXFxkq5d4jdq1ChFRERowoQJuZrzww8/1Ouvv+5YDgkJ0c0336ygoCCdP39eO3fudInJ2Djx9vZWnTp1FBYWpqCgINlsNl2+fFl//vmnzp075xh3+fJl3X333Vq7dq1at26dqzytcPz4cXXs2FHHjx93Wl+6dGm1bNlSlSpV0pUrV7R9+3ZdvnzZsf3AgQNq06aNVqxYoSZNmuRqznfffVdjx451LNerV0/16tVTyZIldfbsWW3evFkJCQmO7T/88INeeeUVvf3223l8lJnz8/NzWk5MTMxVfMbxV69e1dmzZ1W1alXTuQEAgPxFUwoAgCJg1KhRGjx4sCTpwQcf1JYtWxzbwsPD3ca5uw/U008/7dSQCg4O1oQJEzR06FCVLl3aaWx8fLymTp2qcePGOZoWr732mlq1aqU777wzR/lfuHDBcTPr1q1b64MPPlCrVq2cxiQmJjo1YNKUKVNGDz/8sO6991516NDB7WPatGmTxo4dq9WrV0uSkpOT9eCDD+rQoUMujRBJWr9+vVJSUnTq1Cm1b9/esf7+++/Xu+++6/axVKhQIfsHnIWUlBQ99NBDTg2pUqVK6Y033tDw4cOdHl9KSoq+/vprPffcc7p06ZIk6dKlS+rbt6927NihUqVK5WjOP//8U7/99pskqXfv3po0aZLq16/vNCYiIkKjR4/W7NmzHevee+89PfnkkwoNDc3jo3VVvnx5p+WzZ8/mKj6z8QcOHKApBQBAYeTp6wcBAEDWcnJPqfTyev+iNN98841TfEhIiBEeHp5t3IYNG4yAgABHXO3atbO871Bm92y65557jMTExBzneuHCBSM2NjbH4+12uzFkyJBs7wGVXnh4uNP4Rx55JMfzpcnNz+Sjjz5yGluyZElj48aNWcbs3bvXqFChglPc888/n2VMxmMvyXjxxRezfSy9evVyihk3bly2MbmxefNmp/0HBgbm6neic+fOLo/rxx9/zNccAQBA/uCeUgAAwMEwDL322muOZR8fH/300085OhOmTZs2TrGHDx/Wjz/+mOO5K1asqM8//zzTs5ayigkMDMzxeJvNpilTpqhSpUqOdXPnzs1xfEGz2+368MMPnda99dZb2V5i2KBBA3366adO66ZNm6bo6Ogcz92uXTtNmjQp23FvvPGG0/KqVatyPEdONGvWzOkMr7i4OH333Xc5ij1+/LjWrl3rsj43xwEAAFiHphQAAHBYvXq19uzZ41geMGCAGjdunOP4p59+2unysp9++inHscOHD1e5cuVyPD6vAgMDnS4r3LJli9ubeltt3bp1Tpdb1qhRQ0899VSOYu+//341b97csRwVFaUffvghx3OPHTtWXl7ZvzS86aabnJqUu3btyvEcOeHj46N+/fo5rRs3bpxiYmKyjX3uuecy/VnSlAIAoHCiKQUAABwyfiJdxuZAdgIDA9WyZUvHctp9inKid+/euZorOwkJCbp48aKOHz+uY8eOOX2lvy9WdHS0Tp06la9z59X69eudlh966KEcNYrSDBo0KMv9uVOiRAl16dIlx/M0aNDA8X1cXFyOGka58dJLL8nH5+9bnx49elQ9e/ZUZGRkpuNTU1M1evRot0243BxDAABgHW50DgAA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oUIFx7ZffvlFffv2dbpfSGauXLmikSNHOpZ5ngfgDq/pi4YTJ06oR48e+vnnnyVJ9evX1/jx413GpdXY9evX6+jRoy7bL168mKMPxshJjU0/n9maDs/jnlIocl599VV9//33Onr0qF5//XXt2bNHjz76qKpVq6bw8HBNmTJFa9askSS1bt0600L03nvvafny5YqOjlb//v21du1aPfDAAwoKCtIff/yht956SwcPHlTz5s3dnoLq7e2t+fPnq02bNoqJidGwYcP07bffqn///qpXr558fX114cIF7dy5U4sXL9bGjRv1f//3f7r33nvz9XicPHlSTz/9tF566SXde++96tChg+rVq6eyZcsqISFB+/fv17fffusoNDabTR988IHTqbOGYWj58uVavny5ateurV69eqlVq1aqUaOGAgMDdenSJW3dulXTp09XeHi4pGuNreeffz5fHwuA4unChQtO72LHxsYqIiJCf/zxh1auXKnly5c7muG33XabFixYIF9fX5f9DBo0SC+88IJOnz6tNm3a6MUXX9RNN92khIQErVq1Sh9++KESExN16623Znm6f5s2bRQeHq6ffvpJ//3vf9W2bVvHO7tBQUGqVKmSvLy8NGDAAP3nP//Rrl271L59ez333HOqXbu2IiMj9fPPP2vq1KkqVaqUqlWrpoMHD+b5+Ozbt08PP/ywRo4cqd69e6tdu3a68cYbFRwcrJiYGP3555/68ssvtWHDBknXLrPO+A+i3W7Xt99+q2+//VZNmjTR3XffrRYtWqhq1ary8/PThQsXtH79ek2bNs1xNmyzZs30yCOP5DlvAMgKr+mtcfXqVacaGx8fr6tXr2rv3r1as2aNFi9e7DgrqV69elq8eLGCg4Nd9jNo0CAtWrRIMTEx6tixo1566SU1a9ZMhmFo48aNev/993Xu3Dm1bt1amzZtcptPmzZttHr1am3btk1vvfWW7rzzTpUsWVKSVKJECVWvXt0xX37UdBQCBmCx1atXG5IMScasWbNyHT9r1ixH/OrVqzMdEx4ebtSvX98xLrOvtm3bGpcvX84yz9KlS7uNHz9+vDF+/HjHsju7d+826tSpk2UuaV8TJ050ie/YsaMhyejYsWNuD5VhGIbRq1evHM0tyQgODjbmzJnjso+jR48aZcuWzfF+mjdvbhw5ciRH+aX/eebl9wFA0ZS+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AAAZ5epMqVq1aslms2nFihUKCwtTrVq1chRns9l05MiRPCUIAAAAAACAoidXTSm73e745L3Mlt0xDCP3mQEAAAAAAKDIylVT6tixY1kuAwAAAAAAADlRaO8pFRkZqTFjxqhevXoKCAhQuXLl1KZNG/3www9O486fP69HH31UlStXVkBAgBo3bqzp06d7KGsAQH6iFgBA8UYdAICizdSn73Xp0kWDBw/WoEGD3I6ZN2+epk+frlWrVuV4vydPnlTnzp115coVDRkyRA0bNlRcXJz279+vEydOOMZdvXpV7dq10+nTpzVq1CiFhYVp4cKFGj58uM6cOaPx48ebeXgAAA+iFgBA8UYdAICiz1RTas2aNerUqVOWY06cOKG1a9fmar8DBw5UbGysdu/erZo1a7od9/bbb+vw4cP67rvv1KdPH0nSY489pp49e+qNN97QoEGDFBYWlqu5AQCFA7UAAIo36gAAFH0FfvlebGysfH19czz+t99+09q1a/XSSy+pZs2aSklJUWxsbKZj586dq7CwMEfxSTN69GglJydr/vz5pnIHAHgGtQAAijfqAAAUD7luSp04ccLxJV07XTb9urSv8PBw/fbbb/r2228VGhqa4/3//PPPkqRatWqpT58+KlGihEqVKqXQ0FBNmTLFMe7cuXM6efKkWrdu7bKP1q1by2azaevWrbl9eACAQoBaAADFG3UAAIqHXF++FxoaKpvNJkmy2Wz66KOP9NFHH7kdbxiGJk+enOP979+/X5I0bNgwhYWFacaMGbLZbJo6daqeeeYZRURE6JVXXtHp06clSTVq1HDZh7+/vypUqKBTp065nScxMVGJiYmO5aioqBznCAAoWNQCACjerKoDErUAADwp102pQYMGyWazyTAMzZkzR02aNNEtt9ziMs7b21vlypVTly5d1KNHjxzvPzo6WpJUsmRJrVu3Tv7+/pKkfv36qWHDhpo0aZJGjBihuLg4SXJszyggIMAxJjOTJk3SxIkTc5wXsrc3KdhUfMMS7n9eOZo/payp+DrRu03FKyXJVLiRkuzZ+MR4U/EyOX9quheDeYpPMHf8UxLMzV/x5/+aik9NSjEVbzcVXfhQC65fe+MCTMU30HlT8ftU2VR8nejTpuKNhMwvL8ope6y5f4btCeZqqd3kc5Fhv76fjcw+/iqrZpmKT4oy9/NLvBqT99hEc3U0v1lVByRqQUE4dOykqfiaYTeaij959Iip+Btr1zYVbzMVLcdJIHmONwyTGZhjNzm9uWdiycfbz1S8zW4ugzphIabiDS9Tt/5WgolSnGDutuN5kusZZ8+e7fh+7dq1GjJkiEaOHJlvCZUoUUKS1L9/f6fi4ufnpwEDBui1117Tli1bVLFiRUlyelcjvfj4eFWpUsXtPGPGjNHo0aMdy1FRUVneQBEAYB1qAQAUb1bVAYlaAACeZKoNFh4enl95OKSdelu1alWXbWnrrly54jg7K7PTcRMSEnT58mW1b9/e7Tz+/v5u31EBAHgWtQAAijer6oBELQAATyrwT9/Lrdtuu02SdPKk6ymfaTdXr1y5sqpUqaIaNWpo06ZNLuM2b94swzDUokWLgk0WAFAgqAUAULxRBwCgeDDdlIqOjtakSZN0++23q0GDBqpVq5bL14035vya4F69eikoKEhz5sxRZGSk0zyff/65ypYt6/h0jf79+ys8PFzff/+90z7ef/99+fj4qF+/fmYfHgDAA6gFAFC8UQcAoHgwdfnexYsX1aZNGx05ckRBQUGKiopScHCwkpKSFB9/7abJ1apVk6+vb473WaZMGX3wwQcaOnSoWrZsqWHDhslms2nGjBk6e/asZs+ercDAQEnSyy+/rAULFmjgwIHasWOHwsLCtHDhQi1evFivvPKKatWqZebhAQA8hFoAAMUbdQAAigdTTakJEyboyJEjmjNnjgYMGCBvb28999xzevXVV7Vt2zY988wz8vHx0bJly3K130cffVQVK1bU22+/rYkTJ8owDDVr1kzvv/++7rzzTse4smXLav369frnP/+p6dOnKyoqSrVr19Ynn3yiJ554wsxDAwB4GLUAAIo36gAAFH2mmlI///yzbr/9dj388MMu21q0aKFffvlFjRo10oQJE/TOO+/kat/33nuv7r333mzHVa1aVbNmmfv4XQBA4UQtAIDijToAAEWbqXtKnT17Vk2bNnUse3t7Oy7bk669a3HnnXfq22+/NTMNAAAAAAAAihhTTang4GAlJyc7lsuWLevycaxBQUE6f/68mWkAAAAAAABQxJhqStWqVUvHjh1zLDdt2lTLly/XlStXJEnx8fFatGiRbrjhBlNJAgAAAAAAoGgx1ZTq1q2bVq5cqbi4OEnS448/rgsXLqhJkyb6xz/+oZtvvlmH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",
      "text/plain": [
       "<Figure size 1200x400 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# re-add the observational data to the dataset\n",
    "ds['data_sst'] = xr.DataArray(data_sst, dims=['time','YC','XC'])\n",
    "\n",
    "fig, ax = plot_model_data_misfit(ds.isel(ioptim=0))\n",
    "fig.suptitle('Iteration 0', fontsize=30, y = 1.1)\n",
    "\n",
    "fig, ax = plot_model_data_misfit(ds.isel(ioptim=9))\n",
    "fig.suptitle('Iteration 9', fontsize=30, y = 1.1);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec27ec9f-7455-4807-9369-607b75ca3270",
   "metadata": {},
   "source": [
    "Eureka💡! As we had hoped the model SST on day 6 looks much more similar to the observational data after optimization. Moreover, the spatial plot of the misfit is clearly nearer to zero almost everywhere. \n",
    "\n",
    "### Conclusion\n",
    "We demonstrated the workflows used to assimilate synthetic observational data into an unconstrained MITgcm model. Along the way, we investigated model diagnostics, sensitivity to controls, control perturbations, and cost function reduction across iterations. The reader is encouraged to play with different model parameters in `data`, explore other options for $J$ such as boxmean quantities of interest ([more info here](https://mitgcm.readthedocs.io/en/latest/ocean_state_est/ocean_state_est.html)), and further probe changes in model diagnostics between iteration 0 and 9 to understand exacly how the physics of the model changed in order to accomodate the data."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79ec5150-f997-467c-8ae3-3ad7fbf368f6",
   "metadata": {},
   "source": [
    "### References\n",
    "Adcroft, A., Campin, J., Dutkiewicz, S., Evangelinos, C., Ferreira, D., Forget, G., et al. (2018). MITgcm User Manual. Zenodo. https://doi.org/10.5281/zenodo.3248738\n",
    "\n",
    "Loose, N., & Heimbach, P. (2021). Leveraging Uncertainty Quantification to Design Ocean Climate Observing Systems. *Journal of Advances in Modeling Earth Systems*, 13(4), e2020MS002386. https://doi.org/10.1029/2020MS002386\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
