{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import air_traffic.io as air_io\n", "import air_traffic.loop as air_lp\n", "\n", "plt.rcParams['figure.dpi'] = 120" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "datadir = \"../data/cleaned\"\n", "savedir = \"../data/results\"\n", "\n", "reprocess = False # Whether to re-compute everything" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook concerns flight rescheduling strategy --- when the airport is too busy, can we reduce the waiting time of flights by rescheduling some of them to arrive later?\n", "\n", "This study involves quite a lot of definitions. I invite you to read Section 4.2.2 and 4.2.3 of my [thesis](https://drive.google.com/file/d/1wgr3l9psxnW8qiUr-FL-vXN2wRbjcxAC/view?usp=sharing) for the details. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "if reprocess:\n", " dataset = air_io.read_trajectories_range(datadir, \"2017-01-01\", \"2017-01-31\")\n", " air_io.loop_write(dataset, f\"{savedir}/loops_201701.csv\")\n", "\n", "loop_data = air_io.loop_read_area(f\"{savedir}/loops_201701.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1 - Statistics of Holding Patterns\n", "\n", "When the airport is busy, incoming flights would need to wait for landing. These waiting flights would fly in loops, formally referred to as \"holding patterns\" while they are waiting (because they cannot just stop moving in the air). These holding patterns would take place in three specific holding areas around the airport. Studying these holding patterns is useful for determining whether rescheduling is helpful. But first, we need to confirm that the holding patterns are similar in the three holding areas before continuing." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# --------------------------------------------------------------------------- #\n", "def loop_length(data):\n", "\n", " length = []\n", " for x in data:\n", " x = np.array(x, dtype=float)\n", " diff = (x[1:] - x[:-1]) / 60 # in unit of minutes\n", " length.extend(diff)\n", "\n", " return length\n", "\n", "# --------------------------------------------------------------------------- #\n", "\n", "areas = [\"ABBEY\", \"BETTY\", \"CANTO\"]\n", "loop_stat = {a: {} for a in areas}\n", "\n", "\n", "for a in areas:\n", " loop_data_this = loop_data[a]\n", "\n", " loop_stat[a][\"length\"] = loop_length(loop_data_this)\n", " loop_stat[a][\"count\"] = [len(x) - 1 for x in loop_data_this]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAG5CAYAAADh3mJ8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAABJ0AAASdAHeZh94AAA0g0lEQVR4nO3de5xd873/8dcndwlxqxCiSdG0qXuLoNTkoA7i8qtLQ5Wc1hHHiban7loyvSKpqqrLcTkNzcQlSl2CSutMUVp6UBV1SCSHEgmlIZGLJN/fH3tN7NnZM5nZc9mzJq/n47EfO/v7/a61P3u2Sd6+a63vipQSkiRJypce1S5AkiRJrWeIkyRJyiFDnCRJUg4Z4iRJknLIECdJkpRDhjhJkqQcMsRJkiTlkCFOkiQphwxxkiRJOdSr2gV0lIjYENgPeBVYXuVyJEmSmtMH2Br4XUppYUs26LYhjkKAu6vaRUiSJLXCEcDdLRnYnUPcqwC/+tWv2G677apdiyRJUpNmzZrFkUceCVl+aYnuHOKWA2y33XZsv/321a5FkiSpJVp8CpgXNkiSJOWQIU6SJCmHDHGSJEk5ZIiTJEnKIUOcJElSDnXnq1MlScqdlBLvvfce7777Lh988AEppWqXpDbo0aMHffv2ZfPNN6dHj/adOzPESZLURaxYsYLXXnuN999/H4BevXrRo0cPIqLKlakSKSWWL1/OkiVLWLZsGR/96EfbNcgZ4iRJ6iLeeecd3n//fTbccEMGDRpEr17+M513KSUWLFjA22+/zfz58xk8eHC77dtz4iRJ6iIWLVpEz549GTx4sAGum4gIBg0aRM+ePVm2bFm77tsQJ0lSF5FSolevXh4+7WYigp49e7Jq1ap23a8hTpIkqYN1RDA3xEmSJOWQIU6SJCmHDHGSJEk5ZIiTJEmd7qqrriIiGDlyZNn+iGj0GDBgAJ/61Kf4/ve/v3odvQZjx45tNLZXr15svfXWjBkzhueff77R2Pr6+jX2Xfy45ZZbePzxx+nRowfnnXde2douueQSIoLp06e3zw+jQl6/LOVEbW11t5dUfV3h97i9aqirq2PYsGE88cQTzJo1i+22226NMQceeCAnnngiUFh+5ZFHHuGCCy7gz3/+M9OmTWs0tm/fvlx//fVAYdHk2bNnc8011/DAAw/w/PPPs+WWWzYa/7WvfY3dd999jffca6+9GDp0KOPGjePSSy/lhBNOYPvtt1/d/3//939897vf5ZhjjuHQQw9t88+hLQxxkiSpU82ZM4fHHnuMO+64g3HjxlFXV8eECRPWGDd8+HBOOOGE1a9PPfVUli9fzh133MHSpUvp16/f6r5evXo1Gguw5557Mnr0aKZPn86//uu/Nurbd999Ofroo5us8eKLL+auu+5i3LhxPPLII6uvLj399NPp3bs3l19+eUWfvT15OFWSJHWquro6Nt54Yw499FCOPvpo6urqWrztFltssfqQaUvGAhUtnLzhhhty+eWX8/vf/371DN+dd97JPffcw8UXX9yud16olDNxkiSpU9XV1fGFL3yBPn36cNxxx3H11Vfz5JNPrnF4c+nSpbz11lsALF68mN///vfceOONHH/88WWDWcPYlStX8vLLL3POOeew6aabMnr06DXGvvfee6vHF9t0001Xz7o1HDI955xz2H///fn617/O3nvvzbhx49r8M2gPhjhJktRp/ud//ocXXniBK664AoB99tmHIUOGUFdXt0aIu+GGG7jhhhsatR155JFcd911a+x38eLFbLbZZo3attpqKx588ME12gG+8pWvlK1v3rx5q2fwAK688kq23357dt99d9577z3uu+++LnNHDUOcJEnqNHV1dWy++eaMGjUKKFyF+sUvfpEpU6Zw6aWX0rNnz9VjjzjiCMaPHw/A+++/zx/+8Acuu+wyjj/+eG6//fZGYapfv37cc889AKxatYq5c+fy4x//mEMOOYSHH36Y4cOHN6rjwgsvZN99912jvk022aTR66FDhzJhwgTOPvtszjnnHHbYYYf2+UG0A0OcJEnqFCtXruSWW25h1KhRzJkzZ3X7yJEjufTSS/ntb3/L5z//+dXtQ4YM4YADDlj9+vDDD2fTTTflzDPP5N577+Wwww5b3dezZ89GYwEOOeQQPv7xj3Peeefxy1/+slHfjjvuuMb4pjTMEO62224t/7CdwAsbJElSp3jooYeYN28et9xyCx//+MdXP4499liAFl3gsP/++wPw8MMPr3XskCFD+MQnPtGisXnkTJwkSeoUdXV1DBo0iCuvvHKNvjvuuIM777yTa665hvXWW6/JfaxYsQIorBvXEitWrGjx2LwxxEmSpA63ZMkS7rjjDo455piy67NtueWW3Hzzzdx999188YtfbHI/Dee97bzzzmt9zxdffJH//d//5TOf+UzlhXdhhjhJktTh7r77bt577z0OP/zwsv177rknm222GXV1datD3IsvvsiUKVOADy9suPHGG9luu+348pe/3Gj7FStWrB7bcGHDNddcw6pVq8ouJPzII4+wdOnSNdp32mkndtpppzZ91s5iiJMkKSe6wm23KlVXV0e/fv048MADy/b36NGDQw89lLq6Ov7+978DMGPGDGbMmAEULlwYPHgwJ598Mt/73vcYMGBAo+2XLVvWKNgNHDiQ3XffnV/84herz6Mr9tOf/rRsHRMmTMhNiIuUUrVr6BARsT3w3HPPPdfonmdSXnnvVKn7e/nllwHYZpttqlyJ2tvavtuZM2c2LF+yQ0ppZkv26dWpkiRJOWSIkyRJyiFDnCRJUg4Z4iRJknLIECdJkpRDhjhJkqQcMsRJkiTlkCFOkiQphwxxkiRJOWSIkyRJyiFDnCRJUg4Z4iRJknLIECdJkjrF5MmTiYhGj0GDBjFq1Cjuv//+RmNLxxU/Tj31VOrr65sdU8nj4IMPZuONN2b+/Plr1L5w4UIGDx7MyJEjWbVqVWf9yJrVq9oFSJKklqmtr612CdTWtL2G7373u3zsYx8jpcT8+fOZPHkyhxxyCPfccw+jR49ePe7AAw/kxBNPXGP74cOHM3ToUH7xi180aj/vvPNYf/31+da3vrW6beXKlfTs2XOt4wA++9nPssMOO/Af//EfTJ06tVHf+eefz1tvvcUDDzxAjx5dYw7MECdJkjrVwQcfzG677bb69Ve/+lU233xzbr755kYhbvjw4ZxwwglN7qe07+KLL+YjH/lIs9usbdyECRM455xzGDt2LJ///OcBePLJJ7nmmms488wz2XnnnVv0GTtD14iSkiRpnbXRRhux3nrr0atX9eeWvvnNb7LTTjtx2mmnsXTpUlauXMmpp57K0KFDmTBhQrXLa6T6Py1JkrROWbhwIW+99RYpJRYsWMAVV1zBokWL1pgZW7p0KW+99dYa2w8cOJA+ffp0SG29evXi2muvZe+99+Z73/segwYN4qmnnuKBBx6gf//+HfKelTLESZKkTnXAAQc0et23b1/+67/+iwMPPLBR+w033MANN9ywxvY333wzY8aM6bD6Ro4cyWmnncakSZPo27cvxx13HAcddFCHvV+lDHGSJKlTXXnllQwfPhyA+fPnM2XKFE4++WQ22GADvvCFL6wed8QRRzB+/Pg1tt9xxx07vMYf/OAH3H777bz//vtcdtllHf5+lTDESZKkTrXHHns0urDhuOOOY9ddd2X8+PGMHj169aHSIUOGrDFr11kGDhzIJz7xCd566y0233zzqtSwNl7YIEmSqqpHjx6MGjWKefPm8dJLL1W7nNwwxEmSpKpbsWIFAIsWLapyJflhiJMkSVX1wQcf8OCDD9KnTx9GjBhR7XJyw3PiJElSp7r//vt54YUXAFiwYAFTp07lpZde4txzz2XgwIGrx7344otMmTJlje0333zzNa5kXRcZ4iRJUqe68MILV/+5X79+fPKTn+Tqq69m3LhxjcbNmDGDGTNmrLH9fvvtZ4jDECdJUm60x31Lq2ns2LGMHTu2RWNTSq3e/3PPPdeu4+rr61tdQ2fynDhJkqQcMsRJkiTlkIdTpTyoraWmvnWb1Of8sIskqXnOxEmSJOVQu4W4iPhWRKSIWONswYjYOyIejYj3I+KNiPhpRKxfZlzfiLgkIl6PiCUR8ceI8PITSZKkEu0S4iJiCHA+sLhM3y7Ab4H+wDeB64FTgGlldjU5G1MHfB1YCdwXEfu0R52SJEndRXudE/cj4A9AT+AjJX0/BN4BalJK7wJExFzguoj4fErpwaxtD2AMcFZK6UdZ203Ac8BEYO92qlWSJCn32jwTFxGfA44GvlGmbyBwIDClIcBlbgIWAccWtR1NYebt2oaGlNJS4AZgr4jYuq21SpIkdRdtmomLiJ7AFcD1KaW/RETpkB2z9/hTcWNKaXlEPAPsWtS8K/BiSdgDeCJ73gV4tYk6BgGblTRv27JPIUmSlD9tPZx6KjAUOKCJ/sHZ87wyffOAfUvGNjUOYMtm6jgNmNBMvyRJUrdScYiLiE2B7wLfSym92cSw9bLnZWX6lhb1N4xtahwlY0tdxZoXSmwL3NXMNpIkSbnVlpm47wNvUzic2pQl2XPfMn39ivobxjY1jpKxjaSUFgALitvKHNqVJEnqNioKcRHxcQrLhHwD2LIoMPUDekfEMOBdPjwUOpg1DQZeL3o9D9iqiXGUjJUkSVqnVToTtxWFK1t/mj1KzQEup3Ce2gpgN+C2hs6I6EPhQoXbirZ5BhgVEQNLLm4YWdQvSdK6q7a22hW0Ww2zZ89m4sSJzJgxg9dff50+ffqw4447cuyxx3LKKaew3nofnkW1cuVKtt56a+bNm8d9993HwQcfXKasWr7zne8waNAg5syZQ//+/Rv1Dxs2jB122IF7772XsWPHcuONN661xpNOOonJkycDkFJiypQpXHfddTz77LMsX76cbbfdlmOOOYYzzjiDAQMGtO0HUoFKQ9xzwP8r0/59YAMKC/XOTiktjIjfACdExPdSSu9l474MrE/j89huB86kMMPXsE5cX+BfgD+mlMpemSpJkvJl+vTpHHPMMfTt25cTTzyRHXbYgeXLl/Poo49y1llnMXPmTK69dvWKYzz00EPMmzePYcOGUVdXVzbENViwYAFXX301Z5xxRpNjxo0bxwEHfHhN5pw5c7jwwgs55ZRT2HffD6+53HbbwkIXK1eu5Pjjj+e2225j3333pba2lv79+/PII4/wne98h2nTpvGb3/yGzTffvC0/llarKMSllN4CflXaHhHfyPqL+74FPAb8LiKuBYYAZwAPppQeKNrnHyNiGnBRtmTILOAkYBjw1UrqlCRJXcucOXMYM2YMQ4cO5aGHHmLw4A/PuPr3f/93Zs2axfTp0xttM2XKFD796U9z0kkncf7557N48eImZ7522WUXJk2axGmnndZoNq/YXnvtxV577bX69Z/+9CcuvPBC9tprL0444YQ1xk+cOJHbbruNM888k0mTJq1uP+WUUzj22GM58sgjGTt2LPfff3+rfhZt1W73Tm1KSukpCkuQLAEuozDTdgOFxX1LnQj8hMJM3U+B3sDolNLDHV2nJEnqeBMnTmTRokXccMMNjQJcg+22246vf/3rq18vWbKEO++8kzFjxnDssceyZMkS7rqr6cUnLrzwQubPn8/VV1/dLvUuWbKESZMmMXz4cC666KI1+g877DBOOukkHnjgAf7whz+0y3u2VLuGuJRSTUpphzLtj6aUPptSWi+lNCilNL7o0GrxuKUppbNSSoNTSv1SSnuklH7dnjVKkqTqueeee9hmm23Ye++W3U3z7rvvZtGiRYwZM4YtttiCmpoa6urqmhy/77778k//9E9MnDiRJUuaXNiixR599FHeeecdjj/+eHr1Kn8A88QTTwTg3nvvbfP7tUaHz8RJkiQBvPvuu7z22mvsuOOOLd5mypQp7L333my9deHum2PGjOHBBx/kzTebWqIWJkyYwPz587nmmmvaXPPzzz8PwM4779zkmIa+v/71r21+v9YwxEmSpE7x7ruFxSc22GCDFo3/+9//zq9//WuOO+641W1HHXUUEcFtt93W5Haf+9znGDVqVLvMxr333ntrrbmhr+HzdRZDnCRJ6hQDBw4EPgxGa3PrrbfywQcfsOuuuzJr1ixmzZrF22+/zciRI5s9pAqFJUfeeOONNs/GNQS05mpuSdDrCG29d6okSVKLDBw4kC233JLnnnuuReMbgtpnP/vZsv0vv/wy22yzTdm+z33uc9TU1DBx4kROPfXUygoGRowYAcCzzz7LkUceWXbMs88+C8CnPvWpit+nEs7ESZKkTjN69Ghmz57N448/3uy4OXPm8NhjjzF+/HimTZvW6HHrrbfSp08fpk6d2uw+Gmbj/vM//7PievfZZx822mgjpk6dysqVK8uOuemmm4DCZ+tMzsRJkqROc/bZZ1NXV8fJJ5/MQw89tMYCubNnz+bee+9dfYjy7LPPXn1RQ7Hrr7+euro6vv3tbzf5Xvvttx81NTVccsklpJQqqrd///6ceeaZfPvb3+Zb3/oWF198caP+6dOnM3nyZA466CD23HPPit6jUoY4SZLUabbddlumTp3KF7/4RUaMGNHojg2PPfYY06ZNY+zYsTz88MPssssuZQMcwOGHH87pp5/OU089xac//ekm32/ChAmMGjWqTTWfe+65PP3001xyySU8/vjjHHXUUay33no8+uijTJkyhREjRrToNl7tzRAnSVJedIV7p7aDww8/nGeffZZJkyZx1113cfXVV9O3b1922mknLr30UnbffXeuvfZaLrjggib3cdhhh3H66aevvptDU2pqathvv/343e9+V3G9PXv25LbbbuOmm27i+uuv54ILLlh979QJEyZU7d6pUen0YlcXEdsDzz333HNsv/321S5HapvaWurrW7dJfU1t6S4kdXEvv/wyQJMn6yu/1vbdzpw5kx122AFgh5TSzJbs0wsbJEmScsgQJ0mSlEOGOEmSpBwyxEmSJOWQIU6SJKmDdcSFpIY4SZK6iIhg1apV1S5DHWDVqlVERLvu0xAnSVIX0bdvXz744AOWL19e7VLUjlasWMGKFSvo3bt3u+7XECdJUhcxcOBAAObNm2eQ6yZSSixYsAD48PttL96xQZKkLmLAgAFssskmvP3228yePZvevXsTEe1+GE6dI6XEypUrWblyJf37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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "colors = [\"blue\", \"green\", \"red\"]\n", "\n", "for i, a in enumerate(areas):\n", " ax.hist(loop_stat[a][\"length\"], bins=30, color=colors[i], \n", " density=False, alpha=0.5, label=a)\n", " \n", "ax.set_xlabel(\"Loop length (Min)\", fontsize=12)\n", "ax.legend(loc=\"upper right\")\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnsAAAG5CAYAAAD2/PK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAABJ0AAASdAHeZh94AAA4+klEQVR4nO3debxd493//9cnsyDmRIhGDWlVzDRoVXKjihi+NTRUyd26xU/17t2atSQ6KHKjw22o0obmmKI05qIaobS0qCaqhCglEjGEkEGS6/fHWufYZ2fvk32mnHNWXs/HYz/22df6rGtde+11ct5Z046UEpIkSSqmbh09AEmSJLUfw54kSVKBGfYkSZIKzLAnSZJUYIY9SZKkAjPsSZIkFZhhT5IkqcAMe5IkSQVm2JMkSSqwHh09gM4gItYC9gReARZ38HAkSZKa0gvYBHgwpTRvRcWGvcyewOSOHoQkSVIzHAzctqIiw17mFYDf/va3bLHFFh09FkmSpKpmzJjBIYccAnl+WRHDXmYxwBZbbMHWW2/d0WORJEmqRU2nnnmBhiRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmFfjSpLURS1btozZs2ezaNEili1b1tHDUSt069aN3r17M2DAALp1a9t9cYY9SZK6oGXLlvHyyy+zYMECunfvTvfu3YmIjh6WWiClxOLFi1mwYAGLFi3iYx/7WJsGPsOeJEld0OzZs1mwYAHrrrsu/fv3N+h1cSkl5syZw1tvvcXs2bMZOHBgm/XtOXuSJHVBixYtonv37ga9gogI+vfvT/fu3Vm0aFGb9m3YkySpC1q2bJmHbgsmIujevXubn39p2JMkqYsy6BVPe3ymhj1JkqQCM+xJkiQVmGFPkiSpwAx7kiSp07rsssuICIYNG1ZxekQ0eqy++up86lOf4gc/+AEffPBBo9rRo0c3qu3RowebbLIJo0aN4plnnmlUO2XKlOX6Ln3ccMMNPProo3Tr1o0zzzyz4tguuOACIoI777yzbVZGC3mfvZVo3Lj2qZUkqVRn+RvSFuOoq6tj00035bHHHmPGjBlsscUWy9Xss88+HHPMMQDMnz+fhx56iLPPPpu//e1vTJo0qVFt7969ueqqqwBYsmQJL7zwAldccQX33HMPzzzzDBtttFGj+v/+7/9ml112WW6Zu+22G4MHD2bMmDFcdNFFHH300Wy99dYN0//1r3/xve99j8MPP5wDDjig1euhNQx7kiSpU5o5cyaPPPIIt9xyC2PGjKGuro6xY8cuVzdkyBCOPvrohtcnnHACixcv5pZbbmHhwoX06dOnYVqPHj0a1QLsuuuujBw5kjvvvJP/+q//ajRtjz324LDDDqs6xvPPP5/JkyczZswYHnrooYarab/xjW/Qs2dPfvKTn7TovbclD+NKkqROqa6ujnXWWYcDDjiAww47jLq6uprn3XDDDRsO1dZSC9RUW26ttdbiJz/5CX/84x8b9hjeeuut3H777Zx//vlt+k0YLeWePUmS1CnV1dXxxS9+kV69enHkkUdy+eWX8/jjjy93WHXhwoXMnTsXgPfff58//vGPXHPNNRx11FEVA1x97dKlS3nxxRc5/fTTWW+99Rg5cuRyte+9915Dfan11luvYS9e/aHa008/nb322otvfvOb7L777owZM6bV66AtGPYkSVKn89e//pVnn32Wn/3sZwB89rOfZdCgQdTV1S0X9q6++mquvvrqRm2HHHIIv/jFL5br9/3332eDDTZo1Lbxxhtz7733LtcO8NWvfrXi+GbNmtWwRxDg0ksvZeutt2aXXXbhvffe46677uo0N7027EmSpE6nrq6OAQMGMGLECCC76vZLX/oSEydO5KKLLqJ79+4NtQcffDAnnXQSAB988AF/+tOfuOSSSzjqqKO4+eabG4WuPn36cPvttwPZV8699NJLXHzxxey///5MnTqVIUOGNBrHOeecwx577LHc+NZdd91GrwcPHszYsWM57bTTOP300xk6dGjbrIg2YNiTJEmdytKlS7nhhhsYMWIEM2fObGgfNmwYF110Eb///e/5/Oc/39A+aNAg9t5774bXBx10EOuttx6nnHIKd9xxBwceeGDDtO7duzeqBdh///3ZcsstOfPMM/nNb37TaNo222yzXH019Xscd95559rf7ErgBRqSJKlTeeCBB5g1axY33HADW265ZcPjiCOOAKjpQo299toLgKlTp66wdtCgQXziE5+oqbYrcs+eJEnqVOrq6ujfvz+XXnrpctNuueUWbr31Vq644gpWW221qn0sWbIEyO67V4slS5bUXNvVGPYkSVKnsWDBAm655RYOP/zwive322ijjbj++uu57bbb+NKXvlS1n/rz8rbbbrsVLvO5557jn//8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+ZlnngFgu+22q1pTP+0f//hHq5fXHIY9SZLUqbz77rsArLnmmjXVv/nmm/zud7/jyCOPbGg79NBDiQhuuummqvN97nOfY8SIEW2yd++9995b4Zjrp9W/v5XFsCdJkjqVfv36AR8FqBW58cYb+fDDD9lhhx2YMWMGM2bM4K233mLYsGFNHsqF7FYsr7/+eqv37tUHuabGXEsgbA9ejStJkjqVfv36sdFGGzFt2rSa6usD3Wc+85mK01988UU222yzitM+97nPMXz4cC688EJOOOGElg0Y2GqrrQB4+umnOeSQQyrWPP300wB86lOfavFyWsI9e5IkqdMZOXIkL7zwAo8++miTdTNnzuSRRx7hpJNOYtKkSY0eN954I7169eK6665rso/6vXs///nPWzzez372s6y99tpcd911LF26tGLNtddeC2TvbWVyz54kSep0TjvtNOrq6jjuuON44IEHlrsR8QsvvMAdd9zRcGj0tNNOa7g4o9RVV11FXV0d3/3ud6sua88992T48OFccMEFpJRaNN6+fftyyimn8N3vfpfvfOc7nH/++Y2m33nnnUyYMIF9992XXXfdtUXLaCnDniRJ6nQ233xzrrvuOr70pS+x1VZbNfoGjUceeYRJkyYxevRopk6dyvbbb18x6AEcdNBBfOMb3+CJJ55gxx13rLq8sWPHMmLEiFaN+YwzzuDJJ5/kggsu4NFHH+XQQw9ltdVW4+GHH2bixIlstdVWNX39Wlsz7EmSVDSd5btxW+mggw7i6aefZvz48UyePJnLL7+c3r17s+2223LRRRexyy67cOWVV3L22WdX7ePAAw/kG9/4RsO3a1QzfPhw9txzTx588MEWj7d79+7cdNNNXHvttVx11VWcffbZDd+NO3bs2A77btxo6e7KIomIrYFp06ZNY+utt2635TTnd68gv6eSpHby4osvAlS98EBdUy2f6/Tp0xk6dCjA0JTS9BX16QUakiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJUhflRZbF0x6fqWFPkqQuKCJYtmxZRw9DbWzZsmVERJv2adiTJKkL6tmzJ0uWLGHJkiUdPRS1kfrPs2fPnm3ar2FPkqQuqF+/fgDMmTPHw7kFkFJizpw5wEefbVvxGzQkSeqC1lxzTfr27cu8efOYP38+3bt3b/PDf1o5UkosXbqUpUuX0rdvX9Zcc8027d+wJ0lSFxQRbLzxxrz99tvMnz/fvXtdWETQs2dP1llnHdZZZ502D+2GPUmSuqgePXqwwQYbsMEGG3T0UNSJec6eJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGAtDnsRsUZEnBsR90TEWxGRImJ0hboJ+bTyx7MVartFxGkRMTMiFkbE0xFxZJXlb5Uve36+/F9HxAYtfT+SJElF1KMV864PnAO8DPwNGN5E7SLguLK2eRXqfgicAfwCeBw4GLguIlJK6Yb6oogYBEzN+zgLWAM4BdgmIj6dUlrckjckSZJUNK0Je7OAgSml1yNiZ7JwVs2SlNLEpjqLiI2Bk4FLU0on5W1XAQ8C4yNiUkppaV5+FrA6sFNK6eW89jHgPmA0cGXL35YkSVJxtPgwbkppUUrp9VrrI6J7RPRrouRgoCdwWckyEnA5MAjYraT2UOCO+qCX194PPAccUeuYJEmSim5lXaDRF3gXmJefX3dpRKxRVrMD8D7wj7L2x0qm1+8B7A/8pcJyHquvqyYi+kfE1qUPYPPmvR1JkqSuoTWHcWs1C7gQeIIsXH4BOBHYLiKGp5SW5HUDgdn53rzy+QE2KqkrbS+vXTcieqeUFlUZz4nA2Oa/DUmSpK6n3cNeSunMsqYbIuI5sosxDgPqL7xYjexCjnILS6aXPq+otlrYuwyYVNa2OTC5Sr0kSVKX1VH32bsEWAbsXdK2AOhdobZPyfTS51pql5NSmpNSml76AF6oeeSSJEldSIeEvZTSAuBNYN2S5lnAhhERZeX1h21fK6krbS+vfauJQ7iSJEmrlA4JexGxJtl9+t4oaX6K7EKOrcrKh5VMJ6X0aj7fzhW6/nR9nSRJkto57EVEnzzYlTsbCOCekrbJwIdkF1DUzx/ACcCrwCMltb8BRkbEJiW1ewFDWP58PEmSpFVWqy7QiIiTgLX56ErZA/NvtwD4GbAO8GREXA/Ufz3avsD+ZEGv4aKIlNK/I+LHwKkR0ZPsJs2HAHsAXy65oTLAecDhwB8i4idk36BxKvB34FeteU+SJElF0tqrcU8BBpe8/mL+AJgIvAPcAewDHAt0B2aQfQPG/6aUlpX1dwbwNjCG7JswngeOTildV1qUUnolIvYELgbOBxYDdwIne76eJEnSR1oV9lJKm9ZQ9pVm9LcM+FH+WFHtdLK9hJIkSaqio269IkmSpJXAsCdJklRghj1JkqQCWxnfjavc8Cnjai+uVjquGX1IkqRVnnv2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBVYi8NeRKwREedGxD0R8VZEpIgYXaV2q7xufl7764jYoEJdt4g4LSJmRsTCiHg6Io5sTZ+SJEmrsh6tmHd94BzgZeBvwPBKRRExCJgKzAPOAtYATgG2iYhPp5QWl5T/EDgD+AXwOHAwcF1EpJTSDS3sU5IkaZXVmrA3CxiYUno9InYmC2eVnAWsDuyUUnoZICIeA+4DRgNX5m0bAycDl6aUTsrbrgIeBMZHxKSU0tLm9ClJkrSqa/Fh3JTSopTS6zWUHgrcUR/K8nnvB54DjiipOxjoCVxWUpeAy4FBwG4t6FOSJGmV1q4XaOR76/oDf6kw+TFgh5LXOwDvA/+oUFc/vbl9SpIkrdJacxi3FgPz51kVps0C1o2I3imlRXnt7HxvXnkdwEYt6HM5EdEfKL+QY/Mm3kObeYkpNddOealy+/C2GIgkSVpltHfYWy1/rhS8FpbULCp5bqquuX1WciIwtso0SZKkQmnvsLcgf+5dYVqfspoFzairtc9KLgMmlbVtDkxuYh5JkqQuqb3DXv2h1oEVpg0E3io53DoLGBH5fVbK6gBea0Gfy0kpzQHmlLZFRPV3IEmS1IW16wUaKaVXgTeAnStM/jTwVMnrp4C+wFZldcNKpje3T0mSpFXayvi6tN8AIyNik/qGiNgLGELjw6mTgQ/JzqmrrwvgBOBV4JEW9ClJkrRKa9Vh3Ig4CVibj66UPTD/dguAn6WU5gHnAYcDf4iIn5B928WpwN+BX9X3lVL6d0T8GDg1InqS3aT5EGAP4MslN1Sm1j4lSZJWda09Z+8UYHDJ6y/mD4CJwLyU0isRsSdwMXA+sBi4Ezi5wrl1ZwBvA2PIvgnjeeDolNJ1pUXN7FOSJGmV1aqwl1LatMa66cC+NdQtA36UP9qkT0mSpFXZyjhnT5IkSR3EsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgqs3cNeRAyPiFTlsWtZ7e4R8XBEfBARr0fETyNijQp99o6ICyLitYhYEBF/joh92vu9SJIkdTU9VuKyfgo8XtY2o/6HiNge+D3wD+DbwCDgFGBLYL+y+SYAhwE/Bp4HRgN3RcSIlNLDbT5ySZKkLmplhr2HUko3NzH9POBtYHhK6V2AiHgJ+EVEfD6ldG/e9mlgFHBqSul/87ZrgWnAhcDu7fcWJEmSupaVes5eRKwZEcsFzIjoB+wDTKwPerlrgfnAESVthwFLgSvrG1JKC4Grgd0iYpP2GLskSVJXtDL37P0KWANYGhEPke2Z+0s+bZt8LH8pnSGltDgingJ2KGneAXiuLBQCPJY/bw+8Um0QEdEf2KCsefPa34YkSVLXsTLC3mLgN8BdwFzgU2Tn4j0UEbunlJ4EBua1syrMPwvYo+T1wCbqADZawXhOBMbWNnRJkqSurd3DXkrpEeCRkqbbIuJm4GngR8AXgNXyaYsqdLGwZDr5z9XqKKut5DJgUlnb5sDkFcwnSZLU5azMw7gNUkozImIy8MWI6A4syCf1rlDep2Q6+c/V6iirrbTsOcCc0raIqGXYkiRJXU5H3lT5FaAXsDofHYIdWKFuIPBayetZTdRRVitJkrRK68iwtxnZodf5ZLdNWQLsXFoQEb3ILrh4qqT5KWBIfgVvqWEl0yVJksTK+QaN8itfiYjtgIOAe1NKy1JK84D7gaMjYs2S0q+QXcFbeo7dzUB34PiS/noD/wn8OaVU9UpcSZKkVc3KOGfvxohYQHaRxhyyq3GPBz4Aziip+05e82BEXEn2DRonkwXCe+qLUkp/johJwI/y26jMAI4FNgW+1v5vR5IkqetYGYdxfwusT/YVaJcBXwJuAXZOKf2jviil9ASwN9kFFpeQBcKryW6iXO4Ysq9K+wrZ17D1BEamlKa215uQJEnqilbGrVd+ShbIaql9GPhMDXULgVPzhyRJkqroyAs0JEmS1M4Me5IkSQVm2JMkSSoww54kSVKBGfYkSZIKzLAnSZJUYIY9SZKkAjPsSZIkFZhhT5IkqcAMe5IkSQXW7l+XJqkLGTeuc/QhSWoz7tmTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgfl1aZIaTJnSvPrhw9tjFJKktuSePUmSpAIz7EmSJBWYYU+SJKnADHuSJEkFZtiTJEkqMMOeJElSgRn2JEmSCsywJ0mSVGCGPUmSpAIz7EmSJBWYX5cmqcFLTGlW/ZSXlm8b3hYDkSS1GffsSZIkFZhhT5IkqcAMe5IkSQVm2JMkSSoww54kSVKBGfYkSZIKzLAnSZJUYIY9SZKkAjPsSZIkFZhhT5IkqcAMe5IkSQVm2JMkSSoww54kSVKBGfYkSZIKzLAnSZJUYIY9SZKkAjPsSZIkFZhhT5IkqcAMe5IkSQVm2JMkSSoww54kSVKBGfYkSZIKzLAnSZJUYIY9SZKkAjPsSZIkFZhhT5IkqcAMe5IkSQVm2JMkSSoww54kSVKBGfYkSZIKzLAnSZJUYF027EVE74i4ICJei4gFEfHniNino8clSZLUmfTo6AG0wgTgMODHwPPAaOCuiBiRUnq444YlSWov46aMa30fw1vfh9SVdMmwFxGfBkYBp6aU/jdvuxaYBlwI7N6Bw5MktZPhE6a0QSet70LqSrrqYdzDgKXAlfUNKaWFwNXAbhGxSUcNTJIkqTPpknv2gB2A51JK75a1P5Y/bw+8slJHJElqkXHjaq8d3l6DkAqsq4a9gcCsCu31bRtVmzEi+gMblDV/EmDGjBltMrhqXn3//Zpr09uV2zeYPr2NRiMtrznbKFTeTt1G1Vxz5tReO/Pt5m2jlbiNqkmXXtq6+b/+9bYZRxNK8kqvWuojpdR+o2knEfEC8M+U0v5l7ZsBLwDfSin9uMq844Cx7T1GSZKkdnZwSum2FRV11T17C4DeFdr7lEyv5jJgUlnbGsAQsgs8Frd6dJVtDkwGDiYLpGo912nbcn22Pddp23J9tj3XadtaWeuzF7AJ8GAtxV017M0CNq7QPjB/fq3ajCmlOUClgwZ/boNxVRUR9T++kFLyGEIbcJ22Lddn23Odti3XZ9tznbatlbw+n6y1sKtejfsUMCQi+pW1DyuZLkmStMrrqmHvZqA7cHx9Q0T0Bv4T+HNKyStxJUmS6KKHcVNKf46IScCP8qtrZwDHApsCX+vIsUmSJHUmXTLs5Y4Bvg98BVgHeBoYmVKa2qGjqu4N4Nz8WW3Dddq2XJ9tz3Xatlyfbc912rY65frskrdekSRJUm266jl7kiRJqoFhT5IkqcAMe5IkSQVm2JMkSSoww54kSVKBGfZaKSLWiIhzI+KeiHgrIlJEjG7G/GtHxJUR8UZEvB8Rf4iIHdtxyJ1aa9ZnRIzO6ys9NmznoXdKEbFLRPxfREzPt6+XI+KmiBhS4/xun2Vas07dRpcXEVtHxKSIeDEiPoiIuRExNSIOrHF+t9EyrVmnbqO1iYjv5OtkWo31G+f/TrwTEe9GxOSI2Ky9x1mvK99nr7NYHzgHeBn4GzC81hkjohtwJ7AdMB6YC5wITImInVJKz7f5aDu/Fq/PEucAM8va3mnVqLqu04HPAJPI7kW5IXAS8ERE7JpSqvoPldtnVS1epyXcRj8yGFgTuIbse837AocCt0XEmJTSldVmdButqsXrtITbaBURMQg4C3i/xvo1gD8AawHnAR8C3wIejIjtU0pvttdYG6SUfLTiAfQGNsx/3hlIwOga5z0irz+spG0D4G3guo5+b11wfY7O63fu6PfRWR7A7kCvsrYtgYXAxBXM6/bZ9uvUbbS2ddyd7DvOn11Bndto269Tt9EVr8sbgN8DU4BpNdSflq/TXUraPgksAc5bGWP2MG4rpZQWpZReb+HshwGzgVtK+nsDuAk4OP++31VKK9dng4hYMyK6t8WYurKU0iMppcVlbc8D04GtVjC722cFrVynDdxGq0spLQVeAdZeQanbaI2asU4buI0uLyI+R7bd/U8zZjsMeDyl9Hh9Q0rpWbLAeESbDrAKw17H2gF4IqW0rKz9MbLd7jWdV6Xl/AF4F/ggIm6LiC07ekCdSUQEMIDskFdT3D5r1Ix1Ws9ttExErB4R60fE5hHxLWA/sj+GTXEbbUIL12k9t9EyefD9GXBVSunvNc7TDdgW+EuFyY8Bm0fEmm03yso8Z69jDQQqfZfvrPx5I6CmDUoAfABM4KN/pHYCvg08EhE7ppRe6cCxdSZfBjYmOyenKW6ftat1nbqNVncRMCb/eRnZ3rqTVjCP22jTWrJO3UarO4HsfMi9mzHPumSnJ82qMK10O/1n64bWNMNex1oNWFShfWHJdNUopXQT2eGber+NiN+R/TH4Dtkv6iotIj4JXAo8SnbydlPcPmvQnHXqNtqkHwM3k/3hO4LsHLNeK5jHbbRpP6aZ69RttLKIWA/4HvD9/FSBWtVvgx26nXoYt2MtIEv85fqUTFcrpJQeBv5M8/4nVkj5bRPuBOaRndC+dAWzuH2uQAvW6XLcRjMppWdTSvenlK5NKY0E1gBuzw+RV+M22oQWrtNK/biNwg+At8gO4zZH/TbYodupYa9jzSI7DFGuvu21lTiWInuFbFf6Kisi1gLuJjs5+wsppVq2LbfPJrRwnVazym+jFdwM7ELT5925jTZPLeu0mlV2G83PVzwe+CmwUURsGhGbkoW1nvnrauvmLbK9eh26nRr2OtZTwI75CZylhpGdN/HcSh9RMW0GNGe3e6FERB/gdrJ/4EemlJ6pcdancPusqBXrtJpVehutov7Q1lpN1DyF22hz1LJOq1mVt9GNyfLST8nuPVj/GEb2b8BMqpyvm1889HeyW4mVGwa8mFJ6rx3G3IhhbyWJiIER8cmI6FnSfDPZFXxfLKlbHzgcuD2lVOkYv6i8PiNigwp1+5OdYHzPyhxfZ5FfPXYjsBtweErp0Sp1bp81as06dRtdXkT0r9DWEziG7PDWM3mb22iNWrNO3UYrmgb8vwqP6WRfAPD/gKsBIuJj+Xm8pW4GdomIhsAXEZ8A/oPs5uztLvKb+6kVIuIkskM5GwH/H9kVT0/mk3+WUpoXEROAY4GPp5ReyufrDjwMDKXx3d8/RnbzxXa9OqezasX6fD6v+wvZOVQ7Al8lO9SzS0pp9sp7F51DRPwY+CbZXqibyqenlCbmdRNw+6xJK9ep22iZiLgV6Ed2AcCrZN9I8mWym86enFK6OK+bgNtoTVq5Tt1GaxQRU4D1U0pDy9r2TClFSduaZOt0TeB/yb5B49tkF8xs38wLPlpmZdy5uegP4CWyu2NXemya10wofV0y7zrAVWT/SL1PdkfuVfrO5S1dn2Qn0D5J9pU+i4F/AZcBAzr6PXXgupzSxLpMJXVunythnbqNVlyfo4D7gNfJ/gi+lb8+qKzObXQlrFO30Wat5ymUfYNG/b8PFWoHke3Fmwe8R/afxS1W1ljdsydJklRgnrMnSZJUYIY9SZKkAjPsSZIkFZhhT5IkqcAMe5IkSQVm2JMkSSoww54kSVKBGfYkSZIKzLAnSZJUYIY9SZKkAjPsSVInFBHjIiJFxPCOHktbiIgpEdGu38/ZkmXk63hKWVuh1r1k2JNaIf+D4BdMryIqBQNJ6uwMe5IkNfZ/wFbAYx09EKkt9OjoAUiS1JmklOYCczt6HFJbcc+etJJERO+IOCMi/h4RH0TEuxHxUEQc0cQ8R0TE1IiYFxEL8nnPjIjeFWpfyh9rRcT/RcSrEbEwIp6JiP+OiKgwz0ER8fuImBURiyLitYh4MCJObOZ7OzIi/hAR7+TL/EdEfLd0nBGxTj6+RRGxU9n83fL5U0R8pWzasIi4OSJej4jFEfFKRPw8IjaqMpZ1I+KHETEtX8/zIuJvEXF+RKxevr6q9NHonK2IGF1yuH7P+sP3+WNcK8e7U0TcExHv5dvE/RGxW5VVXVVETMjHs1lEfDsins0/i39HxCUR0a/KfIPy7eXF/LN5MyJui4hdmlovEXFURPw5IuZXW49VltcjIs6KiOfz5b0SERdERK8q9Xvl6+etvP65/LNcqxnL7BURZ0fEC3kfMyPiB5V+j8rfZ1l7iuy8wPUj4sqS35vpEfGfVfrqnff3Yvmyw9MCtJK4Z09aCfI/ZL8D9gSeBS4F+gKHATdGxPYppbPK5jkPOJNsD8N1wHxgP+A8YN+I+HxKaXHZonoB9wNrAzfkrw8FfgJ8Avh6Sf/HAz8HXgduz5fTH9gW+E/gshrf2y/z+n8DvwHeAXYFvg/sFRH7pJSWpJTejogjgan5e94hpfRe3s1YYDgwIaX065K+vwpcCSwCbgNeAbYEjgMOjIhdU0ovl9R/HPgDMBj4K3A52X9qhwDfAq4A3q/lfZV5Cjg3H+e/gAkl06a0Yry7k31evYBbgBnA9nmfD7RgnACXAJ8DbgImA/sC/wPsERGfTSktLFn+jsC9wLpk2+ctwPrAIcDDEfH/Ukp3VVjGycA+ZNvNH4CagxfZtrwHcDfwLrA/cBrZttcoMEXEGLLP8H1gEjCHbDs5nWx9fial9E5TC4uIIFsXBwMvkB2i7QV8FdimGeOutzbwR2AxcDPQGzgc+GVELEspXVO27N8ABwDP58vuCYwGtm7BsqWWSSn58OGjhQ8gZb9GK6w7M6+9C+hR0t4feCmftntJ+25528vAhiXtPcj+wCbgrLJl1PfzMNC7pH1dsj9yCfhcSftfyUJJ/wrjXb/G9z867/cWYLWyaePyad8saz8tb78+fz0CWAo8A/QtqRtC9gd1BrBxWR975fPcWtb+SN73mZXeE9CnbH29VOV91Y99eIXPe0qVeZo1XiDIgn8CDi6r/2b9tlU+hiY+iwl5/VxgcEl7N7LAkYCzy7alGcBCYM+yvjYCXgVmlW1L9evlfWCHZv6uTMnn/Suwbkn76vk4lpZt64Pz7fNd4JNlfV2W93VlpWWUtR2V1z5a9vmX/l5MKZunqc8/AVcB3UvaPwUsAZ4pq/9KXj8V6FXSvnbJZ19xe/Lhoy0fHT4AHz668oPaw97zwLLyP1r5tK/l/fyypO0XedvxFeqH5H8YXyxrfymfZ48K84zOp/2qpO2v+R/tdVrx/p8EPgTWrjCtex48HitrD7K9OoksBL8GfABsU1Z3SV5zQJVl35r/gV0zf71TXv8k0K2Gsb9E24a95o73M3n9g1XW3YxKY2ji/UygLNCVTNss32ZmlrQdnNePr9JffeDcv8J6uaQF28qUfN69K0w7N582sqTtO3nbeRXq1yELgQtoHEansHzYuy/vZ0QTvxdTytqb+vzfB/pV6OvBfPoaJW33U/afrJJpX25qe/Lhoy0fHsaV2llErAlsAbyaUnq2Qkn94bodStp2LJvWIKX0XET8G/h4RKyVUppXMnkJ2d6tclMqLKMOuAh4JiJuIPtj9ceU0hsreEsARERfYDuyQPc/sfwpgZDtmdmqbPwpIo4hOzR6Xt48JqX097J5689b27PS+WNke0W7k4Xfv5IdOgb4XUppWS3voY01d7z1n/GD5YUppaUR8TCweQvGUam/FyPiFWDTiFg7ZYc+68c7uPy8w9yW+fNWZHukS7XmKtW/VGh7JX9ep6Stqd+BtyPiSbLD1Z8E/tbE8nYk+4/WwxWmTVnRYCt4PqX0boX20vcwP/95h3zZlX4nK41HaheGPan9rZU/z6oyvb597WbO87F8ntKwNzeltLRC/etl/ZJSujgi5gInAv9Ndl5XiogHgVNTSpX+KJdah2wv3QZk57LVLKX0RkRMBUYBbwK/rlC2Xv586gq6WyN/Xjt/frU5Y2lDzR1v/Wcxu0rd61XaV6Sp/gbny32Hj8Z7+Ar6W6NCW0vHRqp8jt2S/Ll7SVtLfm8qWQt4K6X0YYVpLXkf71Rpr/Ye3kopLalQX+1zktqcV+NK7a8+jG1YZfrAsrqWzgOwfkR0Ly8u6adRfUrp2pTSrmR/+A8AribbW/K7iNigyrLLx/hkSimaepTPGBGjyILe3HzZP22i/7VW0H/9nqx38ueNVzDuesuo/h/etWvsozXjra8fUKW/ap/9iqyov3llzwevYLznVugrtXBszdHS34FK/awbET0rTGvpOq7Vu/myK21n1T4nqc0Z9qR2lrIrTl8ANo6ILSuUjMifnyhpezJ/Hl5eHBFbAIPIzr96p2xyD2D3Csuo7+fJCtNIKb2TUrorpfRfZOd+rUsW+qpKKc0HpgNbR8S6TdVWGP+VwBtkh7mmAsflAbDUn/LnPWrsur5+34io5d+2t4EBVULAzlXmWUbjPTeVll/reOs/7z3LJ+SB/bM19lOuUn+bAZuQnaP4Tt7c3PGubE39DqxNdtXyQuAfK+jnCbK/dZXW53J9t7En82VX+p1s6ecrNZthT1o5fkl2yHN86Z63iFgfOLukhrKfv1u6hy2f93/JfnevrrKsH0Xj+9utC3w3f/mrkvYRUflEu/758wcrelPAxWS3sfhl/ge4kcjurbdjyeteZLeEWQM4NqX0b7KrJd8Efh4Rpeeo/R/ZxR+XRMSQCn33ioiGoJJS+ivZuVHbk92ao7x+vYjoU9L0GFk4Lr/dx2iyiycqeZMsNFXSrPHmY/0n8LmIOLis/CRadr4ewDcjYnDJcrsB48m2mV+V1E0m+0/I1yNi/0odRcRu+bmZHWEi2fr8Rv4fhFLfB/oBE1NKi1bQT/17/mHp51/2e9Fers2ff1B6H8H8HoFnV55Fanuesye1gYiY0MTkE8kC2n5kV0D+LSLuIrvP3uFk4erClFLDCdsppUci4kKy25RMi4ibya4C3A8YSnZy9/gKy5pFdt+vaRFxG9k9vQ4jO+R1WUppakntrcD8iPgT2ZWpQbaXZxeyCwjuX9H7Tin9MrIbJJ8IvBARvyO7Xcy6wMfJ9g7+Cjghn+VCsqtmL04p3Z338WoesG4nu//e7imlxSmlZ/P71v0SmB4R9wDP5e/pY/lY3yA7Qb/e0WQn3Z8XEYfmPwfZxQafz2tfymt/Rhb0Lo+IvchOsN+e7MKFO4CRFd7y74FREXE72R6jD4GpKaWpzR1vfqHK18iuFv1NRJTeZ28v4B7gC01/AhX9EXgqIm4kO4S5L9mFNH8lW//ky/8wIr5Idn+9OyPiEbKLZj4gC7S7kF3FO5Dagn+bSim9FBH/Q3ZPyici4iay9bcn2Wf0LBVCfQXXA18CDiL7vZjMR78Xj9PyUF2La8lOV/gCjX8nD82X/QmyvcVS++roy4F9+OjKDz6671ZTj7Xz2j7AWcA0sltGvEcW2o5sov9Rec17ZIesppPdkqJPhdqX8sdaZH8gXyW7GvYfZBdgRFn9CWSB70WyP+ZvkR12Oo389iDNWA8jyQLSHLJ7zb1OtufsB+S3mwEOzNfH40DPCn1cnE//SVn7NmSHlv+Vv5+38nX4c+A/KvSzHnAB2V6zhWTn8j0F/JCS+/jltZ8lO4z8Adn5VXeS3VR6HJVvvdGf7KbAs8luZZKAca0c705kwe69/HE/WZipOIYmPoMJef1mZDc9fjZ//68CP6bC7UJK3tP5+Rg/ILuS9HmyGwYfTeP7QjZrTGXLmUKV2xTx0S1QRleY9nmyGz+/na/PGWShde1al0G29/kcsm19EdnvyQ/J/mPU3FuvTKnyHurX/6Zl7X2A7wEzy5a9cV7/27b4t8iHj6YekdLKOM9WUnuL/CurUkqbduxI1BHyvcvHAh9PKb3UsaPRikTEPmQh9vyU0pkdPR4Vm+fsSZLUTqLCdyJHxHpke1Mh27sutSvP2ZMkqf1cHBHbkV2Q8wbZlfT7kZ3X+vOUUmtuUC3VxLAnSVL7uYXsnnoHkt2/sf7c26upfkW91KY8Z0+SJKnAPGdPkiSpwAx7kiRJBWbYkyRJKjDDniRJUoEZ9iRJkgrMsCdJklRghj1JkqQCM+xJkiQVmGFPkiSpwAx7kiRJBfb/AyecHnRe2t5RAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "colors = [\"blue\", \"green\", \"red\"]\n", "\n", "for i, a in enumerate(areas):\n", " ax.hist(loop_stat[a][\"count\"], bins=30, color=colors[i], \n", " density=False, alpha=0.5, label=a)\n", " \n", "ax.set_xlabel(\"Loops executed per holding\", fontsize=12)\n", "ax.legend(loc=\"upper right\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Rescheduling Analysis\n", "\n", "Here I basically just reproduce Fig.4.4 and 4.5 of my thesis, but using only one month of data. The conclusion is the same, flight rescheduling can offer substantial benefit when being done optimally." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Prepare data for the rescheduling study\n", "loop_data = air_io.loop_read(f\"{savedir}/loops_201701.csv\", keep_area=False)\n", "\n", "# Sort the flights by their exit time\n", "loop_exit = np.array([float(x[-1]) for x in loop_data])\n", "ind_sort = np.argsort(loop_exit)\n", "loop_exit = loop_exit[ind_sort]\n", "\n", "# Now build the sorted loop point sequences\n", "loop_min = []\n", "for i in ind_sort:\n", " loop_min.append(np.array(loop_data[i][:-1], dtype=float))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "rs_stat = {\"xi\": [], \"s\": [], \"s1\": []}\n", "\n", "for i in range(len(loop_min)):\n", "\n", " # Divide by 60 to convert to minutes\n", " time_saved = air_lp.reschedule_flight(loop_min, loop_exit, i, tol=30) / 60 \n", "\n", " rs_stat[\"xi\"].append(len(time_saved) - 1)\n", " rs_stat[\"s\"].append(np.sum(time_saved))\n", " rs_stat[\"s1\"].append(time_saved[0])\n", "\n", "\n", "# Save the results\n", "for k in rs_stat:\n", " np.savetxt(f\"{savedir}/rescheduling_{k}.txt\", rs_stat[k])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "edges = np.arange(-0.5, 11, 1)\n", "centers = (edges[:-1] + edges[1:]) / 2\n", "hist, _ = np.histogram(rs_stat[\"xi\"], bins=edges)\n", "\n", "ax.tick_params(which=\"both\", direction=\"in\")\n", "ax.tick_params(which=\"major\", length=4, labelsize=8)\n", "\n", "ax.bar(centers, hist, color=\"darkorange\")\n", "ax.set_xticks(centers)\n", "\n", "for rect in ax.patches:\n", " height = rect.get_height()\n", " ax.annotate(f'{int(height)}', xy=(rect.get_x()+rect.get_width()/2, height),\n", " xytext=(0, 2.5), textcoords='offset points',\n", " ha='center', va='bottom', fontsize=8, color=\"darkorange\")\n", "\n", "ax.set_xlabel(r\"Cascade Size $\\ \\xi$\", fontsize=12)\n", "ax.set_ylabel(\"Count\", fontsize=12)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "# Extract the population with nonzero saving\n", "rs_stat[\"s\"] = np.array(rs_stat[\"s\"])[np.nonzero(rs_stat[\"s\"])]\n", "\n", "bins = np.arange(0, 101, 2)\n", "ax.hist(rs_stat[\"s\"], bins=bins, color=\"darkslateblue\", alpha=1.0)\n", "\n", "ax.set_xlabel(\"Total Saving $\\ S$ (min)\", fontsize=12)\n", "ax.set_ylabel(\"Count\", fontsize=12)\n", "\n", "ax.tick_params(which=\"both\", direction=\"in\")\n", "ax.tick_params(which=\"major\", length=5, labelsize=8)\n", "ax.tick_params(axis=\"x\", labelsize=8)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAGyCAYAAACV0KIMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAABJ0AAASdAHeZh94AAAn8UlEQVR4nO3debhkVX3v//dHEEUZhe5oVETtmChc0yjG4SeiCaCJQ1pzgzFRQcU4xJ96DbmJGtINev35iIbkdxG9RA3OBiW0igOiBjBEgwMoaMS0CqISmRpaQGTwe//Y+0BZnPlUn6rT6/16nnqqz96r9v7WPsWpD3vttXaqCkmSJLXhTuMuQJIkScvH8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNWT7cRcwaZLsChwIXArcNOZyJEmSZrMDcF/grKq6dj4vMPzd0YHAR8ddhCRJ0gL8PvCx+TQ0/N3RpQAbN25kzZo1465FkiRpRps2bWLdunXQ55f5MPzd0U0Aa9asYZ999hl3LZIkSfMx70vVHPAhSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQ7YfdwHSJDnj0AvHXQIAB5+877hLkCRtozzzJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1JDtx12ApDs649ALx10CAAefvO+4S5AkjZhn/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGrKiwl+SU5NUkoMGlj0+ydeS3JDk+0leMvSauyR5a5Irk/w0yWlJ7rv81UuSJI3figl/SZ4L3G1o2f2ATwDvBHYDDgfemOTpA83+FjgAeDhwb+Bq4GNJVsx7lyRJGpUVcW/fJPcBXg88FrhkYNXhwHeq6q39z2cleRfwMuDUJHcFngc8q6ou6bf1KuAy4P8BvjDTPjdt2jRjPatWrWL16tWLfj+SJEnjMvHhL0mAdwGvr6ofdD/eZi1w7tBLvgwc1v/714EdB9tU1ZVJvg/sxyzhb926dTPWtH79ejZs2DDftyBJkjQxJj78AS8BUlUnTrNuF+A7Q8s298sZeL5mljbT2rhxI2vWrJl23apVq2Z7qSRJ0sSa6PCX5IHAUcCjZmiyhe5av0G798sZeN4N+NkMbaa1Zs0a9tlnnwVUK0mSNPkmfdDDAcAewFf70bpX9stPSXIicD7wiKHX7A+c1//7IrrQd1ubJHsCew+0kSRJasZEn/kDTgY+O7TsUuBFwGeAnYG/7Kd3eSfwSOD5/YOqujHJPwLHJDmfrrv3LcC3gHOW4w1IkiRNkokOf1V1A3DD4LJ+wMeVVXU1cHWS3wOOo5vS5SfAa6rqnwde8qp+3XnAXYCzgKdW1S+2/juQJEmaLBMd/qZTVRn6+Uy6kbsztf858Gf9Q5IkqWmTfs2fJEmSRsjwJ0mS1BDDnyRJUkNW3DV/2jadceiF4y5BkqQmeOZPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIduPuwBJk+uMQy8cdwkcfPK+4y5BkrYpnvmTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhEx3+kqxP8t0k1ya5MsnpSdYOtXlokrOTXJ/kx0k2JMnA+iQ5ul93fd/W+0VJkqQmTXT4Az4E7F9VuwK/CnwGOD3JdgBJdgZOB84B9gSeCBwBvHJgG0cCz+/X7dm3PT3JTsv0HiRJkibG9uMuYDZVddHAjwFuBVYD9wCuAJ4BbAccVVW3ABckORZ4OXBc/7qXAm+uqgsAkhxFFxCfDrx3pn1v2rRpxrpWrVrF6tWrF/muJEmSxmeiwx9AkicD7wd2BQo4rqqu6FevBc7rg9+ULwMPSLILXWDcGzh3amVV3ZLkPGA/Zgl/69atm7Gm9evXs2HDhoW/GUmSpDGb+PBXVZ8AdktyD+Aw4IcDq3cBrhl6yeaBdVPX/k3XZpfZ9rtx40bWrFkz7bpVq1bNVbYkSdJEmvjwN6Wqrk7y98DmJN+pqq8DW4D7DDXdvX/ewu3hb7dp2vxotv2tWbOGffbZZ2lFS5IkTZhJH/Ax7E7AnYFf638+H9gvyWCI3R/4XlVtqaprgYuBR0yt7NuuBc5bhnolSZImykSHvySvSPIr/b9XAScAN9GN2AX4Z7pBIEcn2bGfwuVI4K0DmzkBODLJvkl2BI4GbgZOXaa3IUmSNDEmvdv3YOA1/bQsW+gGcxxUVZcBVNVPkzyRLuxd1bd5O7eP9AV4M7Az8Fm66/y+Ajypqq5btnchSZI0ISY6/FXVU+bR5hvAAbOsL+Bv+ockSVLTJrrbV5IkSaNl+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqyJLDX5K9ksx6n9wkOyfZa6n7kiRJ0tKM4szf94FXzNHm5X07SZIkjdEowl/6hyRJkibccl3zd0/g+mXalyRJkmawqNu7JXnu0KK10ywD2A7YC3g2cMFi9iVJkqTRWey9fU8Cqv93Ab/fP4ZNdQffABy9yH1JkiRpRBYb/p7XPwd4F7AR+Og07W4FrgK+WFXXLHJfkiRJGpFFhb+qevfUv5McBmysqveMrCpJkiRtFYs983ebqnrCKAqRJEnS1ucdPiRJkhoykvCX5MAkpyW5PMnNSW6d5nHLKPYlSZKkxVtyt2+SJ9MN+NgO+AFwEWDQkyRJmkBLDn/ABuBm4MlV9ZkRbE+SJElbySi6ffcF/sngJ0mSNPlGEf6uA64ewXYkSZK0lY0i/H0OePQItiNJkqStbBTh7y+BByb56ySZs7UkSZLGZhQDPtYD36S7d+/zk5wPXDNNu6qqF4xgf5IkSVqkUYS/wwf+vXf/mE4Bhj9JkqQxGkX4u/8ItiFJkqRlMIp7+14yikIkSZK09XlvX0mSpIaM4vZue823bVX9YKn7kyRJ0uKN4pq/i+kGc8ylRrQ/SZIkLdIowth7mD787QasBe4HnAl4baAkSdKYjWLAx+EzrUtyJ+Ao4MXAYUvdlyRJkpZmqw74qKpfVNXRdF3Db9ya+5IkSdLclmu0778BhyzTviRJkjSD5Qp/9wDuvkz7kiRJ0gy2evhLchDwTODCrb0vSZIkzW4U8/x9fpZt3xeYmgfwmKXuS5IkSUsziqleHj/D8gI2A6cDb66qmUKiJEmSlskopnrxFnGSJEkrhMFNkiSpISO/3VqSnenu7nFtVW0Z9fYlSZK0eCM585dk+yR/lWQTcA3dpM6bk2zql3tPX0mSpAkwitG+OwCfBg6kG+RxKXAZcC9gb+B/AU9KckhV3bTU/UmSJGnxRnHm71V0I34/ATy4qvauqkdX1d7ArwMfBw7o20mSJGmMRhH+/phuAud1VfWfgyuq6rvAM4BvAn8ygn1JkiRpCUYR/tYAn6qqX0y3sl/+KeCBI9iXJEmSlmAU4e8mYKc52twduHkE+5IkSdISjCL8fQP470lWTbcyyZ7Afwe+PoJ9SZIkaQlGEf6OB1YB5yZ5QZIHJNkxyf2TPA/493798SPYlyRJkpZgFLd3OznJWuCvgBOnaRLgTVV18lL3JUmSpKUZyeTLVfWaJB8DXgDsB+wKXAucB7yrqr44iv1IkiRpaUZ2542q+hLwpVFtT5IkSaO3qGv+kuyQ5Nwkn0ty5znafS7Jl2ZrJ0mSpOWx2AEfzwYeDrylqmacwqW/nduxwG/hJM+SJEljt9jw9wzge1X1ybkaVtWngf8E/nCR+5IkSdKILDb87QecuYD2ZwNrF7kvSZIkjchiw9+ewE8W0P4nwB6L3JckSZJGZLHh72fMfUu3QTsBNy5yX5IkSRqRxYa/S4H9F9B+f+AHi9yXJEmSRmSx4e9M4NFJ5gyASR4OPAb4l0XuS5IkSSOy2PB3PFDAh5M8eKZGSX4D+DBwK3DCIvclSZKkEVnUHT6q6qIkxwAbgPOSfAT4PPDDvsm9gd8B/gC4C/A3VXXR0suVJEnSUiz69m5VdUySW4D1wB8DzxpqEuBm4LVV9f8tvkRJkiSNymK7fQGoqjcADwJeR3dN37f7x78AxwAPWkrwS/LGJBck2ZLksiQfTHLfoTZ7JTktyU+TXJnk+CQ7DLX5syQXJ7khydeSPG6xNUmSJK1kiz7zN6WqLqE7+7c1FHA4cAFwN7rrBj9OP2F0kjsBpwHn03U1796vPxZ4Rd/mD4E3AE8Dvgi8EPhkkgdX1aVbqW5JkqSJtOTwtzVV1asHfrwpyZvorjHcvao2AwcADwZ+u6q2AFuSHAV8IMlfVtWNwEuBd1XVWf123prkCLpQ+bqZ9r1p06YZ61q1ahWrV69eyluTJEkai4kOf9M4BLikD37QnQH8XlVdOdDmy3RnCR8EfKNvc+LQdr5Md4u6Ga1bt27GdevXr2fDhg3zr1qSJGlCrJjwl+Qguu7lPxhYvAtwzVDTzQPrZmvzgNn2t3HjRtasWTPtulWrVs1ZryRJ0iRaEeEvyVOA9wHPrqpPD6zaAuw21Hz3gXWztdnCLNasWcM+++yzmHIlSZIm1pJG+y6HJH8CvB94ZlWdOrT6fOD+SfYYWLY/cAPwnYE2jxh63f7AeSMvVpIkacJNdPhL8jK6u4k8papOn6bJF+imlnlLkp2T7EU3xcw7+8Ee0I0Qfn6SA5LskOQldNcDnrT134EkSdJkmfRu3/8N3AJ8Ksng8t+tqi9U1S+SPJUu4F0G/Bz4IPAXUw2r6sNJfoWu23g18B/Ak53mRZIktWiiw19VZR5tLgGePEeb4+nOIEqSJDVtort9JUmSNFoTfeZPks449MJxlwDAwSfvO+4SJGkkPPMnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUkO3HXYAkrQRnHHrhuEsA4OCT9x13CZJWOM/8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXE8CdJktQQw58kSVJDDH+SJEkNMfxJkiQ1ZPtxF6DxOuPQC8ddgiRJWkae+ZMkSWqI4U+SJKkhEx3+kvxRki8k2ZKkkmw/tP6hSc5Ocn2SHyfZkCQD65Pk6H7d9X3bfZf/nUiSJE2GiQ5/wGbgBOCVwyuS7AycDpwD7Ak8EThiqO2RwPP7dXv2bU9PstPWLFqSJGlSTfSAj6o6HSDJ46dZ/QxgO+CoqroFuCDJscDLgeP6Ni8F3lxVF/TbOYouID4deO9s+960adOM61atWsXq1asX8lYkSZImwkSHvzmsBc7rg9+ULwMPSLILEGBv4NyplVV1S5LzgP2YI/ytW7duxnXr169nw4YNiyxbkiRpfFZy+NsFuGZo2eaBdVPX/k3XZpe5Nr5x40bWrFkz7bpVq1bNt0ZJGqlJmZ7p4JO9fFpaqVZy+NsC3Gdo2e4D66bC327TtPnRXBtfs2YN++yzz1LqkyRJmjiTPuBjNucD+w2NAN4f+F5Vbamqa4GLgUdMrezbrgXOW74yJUmSJsdEh78k2yW5K7BDv+guSe6a5E7APwO3Akcn2bGfwuVI4K0DmzgBODLJvkl2BI4GbgZOXb53IUmSNDkmvdv3OcA/Dvx8Xf/8hKo6M8kT6cLeVXRdvW/n9pG+AG8GdgY+S3ed31eAJ1XVdUiSJDVoosNfVZ0EnDTL+m8AB8yyvoC/6R+SJEnNm+huX0mSJI2W4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhqy/bgLkCStPGcceuG4SwDg4JP3HXcJ0orjmT9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JEmSGmL4kyRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGbD/uAiRJWqwzDr1w3CVw8Mn7jrsEaUE88ydJktQQw58kSVJDDH+SJEkN8Zo/SZKWYBKuOwSvPdT8eeZPkiSpIYY/SZKkhhj+JEmSGuI1f2MyKdeISJK2DZPyveK1h5PPM39jcPnll/Oeb57A5huvGncp24zNN17lMR0xj+loeTxHz2M6Wh7P0bv88svZsGEDl19++bhL+SWGvzG44ooreN+33sa1P9887lK2Gdf+fLPHdMQ8pqPl8Rw9j+loeTxH74orruDoo4/miiuuGHcpv8TwJ0mS1BDDnyRJUkOaCH/pHJ3kx0muT3J2Eq9IlSRJzWki/AFHAs8HngjsCZwDnJ5kp7FWJUmStMxamerlpcCbq+oCgCRHAUcATwfeO87CJEnaljjlzOTb5sNfkl2BvYFzp5ZV1S1JzgP2447hbweAz3/+82zatGnabe6+++7ssccei65pars/vu4Hi96GftnUsfSYjo7HdLQ8nqPnMR2tbe14fvObGXcJt33fz5QnRrkP+vwyH6mqrVPNhEhyX+AHwEOq6j8Glv8T8NOqOmKo/dOAjy5vlZIkSUvy+1X1sfk03ObP/AFb+ufdhpbvDvxomvZnAc8FbgBunmGbm4GrR1GcJEnSEuwA3Jcuv8zLNh/+quraJBcDjwC+CJBke2At01zvV1XXTrdckiRpQp23kMatjPY9ATgyyb5JdgSOpjurd+p4y5IkSVpe2/yZv96bgZ2BzwK7AF8BnlRV1421KkmSpGW2zQ/4kCRJ0u1a6faVJEkShr9l563mRivJhiS3Jrlu4PHBcde1kiT5oyRfSLIlSfUDogbXP7T/nF7ff243JBn/BFoTah7Hs5L8bOgz+9/GVe+kS/LGJBf0x/OyJB/sp/AabLNXktOS/DTJlUmOTzLvOc9aM89jenGSG4c+p08ZV82TLMn6JN9Ncm3/+Ts9ydqhNhP1d9Twt/y81dzofbGqdhp4PGvcBa0wm+kGRb1yeEWSnYHT6T6ne9J9bo+Yrq1uM+PxHPDUoc/sBctT2opUwOF0n78H9z9/fGplkjsBp9FNv3Vv4OHA44Bjl7vQFWTWYzrgZUOf09OWscaV5EPA/lW1K/CrwGfovte3g8n8O2r4W3633Wquqn4GHEU3R8/Tx1uWWlVVp1fVB4HvTbP6GcB2wFFV9bM+pBwLvGw5a1xJ5jieWqCqenVVfbWqbqqqa4A3Ab+ZZPe+yQF0AeZVVbWlqi6h+7t6RJK7jqfqyTaPY6oFqKqLqmpz/2OAW4HVwD36ZRP3d9Twt4xmutUc3fw8+42prG3BfkmuSHJJkg8kuf+4C9qGrAXO6z+nU74MPCDJLuMpaZvwviRXJflakheOu5gV5hDgkoEv27XA96rqyoE2XwbuBjxomWtbqYaP6ZQ3JLk6yYVJ/meSO4+juJUgyZOTXAPcCPwtcFxVXdGvXsuE/R01/C2vqV/yNUPLNw+s08J8BHgI3f9lPYau++KzdqOPzC5M/3mdWqeFOwi4P3Av4K+BNyV5yXhLWhmSHASsB148sNjP6BLMcEwBDgMeSPe39cV0vVavX97qVo6q+kRV7QbsAfw5/U0lehP3GTX8La/ZbjW3BS1YVV1YVZdU50d011Pemy4Iaum2MP3ndWqdFqiqPtd3/dxUVZ8E/h54zrjrmnT9YIOPAM+uqk8PrPIzukizHFOq6qyq+mlV3VJV/wpswM/pnKrqarr/pt+R5Df7xRP3GTX8LaP+1nEX091qDvilW80t6NYsmlH1D0ejjsb5dN3qgyNW96frZvOLdTR+gZ/XWSX5E+D9wDOravjOTOcD90+yx8Cy/enuz/6d5alw5ZnjmE7Hz+n83Qm4M/Br/c/nM2F/Rw1/y89bzY1QkkOT7Nn/+1eAdwA/Af5trIWtIEm26y+Mn5oa4y5J7tqPovxnuouXj06yYz8t0ZHAW8dU7sSb7XgmeViShyfZIcn2SQ6hG/Hn9EQzSPIy4HjgKVV1+jRNvgB8G3hLkp2T7AUcA7yzqm5cxlJXjLmOaZJfS3LAwOf2UXRn/vycTiPJK/rvH5Ksovuev4ludC9M4N9R7/CxzPp5fY4G/pTbbzX3Z071sDhJPgY8Grg73TUUZ9ONqNo01sJWkCSHA/84zaonVNWZSR5K90fq4XRdFG8Hji7/eExrtuNJd5vJNwH3BW4BLgHeVlVvX7YCV5gkRXesfj606ner6gt9m/vRfeEe2Lf7IPDnVTX8GjH3MU3yW8A/AA+g60n5EfBe4NiqunlZi10BkpxG16O3E93fyC8Dx1TVVwbaTNTfUcOfJElSQ+z2lSRJaojhT5IkqSGGP0mSpIYY/iRJkhpi+JMkSWqI4U+SJKkhhj9JkqSGGP4kSZIaYviTJElqiOFPkiSpIYY/SZKkhhj+JGnMkuydpJKcNO5aJl2Sdye5PMndt9L2R/a7SPLwfltHjKA0aWQMf9KYJNk/yT8m+V6SnyXZkuSCJMcmufe461uKSQ8zSbZL8sIkZyW5OsnNfaD4RpJ3JHnauGtcKZI8PskHklyc5Mb+c/yfSTYm+R9JRvY9k+QRwHOAN1bV9aPa7tZSVV8FNgKvS7LTmMuRbpOqGncNUlOSBHgj8D+BW4AzgAuAHYDHAL8F3AAcVlUfGVedS5Fkb+D7wLur6vDxVvPLkmwHnAY8CbgG+ATwQ7rjvw9wAPC1qnrsMtZ0Z+CBwLVVddly7Xcp+uP4NuCFwHXAJ4FL6E4qPAT4beDKqrrPCPf5Gbr/Pu5VVT8b1XaH9jHS30WS3wL+HXhtVb1hqduTRmH7cRcgNegouuB3MfCUqvrm4MokfwC8D/hQkoOr6l+Wv8Rt2rPogt/XgQOr6trBlUnuBjxyOQuqqpuBby/nPkfgtXTB72PAc6c5jvcAHjaqnSV5EHAQ8I6tFfxg9L+Lqjo3ybeBFyV5Y1X9YlTblhbLbl9pGfVnxI4CbgaeNhz8AKrqFOB/ANsBb5vqNhvsSu3//aEkV/ZdbV9J8pRZ9vvIJB9J8l9JbkpyaZL/k+RXF1j/05J8LsllSX6e5Md91+lLB9psoDvrB3BYX/PU4/DF1DX03n+j71K8Osn1Sf41ySELeBuP6Z9PGg4sAFV1w3SBO8nhSU4Z6qY/J8mzh9o9qq/11JkKSPIf/fG7x/D7m+E9z/v3nc4rknyrb/ujJMcn2bXvmr14XkdpFv3Z65f3P75ohuN4dVV9dqn7GvB8IMA/TVPP4LF6YP+ZuirJT5N8Jsm+fbtVSU7sP783JvlykifMtK1Z9rGg//6ADwF7AQcv9SBIo2D4k5bX8+jOuJ9aVRfM0u4dwGXArwMHDq27H3AusDfwXrovw32Bjw5/kQEkeT5wDvC7wL8Afwd8BTgC+EqSveZTeJI/BT5K16X3ceAtdF19O/bva8qZwN/3//46cPTA4/wl1nV/4IvAPYD/A3wYeDjwqSTPnM/7AK7qnx80z/ZT3kZ37M/ua/1Q//N7k7xuqlFVfQm4CPi9JHsMbyRdN+BvAB+vqqvnsd8F/b6Bt/b17QqcCHwQOITu8oI7z2N/87ELMPXebh7RNudyEHAr8KVZ2uxN18X6K8BJwGf6152Z5Nf61z6C7hieDPwm3WdnXv8N9Bb6+4Ducw6GP02KqvLhw8cyPYDPAQW8cB5t39+3/ev+5737nwtYP9T2if3yTw4tfxBwE7AJuPfQut+h+zI9dZ61fxX4ObB6mnV7Dv08VetJM2xrQXUNvfdjh9rvTxdANgO7zON97Nfv+xd0X97PAO43j9c9cJplO/S/05sH3wfw6r7Wl03zmrf265462/Fa5O/7gH75RcBuQ3We3a+7eESf5Uv77X0NeAFwn63x30y/r7vTXR97wQzrB4/Va4fWHdUvvxp4O3CngXXP6dcdN9dndzG/j4H1u/brz91ax8iHj4U8PPMnLa979c+XzqPtVJvhrtlLgNcPLqiq04Ef0F0MP+gldGd7XlFVPxp6zefortd6apKd51EPdF/AdzjTU1VXzvP1S63rWuCYofZfoQvKuwFPn2vHVXUe8GzgJ/3zKcDFfTfhqUmeOsPrvjvNspvowtz2dKF1ynvpwuVhg+2T7AD8EXA58Km5au0t5Pc9tb//VVXXDNX56nnub76eCXyXLky/A7g0ySVJ3p5kvxHv6950l0HMNQDjYrrBVIPe3T/fBfiL+uVr7j5A95leu4BaFvL7mFp/LXAjXdevNHYO+JBWnvOr6tZpll8KPHpo2dTPB6abJmPYarov1QcBX+2v1xt2UlVdTBew3gJ8K8mHgLOAc6rqioW/hYXVNbD8a1X102nan0kXfPbj9i/7GVXVyf01eU8AHtu/7rHAOmBdkvcAh1fVbdMh9F2Df0kX8vai6+4edNv0PFX1wySfAw5O8pCq+la/6ql0XdbHVdUtc9XZW8jveyp0/es07b9EF3RGoqr+Ld0gjMfSnfk6kG6gzIuAP03y4qo6ESDJ44Aj6brofxV4XlWdtIDdTXUxb56j3XTH6sf983eGPztVdWuSnwALGZG8kN/HoKvpuqOlsTP8Scvrv4AHA/edR9upNj8eWn7NDO1v4Y7X8U59af7FHPuamoNs/TTrzqTrKvzbJFcCL6W72P+VQCU5i+6Mylfm2MdS6prykxna/Vf/vOt8C6huVOdn+sfU1CV/ALwLeC5wKt0cbSR5AN11XrsDX+hfcy1d9/TedMHzLkO7OInuGq/D6EIj3H5mbs6AOuCaGZZP9/ueev93OE590LlqePlS9GfRzu4fUyN8/46uO/XYJP/QB+idgAuB9/SPhZoa3XvXOdpNN/Dklm58yh3X9W5hYddCXjPLdmbrTduR29+HNFZ2+0rLa+qMzEGzNeqDyOP7H8+Zpelcpr7wdq2qzPI4C2CGdWdObayq3lNVj6ILb08G3gk8Djg9yaqtVdeAmc6c3HNouwtWVbdW1cnAcf2i3x5Y/Sq69/yCqnp8Vb28qo6qqg3A6TNs8lRgC/DsdJNKr6Yb3PL1qvr6Yuucw5b++Q7Hqf9M3WEAyihVN4Dltf2Pu9Cd5aSqPllVr6lu3srFTHVyef+8VevfWtKN2N+N29+HNFaGP2l5nUR3tujpSfaZpd3z6brHLqLrXl2sqZGRByxhG3dQVdf0X+gvpHtP96ALgVOmusW2G3FdD5vh+sTH98/nLXB705nqGszAsjX98ynTtB8ejQ1AdXPRnUz3ezwI+GO63paFnPVbqKn3P90E1Y9ieXp7pq5rvbp/jMJlwBV0o99Xol+n+zydP+Y6JMDwJy2rqvoe8Aa6bqaPJXnIcJsk6+imSrkVeEktbVLY4+kGaBzXX581vK8dkswrgCV5Qj+/27DV/fMNA8s2041unOkC98XWtSvwN0Nt9wf+hO6s34xz6w20f1aSgzPNbceS3JNu4mLouzJ7F/fPjx9q/0S6qWlmclL//Nz+cQvdtZNby1SX6muT3NYF3g80GcndJZI8O8lB030W+u7xE/sf/27wmsml6LdzNrBnkjVztZ9Aj+qfnbBdE8Fr/qTlt4Fu6opXAV9PcjrwTbpA+Bi6i+Z/Bjyrlnh3j6r6dj+f3ruAbyb5NPCdfl970Z15u4Ju3rm5nApcl+RLdGEo/esfQTco47YJfavquiT/DhyQ5P39Pm8FPlZV31hCXWcDRyR5JF13+L3oRp3eiW6y4S3M7ZHAK4D/SvKv3D4h9f3purJ3pJvPcPDWeifQzWX44SQfobsOc1+6O4Wc3NdwB1V1TpJNwB/27+3jVbXVuv6q6qwkJwJ/SndcT6EL2U+lC8c/ZnHdroNeQBeCf5DkbLqBDjvRDc45iO5s7wmMKGwOOIXumswn0k0RtJIcQvf5/+i4C5HA8Cctu/5M3p8n+Sfgz+i6S6fmtruYbkTt31XVD0e0v/cl+Trw53SjWw8BrqcLAh9hmjsmzOCv6L54Hwb8Ht3UFZfQDWZ4Wz+AYtBz6K6fexLdLdVCdw/dbyyhru8DL6abzuPFdIMsvgYc00+3MR9vAf6TLqg8tH9Pd6Wb/PlMuuk/PjB41qqqvtFP4Pt6uoC4Pd0E1s+gGwAw2wTT7wZeN/Dvre0ldLcnexHdMbqKLri/hu7432HKmgX6K+ApdAHwcXTXF/6i3/Z7gH+oqi8ucR/TOYXumrnn0k2vsyL0Z2DXAadV1XymeJK2uozorLwkbTXpbov3feDdVXX4eKtZmfo7XHwH+FBVPWuMdVxHN/n1SYt47avpzig+rJ+vceIl+X+B/x84oKqmm4JHWnZe8ydJ25Ak9xy+njHJ3eimYIF5XBe5FWraKcnaJGvpvnf26n9e6KTHx9FNpnzMXA0nQZId6SbXPsXgp0lit68kbVteCTwryZl0o2TvSXdZwX3o7iry4THUtD+/PNhh6l7P7wYOn+9GqurGJM8BnpDk7lV1/UirHL296QbAnDTeMqRfZrevpIlnt+/8JfkdurtprKWbgucWuu7eD9BdS3qH2/NJaovhT5IkqSFe8ydJktQQw58kSVJDDH+SJEkNMfxJkiQ1xPAnSZLUEMOfJElSQwx/kiRJDTH8SZIkNcTwJ0mS1BDDnyRJUkMMf5IkSQ0x/EmSJDXk/wKM6tWKd6ebkQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "# Extract the population with nonzero saving\n", "rs_stat[\"s1\"] = np.array(rs_stat[\"s1\"])[np.nonzero(rs_stat[\"s1\"])]\n", "\n", "bins = np.arange(0, 31, 2)\n", "ax.hist(rs_stat[\"s1\"], bins=bins, color=\"mediumorchid\", alpha=1.0)\n", "\n", "ax.set_xlabel(\"One-step Saving $\\ S_1$ (min)\", fontsize=12)\n", "ax.set_ylabel(\"Count\", fontsize=12)\n", "\n", "ax.tick_params(which=\"both\", direction=\"in\")\n", "ax.tick_params(which=\"major\", length=5, labelsize=8)\n", "ax.tick_params(axis=\"x\", labelsize=8)\n", "\n", "plt.show()" ] } ], "metadata": { "interpreter": { "hash": "45bd3b02f9e7747c1be67c65dce21c4130c6ed14b714422d7c27b7420dc8e87c" }, "kernelspec": { "display_name": "Python 3.10.5 ('venv': venv)", "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.10.6" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }