{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Heatmap" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Basic Heatmap" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA38AAAMZCAYAAACwGo3IAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZChJREFUeJzt3QucVWW5OP5nZrjKRVNUIPB+QVPsZB3zkpH3yym8/OqQ9lfLJD1qqac0+nkXw7SLeSq1MtSTHssLZh4vP6+YHTFFCazkCAdTUyQ1QEAQZvb/8y7PTDMwM1zcuF9mfb+fz5LZa6+95l3LzWaeeZ73eesqlUolAAAA6NLqaz0AAAAA1j7BHwAAQAkI/gAAAEpA8AcAAFACgj8AAIASEPwBAACUgOAPAACgBAR/AAAAJSD4AwAAKAHBHwAAQAkI/gAoXHvttVFXVxdPPvlku8+PGDEidtppp7X2/e+66644//zz19r5AaDsBH8AZCEFfxdccEGthwEAXZbgDwAAoAQEfwCssZ///Oex6667Ru/evWPDDTeMUaNGxYsvvtjmmN/85jfx6U9/OjbbbLPo2bNnDB06NE4//fR46623Wo457rjj4oc//GHxdSo9bd6S559/vvj629/+dnHMVlttFeutt14ccMABxfeqVCpx0UUXxZAhQ4pxjBw5Mt544402Y/jVr34Vhx56aAwePLgYw9Zbb128prGxsd3S1smTJ8cee+xRnG/LLbeMq666ai3eRQB4b3R7j74PAOuIefPmxWuvvbbC/qVLl7Z5fPHFF8c555wTn/nMZ+KLX/xi/PWvf41/+7d/i7333juefvrp2GCDDYrjbr755li0aFGcdNJJsdFGG8Xvfve74riXXnqpeC750pe+FC+//HLcd9998e///u/tjuuGG26It99+O0499dQiuLv00kuL773PPvvEww8/HGeddVbMmDGjOPdXv/rV+NnPftZmPmPfvn3jjDPOKP588MEH49xzz4358+fHZZdd1ub7/O1vf4tDDjmkOPdnP/vZ+OUvf1mMvUePHvGFL3yhKvcYAGqiAgCVSmX8+PGV9M9CZ9sHPvCB4tjnn3++0tDQULn44ovbnGPatGmVbt26tdm/aNGiFb7XuHHjKnV1dZU///nPLftOPvnk4nssb9asWcX+jTfeuDJ37tyW/WPGjCn277LLLpWlS5e27P/sZz9b6dGjR2Xx4sWdjuFLX/pSZb311mtz3Mc//vHinN/5znda9i1ZsqTywQ9+sLLJJptU3n777VW4kwCQJ2WfALSRSitTBm75bfjw4S3H3HbbbdHU1FRkx1KWsHkbOHBgbLvttvHQQw+1HJtKJ5stXLiwOC6VVKZyzZQhXFWpdHT99ddvebzbbrsVf37uc5+Lbt26tdmfMoR/+ctf2h3Dm2++WYzhYx/7WJGRfPbZZ9t8n3SulIlsljJ+6fGcOXOKclAAWFcp+wSgjX/8x3+MD3/4wyvsf9/73tdSDvrcc88VwVsK9NrTvXv3lq9feOGFosTyjjvuKEoqly8xXVVpzmBrzYFgmkPY3v7W3+sPf/hDnH322UW5Zyr17GwMaV5gnz592uzbbrvtWuYffvSjH13lMQNATgR/AKy2lPVLTVjuvvvuaGhoWOH5NK8uSQ1V9t9//2KOXpqTN2zYsCKwSlm51OQlnWdVtfd9OtufgtNk7ty58fGPfzz69+8fF154YdHspVevXvHUU08VY1qdMQDAukzwB8BqSwFUCq5SJ8zmrFh7pk2bFv/93/8d1113XRxzzDEt+1MZ6fKau3tWW2oG8/rrrxelqqkZTbNZs2a1e3xqPJPKU1tn/9I1JFtsscVaGSMAvBfM+QNgtR1xxBFFxi0tyt6cYWuWHqdgq3VWrvUx6evvf//7K5yzOdhKmbpqam8MaU7gj370o3aPX7ZsWVx99dVtjk2PN95442JZCwBYV8n8AbBGmb+xY8fGmDFjinlwhx12WPTr16/Ipk2YMCFGjx5dLLeQyjzTsenrVOqZSi9vvfXWFeb+Jc2B1Ze//OU48MADi6AtrRv4bqXmMmm+4rHHHlucO2UY03ISywetref8fetb3yquK2U1f/GLX8SUKVPixz/+cZu5jACwrpH5A2CNfP3rXy8Cufr6+iIDmAK81NQlLb7+qU99qjgmBUu//vWv44Mf/GCMGzeuOC41ibn++uvbzSamNfzuueee+P/+v/+vWGOvGtLagnfeeWcMGjSoaPqSFotP8xDTOoHtSYHiXXfdFU8++WR87WtfKxaS/8EPfhAnnHBCVcYDALVSl9Z7qNl3B4CMjBgxouho+swzz9R6KABQdTJ/AAAAJSD4AwAAKAHBHwAAQAnUdM7f+eefX0z+b2377bePZ599tvh68eLF8a//+q9x0003xZIlS4rub6k196abbtrhOdPlnHfeefGTn/ykaBe+5557xpVXXlk0GAAAAPKX4oC01E4uevToEb169Yp1Xc2XevjABz4Q999/f8vjbt3+PqTTTz89/vM//zNuvvnmWH/99eOUU04pusH99re/7fB8qXvbFVdcUSwonBYfPuecc4qg8Y9//GOX+B8GAABdPfAb0Lt3LIx8DBw4sFjOaF2PJ2oe/KVgL93M5c2bNy+uueaauPHGG2OfffYp9o0fPz522GGHmDRpUnz0ox9tN+t3+eWXF628R44cWexL7cRTpvD222/vcL2olFVMW7OmpqZ44403ivbgaT0oAAAok/Rz9ZtvvlmsfZqW9HkvpYxfCvxOaaiPnlF7SyLiB7NnF+MS/L1Lzz33XPGmSjdy9913L9aB2myzzWLy5MmxdOnS2G+//VqOTYsFp+cee+yxdoO/FI3Pnj27zWtSxnC33XYrXtNR8Ne89hQAAPB3aa3TIUOG1OR7p8CvZw6JmErXWRmvpsFfCsquvfbaYp7fK6+8UgRgH/vYx4r1lVIQl2prN9hggzavSVm89Fx7mvcvPyews9ckY8aMiTPOOKNN1jEFmYPufCTq+/SNWvvyP3w1cvLflaGRi4835rUW16SG7SIXPeuWRk7uu/v7kYuNZq0XOXnz2J9GLurrmiIXu/aeFjn5/Q3/Frno/XpeP4g888knIhc7X71F5ORPp/8+ctH0t0GRkx1/lM9n8dx98/nZpsdbNc/NFJa9NT8mn7FF9OvXr2Zj6FZXiW4ZxH6Nkddn7rtR03fXwQcf3PL18OHDi2Bw8803j1/+8pfRu3fv92wcPXv2LLblpcCvvm/tg7/e/fP4EGjWo9IjcrFeY173pmdDPvemZwYflq01rNc/ctGtVz4/cCQN/d+7z7uVaahrjFz06J3P36ekW++c3sN5/SBS37dP5KJbj9r9oNqe+n4Zfd4srf3PNK1165HPvcnq36jaF+a1YQpU15LVUg8py7fddtvFjBkzinmAqa42dexs7dVXX213jmDSvD8ds6qvAQAAKIOsgr8FCxbEzJkzY9CgQbHrrrtG9+7d44EHHmh5fvr06fHCCy8UcwPbk7p7piCv9Wvmz58fjz/+eIevAQAA8lNflypSar/Vd6HkZ02Dv69+9asxceLEeP755+O//uu/4vDDD4+Ghob47Gc/WzRqOf7444u5eA899FDRAObzn/98EcS1bvaSmsBMmDChJS192mmnxdixY+OOO+6IadOmxTHHHFM0lDnssMNqeKUAAAC1VdOi4pdeeqkI9F5//fXYeOONY6+99iqWcUhfJ9/73veK1rJHHnlkm0XeW0vZwNSgpdmZZ54ZCxcujNGjRxclo+mc99xzzzrflhUAAMokNXvJoeFLt+g6anotN910U6fPp4Dthz/8YbF1tgZJayn7d+GFFxYbAAAAGc75AwAAYO3oSllMAACgi2huuFJrDdF1yPwBAACUgOAPAACgBJR9AgAA2VH2WX0yfwAAACUg+AMAACgBZZ8AAEB2GuoqmZR9VqKrkPkDAAAoAcEfAABACSj7BAAAspNKPrtlUfbZdcj8AQAAlIDMHwAAkJ2G+kzW+atElyHzBwAAUAKCPwAAgBJQ9gkAAGQnlXxmUfYZXYfMHwAAQAkI/gAAAEpA2ScAAJAdZZ/VJ/MHAABQAoI/AACAElD2CQAAZEfZZ/XJ/AEAAJSAzB8AAJCdhvpMMn+V6DJk/gAAAEpA8AcAAFACyj4BAIAss1Q5lH3WK/sEAABgXSLz14mtd/hVdOvfq9bDyM4fF28buXip26aRk9MX3RO5+OxfL4ucXHnQfpGLV7r3i5z88sf/L3LR89k5kYvpjZ+OnPT88wORi8p674usHJZPI/QlU+6KnHzguyMjF1O//HTk5K8TLohcvPYvP41cbHNmHv+f6pYtqvUQWAsEfwAAQHayWeevLroMZZ8AAAAlIPgDAAAoAWWfAABAdurr39lqrT66jq50LQAAAHRA8AcAAFACyj4BAIDs6PZZfTJ/AAAAJSDzBwAAZEfmr/pk/gAAAEpA8AcAAFACyj4BAIDsNNS/s9VaQ3QdGdxOAAAA1jbBHwAAQAko+wQAALJTX/fOVmv1GYyhWmT+AAAASkDwBwAAUALKPgEAgOzU19dFQwY1l/XFfyvRFcj8AQAAlIDgDwAAoASUfQIAANnR7bP6ZP4AAABKQOYPAADITkP9O1utNUTXkcHtBAAAYG0T/AEAAJSAsk8AACA7Gr5Un8wfAABACQj+AAAASkDZJwAAkB3dPqsvg9sJAADA2ib4AwAAKAFlnwAAQHbq6+qiPoNWm/WV9N/iP+s8mT8AAIASkPkDAACyY52/6hP8dWK3XlOjZ6/utR5GTGvaKnIy/YURkYuth/4mcjJ6yRmRi0M2uzVycnNlz8jFnMsvi5w8t+8zkYuNR02KXMx+bVjk5FNb3Ba5uPe1AyMnu3xn78hF06DIytQv/Dlyse1n/hQ5ef0/7ohcbLDV7ZGLRSd8LnLQuGh+xMQv1noYVJmyTwAAgBKQ+QMAALKTzTp/legyMridAAAArG2CPwAAgBJQ9gkAAGSnrj6Pdf7qlH0CAACwLhH8AQAAlICyTwAAIDsWea8+mT8AAIASEPwBAACUgLJPAAAgO/X172y1Vq/bJwAAAOsSmT8AACA79Zms81cv81d9l1xySdTV1cVpp51WPH7++eeLx+1tN998c4fnOe6441Y4/qCDDnoPrwQAACA/WWT+nnjiibj66qtj+PDhLfuGDh0ar7zySpvjfvzjH8dll10WBx98cKfnS8He+PHjWx737NlzLYwaAABg3VHz4G/BggVx9NFHx09+8pMYO3Zsy/6GhoYYOHBgm2MnTJgQn/nMZ6Jv376dnjMFe8u/FgAAWHdo+FJ9Nb+dJ598chx66KGx3377dXrc5MmTY8qUKXH88cev9JwPP/xwbLLJJrH99tvHSSedFK+//nqnxy9ZsiTmz5/fZgMAAOhKapr5u+mmm+Kpp54qyj5X5pprrokddtgh9thjj5WWfB5xxBGx5ZZbxsyZM+Mb3/hGUSb62GOPFdnE9owbNy4uuOCCNb4OAACA3NUs+HvxxRfjK1/5Stx3333Rq1evTo9966234sYbb4xzzjlnpecdNWpUy9c777xzMY9w6623LrKB++67b7uvGTNmTJxxxhktj1PmL805BAAAakPZZ/XV7HamMs45c+bEhz70oejWrVuxTZw4Ma644ori68bGxpZjb7nllli0aFEcc8wxq/19ttpqqxgwYEDMmDGj0zmC/fv3b7MBAACsrlRV+JGPfCT69etXTEU77LDDYvr06W2OGTFixAorFJx44omdnrcaqxrULPOXsnDTpk1rs+/zn/98DBs2LM4666w2JZqp5PNTn/pUbLzxxqv9fV566aVizt+gQYOqMm4AAICOpIRW6muSAsBly5YV09AOOOCA+OMf/xh9+vRpOe6EE06ICy+8sOXxeuutFyvzblc1qFnwlyLhnXbaqc2+dDM22mijNvtTxu6RRx6Ju+66q93zpGAxRdeHH3540Tk0zd078sgji26fac7fmWeeGdtss00ceOCBa/2aAACAci/yfs8997R5fO211xYZwFT5uPfee7cJ9lZ3hYJ3u6pBBlW0nfvZz34WQ4YMKaLl9qQU6rx584qvU7Zw6tSpRZZwu+22KzqD7rrrrvGb3/zGWn8AAMAaW351gLRiwKpojlU23HDDNvtvuOGGYnpaSnylHiRpmlu1VzXIbp2/5S9med/85jeLrSOVyt9D8d69e8e999671sYHAACU09DlGkKed955cf7553f6mqampjjttNNizz33bFPdeNRRR8Xmm28egwcPLpJXadpbSmrddtttVV3VIOvgDwAAIEkVn1l0+2z6+2oFrRtDrkplYZr798wzz8Sjjz7aZv/o0aPbrFCQ+pOknigpqEsrFVRrVYMVrmWVjgIAACix/sutDrCy4O+UU06JO++8Mx566KFiGltndtttt+LPzlYoWJNVDZYn8wcAAGQnm4Yv9at3fJqWduqpp8aECROKrFwq01yZKVOmFH+uzgoFa7KqgcwfAABAlaRSz5///Odx4403FisczJ49u9jeeuut4vlU2nnRRRcV3T+ff/75uOOOO4r1zFMn0FTK2XpVgxRAJmlVg6997WsxadKk4jUPPPBAjBw5crVXNZD5AwAAqJIrr7yyZSH31tL6fGmh9h49esT9998fl19+eSxcuLBoJJOWqjv77LNXuqrBddddF3Pnzi0axaTVEFIQuTqrGgj+AACA7NTV59HwpW4Nyj47k4K9tBD86pynWqsaZHA7AQAAWNsEfwAAACWg7BMAAMhOXX1dsa1rZZ8560KXAgAAQEdk/jqxReXV6F2p/S3a563/iZx8YpuptR5Ci2+8cUbk5IG3Lo1cPLrBqnd+ei/c3rRX5GLwqXm9b56ds3/kYtGUf4pcdFv/jcjJ4ko+f6eGXfzOYsDZ2LB35KJ+g00iJzt/851OfTmoe3h+5ORvrz0RuRj48KjIRZ9r744cLFu2qNZDYC2ofWQDAACwnPpMun3WZzCGaulClwIAAEBHZP4AAIDs1NfXFVut1XehdFkXuhQAAAA6IvgDAAAoAWWfAABAdqzzV31d6FIAAADoiOAPAACgBJR9AgAA2bHOX/V1oUsBAACgI4I/AACAElD2CQAAZEe3z+rrQpcCAABARwR/AAAAJaDsEwAAyE59XV3UZ1D2WV/7IVSNzB8AAEAJyPwBAADZSY1Wcmi2UpfBGKqlC10KAAAAHRH8AQAAlICyTwAAIDv1DXXFVmv1TdFlyPwBAACUgOAPAACgBJR9AgAA2amrryu2WqvrQumyLnQpAAAAdETwBwAAUALKPgEAgOzUNdQVW63V6fYJAADAukTwBwAAUALKPgEAgPxk0u0zulC6rAtdCgAAAB2R+QMAALJT31BXbLVWr+ELAAAA6xLBHwAAQAko+wQAALJjnb/qk/kDAAAoAZm/Tlzw0tejvl+fWg8jLhp6UeTk7bp83jbf3PC7kZPpyyqRiwOeWxo5uX+bRZGLB+fsHzm5bJNvRi7+9Y0fRi66b/x85OSFa74XueixaV5/v7941ojIxdMNW0ROfrPow5GLlycfEznZ6eGBtR5Ci7pFSyIXlU/8U2Rh8fyI+2s9CKotn5/iAQAA/lddXWSxzl9dXT6/3H+3lH0CAACUgOAPAACgBJR9AgAA2cmm22dD7cdQLTJ/AAAAJSDzBwAAZEfmr/pk/gAAAEpA8AcAAFACyj4BAIDs1DXUF1ut1TVEl1H7uwkAAMBaJ/gDAAAoAWWfAABAdnT7rD6ZPwAAgBIQ/AEAAJSAsk8AACA7yj6rT+YPAACgBAR/AAAAJaDsEwAAyE5dfSZln/W1H0O1yPwBAACUgMwfAACQnbqG+mKrtbqG6DJqfzcBAABY6wR/AAAAJaDsEwAAyI51/qpP5g8AAKAEBH8AAAAloOwTAADITyq3zKHksiGDMVSJzB8AAEAJCP4AAABKQNknAACQHd0+q0/mDwAAoAQEfwAAACWQTfB3ySWXRF1dXZx22mkt+0aMGFHsa72deOKJnZ6nUqnEueeeG4MGDYrevXvHfvvtF88999x7cAUAAEC11DXUZ7N1FVlcyRNPPBFXX311DB8+fIXnTjjhhHjllVdatksvvbTTc6Xnr7jiirjqqqvi8ccfjz59+sSBBx4YixcvXotXAAAAkLeaB38LFiyIo48+On7yk5/E+973vhWeX2+99WLgwIEtW//+/TvN+l1++eVx9tlnx8iRI4tg8vrrr4+XX345br/99g5ft2TJkpg/f36bDQAAqKH6/13nr9Zbfddp+FLzbp8nn3xyHHrooUV55tixY1d4/oYbboif//znReD3yU9+Ms4555wiIGzPrFmzYvbs2cW5mq2//vqx2267xWOPPRajRo1q93Xjxo2LCy64YIX9zzx/UfTvU/NbFKcP3Sly0q3SGLm4+S9HR06+OXTF91Gt/OOCn0ZO9qu7InLx2UE3RU7OevWsyMWoHS+PXPz25h9HTt5erylyccLX94mcfPn5b0Uutnx898jJawfeHLn4p93z+TcqefylKyMXbx5wW+Ri6LePiBzULVlU6yGwFtQ0srnpppviqaeeKso+23PUUUfF5ptvHoMHD46pU6fGWWedFdOnT4/bbmv/L2gK/JJNN920zf70uPm59owZMybOOOOMlscp8zd06NA1vCoAAID81Cz4e/HFF+MrX/lK3HfffdGrV692jxk9enTL1zvvvHPRxGXfffeNmTNnxtZbb121sfTs2bPYAACAPFjnrwvN+Zs8eXLMmTMnPvShD0W3bt2KbeLEiUWzlvR1Y+OKpYWpfDOZMWNGu+dMpaHJq6++2mZ/etz8HAAAQBnVLPhLGbxp06bFlClTWrYPf/jDRfOX9HVDQ8MKr0n7k5QBbM+WW25ZBHkPPPBAmxLO1PVz993zmgMAAABQirLPfv36xU47tW1kkpZl2GijjYr9qbTzxhtvjEMOOaTYl+b8nX766bH33nu3WRJi2LBhRcOWww8/vGWdwNQ4Ztttty2CwdQgJs0ZPOyww2pwlQAAwBopum3WfHGCiIZKdBW1b2XZgR49esT9999fLN2wcOHCogHLkUceWSzj0FpqADNv3ryWx2eeeWZxfJovOHfu3Nhrr73innvu6XBeIQAAQBlkFfw9/PDDLV+nYC/NAVyZtLZfayn7d+GFFxYbAAAAGQZ/AAAAiW6f1ZdBES0AAABrm8wfAACQacOXDLJuDRmMoUpk/gAAAEpA8AcAAFACyj4BAIDs1DXUF1ut1XWhdf5qfzcBAABY6wR/AAAAJaDsEwAAyE99Jt0+6zMYQ5XI/AEAAJSA4A8AAKAElH0CAAD5sch71cn8AQAAlIDgDwAAoASUfQIAAPlR9ll1Mn8AAAAlIPMHAADkJ62vl8Mae/UZjKFKZP4AAABKQPAHAABQAso+AQCA/DTUv7PVWkMluooM7iYAAABrm+APAACgBJR9AgAA+bHOX9XJ/AEAAJSA4A8AAKAElH0CAAD5SYur51ByWZ/BGKpE5g8AAKAEBH8AAAAloOyzE88NWxZ9+9V+Uccf3PhE5GSXfzo1cvHd958TOTl4Su3fL83+YfOjIid/eyuysTSzX3s9tf4fIxd3zd0vcnH1IXtETpZmVPbTa2E+nzXJrzY8PXLxjcP/T+RkQNN6kYsP1D0fOXntyDGRi751iyIX7x/768jB4vlL48Hv1HgQun1WXWY/AgEAALA2yPwBAAD5SRUXOVRd1GcwhiqR+QMAACgBwR8AAEAJKPsEAACyU2moK7Zaq2QwhmqR+QMAACgBwR8AAEAJKPsEAADyo9tn1cn8AQAAlIDgDwAAoASUfQIAANnR7bP6ZP4AAABKQPAHAADkGanksq2GcePGxUc+8pHo169fbLLJJnHYYYfF9OnT2xwzYsSIqKura7OdeOKJnZ63UqnEueeeG4MGDYrevXvHfvvtF88999zqDE3wBwAAUC0TJ06Mk08+OSZNmhT33XdfLF26NA444IBYuHBhm+NOOOGEeOWVV1q2Sy+9tNPzpuevuOKKuOqqq+Lxxx+PPn36xIEHHhiLFy9e5bGZ8wcAAFAl99xzT5vH1157bZEBnDx5cuy9994t+9dbb70YOHDgKp0zZf0uv/zyOPvss2PkyJHFvuuvvz423XTTuP3222PUqFGrdB6ZPwAAIDuVhr83fantFoX58+e32ZYsWbJK1zFv3rzizw033LDN/htuuCEGDBgQO+20U4wZMyYWLVrU4TlmzZoVs2fPLko9m62//vqx2267xWOPPbbK91TmDwAAYCWGDh3a5vF5550X559/fqevaWpqitNOOy323HPPIshrdtRRR8Xmm28egwcPjqlTp8ZZZ51VzAu87bbb2j1PCvySlOlrLT1ufm5VCP4AAABW4sUXX4z+/fu3PO7Zs+fKXlLM/XvmmWfi0UcfbbN/9OjRLV/vvPPORROXfffdN2bOnBlbb711rC3KPgEAgPzU1UXUZ7DVvbPOXwr8Wm8rC/5OOeWUuPPOO+Ohhx6KIUOGdHpsKt9MZsyY0e7zzXMDX3311Tb70+NVnTeYCP4AAACqJDVnSYHfhAkT4sEHH4wtt9xypa+ZMmVK8WfKALYnnSMFeQ888EDLvjTvMHX93H333Vd5bII/AACAKkmlnj//+c/jxhtvLNb6S3Py0vbWW28Vz6fSzosuuqjo/vn888/HHXfcEcccc0zRCXT48OEt5xk2bFgRQCZpHcA0d3Ds2LHF8dOmTStek+YMpnUEV5U5fwAAQHYq9XXFVmuV1RzDlVde2bKQe2vjx4+P4447Lnr06BH3339/sXRDWvsvNZI58sgji2UcWksNYJo7hSZnnnlmcXyaLzh37tzYa6+9imUlevXqtcpjE/wBAABUseyzMynYSwvBr+55UvbvwgsvLLY1pewTAACgBGT+AACA7FTq39lqrZLBGKqlC10KAAAAHZH5AwAAsiPzV31d6FIAAADoiOAPAACgBJR9AgAA2ak01BVbrVUyGEO1yPwBAACUgOAPAACgBJR9AgAA2dHts/q60KUAAADQEZm/Tnzg7iXRv3dDrYcRkdkk0ykPXRm5+N5hm0ZOdhjwlcjFn6eeFzn57j4DIhdnPPha5ORjPX4dufjr4MbIxf/Z9PORk4HdZ0cuxr15b+Tk0z1Pjlz87c87Rk4+vd1VkYu9Xn0zcrJo0z9GLp5ozOd9M+HX10YOGhfNj4g7aj0MqkzwBwAAZEfZZ/V1oUsBAACgIzJ/AABAdmT+qq8LXQoAAAAdEfwBAACUgLJPAAAgO011EU31eYyjq8jgdgIAALC2Cf4AAABKQNknAACQHd0+q68LXQoAAAAdEfwBAACUgLJPAAAgO6nTZxbdPuujy+hClwIAAED2wd8ll1wSdXV1cdpppxWP33jjjTj11FNj++23j969e8dmm20WX/7yl2PevHmdnue4444rztN6O+igg96jqwAAAMhTFmWfTzzxRFx99dUxfPjwln0vv/xysX3729+OHXfcMf785z/HiSeeWOy75ZZbOj1fCvbGjx/f8rhnz55rdfwAAEB16fbZBYO/BQsWxNFHHx0/+clPYuzYsS37d9ppp7j11ltbHm+99dZx8cUXx+c+97lYtmxZdOvW8dBTsDdw4MC1PnYAAIB1Rc3j2JNPPjkOPfTQ2G+//VZ6bCr57N+/f6eBX/Lwww/HJptsUpSMnnTSSfH66693evySJUti/vz5bTYAAKC2GbemDLZKzSOmLpL5u+mmm+Kpp54qyj5X5rXXXouLLrooRo8evdKSzyOOOCK23HLLmDlzZnzjG9+Igw8+OB577LFoaGho9zXjxo2LCy64YI2vAwAAIHc1C/5efPHF+MpXvhL33Xdf9OrVq9NjUyYuZQfT3L/zzz+/02NHjRrV8vXOO+9czCNMJaMpG7jvvvu2+5oxY8bEGWec0eb7DR06dLWvCQAAIFc1C/4mT54cc+bMiQ996EMt+xobG+ORRx6JH/zgB0UpZsrUvfnmm0U2r1+/fjFhwoTo3r37an2frbbaKgYMGBAzZszoMPhLcwQ1hQEAgHxU6ivFVmuVDMawzgd/KRCbNm1am32f//znY9iwYXHWWWcVgV/KwB144IFFYHbHHXesNEPYnpdeeqmY8zdo0KAqjh4AAGDdUrPpiymTlzp6tt769OkTG220UfF1CvwOOOCAWLhwYVxzzTXF49mzZxdbyhA2S8Fiygg2dw792te+FpMmTYrnn38+HnjggRg5cmRss802RRAJAABQVjVf6qEjqRHM448/XnydgrfWZs2aFVtssUXx9fTp01sWfk/ZwqlTp8Z1110Xc+fOjcGDBxcBZGoUo6wTAADWHc3dNmutKYMxdMngLzVlaTZixIioVFZeX9v6mN69e8e999671sYHAACwrupCcSwAAADrROYPAAAgUfZZfV3oUgAAAOiI4A8AAKAElH0CAADZaaqvFFutNWUwhmqR+QMAACgBmT8AACA7TXV5NFtpqosuI4PbCQAAwNom+AMAACgBZZ8AAEB2NHypPpk/AACAEpD568Tfdu0Ty/rW/hbNGbAscnLSBp+OXHyuclfk5LNDbohcnPj+XSMnP73pt5GL744aHDk5+dG/RS5mbZLP580tr/575OTOrfpFLqZs3CNycnT97ZGLH7+9fuTkU29NjVx8uucpkZNljxwQufjXvT8XuXhouz9FDpoWLKj1EFgLah/ZAAAALCd1+syi22d9dBld6FIAAADoiOAPAACgBJR9AgAAeS7ynsEC600ZjKFaZP4AAABKQOYPAADItOFL7dfYa+pC6bIudCkAAAB0RPAHAABQAso+AQCA7FQyWeevksEYqqULXQoAAAAdEfwBAACUgLJPAAAgO011lWKrtaYMxlAtMn8AAAAlIPgDAAAoAWWfAABAdhrr39lqrTGDMVRLF7oUAAAAOiL4AwAAKAFlnwAAQHaaMlnkvSmDMVRLF7oUAAAAOiLzBwAAZMc6f9Un8wcAAFACgj8AAIASUPYJAABkxzp/1deFLgUAAICOCP4AAABKQNknAACQnaai02Ye4+gqZP4AAABKQPAHAABQAso+AQCA7DRl0u2zKYMxVEsXuhQAAAA6IvgDAAAoAWWfAABAdlKnzyy6fdZFlyHzBwAAUAIyfwAAQHYa697Zaq0xgzFUi+CvEw1v10W3t2v/f/u8jT8RORne8Gzk4vifvR45+fO+iyIXh2zwL5GTfUZuFrm4/n9ujZxsv+03Ihfbdvtj5GLMwLz+P+37l3mRi4W9KpGTn/XZLXJxV+WbkZMvxWcjFzv1zefvd3L2sB9ELv6ypPY/7zV7vPupkYM3uy2LnWo9CKpO2ScAAEAJyPwBAADZSevr5bDGXlMGY6iWLnQpAAAAdETwBwAAUALKPgEAgOzo9ll9Mn8AAAAlIPgDAAAoAWWfAABAdprq3tlqrSmDMVSLzB8AAEAJyPwBAADZaayrK7Zaa8xgDDXP/M2cOTPOPvvs+OxnPxtz5swp9t19993xhz/8oZrjAwAAoFbB38SJE2PnnXeOxx9/PG677bZYsGBBsf/3v/99nHfeedUYFwAAALUO/r7+9a/H2LFj47777osePXq07N9nn31i0qRJ1RwfAABQ4oYvOWylDv6mTZsWhx9++Ar7N9lkk3jttdeqMS4AAABqHfxtsMEG8corr6yw/+mnn473v//91RgXAAAAtQ7+Ro0aFWeddVbMnj076urqoqmpKX7729/GV7/61TjmmGOqP0oAAKBUmv6322ett6ayd/v85je/GcOGDYuhQ4cWzV523HHH2HvvvWOPPfYoOoACAADQBdb5S01efvKTn8Q555wTzzzzTBEA/sM//ENsu+221R8hAAAAtV3kfbPNNis2AACAamqse2ertcYMxvCeB39nnHHGKp/0u9/97pqOBwAAgFoGf6mTZ2tPPfVULFu2LLbffvvi8X//939HQ0ND7LrrrtUfJQAAAO9N8PfQQw+1yez169cvrrvuunjf+95X7Pvb3/4Wn//85+NjH/vYuxsRAABQeu8ssF77msum2g+htt0+v/Od78S4ceNaAr8kfT127NjiOQAAALpAw5f58+fHX//61xX2p31vvvlmNcYFAACUWPM6e7XWmMEYapr5O/zww4sSz9tuuy1eeumlYrv11lvj+OOPjyOOOKL6owQAAOC9z/xdddVV8dWvfjWOOuqoWLp06Tsn6tatCP4uu+yydzciAAAA8gj+1ltvvfjRj35UBHozZ84s9m299dbRp0+fao8PAAAoocaoK7Zaa8xgDFks8p6CveHDh1dvNAAAAOQT/H3iE5+Iuk4mPj744IPvZkwAAADkEPx98IMfbPM4zfubMmVKPPPMM3HsscdWa2wAAEBJpTX+8ljnry5KHfx973vfa3f/+eefHwsWLHi3YwIAACCHpR468rnPfS5+9rOfrdFrL7nkkqKU9LTTTmvZt3jx4jj55JNjo402ir59+8aRRx4Zr776aqfnqVQqce6558agQYOid+/esd9++8Vzzz23RmMCAADoKqoa/D322GPRq1ev1X7dE088EVdfffUKzWNOP/30+PWvfx0333xzTJw4MV5++eWVriN46aWXxhVXXFEsR/H4448XTWkOPPDAIpAEAADWDY1Rn81W6rLP5QOwlG175ZVX4sknn4xzzjlntc6VykSPPvro+MlPfhJjx45t2T9v3ry45ppr4sYbb4x99tmn2Dd+/PjYYYcdYtKkSfHRj350hXOlcVx++eVx9tlnx8iRI4t9119/fWy66aZx++23x6hRo9bkcgEAANZ5axTG9u/fP9Zff/2WbcMNN4wRI0bEXXfdFeedd95qnSuVdR566KFFeWZrkydPLhrJtN4/bNiw2GyzzYoMY3tmzZoVs2fPbvOaNL7ddtutw9ckS5Ysifnz57fZAAAAupI1yvxde+21VfnmN910Uzz11FNF2efyUhDXo0eP2GCDDdrsT1m89Fx7mvenY1b1Ncm4cePiggsuWGH/U9svjT79m6LWNu/2cuRk3IX/FbmobNgzcnLvFn0jF49N/nHkpN/zSyIXz300r/KNOxouilzc2muryMXYtz4TOXnwv26KbNTn1XnuRx+9LXIx4f0DIyf/FA9HLj43Y07kZJPn39Vy01W1fbd8/k79bVAlctBjWR5dNhsz6LTZlMEYqmWNfgLaaqut4vXXX19h/9y5c4vnVsWLL74YX/nKV+KGG25Yo3mC1TRmzJiizLR5S2MDAADoStYo+Hv++eejsbGx3fLJv/zlL6t0jlTWOWfOnPjQhz4U3bp1K7bU1CU1a0lfp2zd22+/XQSUraVunwMHtv9bveb9y3cE7ew1Sc+ePYtS1tYbAABQO01Rn83WVaxWvv2OO+5o+free+8t5tM1S8HgAw88EFtsscUqnWvfffeNadOmtdn3+c9/vpjXd9ZZZ8XQoUOje/fuxTnTEg/J9OnT44UXXojdd9+93XNuueWWRZCXXtO8EH2av5e6fp500kmrc6kAAABdymoFf4cddljxZ1qP79hjj23zXArUUuD3ne98Z5XO1a9fv9hpp53a7EvLMqQ1/Zr3H3/88XHGGWcUDWVSNu7UU08tAr/WnT5TsJjm7B1++OEt6wSmrqHbbrttEQym7qODBw9uGTsAAEAZrVbw19T0TvOTFFSlJi0DBgyItel73/te1NfXF5m/VFKa1uv70Y9+1OaYlA1M8/SanXnmmbFw4cIYPXp0UTK61157xT333FPzeYUAAMCqa8yk4UtjBmOoljUqYE1LKqyNwO/hhx8u1ulrlgK2H/7wh/HGG28UAd1tt922wty9tLbfcccd1/I4Zf8uvPDCortnWtj9/vvvj+22267qYwUAAFheqkr8yEc+UlQ6brLJJkUFYkpYtSfFMgcffHARw6R1yTuTYp50XOvtoIMOirWS+UuNWFI2LQVk6evOfPnLX16tQQAAAHQFEydOLNYyTwHgsmXL4hvf+EYccMAB8cc//rGY5tZaSnylIG5VpWBv/PjxbRpXrpXgL5VgHn300UXwl77uSBq84A8AAHg3GqO+2GqtcTXHkKacLb9GesoAptUO9t5775b9U6ZMKfqlPPnkkzFo0KBVOncK9jpbxaBqwV8q9WzvawAAgK5u/vz5KwRiq5J5a+5PkppYNlu0aFEcddRRxRS31Qnm0jS5FEi+733vi3322adodJkaZq6qNQql05y6NODlvfXWW8VzAAAAXcnQoUOLpe6atzS3b1UaZqbVCPbcc882Kx2cfvrpsccee8TIkSNXq+Tz+uuvL5a1+9a3vlWUl6b5gu2tv16Vbp/NLrjggjjxxBNjvfXWa7M/BYTpuXPPPXdNTgsAAJBl2eeLL75YLD/XbFWyfmnu3zPPPBOPPvpom7XTH3zwwXj66adXaxyjRo1q+XrnnXeO4cOHx9Zbb11kA9Ma6qtije5m6krT3sTE3//+923SmQAAAF1B//7922wrC/5OOeWUuPPOO+Ohhx6KIUOGtOxPgd/MmTNjgw02iG7duhVbkpa3GzFixCqPZ6uttipWYJgxY8bayfyl2tLmtqJp+YTWAWBKNy5YsKDICAIAALwby+oaiq3WltVVVjtRduqpp8aECROKrFxaI721r3/96/HFL36xzb6UyUtNNT/5yU+u8vd56aWX4vXXX1/lZjGrHfylVqTpYr7whS8U5Z2p1rVZjx49Yosttojdd999dU4JAADQZZx88slx4403xq9+9atirb+0/niSYqfevXsXDV7aa/Ky2WabtQkUhw0bVswrPPzww4skW4q/UnYwvTZlDs8888zYZptt4sADD1w7wd+xxx5b/JkGlSYodu/efXVeDgAA0KVdeeWVxZ/Ll3Cm9fnSQu2rKi0M39wptKGhIaZOnRrXXXddzJ07NwYPHlysHXjRRRet1lp/a9Tw5eMf/3jL14sXL4633367zfOtJ0ICAACsrqaoy6LhS1Os+iLsSaqUXF3tvab1vpQxvPfee+PdWqO7mbp6pgmMaY2JtEp9mgvYegMAACAvaxT8fe1rXyu61KSUZkoz/vSnPy1qUFP6Ma09AQAAQF7WqOzz17/+dRHkpTrWz3/+8/Gxj32smGy4+eabxw033BBHH3109UcKAACUxrKoL7ZaW5bBGKplja7kjTfeKNaVaJ7flx4ne+21VzzyyCPVHSEAAAC1Cf5S4Ddr1qyWFqS//OUvWzKCrZd/AAAAYB0u+0ylnr///e+Lrp9pkcK0GOEPfvCDWLp0aXz3u9+t/igBAIBSaYyGYqu1xmiKUgd/p59+esvX++23Xzz77LMxefLkGDBgQPz85z+v5vgAAACogqrMXkyNXo444oii5POaa66pxikBAACodeYPAABgbVoWDcVWa8u6UNln1+lbCgAAQIdk/gAAgOxY56/GwV+a19eZuXPnvtvxAAAAUOvgb2Vr+KXnjznmmHc7JgAAAGoZ/I0fP77a3x8AAGAFTZms89ek4QsAAADrEsEfAABACej2CQAAZGdZpSEaKrUv+1xWUfYJAADAOkTmrxMbvRXRN4M7dPGkmZGTxr03jVz8bePIyowYHLno99jkyMldo/tGLp7tsUnk5L+WDo9cXPmnhyIXX//bS5GTff5pVOTih/Nvjpzcvun7Ixej//Bq5OS8HXeKXKy38LXIye2fiGx8+toFkYvRe46MHCydvyQinqz1MKiyDEIbAACAFRdXb8ig2+eyaIyuQtknAABACQj+AAAASkDZJwAAkJ1lRdFnDmWfDdFVyPwBAACUgMwfAACQncZoyCLr1pjBGKpF5g8AAKAEBH8AAAAloOwTAADIzrJKt6iv1D5cWVZpiq5C5g8AAKAEBH8AAAAlUPs8KgAAwHJSp8/6DDptLstgDNUi8wcAAFACgj8AAIASUPYJAABkZ1mlIeorDVmMo6uQ+QMAACgBmT8AACA7y6I+k4Yv9dFVdJ0rAQAAoEOCPwAAgBJQ9gkAAGSnsdItllVqH640Vhqjq5D5AwAAKAHBHwAAQAnUPo8KAADQzvp6dRmssbcsgzFUi8wfAABACQj+AAAASkDZJwAAkJ3G6Bb1GYQrjaHbJwAAAOsQwR8AAEAJ1D6PCgAAsBzdPqtP5g8AAKAEZP4AAIDsLKvUZ5L5q4+uoutcCQAAAB0S/AEAAJSAsk8AACDLdf7qMghXGjMYQ7V0nStZC4acNiP6da+r9TDikeu3i5x86LnukYvnhrwdOTlk4bORi7NO2TVyMvbhmZGLj2z6euTk5WEvRy6e2DqfhWz3P/ulyMmXdrs9cvHrTQdGTo5+Pp/3cJ8f/jly8tEf5POjVp+/RVb+z+35/Bt+zRc2ilzc+v/uixzMX7gsBtR6EFSdsk8AAIASyOfXUQAAAP+rMZN1/hozGEO1yPwBAACUgOAPAACgBJR9AgAA2VmWyi0zKLlclsEYqkXmDwAAoAQEfwAAACWg7BMAAMhOY6Vb1FW6ZTGOrkLmDwAAoAS6ThgLAAB0GRq+VJ/MHwAAQAkI/gAAAEpA2ScAAJCdpkp9NGZQctlU6Tr5sq5zJQAAAOQZ/F155ZUxfPjw6N+/f7HtvvvucffddxfPPf/881FXV9fudvPNN3d4zuOOO26F4w866KD38KoAAADyU9OyzyFDhsQll1wS2267bVQqlbjuuuti5MiR8fTTT8ewYcPilVdeaXP8j3/847jsssvi4IMP7vS8KdgbP358y+OePXuutWsAAADW0vp6Gayx15jBGKqlplfyyU9+ss3jiy++uMgGTpo0KT7wgQ/EwIED2zw/YcKE+MxnPhN9+/bt9Lwp2Fv+tZ1ZsmRJsTWbP3/+Kr8WAABgXZDNnL/Gxsa46aabYuHChUX55/ImT54cU6ZMieOPP36l53r44Ydjk002ie233z5OOumkeP311zs9fty4cbH++uu3bEOHDn1X1wIAAJCbmucwp02bVgR7ixcvLjJ6Kbu34447rnDcNddcEzvssEPsscceKy35POKII2LLLbeMmTNnxje+8Y2iTPSxxx6Lhob2uwWNGTMmzjjjjDaZPwEgAADUTtHpM4Nun40ZjKHLBH8pO5cyevPmzYtbbrkljj322Jg4cWKbAPCtt96KG2+8Mc4555yVnm/UqFEtX++8885FQ5mtt966yAbuu+++HZaJmhcIAAB0ZTUP/nr06BHbbLNN8fWuu+4aTzzxRHz/+9+Pq6++uuWYFBQuWrQojjnmmNU+/1ZbbRUDBgyIGTNmdBj8AQAAeZH568Jz/po1NTW1ab7SXPL5qU99KjbeeOPVPt9LL71UzPkbNGhQFUcJAACwbqlp8Jfm2j3yyCPFmn5p7l96nMozjz766JZjUsYuHfPFL36x3XOkJSHSPMFkwYIF8bWvfa3oFprO+cADDxRLR6TM4oEHHvieXRcAAEBualr2OWfOnKKUM63nl7pspvl59957b+y///4tx/zsZz8r1gM84IAD2j3H9OnTi/mCSWroMnXq1GK9wLlz58bgwYOL11100UXm9AEAwDqkqdIQdRmUXDZlMIYuEfylcs6V+eY3v1lsHUmLwzfr3bt3ETwCAACQ+Zw/AAAAumC3TwAAgOU1Vuoz6fZZH11F17kSAAAAOiT4AwAAKAFlnwAAQJ7dPptqX/bZlEHpabXI/AEAAJSA4A8AAKAElH0CAADZKcotMyi5bMpgDNUi8wcAAFACMn8AAEB2mop1/urzGEcXIfjrxHpD+0afnrX/n/3h0TMjJ69ctk3kYla/XpGTIYsWRy7O/ENe75u468XIRb8FSyMnfX60WeRixFPdIxevf3FI5GSDZfm8bxbWvxk5mb9eU+Rig/lvR052+ttbkYvF/XpETnq8uCxysfuchZGLBdc9FzlYsLRS6yGwFtQ+sgEAAGCtk/kDAACyU6k0FFutVTIYQ7XI/AEAAJSA4A8AAKAElH0CAADZaWpqiEhbDuPoImT+AAAASkDwBwAAUALKPgEAgOxUKvXFVmuVDMZQLV3nSgAAAOiQ4A8AAKAElH0CAADZaWqqj0hbDuPoIrrOlQAAANAhmT8AACDThi+1X2OvouELAAAA6xLBHwAAQAko+wQAAPKTyi1zKLmsZDCGKuk6VwIAAECHBH8AAAAloOwTAADITqWpvthqrZLBGKql61wJAAAAHRL8AQAAlICyTwAAID9NDe9stdaUwRiqROYPAACgBGT+AACA/Fjnr+q6zpUAAADQIcEfAABACSj7BAAA8qPhS9XJ/AEAAJSA4A8AAKAElH0CAAD5qWRS9lnJYAxVIvMHAABQAoI/AACAElD2CQAA5KepLqKpPo9xdBEZ3E0AAADWNpm/Ttxy8ZbRu3/tb9GxV70eOZn/Vj6/M/jne5dFTl7/0fTIxSvXDIuc9PjnzSIXvX7xQuTk8Nf/J3Jx10e6Ry7+4ZWmyEmvZZXIxSEjfxc5WX/zvpGL9fZ+f+Rki395LnLRfaNekZPffmtI5GL7Y5+NXPQ/LpN/vxc1Rtz6VK1HsU4aN25c3HbbbfHss89G7969Y4899ohvfetbsf32269wbKVSiUMOOSTuueeemDBhQhx22GEdnjcde95558VPfvKTmDt3buy5555x5ZVXxrbbbrvKY8vnp3gAAID/VdfUkM22OiZOnBgnn3xyTJo0Ke67775YunRpHHDAAbFw4cIVjr388sujrm7VykovvfTSuOKKK+Kqq66Kxx9/PPr06RMHHnhgLF68eJXHVvu0FgAAQObmz5/f5nHPnj2LbXkpi9fatddeG5tssklMnjw59t5775b9U6ZMie985zvx5JNPxqBBgzr93inrlwLFs88+O0aOHFnsu/7662PTTTeN22+/PUaNGrVK1yDzBwAAZKeu0pDNlgwdOjTWX3/9li2Vd66KefPmFX9uuOGGLfsWLVoURx11VPzwhz+MgQMHrvQcs2bNitmzZ8d+++3Xsi+NYbfddovHHnssVpXMHwAAwEq8+OKL0b9//5bH7WX9ltfU1BSnnXZaMT9vp512atl/+umnF3MBm7N4K5MCvyRl+lpLj5ufWxWCPwAAgJVIgV/r4G9VpLl/zzzzTDz66KMt++6444548MEH4+mnn473mrJPAAAgP2mNv1y2NXDKKafEnXfeGQ899FAMGfL37rYp8Js5c2ZssMEG0a1bt2JLjjzyyBgxYkS752ouDX311Vfb7E+PV6VstJngDwAAoEpSc5YU+KWlG1Kgt+WWW7Z5/utf/3pMnTq1aPjSvCXf+973Yvz48e2eM50jBXkPPPBAmwY0qevn7rvvvspjU/YJAABQJanU88Ybb4xf/epX0a9fv5Y5ealBS1r3LwVx7WXrNttsszaB4rBhw4qmMocffnixHESaOzh27NhiXb903DnnnBODBw/udG3A5Qn+AACA7KzJGntraxyrIy28nixfwpmyescdd9wqn2f69OktnUKTM888s1grcPTo0cUi73vttVexrESvXr1W+ZyCPwAAgCqWfVbjNcvvS9m/Cy+8sNjWlDl/AAAAJSDzBwAAZKeusaHYaq0ugzFUi8wfAABACQj+AAAASkDZJwAAkJ36pvpiq7mmDMZQJV3nSgAAAOiQzB8AAJCduqb6TNb5q4+uoutcCQAAAB0S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FZ7beOON3/UYASAXgj8AVtkOO+xQzL9LAVdz9i/NkUtZsyFDhqzSObbffvuiwcqrr74am266abHviSee6PQ1ac5e83zB5YOzNAew2fz582PWrFltxpu+VzomZR+TSZMmtTnHhz70oaL0M5WU9u/ff5WuAQDWRRq+ANCuefPmFd02W2+jR48ugqlTTz21mEv3q1/9qpjbd8YZZ7TM91uZNLdv6623jmOPPTamTp1aBI9nn3128VzrctLWNt988+K5O++8M/76178W2bpkn332iX//938vGrVMmzatOGeaI9hsv/32i+22267Yn8o703HLN5c5+uijY8CAAUWHz/R8Ch7TXL/UsTSVsgJAVyH4A6BdKQD6h3/4hzbbRRddFHfddVf87ne/i1122SVOPPHEOP7441uCt1WRgrO0pEMK4FLX0C9+8YstAVlajqE973//++OCCy4olpVI2cJTTjml2D9mzJj4+Mc/Hv/0T/8Uhx56aNFFNAWWzVJAOmHChHjrrbeKeYXpe6XmMq2lrqOPPPJIMV8xdQZN2cJ0TWnOn0wgAF1JXWX5yRIA8B5L2b+07l9qvNI6eAMAqkfwB8B7LmXj0lp6aRmIFPB95StfKRZwf/TRR2s9NADosjR8AeA99+abbxZrA77wwgvFfLs0N+873/lOrYcFAF2azB8AAEAJaPgCAABQAoI/AACAEhD8AQAAlIDgDwAAoAQEfwAAACUg+AMAACgBwR8AAEAJCP4AAACi6/v/AdYVwie/4Tz8AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Step 1: Import Libraries\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Set a unique seed for reproducibility\n", "np.random.seed(42)\n", "\n", "# Step 2: Create Sample Data\n", "# Define latitude and longitude ranges and create meshgrid\n", "lat = np.linspace(30, 50, 20)\n", "lon = np.linspace(10, 30, 20)\n", "LON, LAT = np.meshgrid(lon, lat)\n", "\n", "# Create a base temperature field as a function of latitude and longitude.\n", "temperature_data = 25 + 10 * np.sin(np.deg2rad(LAT - 35)) * np.cos(np.deg2rad(LON + 95)) + np.random.uniform(-0.5, 0.5, size=LAT.shape)\n", "\n", "# Plot the heatmap using the 'turbo' colormap\n", "plt.figure(figsize=(10, 10))\n", "im = plt.imshow(temperature_data, extent=[lon.min(), lon.max(), lat.min(), lat.max()],\n", " origin='lower', aspect='auto', cmap='turbo')\n", "plt.colorbar(im,fraction=0.046, pad=0.04)\n", "plt.xlabel('Longitude')\n", "plt.ylabel('Latitude')\n", "plt.title('Heatmap')\n", "plt.gca().set_aspect('equal')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Heatmap using CDS Dataset" ] } ], "metadata": { "kernelspec": { "display_name": "myenv", "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.16" } }, "nbformat": 4, "nbformat_minor": 2 }