From b7c96e88547eec12a551bdac8ad32e2c02a183d3 Mon Sep 17 00:00:00 2001 From: Shridhar Sinha Date: Thu, 22 Aug 2024 20:24:11 +0000 Subject: [PATCH 1/3] data driven pinn example --- notebooks/Data_Drive_PINN.ipynb | 395 ++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 notebooks/Data_Drive_PINN.ipynb diff --git a/notebooks/Data_Drive_PINN.ipynb b/notebooks/Data_Drive_PINN.ipynb new file mode 100644 index 0000000..dca0944 --- /dev/null +++ b/notebooks/Data_Drive_PINN.ipynb @@ -0,0 +1,395 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jTfemP29S5cuzJ8/n6KiIiZNmsRf//pXrrrqKsrKymjXrh1/+MMfuOaaa3Ach5UrV2JZFm3btt1gn6urqxk6dCiRSISbb76ZXr16EYvFWLhwIb/73e+Ix+MbPHf58uUA7Lbbbut9XErZ4Dmvrx9t27bdKP//l9jYvkAwCNiuXTseeeQRDjzwQMrKynj55Ze58MILsSyrQXsjR47c4DXXrFlDXl7eJve1c+fOdO7cGYBDDz0UgCuvvJJTTz2VVq1abfAcgHnz5m3StYqKihg4cOAm99Gw9TEi3gQoKSlBSsnSpUvXeWzJkiUA2ci7RYsWWaGoz7Jlyxr8/sc//rFBrm84HM7+v3///jz99NNorfnqq68YP348Y8aMIRqNcsUVV9CqVSt832fZsmXrvbEATJw4kSVLlvD+++9no28I0uF+icxzee655+jSpcsGj2vRosV6n9uG9m0OG9sXqPtmdPfdd1NeXs6TTz5JMpnk9NNPX6e9e+65hz333HO97azvJrw57L777owbN465c+duUMTbtWtH//79efvtt6mtrd0kX9zQTNjWfs5vgY3xDAcNGqTbtm2ra2trs/t839f9+/fPqSe+IYqLi/Wxxx6rta7zxK+99toNHv/yyy9rQE+dOrXB/pEjR67jma7tic+bN0/btq1vu+22n+2T7/u6Xbt2etddd91invjG9iXDd999pwF9//3364EDB+pBgwY1eLyqqkoXFxfrc8899xfb2lRPfG1GjRqlpZR6xYoVP3vcM888owF95plnNngd6/f5rbfeyv7epUsXPWLEiPW2NW3aNOOJNzFMJL4VmThx4notgEMPPZRbbrmFAw44gH322Ye//OUvhEIh7r//fr755hueeuqprCd89dVX88orr7Dffvtx9dVXE41GGTduXNZnrf/1f328+uqr3H///Rx11FF0794drTXPP/885eXlHHDAAQAMHTqUUaNGcfPNN7N8+XIOO+wwwuEwX3zxBbFYjAsuuIDBgwdTUlLCOeecw/XXX4/jODzxxBN8+eWXv/g6dO3alTFjxnD11Vczd+5cDj74YEpKSli+fDmffvopeXl53HjjjUgpuemmmzjrrLM4+uij+cMf/kB5eTk33HDDz1o9a1NZWclzzz23zv5WrVoxbNiwjepLhj59+jBo0CBuueUWFi5cyEMPPdSgzfz8fO655x5O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eOKGXGEicUOToKamhr/+9a+ceOKJDBgwgHHjxq0zi3NT6HfpWOxakRXSXXbZZZPOr66uZsSIEYwfP55HH32UTz/9NCvgAEJphNJIX6MsgVCaSUtKcRwHgE8++WSz+24wbApGxA05o37Z2Y0lkUjw3HPPMXLkSK655hp69uzJY489xtlnn/2zkewv8c3tF/P9mIvpf8lYRo8ezdKlSzc6Ep8yZQoDBgxgypQpPP/885xyyikNHt/j5DvQUoAGLQEBWgicSB7xeJxwOMykSZPwPI+hQ4fypz/9abOfh8HwSxgRN+SM6667bqOPLS8v5/e//z0lJSUce+yxvPnmmxQNGsrkyZMZMGAAvW8Y2+D4fn8Zyw5Xjt1AaxvGrtUMGjSIpUuXsmrVqp89VmvNvffey8iRI0kkEnz66accffTRQCDce554B3uedEcg3GmEAjQoB5QtmD17NslkkltvvZWSkhKmTJnCfffdx2OPPbbJfTcYNgYj4oacMW3atI06znVdzj33XJ588kluuOEGvv32WzzPo/yjYFJP38vHYseh95ixbH/1WPpeNhY/DNoKxLz/JRsW8z1OviPwq9MID3bffXeA7ISi9TF37lwKCwu54IILKCgoYPz48fTp0yf7+CdPXIKWoNKLFElfI3345PFL+OyR0QgflA1ffPEFABUVFVRXV2fPz0WKo8GwPkztFEPOWLJkyQYf8zyPp59+mhdffJE333yTmpoa/vCHP2RnPdYnVKnRArQl0AK+/XuwlFvfy8byzT8aLuu245/HogV89c/0fhEMNGYRcMC//wvAAw88wN///nfy8/PXueaDDz5ITU0NY8aM4Zprrllv7RXpA36dkNePyD97JEhh7H/u7cQ6dqd20Vw673MCP018itLSUl588cUNvjYGQ2Mw2SmGRpPJtICgbsl2222Xfay2tpb77ruPt956i3fffZdddtmFo48+miOOOIIBAwZkj9vhqrGE12iED0LD9H+lRfGSsXx9x/rX49z53Dv54oHguN1PuQMRFDzkkycuyR6zy9l34ocF8YoVzHvyH1x33XVce+2167R1zTXXcMcddxCPxxv3YtRjt1PvJFks+PruoI+pVCo78Nncs1MSiQSpVCpn7YVCIbNg9GZi7BRDTnnnnXeora3l0ksvZejQobRv354rrriCJUuW8OyzzzJ9+nSuueaaBgIOMPNvdUKdEXBgHQHv95c6K0Wouv2fPnYJyhYNBBwABVpAqHVrjjvuOCZMmLDefj/11FMkEgnWrFmzqU8ZCCYo7bvvvvztb3/L7rNcTWSN4sorrwRg3LhxXHrppZSUlHDvvfdu1nWaAolEgm5d8ikqKsrZ1q1bt+wKT4ZNw0TihkZTPxKHoPa3lJJjjjmG3r17c/LJJ9OrV691zut5y50M/v5LHnvsMW655RaeXhBCaLLRdYb6EXeGXc6+k88f3LhZmDufcydugeCSHYo566yzWLRoUbamSoYxY8Zw/fXXs2zZMtq0abOxTz3LSy+9xFFHHUVhYSE7HHId0tUoG1L5khuP7sXhhx/OHnvswY8//thggLU5RuKZ9/un6V0pLGh8HFhZpeiy6/xm+Vo0BUwkbsg5F198MZ9//jlPP/00N954I7169SIej7NgwQLGjBlDly5deOyxx5h9xcUsXLgQgDueeB0tBcoS7PintQYuNex0/p0Ndq0t4LufcscG+/PFuNF8c/vF/OOjJUSjUa644op1jnn55ZcZOHDgZgk4kF216Pjjj8dKKhDghwXKgffffx8IcscrKirYfffdGTly5GZdpymRXyBythk2HzOwacgpffv25W9/+xtvv/02n376KW+++SYzZszghx9+AIIqg1prPvroI0455RTeffddfN9n4J/vRniaL8atG12vb199Bp5+588uAvHkk0+yzz778O3/Xc3De7blrLPO4uyzz2bw4MFAMLty+vTp7Ljjjpv9vDPVC0877bRsu3v8/g7sBMRaxxoc+/zzz1NQUMBzzz232ddrCvha4efge7yv1S8fZNggxk4xNJrM1+unn36ak08+GcuysoNenTt35vDDD2f77benTZs27LHHHnTu3BnY9Gnwm8uMGTPo1q0bRUVFKKVo06YNvXv3ZsqUKQC8/vrrjBgxgj//+c/ZafObyqhRo1i8eDETJ07M7tvj93fwyeOX8OGHHzJkyBAA9tlnH959912qqqqa7cBm5v1eMatLzuyU1r1/apavRVPAROKGnHHIIYcwdepUJk6cyN57781OO+1EKBTK1i6BoEAUwB//+Met1q+ddtop+38pJZZl8eGHH7Jy5Uq01owYMQKAu+++mz322IOTTjppk69x7bXXMmfOHLTW2W8FnzweDLIqVRdpLly4kCuvvJKrrrqqEc+oaaDQ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pqHRbM1Bus8++4x3332XO299jLKqebh+nK5duzJt2rTs4sbxeJy33nqLDz/8kE8//ZSpU6fiui7nn38+99577zptjh8/ntNPP51p06at1xPfEvwaBjYnfdMhZwObw/otZuHChQ1ei42JxM8//3xee+01pkyZssUGoZs6xk4x5IwTTjiBY445hmOPPXaLXaNXr1706tWLc889F9d1uf7667nvvvu46aabskvAAey7777su+++ACxcuJCRI0dy3333MWrUKLbffvsGbcbjcQCqq6vX+Uq/pdha12lOFBYWbtIN7YILLuDll1/mgw8++M0KOJhI3JADEokE3bp1Y9myZdu6K82Ktm3bMm/ePCKRyC8f3ITIROITv+mUs0h8334LN/pbidaaCy64gBdeeIH333+fnj17NroPzRkTiRsaTSQSYd68eaRSqS12jWXLltG2bdt19k+bNo3999+fUaNGccsttyCEID8/f53jLrroIh555BHefPNNBg0a1OCxJ554gvPOO4/33nuPXXbZZYs9h7UJhULNTsDro3M0sKk3sY3zzz+fJ598kpdeeomCgoJs8FBUVEQ0Gm10f5obRsQNOSESiWxRQRoyZAgdO3bk8MMPp0+fPiilmDFjBnfccQf5+flceumlLF26lIMOOogTTjiBYcOG0a5dO8rKynjttdd45JFHGD58OAcccEA2JTFD5g8/Pz+/2fnTv0UeeOABIJh5W59HHnmE0047bet3aBtjRNzQLLjmmmt46aWXGDt2LEuXLiWZTNKuXTv2339/rrzySrbffnvKy8sZPXo0EydO5KWXXmLlypU4jkPPnj25+eabGT169DoCbth8tlWeuHGAG2I8cYPBsElkPPE3vupGXg488ZoqxSED5jXLTJ2mgAlLDAaDoRlj7BSDwbBZKAQqB3GgMgslNwoTiRsMBkMzxkTiBoNhs9hWA5uGhhgRNxgMm4WvJb5u/Jd53+RWNApjpxgMBkMzxkTihpyQSCS26IzNXyPNfcamytEix2ah5MZhRNzQaEztlM2judZOMTQtjIgbGk0qlWLZsmXrlBLNMHbs2Oyiw0OGDOHRRx/Nlo39rVJZWUmnTp1IpVLNVsQVEt+kGG5zjIgbcsb6SomuWrWqwarxU6ZM4eSTT+ajjz5CCPM1ujljBjabBmZg07BFsW2bkpISIIjY77//fj7++GMe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pSsqDT1p6Fd4enaJ1OcSaTDc5dx0y1gQCKo++ohVb71J5zv/DyNs+UU4ZkI3vEJAakk50Q6dKOzWC8N2o/tVEM3bFpkCWeWmC6a87JWM9y1sXf2Troogok5mgjYktcY1sn+AiETl2TiRdYTi68lpp53Gt99+y7vvvst+++3X6LkTTzyRK664YourCq2vrycej+f8uJFIhD333DOnx/ytN4RNxSZpgPXpp5+y//77U1BQQDweZ6+99uKtt95qcr/+/fsTjUZp3749119/PY899hhCiCa/vqzOtGnTOPzww2nVqhWRSIR27dpx2GGHsXDhQn8fKSUPPPAAu+yyC7FYjOLiYvbcc09/cVyAl156iYMOOoi2bdsSi8XYYYcdGD58OHV1dev1fl966SX69+9PXl4e+fn5HHzwwUybNm2N/caNG8d2221HJBJhhx124Omnn16v428Krr76alq0aME111zzq/sqpRg7dqx/DUtKSjjuuOOYPXt2o/3qf/4Ru7KCn0ZdwY+j9eZXMbqtXb0CS7mqmtovJxPffgcKdu4DZNL3dOMphSwOkTdoD2RIV02aDYKajz9j8YMPMnf0jcweeS0L776Tio8+xDEcnKjCieo88sWPjGXBXXcSjpdg5uUz/9qRLLxuNDWvvEtkmSJcI2iY9Qs/3XQF6VUrqP9pJr+MvJKfbroCe/kqnKWr+Pn6K6n7dIruO15hYDa4Iu7a5sotTELp6JwaC1UZxqmyqP7PlywZdR8LLh3BgitvZPmjz2AvX6n3FQrD1Heh++67z1+guW/fvrzzzjvr9fl99dVXvPPOO5x99tlrCLjHbrvtRqdOndbreBuEzOEGdOrUyRfG9f2dU0pxxx13/Oo1XJudMnPmTE466SRat25NJBKhU6dOnHbaaSSTScaNG8fQoUMBGDx4MEKIRsdoyk5JJBJce+21dO3a1be2LrroIiorKxvt59mj//nPf+jbty+xWIztt9+eJ554Yn2ufCNyHolPnDiRAw88kN69e/P4448TiUQYO3YsRxxxBC+88AInnHACANOnT+fAAw+kR48ePPXUU8TjcR5++GGeffbZ9TpPXV0dBx54IF27duXBBx+kdevWlJeXM2HChEapW2eccQbPPvssZ599NqNHjyYcDvP11183ukn8/PPPHHrooVx++eXk5eUxc+ZMxowZw+TJk/nwww/XOY7bbruNkSNHcuaZZzJy5EhSqRR33nkn++yzD5MnT6Znz56AFvAzzzyTo446irvvvpuqqipuuukmksmkvwr65qSgoICRI0dy2WWX8eGHH65VCADOP/98xo0bx6WXXsqYMWNYtWoVo0ePZq+99uLbb78lFosBEOnYGbtyFW3+fKYfKTtRNwJP68pMGQEkNMz+BaQk3nNH/by71JqKZJZB83p9iwR+cU16xUoKevUlXFiKCJkkli9m1Ufvk1q1jJZDT/QyEEEonNpqlr/7OqX7Hki0sBX1P85g5Wf/RTbU0+rwPxHq2p4OF1zKkmefJFxSRqv9j0AZYLQoxKmp1m/AyJzbC3kypfdZ5fjeeqBpQeULr1EzdQqF+w4getRhOIk6qt76gPIxY2l7/V+hLM+f/Lzxxhs5++yzOe6441iwYAHnnnsujuOw3XbbrfPz89bqPProo9f/Q0cHNbZtr/G42gBLI9d54t5qSPDrv3OtW7cGYNSoUYwaNWqDruG3337LgAEDKCsrY/To0XTv3p0lS5bwxhtvkEqlOOyww7jtttsYMWIEDz74IH379gXWHoErpTj66KP54IMPuPbaa9lnn32YPn06N954I5MmTWLSpElEIpFG57/yyisZPnw4rVu35rHHHuPss8+mW7duv2nlp5yL+PDhwykpKeGjjz4iPz8fgMMPP5xddtmFYcOGcfzxxyOE4JZbbsE0TT744APKysoAOOyww+jVq9d6nWfmzJmsXLmSxx9/nKOOOsp//Pjjj/f//8knn/DMM89w3XXXccstt/iPH3LIIY2ONXLkSP//Sin23ntvdthhBwYOHMj06dPp3bt3k2NYsGABN954IxdffHGj4o0DDzyQ7t27M2rUKF566SWklFx33XX07duX1157zZ9AGjBgAN27d6ddu3br9Z5zzQUXXMD999/PNddcw+TJk5uctP3iiy949NFHufvuuxst7rvPPvvQo0cP7rnnHq677joAzFAUx7AoKOkCuOX0Xr8SpRdYkCHd0yRdXQmAVVyi86vdtESEwBGOXvjYtU9kWC+jJhS0OPqojEWDQ77sAoVxVrz0EiVHHYEZj/viKuvqaXnumRT02AmrTpC37XY4pKmY9jlFgwdjtiwhGuuMMC2MaIxoxy5u6T+k3QwbaelViJShKzpBP+93Q3QTXMw6E2UpEnPnUfPlF5QefiRFg/fVNyFHEG/bjYVj/o+a9z6h+E+H4qzQ4fzhhx/OY4895l/XHXfckb333vtXBWj+/PkAdO3a9Td84vhBVHNk8ODBFBYWrtfv3JgxY6isrGTMmDEcc8wxG3QNr7jiCizLYvLkybRs2dJ//JRTTgF0oNO9u16NqmfPnr9qx7z33nu8++673HHHHVx11VWA1oKOHTtywgkn8PTTT3Puuef6+69YsYLPPvvM/7a077778sEHH/D888//JhHPaQhYV1fHl19+yXHHHecLOIBpmpx66qksXLiQH3/8EdAR+3777ecLOIBhGI1EGDKRg7c5jv7l79atGyUlJVxzzTU8/PDDzJgxY43xeF+rLrroonWOe/bs2Zx88sm0adMG0zQJhUIMHKgn5/73v/+t9XXvvvsutm1z2mmnNRpjNBpl4MCBfPTRRwD8+OOPLF68mJNPPrmRUHbu3Jm99tprnWPbEJRSjcbTVOQFEA6HueWWW5g6dSovv/xyk/u8+eabCCH485//3Oh4bdq0Yeedd/bfI+CvSm843nqWGR9cP+8u0pDMeNpex0Cv6VR6/iLmXnM18668Rm/DrsGpr9MTlQIali5kydOPM++G65k77GrmXn0NK154AaTEXrY8U24vQEQjxHfpiROTpIol6SJFvG8fUIqGubMR0luY2S3wCbuvc8BMuxOnhu6pIsM0isSFo1fwMby1Qt33UD9jBghBQd++iIRE1EtEg0M4UkC4bTsSP87CSBqkZmnLb/Xf97322ovOnTv/xk98/RkzZgxTpkxZY1t9HOuFN7GZiy2L9f2dmzRpEolEwhddj/W5hvX19UycOJHjjz++kYBvDN639jPOOKPR40OHDiUvL48PPvig0eO77LJLI7srGo3So0ePJrPG1kVOI/GKigqUUrRt23aN57xoc+XKlf6/3leibFZ/bPTo0YwaNcr/uXPnzsydO5eioiImTpzIrbfeyogRI6ioqKBt27ace+65jBw5klAoxPLlyzFNkzZt2qx1zLW1teyzzz5Eo1FuueUWevToQTweZ8GCBRx77LE0NDSs9bVLly4FtPfYFJ5N4r3npsbRpk2b9fL/Lcvyb2Cr44l0KBQC9A1y8ODBjfaZM2dOk+lQJ554InfddRfXXXcdxx577BrPL126FKVUk58VwDbbbOP/v6FiMdiShlgDdly6/U0MTEPniltVAhXS1YxmPA+A1MplxBr0uJQCI7+Q9qf/BYDqb6dQ880UzGUpjHqLdF0l5WMfxGpZRvGRQwgVlmCIEMmFC1n11nic+jqcdIPuKOhIzPw8ZCKhc9INsMMgS8IAJFOVRIT+bBUKaTgkIvX6RpMS2Og8bqnSpEU9AI7URUCqIYmKJPTizmlHD7w2ARY4FZWgFPNG39Tk9bJKS3DsBtL1FcCav+/Q9O/J6nh//HPmzPnViDObbbbZhl133XWNxzdIyGQmz36jkI2Psb6/c7/2d7UuKioqcByHDh06bMiIm2TlypVYlrXGtRRC0KZNG3+8Hi1atFjjGJFIZJ2a0xQ5FfGSkhIMw2DJkiVrPLd48WIAP/Ju0aKFL4LZlJeXN/r5vPPOa5Qfne0p9erVixdffBGlFNOnT2fcuHGMHj2aWCzG8OHDadmyJY7jUF5e3uSNBfTdc/HixXz00Ud+9A2sMRHRFN57+ec//7nOO7/3Ya3+3tb2WFO0bt2aRYsWNfmc97j3S9+vXz+mTJnSaJ+1WTZCCMaMGcOBBx7IP/7xjzWeLysrQwjBJ5980ujae0QiEcLhMG3atPHfy5ybrluv9wSwcvzrrBz/+jr3mXv/rY1+Ti9azKoX/7XGfsv+seak0IIrr2/ymJXj36Zy/Nv+z05FJQuuXnPflf96lZX/erXRY4vuvWuN/WbfvH7v2V5V0WhMq/9hg/6d+LX844MPPpgRI0bw73//ew17cEtnfX7n4Nf/rtZ1DUtLSzFNs1ESxMbSokULbNtm+fLljYRcKUV5eflag72NJad2Sl5eHnvssQevvvpqo7uJlJJnn32WDh060KNHDwAGDhzIhx9+yIoVKxrt98orrzQ6Zrt27dh11139rSnPXAjBzjvvzL333ktxcTFff/01AEOGDAHgoYceWuuYPXtj9V+WRx555Fff78EHH4xlWcyaNavRGLM3gO222462bdvywgsvNJpAmjdvHp9//vmvngfggAMO4Pvvv2/SNvLWbdxjjz0A7eWtPo5wOLzOYx944IGMHj2a2traRs8dfvjhKKVYtGhRk++vV69eRKNR5syZwxFHHEHLli2pqqpar8372vn44483+fzw4cMBbXdVVVVxxx13APDTTz/5+1RWVtKvXz9Afw33Hh8wYAAAL7zwQqNjnn766RiGwffff+8/1qlTJw4++OBG+02fPh2AsWPH+o+NHTsW0JPy3mMnn3wynTp18n9+9913AXjyySfX+d7nzp1LNBpd4/f9888/X6+v03379mXIkCE8/vjja518nzp1qu+dbxI2kZ2yPr9zAHvuuSfRaJTnnnuu0evX5xrGYjEGDhzIK6+80kiDVsfThfWJjvfff3+ANZIz/vWvf1FXV+c/n2s2KBL/8MMPm7QADj30UG6//XYOPPBABg8ezLBhwwiHw4wdO5bvv9cLx3qied111zF+/Hj2339/rrvuOmKxGA8//LCf1vdrGRtvvvkmY8eO5eijj2abbbZBKcWrr75KZWUlBx54IKAnQk499VRuueUWli5dyuGHH04kEmHatGnE43EuueQS9tprL0pKSrjgggu48cYbCYVCPPfcc3z77be/eh26dOnC6NGjue6665g9ezaHHHIIJSUlLF26lMmTJ5OXl8eoUaMwDIObb76Zc845h2OOOYZzzz2XyspKbrrppvX66gxw2WWX8fTTTzNo0CBGjBhBr169qKio4KWXXuKf//wn99xzDwUFBet1rKYYM2YM/fr1Y9myZey4447+43vvvTfnnXceZ555JlOnTmXfffclLy+PJUuW8Omnn9KrVy8uvPBCP71r/PjxPPfcc/Tr1w/DMJr86u4xduxYFi1axLnnnsv777/PUUcdRbt27aivr2fmzJm89tprRKNRSktLKSws5IgjjmDkyJGcd955XH311SQSCR566CGqq3UmSV5eHoWFhYCeh2nRogVXXnklK1asoEePHrz99ts89dRTXHjhhY3eoxACy7L81wL+tYzFYv7jXhZOQUGB/1goFEII4f980EEHcd5553HRRRcxY8aMtV6vwsJChg0bxi233MI555zD0KFDWbBgwW/6nXj66ac55JBDGDJkCGeddRZDhgyhpKSEJUuWMH78eF544QW++uqrjUozrK6uXqPKs76+foOPtz6s7+9cSUnJRl3De+65hwEDBrDHHnswfPhwunXrxtKlS3njjTd45JFHKCgo8CtW//GPf1BQUEA0GqVr165NWiEHHnggBx98MNdccw3V1dXsvffefnZKnz59OPXUU3N+rQBQv4Enn3zSK1locpszZ45SSqlPPvlE7bfffiovL0/FYjG15557qvHjx69xvE8++UTtscceKhKJqDZt2qirrrpKjRkzRgGqsrJynWOZOXOmOumkk9S2226rYrGYKioqUrvvvrsaN25co/0cx1H33nuv2mmnnVQ4HFZFRUWqf//+jcbz+eefq/79+6t4PK5atmypzjnnHPX1118rQD355JP+fjfeeKNq6pL9+9//VoMHD1aFhYUqEomozp07q+OOO069//77jfZ77LHHVPfu3VU4HFY9evRQTzzxhDr99NNV586df+XKa8rLy9WFF16oOnXqpCzLUgUFBWrAgAHqlVdeWa/XK5X5DKdMmbLGcyeffLIC1I477rjGc0888YTaY489/M902223VaeddpqaOnWqv8+qVavUcccdp4qLi5UQoslrtTqO46inn35aHXjggaqsrExZluV/ltdff71auHBho/3Hjx+vdt55ZxWNRlX79u3VVVddpd555x0FqAkTJvj7DRw4UO24447qo48+UrvuuquKRCKqbdu2asSIESqdTjc6ZufOndVhhx3W6LE5c+as8fl71877PVdKrfXzW5/rJaVUt99+u+rYsaMKh8Oqd+/eavz48WrgwIFq4MCBv3rtlFKqoaFB/e1vf1P9+/dXhYWFyrIs1a5dO3Xssceqt956y99vwoQJCljr78pFF120xuc1cODAdf69H7DNpeqQbldt9HbANpcqQFVVVW2ya9jU56mUUjNmzFBDhw5VLVq0UOFwWHXq1EmdccYZKpFI+Pvcd999qmvXrso0zUbHaOqzb2hoUNdcc43q3LmzCoVCqm3bturCCy9UFRUVjfZr6nfOu+br+9l7CKWaV/eZgw46iLlz5/LTTz/93kMJ2IIZNGgQK1as4Pvvv/+9h7LVUV1dTVFREQd0vQTLWNOz/q3YMsn7cx6gqqqq0behgPXjdy27v+KKK+jTpw8dO3Zk1apVPPfcc/z3v//l8ccf/z2HFRAQELDF8LuKuOM43HDDDZSXlyOEoGfPnjzzzDP8+c9//j2HFRAQsD5Iz1nJxXECNpRmZ6cEBAQ0b3w7pfPFubNT5v09sFM2kKCLYUBAwIahpN5ycZyADSYQ8YCAgA1jC+onvjWz+dvnBQQEBATkjCASD8gJiUSCVGrjFzr4IxEOh4lGo7/3MDacYGKzWRCIeMBGk0gk6Nq163r3gQnQtGnThjlz5my5Qh7YKc2CQMQDNppUKkV5eTkLFixoMrvg0UcfZdiwYYDuN/PII49sccuG5Zrq6mo6duxIKpXackV8C+HII4/km2++YdmyZZSUlHDAAQcwZsyY362Pf64JUgwDNhov5aypFLFVq1at0Wdi8ODBv7pi0tbOuq5Zc8dPMWx7Ppax9sZq64stU7y/5JFNdi3uvfde+vfvT9u2bVm0aJEfUKxv87nmTjCxGbBJUUr5jaPS6TT33nsvEyZMWOsiFAEBueavf/0re+65p78Iy/Dhw/niiy9Ip9O/99ByQiDiAZuUFi1a+Cux3H333Vx66aXssssuXHrppdx6662/uQF+QDMix61oq6urG23JZDLnQ/bae+y1117+IipbOoGIB2xydt99d1q1asXw4cO56aabWHb4Aey+++7ccMMNDBo0iH//+9/MnDmTfv36UVZWxmWXXbZBC/cGbGakzN0GdOzYkaKiIn+7/fbbczbUa665hry8PFq0aMH8+fN5/fV1L0SyJRGIeMBmYcGCBXTu3Jmbb76Z7p9M4bLLLqP12edRW1vLMcccww477MDXX3/NypUr+dvf/uYv7BHwx2HBggWNFs649tpr17rvTTfdhBBindvUqVP9/a+66iqmTZvGe++9h2manHbaaVtNoBBMbAZsNOs7Sff111/7q/AAdLzzZkLJCK8dcTCvv/46N9xwQ6P999lnH7p3745lWey+++706NGDX375hVmzZhEKhQiHw7z55pt8/vnnTJo06VdXI29ObBUTmy3Pzt3E5vLHf9O1WLFixTpX5AG9aEtTmT8LFy6kY8eOfP755/Tv33+DxtycCFIMAzYbffv2pUWLFv66kv/c9yBKS0uZM2cOjz76qL/fVVddxWNfTqOsRQGffvopP/30U5Prf2bTv39/KioqKC4u3pRvIaCZUFZW5q9x+1vx4tZN4bn/HgQiHrBZ+eabb+jYsSOg1ySsr69HSklRURGzZs3i9NNP59lnn2XksGHstttuDBgwgH4X3EuqtoJEohKjsBAjL4YViqEaUqiSKJXzprPkhXGUlJQwePBg3nrrLT8jZlOzePFi2rRp86vLCW6VbAHFPpMnT2by5MkMGDCAkpISZs+ezQ033MC22267VUThEHjiAZuZDh06UFNTwwEHHMCJJ57IkCFDOO200/jss8/YZpttePnll+nbty8jRoxg3333ZfTo0Xz9yBXQrpTQDttgti9DFOWhwgZmJIpwoKRDbw466CAAJkyYwIsvvsjZZ5/Njz/+uEnfy8svv0z79u056KCD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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import xarray as xr\n", + "import matplotlib.pyplot as plt\n", + "import cartopy.crs as ccrs\n", + "import cartopy.feature as cfeature\n", + "\n", + "# Load the saved Zarr data\n", + "zarr_path = '~/shared-public/mind_the_chl_gap/U-Net_with_CHL_pred.zarr'\n", + "zarr_ds = xr.open_zarr(zarr_path)['gapfree_pred']\n", + "\n", + "# Select the date you want to plot\n", + "date_to_plot = '2022-01-01' # Replace with the desired date\n", + "zarr_date = zarr_ds.sel(time=date_to_plot)\n", + "\n", + "# Load the Level 3 CHL data\n", + "level3_path = '~/shared-public/mind_the_chl_gap/IO.zarr'\n", + "level3_ds = xr.open_zarr(level3_path)\n", + "level3_chl = level3_ds['CHL_cmes-level3'].sel(time=date_to_plot)\n", + "sst = level3_ds['sst'].sel(time=date_to_plot)\n", + "u_wind = level3_ds['u_wind'].sel(time=date_to_plot)\n", + "v_wind = level3_ds['v_wind'].sel(time=date_to_plot)\n", + "air_temp = level3_ds['air_temp'].sel(time=date_to_plot)\n", + "ug_curr = level3_ds['ug_curr'].sel(time=date_to_plot)\n", + "# Plot the data\n", + "fig, axes = plt.subplots(nrows=7, ncols=1, figsize=(12, 6), subplot_kw={'projection': ccrs.PlateCarree()})\n", + "\n", + "# Plot the log-scaled Level 3 CHL data\n", + "ax = axes[0]\n", + "level3_chl_log = np.log(level3_chl.where(~np.isnan(level3_chl), np.nan))\n", + "im = ax.imshow(level3_chl_log, vmin=np.nanmin(level3_chl_log), vmax=np.nanmax(level3_chl_log), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('Log-scaled Level 3 CHL')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "ax = axes[1]\n", + "im = ax.imshow(sst, vmin=np.nanmin(sst), vmax=np.nanmax(sst), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('SST')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "ax = axes[2]\n", + "im = ax.imshow(u_wind, vmin=np.nanmin(u_wind), vmax=np.nanmax(u_wind), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('u_wind')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "ax = axes[3]\n", + "im = ax.imshow(v_wind, vmin=np.nanmin(v_wind), vmax=np.nanmax(v_wind), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('v_wind')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "ax = axes[4]\n", + "im = ax.imshow(air_temp, vmin=np.nanmin(air_temp), vmax=np.nanmax(air_temp), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('air_temp')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "ax = axes[5]\n", + "im = ax.imshow(ug_curr, vmin=np.nanmin(ug_curr), vmax=np.nanmax(ug_curr), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('air_temp')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "ax = axes[6]\n", + "gapfill_chl_log = zarr_date\n", + "im = ax.imshow(gapfill_chl_log, vmin=np.nanmin(gapfill_chl_log), vmax=np.nanmax(gapfill_chl_log), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax.set_title('Log-scaled U-Net Gapfilled CHL Prediction')\n", + "ax.add_feature(cfeature.COASTLINE)\n", + "ax.set_xlabel('Longitude')\n", + "ax.set_ylabel('Latitude')\n", + "\n", + "fig.colorbar(im, ax=axes.ravel().tolist(), location='right', shrink=0.9)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: deepxde in /srv/conda/envs/notebook/lib/python3.11/site-packages (1.12.0)\n", + "Requirement already satisfied: matplotlib in /srv/conda/envs/notebook/lib/python3.11/site-packages (from deepxde) (3.8.0)\n", + "Requirement already satisfied: numpy in /srv/conda/envs/notebook/lib/python3.11/site-packages (from deepxde) (1.24.4)\n", + "Requirement already satisfied: scikit-learn in /srv/conda/envs/notebook/lib/python3.11/site-packages (from deepxde) (1.3.0)\n", + "Requirement already satisfied: scikit-optimize>=0.9.0 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from deepxde) (0.10.2)\n", + "Requirement already satisfied: scipy in /srv/conda/envs/notebook/lib/python3.11/site-packages (from deepxde) (1.11.2)\n", + "Requirement already satisfied: joblib>=0.11 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from scikit-optimize>=0.9.0->deepxde) (1.3.2)\n", + "Requirement already satisfied: pyaml>=16.9 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from scikit-optimize>=0.9.0->deepxde) (24.7.0)\n", + "Requirement already satisfied: packaging>=21.3 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from scikit-optimize>=0.9.0->deepxde) (23.1)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from scikit-learn->deepxde) (3.2.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (1.1.1)\n", + "Requirement already satisfied: cycler>=0.10 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (0.11.0)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (4.42.1)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (1.4.5)\n", + "Requirement already satisfied: pillow>=6.2.0 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (9.5.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from matplotlib->deepxde) (2.8.2)\n", + "Requirement already satisfied: PyYAML in /srv/conda/envs/notebook/lib/python3.11/site-packages (from pyaml>=16.9->scikit-optimize>=0.9.0->deepxde) (6.0.1)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/envs/notebook/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib->deepxde) (1.16.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install deepxde" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting data loading process...\n", + "Data loaded. Preparing input and output data...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing variables: 100%|██████████| 6/6 [00:01<00:00, 5.35it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reshaping data...\n", + "float32\n", + "torch.float32\n", + "float32\n", + "Compiling model...\n", + "'compile' took 0.000145 s\n", + "\n", + "Training the model...\n", + "Training model...\n", + "\n" + ] + }, + { + "ename": "TypeError", + "evalue": "custom_loss() missing 1 required positional argument: 'targets'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 89\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTraining the model...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 88\u001b[0m \u001b[38;5;66;03m# Train the model\u001b[39;00m\n\u001b[0;32m---> 89\u001b[0m losshistory, train_state \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterations\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m10000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m32\u001b[39;49m\u001b[43m)\u001b[49m \n\u001b[1;32m 91\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMaking predictions...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 93\u001b[0m \u001b[38;5;66;03m# Make predictions\u001b[39;00m\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/utils/internal.py:22\u001b[0m, in \u001b[0;36mtiming..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(f)\n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 21\u001b[0m ts \u001b[38;5;241m=\u001b[39m timeit\u001b[38;5;241m.\u001b[39mdefault_timer()\n\u001b[0;32m---> 22\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 23\u001b[0m te \u001b[38;5;241m=\u001b[39m timeit\u001b[38;5;241m.\u001b[39mdefault_timer()\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m config\u001b[38;5;241m.\u001b[39mrank \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:643\u001b[0m, in \u001b[0;36mModel.train\u001b[0;34m(self, iterations, batch_size, display_every, disregard_previous_best, callbacks, model_restore_path, model_save_path, epochs)\u001b[0m\n\u001b[1;32m 641\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mset_data_train(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mtrain_next_batch(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbatch_size))\n\u001b[1;32m 642\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mset_data_test(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mtest())\n\u001b[0;32m--> 643\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_test\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 644\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcallbacks\u001b[38;5;241m.\u001b[39mon_train_begin()\n\u001b[1;32m 645\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m optimizers\u001b[38;5;241m.\u001b[39mis_external_optimizer(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mopt_name):\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:832\u001b[0m, in \u001b[0;36mModel._test\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_test\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 828\u001b[0m \u001b[38;5;66;03m# TODO Now only print the training loss in rank 0. The correct way is to print the average training loss of all ranks.\u001b[39;00m\n\u001b[1;32m 829\u001b[0m (\n\u001b[1;32m 830\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_pred_train,\n\u001b[1;32m 831\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mloss_train,\n\u001b[0;32m--> 832\u001b[0m ) \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_outputs_losses\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 833\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 834\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 835\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43my_train\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 836\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_aux_vars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 837\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 838\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_pred_test, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mloss_test \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_outputs_losses(\n\u001b[1;32m 839\u001b[0m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 840\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mX_test,\n\u001b[1;32m 841\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_test,\n\u001b[1;32m 842\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mtest_aux_vars,\n\u001b[1;32m 843\u001b[0m )\n\u001b[1;32m 845\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_test, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:551\u001b[0m, in \u001b[0;36mModel._outputs_losses\u001b[0;34m(self, training, inputs, targets, auxiliary_vars)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m backend_name \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpytorch\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 550\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet\u001b[38;5;241m.\u001b[39mrequires_grad_(requires_grad\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m--> 551\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43moutputs_losses\u001b[49m\u001b[43m(\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauxiliary_vars\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 552\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet\u001b[38;5;241m.\u001b[39mrequires_grad_()\n\u001b[1;32m 553\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m backend_name \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mjax\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 554\u001b[0m \u001b[38;5;66;03m# TODO: auxiliary_vars\u001b[39;00m\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:322\u001b[0m, in \u001b[0;36mModel._compile_pytorch..outputs_losses_train\u001b[0;34m(inputs, targets, auxiliary_vars)\u001b[0m\n\u001b[1;32m 321\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21moutputs_losses_train\u001b[39m(inputs, targets, auxiliary_vars):\n\u001b[0;32m--> 322\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43moutputs_losses\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 323\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauxiliary_vars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlosses_train\u001b[49m\n\u001b[1;32m 324\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:310\u001b[0m, in \u001b[0;36mModel._compile_pytorch..outputs_losses\u001b[0;34m(training, inputs, targets, auxiliary_vars, losses_fn)\u001b[0m\n\u001b[1;32m 308\u001b[0m \u001b[38;5;66;03m# if forward-mode AD is used, then a forward call needs to be passed\u001b[39;00m\n\u001b[1;32m 309\u001b[0m aux \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet] \u001b[38;5;28;01mif\u001b[39;00m config\u001b[38;5;241m.\u001b[39mautodiff \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mforward\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 310\u001b[0m losses \u001b[38;5;241m=\u001b[39m \u001b[43mlosses_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutputs_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloss_fn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maux\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 311\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(losses, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m 312\u001b[0m losses \u001b[38;5;241m=\u001b[39m [losses]\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/data/data.py:13\u001b[0m, in \u001b[0;36mData.losses_train\u001b[0;34m(self, targets, outputs, loss_fn, inputs, model, aux)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mlosses_train\u001b[39m(\u001b[38;5;28mself\u001b[39m, targets, outputs, loss_fn, inputs, model, aux\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 12\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return a list of losses for training dataset, i.e., constraints.\"\"\"\u001b[39;00m\n\u001b[0;32m---> 13\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlosses\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloss_fn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maux\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/data/triple.py:32\u001b[0m, in \u001b[0;36mTriple.losses\u001b[0;34m(self, targets, outputs, loss_fn, inputs, model, aux)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mlosses\u001b[39m(\u001b[38;5;28mself\u001b[39m, targets, outputs, loss_fn, inputs, model, aux\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m---> 32\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mloss_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutputs\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[0;31mTypeError\u001b[0m: custom_loss() missing 1 required positional argument: 'targets'" + ] + } + ], + "source": [ + "import numpy as np\n", + "import xarray as xr\n", + "import os\n", + "os.environ[\"DDEBACKEND\"] = \"pytorch\"\n", + "import deepxde as dde\n", + "import matplotlib.pyplot as plt\n", + "import cartopy.crs as ccrs\n", + "import cartopy.feature as cfeature\n", + "from tqdm import tqdm\n", + "import torch\n", + "\n", + "print(\"Starting data loading process...\")\n", + "\n", + "# Load the data\n", + "zarr_path = '~/shared-public/mind_the_chl_gap/U-Net_with_CHL_pred.zarr'\n", + "zarr_ds = xr.open_zarr(zarr_path)['gapfree_pred']\n", + "\n", + "level3_path = '~/shared-public/mind_the_chl_gap/IO.zarr'\n", + "level3_ds = xr.open_zarr(level3_path)\n", + "\n", + "# Select data for 2019-2021\n", + "time_slice = slice('2019-01-01', '2021-12-31')\n", + "zarr_ds = zarr_ds.sel(time=time_slice)\n", + "level3_ds = level3_ds.sel(time=time_slice)\n", + "\n", + "print(\"Data loaded. Preparing input and output data...\")\n", + "\n", + "# Prepare the input data (v)\n", + "variables = ['CHL_cmes-level3', 'sst', 'u_wind', 'v_wind', 'air_temp', 'ug_curr']\n", + "input_data = []\n", + "\n", + "for var in tqdm(variables, desc=\"Processing variables\"):\n", + " data = level3_ds[var].values\n", + " data = np.log(data) if var == 'CHL_cmes-level3' else data\n", + " input_data.append(data)\n", + "\n", + "v = np.stack(input_data, axis=-1)\n", + "\n", + "# Prepare the output data (u)\n", + "u = zarr_ds.values\n", + "\n", + "print(\"Reshaping data...\")\n", + "\n", + "# Modify the data preparation part\n", + "v = v.reshape(-1, v.shape[-1]) # (num_points, num_variables)\n", + "u = u.reshape(-1) # (num_points,)\n", + "\n", + "# Create spatial points (you may need to adjust this based on your specific problem)\n", + "x = np.linspace(0, 1, v.shape[0]).reshape(-1, 1)\n", + "x = torch.tensor(x, dtype=torch.float32)\n", + "\n", + "# Prepare the data for DeepONet\n", + "n_train = int(0.8 * len(u))\n", + "X_train = (v[:n_train], x[:n_train])\n", + "y_train = u[:n_train]\n", + "X_test = (v[n_train:], x[n_train:])\n", + "y_test = u[n_train:]\n", + "\n", + "# Set up the data\n", + "data = dde.data.Triple(X_train=X_train, y_train=y_train, X_test=X_test, y_test=y_test)\n", + "\n", + "# Adjust the DeepONet architecture\n", + "m = v.shape[1] # number of input variables\n", + "dim_x = 1 # dimension of spatial input\n", + "\n", + "net = dde.nn.pytorch.DeepONet(\n", + " [m, 64, 64], # branch net\n", + " [dim_x, 64, 64], # trunk net\n", + " \"relu\",\n", + " \"Glorot normal\",\n", + ")\n", + "\n", + "# Create a custom loss function\n", + "def custom_loss(inputs, outputs, targets):\n", + " return torch.mean((outputs - targets)**2)\n", + "\n", + "# Create the model\n", + "model = dde.Model(data, net)\n", + "print(v.dtype)\n", + "print(x.dtype)\n", + "print(u.dtype)\n", + "\n", + "# Compile the model\n", + "model.compile(\"adam\", lr=0.001, loss=custom_loss, metrics=[\"mean l2 relative error\"])\n", + "\n", + "print(\"Training the model...\")\n", + "\n", + "# Train the model\n", + "losshistory, train_state = model.train(iterations=10000, batch_size=32) \n", + "\n", + "print(\"Making predictions...\")\n", + "\n", + "# Make predictions\n", + "y_pred = model.predict(X_test)\n", + "\n", + "# Reshape the predictions back to the original shape\n", + "y_pred = y_pred.reshape(zarr_ds.shape[1:])\n", + "\n", + "print(\"Visualizing results...\")\n", + "\n", + "# Visualize the results\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(20, 10), subplot_kw={'projection': ccrs.PlateCarree()})\n", + "\n", + "# True gap-filled CHL\n", + "im1 = ax1.imshow(zarr_ds.isel(time=0), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax1.set_title('True Gap-filled CHL')\n", + "ax1.add_feature(cfeature.COASTLINE)\n", + "ax1.set_xlabel('Longitude')\n", + "ax1.set_ylabel('Latitude')\n", + "fig.colorbar(im1, ax=ax1)\n", + "\n", + "# Predicted gap-filled CHL\n", + "im2 = ax2.imshow(y_pred, extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", + "ax2.set_title('Predicted Gap-filled CHL')\n", + "ax2.add_feature(cfeature.COASTLINE)\n", + "ax2.set_xlabel('Longitude')\n", + "ax2.set_ylabel('Latitude')\n", + "fig.colorbar(im2, ax=ax2)\n", + "\n", + "plt.show()\n", + "\n", + "print(\"Process completed.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'zarr_label' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[16], line 39\u001b[0m\n\u001b[1;32m 36\u001b[0m vmin \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mnanmin((true_CHL, predicted_CHL))\n\u001b[1;32m 38\u001b[0m extent \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m42\u001b[39m, \u001b[38;5;241m101.75\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m11.75\u001b[39m, \u001b[38;5;241m32\u001b[39m]\n\u001b[0;32m---> 39\u001b[0m plot_gapfill(\u001b[43mzarr_label\u001b[49m, model, model_name, date)\n", + "\u001b[0;31mNameError\u001b[0m: name 'zarr_label' is not defined" + ] + } + ], + "source": [ + "def plot_gapfill(zarr_stdized, zarr_label, model, date_to_predict):\n", + " mean_std = np.load(f'data/{zarr_label}.npy',allow_pickle='TRUE').item()\n", + " mean, std = mean_std['CHL'][0], mean_std['CHL'][1]\n", + " zarr_date = zarr_stdized.sel(time=date_to_predict)\n", + " X = []\n", + " X_vars = list(zarr_stdized.keys())\n", + " X_vars.remove('CHL')\n", + " X_vars[X_vars.index('masked_CHL')] = 'CHL'\n", + " X_vars[X_vars.index('real_cloud_flag')] = 'a'\n", + " X_vars[X_vars.index('fake_cloud_flag')] = 'real_cloud_flag'\n", + " X_vars[X_vars.index('a')] = 'fake_cloud_flag'\n", + " \n", + " for var in X_vars:\n", + " var = zarr_date[var].to_numpy()\n", + " X.append(np.where(np.isnan(var), 0.0, var))\n", + " valid_CHL_ind = X_vars.index('valid_CHL_flag')\n", + " X[valid_CHL_ind] = np.where(X[X_vars.index('fake_cloud_flag')] == 1, 1, X[valid_CHL_ind])\n", + " X[X_vars.index('fake_cloud_flag')] = np.zeros(X[0].shape)\n", + " X_masked_CHL = np.log(zarr_ds.sel(time=date_to_predict)['CHL_cmes-level3'].to_numpy())\n", + " X_masked_CHL = (X_masked_CHL - mean_std['masked_CHL'][0]) / mean_std['masked_CHL'][1]\n", + " X_vars[X_vars.index('CHL')] = X_masked_CHL\n", + "\n", + " X = np.array(X)\n", + " X = np.moveaxis(X, 0, -1)\n", + " X = torch.from_numpy(X)[None, ...]\n", + "\n", + " true_CHL = np.log(zarr_ds.sel(time=date_to_predict)['CHL_cmes-gapfree'].to_numpy())\n", + " masked_CHL = np.log(zarr_ds.sel(time=date_to_predict)['CHL_cmes-level3'].to_numpy())\n", + " predicted_CHL = model(X).detach().numpy()[0, :, :, 0]\n", + " predicted_CHL = unstdize(predicted_CHL, mean, std)\n", + " predicted_CHL = np.where(np.isnan(true_CHL), np.nan, predicted_CHL)\n", + " log_diff = true_CHL - predicted_CHL\n", + " diff = np.exp(true_CHL) - np.exp(predicted_CHL)\n", + "\n", + " vmax = np.nanmax((true_CHL, predicted_CHL))\n", + " vmin = np.nanmin((true_CHL, predicted_CHL))\n", + "\n", + " extent = [42, 101.75, -11.75, 32]\n", + "plot_gapfill(zarr_label, model, model_name, date)" + ] + } + ], + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From c5c82f3c76701b2db39f3b80dfbb2a56bcddc828 Mon Sep 17 00:00:00 2001 From: Shridhar Sinha Date: Thu, 22 Aug 2024 20:36:42 +0000 Subject: [PATCH 2/3] data driven pinn update --- notebooks/Data_Drive_PINN.ipynb | 155 ++++++-------------------------- 1 file changed, 27 insertions(+), 128 deletions(-) diff --git a/notebooks/Data_Drive_PINN.ipynb b/notebooks/Data_Drive_PINN.ipynb index dca0944..d336486 100644 --- a/notebooks/Data_Drive_PINN.ipynb +++ b/notebooks/Data_Drive_PINN.ipynb @@ -130,59 +130,18 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "scrolled": true }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Starting data loading process...\n", - "Data loaded. Preparing input and output data...\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ - "Processing variables: 100%|██████████| 6/6 [00:01<00:00, 5.35it/s]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reshaping data...\n", - "float32\n", - "torch.float32\n", - "float32\n", - "Compiling model...\n", - "'compile' took 0.000145 s\n", - "\n", - "Training the model...\n", - "Training model...\n", - "\n" - ] - }, - { - "ename": "TypeError", - "evalue": "custom_loss() missing 1 required positional argument: 'targets'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[6], line 89\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTraining the model...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 88\u001b[0m \u001b[38;5;66;03m# Train the model\u001b[39;00m\n\u001b[0;32m---> 89\u001b[0m losshistory, train_state \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterations\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m10000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m32\u001b[39;49m\u001b[43m)\u001b[49m \n\u001b[1;32m 91\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMaking predictions...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 93\u001b[0m \u001b[38;5;66;03m# Make predictions\u001b[39;00m\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/utils/internal.py:22\u001b[0m, in \u001b[0;36mtiming..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(f)\n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 21\u001b[0m ts \u001b[38;5;241m=\u001b[39m timeit\u001b[38;5;241m.\u001b[39mdefault_timer()\n\u001b[0;32m---> 22\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 23\u001b[0m te \u001b[38;5;241m=\u001b[39m timeit\u001b[38;5;241m.\u001b[39mdefault_timer()\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m config\u001b[38;5;241m.\u001b[39mrank \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:643\u001b[0m, in \u001b[0;36mModel.train\u001b[0;34m(self, iterations, batch_size, display_every, disregard_previous_best, callbacks, model_restore_path, model_save_path, epochs)\u001b[0m\n\u001b[1;32m 641\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mset_data_train(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mtrain_next_batch(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbatch_size))\n\u001b[1;32m 642\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mset_data_test(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mtest())\n\u001b[0;32m--> 643\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_test\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 644\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcallbacks\u001b[38;5;241m.\u001b[39mon_train_begin()\n\u001b[1;32m 645\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m optimizers\u001b[38;5;241m.\u001b[39mis_external_optimizer(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mopt_name):\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:832\u001b[0m, in \u001b[0;36mModel._test\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_test\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 828\u001b[0m \u001b[38;5;66;03m# TODO Now only print the training loss in rank 0. The correct way is to print the average training loss of all ranks.\u001b[39;00m\n\u001b[1;32m 829\u001b[0m (\n\u001b[1;32m 830\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_pred_train,\n\u001b[1;32m 831\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mloss_train,\n\u001b[0;32m--> 832\u001b[0m ) \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_outputs_losses\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 833\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 834\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 835\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43my_train\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 836\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_aux_vars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 837\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 838\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_pred_test, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mloss_test \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_outputs_losses(\n\u001b[1;32m 839\u001b[0m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 840\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mX_test,\n\u001b[1;32m 841\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_test,\n\u001b[1;32m 842\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39mtest_aux_vars,\n\u001b[1;32m 843\u001b[0m )\n\u001b[1;32m 845\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_state\u001b[38;5;241m.\u001b[39my_test, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:551\u001b[0m, in \u001b[0;36mModel._outputs_losses\u001b[0;34m(self, training, inputs, targets, auxiliary_vars)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m backend_name \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpytorch\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 550\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet\u001b[38;5;241m.\u001b[39mrequires_grad_(requires_grad\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m--> 551\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43moutputs_losses\u001b[49m\u001b[43m(\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauxiliary_vars\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 552\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet\u001b[38;5;241m.\u001b[39mrequires_grad_()\n\u001b[1;32m 553\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m backend_name \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mjax\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 554\u001b[0m \u001b[38;5;66;03m# TODO: auxiliary_vars\u001b[39;00m\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:322\u001b[0m, in \u001b[0;36mModel._compile_pytorch..outputs_losses_train\u001b[0;34m(inputs, targets, auxiliary_vars)\u001b[0m\n\u001b[1;32m 321\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21moutputs_losses_train\u001b[39m(inputs, targets, auxiliary_vars):\n\u001b[0;32m--> 322\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43moutputs_losses\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 323\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauxiliary_vars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlosses_train\u001b[49m\n\u001b[1;32m 324\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/model.py:310\u001b[0m, in \u001b[0;36mModel._compile_pytorch..outputs_losses\u001b[0;34m(training, inputs, targets, auxiliary_vars, losses_fn)\u001b[0m\n\u001b[1;32m 308\u001b[0m \u001b[38;5;66;03m# if forward-mode AD is used, then a forward call needs to be passed\u001b[39;00m\n\u001b[1;32m 309\u001b[0m aux \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet] \u001b[38;5;28;01mif\u001b[39;00m config\u001b[38;5;241m.\u001b[39mautodiff \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mforward\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 310\u001b[0m losses \u001b[38;5;241m=\u001b[39m \u001b[43mlosses_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutputs_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloss_fn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maux\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 311\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(losses, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m 312\u001b[0m losses \u001b[38;5;241m=\u001b[39m [losses]\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/data/data.py:13\u001b[0m, in \u001b[0;36mData.losses_train\u001b[0;34m(self, targets, outputs, loss_fn, inputs, model, aux)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mlosses_train\u001b[39m(\u001b[38;5;28mself\u001b[39m, targets, outputs, loss_fn, inputs, model, aux\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 12\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return a list of losses for training dataset, i.e., constraints.\"\"\"\u001b[39;00m\n\u001b[0;32m---> 13\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlosses\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloss_fn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maux\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/srv/conda/envs/notebook/lib/python3.11/site-packages/deepxde/data/triple.py:32\u001b[0m, in \u001b[0;36mTriple.losses\u001b[0;34m(self, targets, outputs, loss_fn, inputs, model, aux)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mlosses\u001b[39m(\u001b[38;5;28mself\u001b[39m, targets, outputs, loss_fn, inputs, model, aux\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m---> 32\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mloss_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutputs\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[0;31mTypeError\u001b[0m: custom_loss() missing 1 required positional argument: 'targets'" + "Using backend: pytorch\n", + "Other supported backends: tensorflow.compat.v1, tensorflow, jax, paddle.\n", + "paddle supports more examples now and is recommended.\n" ] } ], @@ -196,9 +155,9 @@ "import cartopy.crs as ccrs\n", "import cartopy.feature as cfeature\n", "from tqdm import tqdm\n", - "import torch\n", - "\n", - "print(\"Starting data loading process...\")\n", + "import numpy as np\n", + "import xarray as xr\n", + "import deepxde as dde\n", "\n", "# Load the data\n", "zarr_path = '~/shared-public/mind_the_chl_gap/U-Net_with_CHL_pred.zarr'\n", @@ -207,18 +166,11 @@ "level3_path = '~/shared-public/mind_the_chl_gap/IO.zarr'\n", "level3_ds = xr.open_zarr(level3_path)\n", "\n", - "# Select data for 2019-2021\n", - "time_slice = slice('2019-01-01', '2021-12-31')\n", - "zarr_ds = zarr_ds.sel(time=time_slice)\n", - "level3_ds = level3_ds.sel(time=time_slice)\n", - "\n", - "print(\"Data loaded. Preparing input and output data...\")\n", - "\n", "# Prepare the input data (v)\n", "variables = ['CHL_cmes-level3', 'sst', 'u_wind', 'v_wind', 'air_temp', 'ug_curr']\n", "input_data = []\n", "\n", - "for var in tqdm(variables, desc=\"Processing variables\"):\n", + "for var in variables:\n", " data = level3_ds[var].values\n", " data = np.log(data) if var == 'CHL_cmes-level3' else data\n", " input_data.append(data)\n", @@ -228,37 +180,36 @@ "# Prepare the output data (u)\n", "u = zarr_ds.values\n", "\n", - "print(\"Reshaping data...\")\n", - "\n", - "# Modify the data preparation part\n", + "# Reshape the data\n", "v = v.reshape(-1, v.shape[-1]) # (num_points, num_variables)\n", "u = u.reshape(-1) # (num_points,)\n", "\n", - "# Create spatial points (you may need to adjust this based on your specific problem)\n", - "x = np.linspace(0, 1, v.shape[0]).reshape(-1, 1)\n", - "x = torch.tensor(x, dtype=torch.float32)\n", - "\n", - "# Prepare the data for DeepONet\n", + "# Split the data into training and testing sets\n", "n_train = int(0.8 * len(u))\n", - "X_train = (v[:n_train], x[:n_train])\n", - "y_train = u[:n_train]\n", - "X_test = (v[n_train:], x[n_train:])\n", - "y_test = u[n_train:]\n", - "\n", + "X_train, y_train = (v[:n_train], np.zeros((n_train, 1))), u[:n_train]\n", + "X_test, y_test = (v[n_train:], np.zeros((len(u) - n_train, 1))), u[n_train:]\n", "# Set up the data\n", - "data = dde.data.Triple(X_train=X_train, y_train=y_train, X_test=X_test, y_test=y_test)\n", + "data = dde.data.TripleCartesianProd(\n", + " X_train=X_train, y_train=y_train, X_test=X_test, y_test=y_test\n", + ")\n", "\n", - "# Adjust the DeepONet architecture\n", + "# Define the DeepONet architecture\n", "m = v.shape[1] # number of input variables\n", - "dim_x = 1 # dimension of spatial input\n", + "dim_x = 1 # dimension of spatial input (in this case, just a placeholder)\n", "\n", - "net = dde.nn.pytorch.DeepONet(\n", + "net = dde.nn.DeepONetCartesianProd(\n", " [m, 64, 64], # branch net\n", " [dim_x, 64, 64], # trunk net\n", " \"relu\",\n", " \"Glorot normal\",\n", ")\n", "\n", + "# Create the model\n", + "model = dde.Model(data, net)\n", + "\n", + "# Compile the model\n", + "model.compile(\"adam\", lr=0.001, metrics=[\"mean l2 relative error\"])\n", + "\n", "# Create a custom loss function\n", "def custom_loss(inputs, outputs, targets):\n", " return torch.mean((outputs - targets)**2)\n", @@ -313,62 +264,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'zarr_label' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[16], line 39\u001b[0m\n\u001b[1;32m 36\u001b[0m vmin \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mnanmin((true_CHL, predicted_CHL))\n\u001b[1;32m 38\u001b[0m extent \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m42\u001b[39m, \u001b[38;5;241m101.75\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m11.75\u001b[39m, \u001b[38;5;241m32\u001b[39m]\n\u001b[0;32m---> 39\u001b[0m plot_gapfill(\u001b[43mzarr_label\u001b[49m, model, model_name, date)\n", - "\u001b[0;31mNameError\u001b[0m: name 'zarr_label' is not defined" - ] - } - ], - "source": [ - "def plot_gapfill(zarr_stdized, zarr_label, model, date_to_predict):\n", - " mean_std = np.load(f'data/{zarr_label}.npy',allow_pickle='TRUE').item()\n", - " mean, std = mean_std['CHL'][0], mean_std['CHL'][1]\n", - " zarr_date = zarr_stdized.sel(time=date_to_predict)\n", - " X = []\n", - " X_vars = list(zarr_stdized.keys())\n", - " X_vars.remove('CHL')\n", - " X_vars[X_vars.index('masked_CHL')] = 'CHL'\n", - " X_vars[X_vars.index('real_cloud_flag')] = 'a'\n", - " X_vars[X_vars.index('fake_cloud_flag')] = 'real_cloud_flag'\n", - " X_vars[X_vars.index('a')] = 'fake_cloud_flag'\n", - " \n", - " for var in X_vars:\n", - " var = zarr_date[var].to_numpy()\n", - " X.append(np.where(np.isnan(var), 0.0, var))\n", - " valid_CHL_ind = X_vars.index('valid_CHL_flag')\n", - " X[valid_CHL_ind] = np.where(X[X_vars.index('fake_cloud_flag')] == 1, 1, X[valid_CHL_ind])\n", - " X[X_vars.index('fake_cloud_flag')] = np.zeros(X[0].shape)\n", - " X_masked_CHL = np.log(zarr_ds.sel(time=date_to_predict)['CHL_cmes-level3'].to_numpy())\n", - " X_masked_CHL = (X_masked_CHL - mean_std['masked_CHL'][0]) / mean_std['masked_CHL'][1]\n", - " X_vars[X_vars.index('CHL')] = X_masked_CHL\n", - "\n", - " X = np.array(X)\n", - " X = np.moveaxis(X, 0, -1)\n", - " X = torch.from_numpy(X)[None, ...]\n", - "\n", - " true_CHL = np.log(zarr_ds.sel(time=date_to_predict)['CHL_cmes-gapfree'].to_numpy())\n", - " masked_CHL = np.log(zarr_ds.sel(time=date_to_predict)['CHL_cmes-level3'].to_numpy())\n", - " predicted_CHL = model(X).detach().numpy()[0, :, :, 0]\n", - " predicted_CHL = unstdize(predicted_CHL, mean, std)\n", - " predicted_CHL = np.where(np.isnan(true_CHL), np.nan, predicted_CHL)\n", - " log_diff = true_CHL - predicted_CHL\n", - " diff = np.exp(true_CHL) - np.exp(predicted_CHL)\n", - "\n", - " vmax = np.nanmax((true_CHL, predicted_CHL))\n", - " vmin = np.nanmin((true_CHL, predicted_CHL))\n", - "\n", - " extent = [42, 101.75, -11.75, 32]\n", - "plot_gapfill(zarr_label, model, model_name, date)" - ] + "outputs": [], + "source": [] } ], "metadata": { From eaae67ea8b38804ebd3e3d57ae249e3de79e9bb6 Mon Sep 17 00:00:00 2001 From: Shridhar Sinha Date: Thu, 22 Aug 2024 20:38:11 +0000 Subject: [PATCH 3/3] data driven pinn update --- notebooks/Data_Drive_PINN.ipynb | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/notebooks/Data_Drive_PINN.ipynb b/notebooks/Data_Drive_PINN.ipynb index d336486..fc27e51 100644 --- a/notebooks/Data_Drive_PINN.ipynb +++ b/notebooks/Data_Drive_PINN.ipynb @@ -2,20 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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jTfemP29S5cuzJ8/n6KiIiZNmsRf//pXrrrqKsrKymjXrh1/+MMfuOaaa3Ach5UrV2JZFm3btt1gn6urqxk6dCiRSISbb76ZXr16EYvFWLhwIb/73e+Ix+MbPHf58uUA7Lbbbut9XErZ4Dmvrx9t27bdKP//l9jYvkAwCNiuXTseeeQRDjzwQMrKynj55Ze58MILsSyrQXsjR47c4DXXrFlDXl7eJve1c+fOdO7cGYBDDz0UgCuvvJJTTz2VVq1abfAcgHnz5m3StYqKihg4cOAm99Gw9TEi3gQoKSlBSsnSpUvXeWzJkiUA2ci7RYsWWaGoz7Jlyxr8/sc//rFBrm84HM7+v3///jz99NNorfnqq68YP348Y8aMIRqNcsUVV9CqVSt832fZsmXrvbEATJw4kSVLlvD+++9no28I0uF+icxzee655+jSpcsGj2vRosV6n9uG9m0OG9sXqPtmdPfdd1NeXs6TTz5JMpnk9NNPX6e9e+65hz333HO97azvJrw57L777owbN465c+duUMTbtWtH//79efvtt6mtrd0kX9zQTNjWfs5vgY3xDAcNGqTbtm2ra2trs/t839f9+/fPqSe+IYqLi/Wxxx6rta7zxK+99toNHv/yyy9rQE+dOrXB/pEjR67jma7tic+bN0/btq1vu+22n+2T7/u6Xbt2etddd91invjG9iXDd999pwF9//3364EDB+pBgwY1eLyqqkoXFxfrc8899xfb2lRPfG1GjRqlpZR6xYoVP3vcM888owF95plnNngd6/f5rbfeyv7epUsXPWLEiPW2NW3aNOOJNzFMJL4VmThx4notgEMPPZRbbrmFAw44gH322Ye//OUvhEIh7r//fr755hueeuqprCd89dVX88orr7Dffvtx9dVXE41GGTduXNZnrf/1f328+uqr3H///Rx11FF0794drTXPP/885eXlHHDAAQAMHTqUUaNGcfPNN7N8+XIOO+wwwuEwX3zxBbFYjAsuuIDBgwdTUlLCOeecw/XXX4/jODzxxBN8+eWXv/g6dO3alTFjxnD11Vczd+5cDj74YEpKSli+fDmffvopeXl53HjjjUgpuemmmzjrrLM4+uij+cMf/kB5eTk33HDDz1o9a1NZWclzzz23zv5WrVoxbNiwjepLhj59+jBo0CBuueUWFi5cyEMPPdSgzfz8fO655x5O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eOKGXGEicUOToKamhr/+9a+ceOKJDBgwgHHjxq0zi3NT6HfpWOxakRXSXXbZZZPOr66uZsSIEYwfP55HH32UTz/9NCvgAEJphNJIX6MsgVCaSUtKcRwHgE8++WSz+24wbApGxA05o37Z2Y0lkUjw3HPPMXLkSK655hp69uzJY489xtlnn/2zkewv8c3tF/P9mIvpf8lYRo8ezdKlSzc6Ep8yZQoDBgxgypQpPP/885xyyikNHt/j5DvQUoAGLQEBWgicSB7xeJxwOMykSZPwPI+hQ4fypz/9abOfh8HwSxgRN+SM6667bqOPLS8v5/e//z0lJSUce+yxvPnmmxQNGsrkyZMZMGAAvW8Y2+D4fn8Zyw5Xjt1AaxvGrtUMGjSIpUuXsmrVqp89VmvNvffey8iRI0kkEnz66accffTRQCDce554B3uedEcg3GmEAjQoB5QtmD17NslkkltvvZWSkhKmTJnCfffdx2OPPbbJfTcYNgYj4oacMW3atI06znVdzj33XJ588kluuOEGvv32WzzPo/yjYFJP38vHYseh95ixbH/1WPpeNhY/DNoKxLz/JRsW8z1OviPwq9MID3bffXeA7ISi9TF37lwKCwu54IILKCgoYPz48fTp0yf7+CdPXIKWoNKLFElfI3345PFL+OyR0QgflA1ffPEFABUVFVRXV2fPz0WKo8GwPkztFEPOWLJkyQYf8zyPp59+mhdffJE333yTmpoa/vCHP2RnPdYnVKnRArQl0AK+/XuwlFvfy8byzT8aLuu245/HogV89c/0fhEMNGYRcMC//wvAAw88wN///nfy8/PXueaDDz5ITU0NY8aM4Zprrllv7RXpA36dkNePyD97JEhh7H/u7cQ6dqd20Vw673MCP018itLSUl588cUNvjYGQ2Mw2SmGRpPJtICgbsl2222Xfay2tpb77ruPt956i3fffZdddtmFo48+miOOOIIBAwZkj9vhqrGE12iED0LD9H+lRfGSsXx9x/rX49z53Dv54oHguN1PuQMRFDzkkycuyR6zy9l34ocF8YoVzHvyH1x33XVce+2167R1zTXXcMcddxCPxxv3YtRjt1PvJFks+PruoI+pVCo78Nncs1MSiQSpVCpn7YVCIbNg9GZi7BRDTnnnnXeora3l0ksvZejQobRv354rrriCJUuW8OyzzzJ9+nSuueaaBgIOMPNvdUKdEXBgHQHv95c6K0Wouv2fPnYJyhYNBBwABVpAqHVrjjvuOCZMmLDefj/11FMkEgnWrFmzqU8ZCCYo7bvvvvztb3/L7rNcTWSN4sorrwRg3LhxXHrppZSUlHDvvfdu1nWaAolEgm5d8ikqKsrZ1q1bt+wKT4ZNw0TihkZTPxKHoPa3lJJjjjmG3r17c/LJJ9OrV691zut5y50M/v5LHnvsMW655RaeXhBCaLLRdYb6EXeGXc6+k88f3LhZmDufcydugeCSHYo566yzWLRoUbamSoYxY8Zw/fXXs2zZMtq0abOxTz3LSy+9xFFHHUVhYSE7HHId0tUoG1L5khuP7sXhhx/OHnvswY8//thggLU5RuKZ9/un6V0pLGh8HFhZpeiy6/xm+Vo0BUwkbsg5F198MZ9//jlPP/00N954I7169SIej7NgwQLGjBlDly5deOyxx5h9xcUsXLgQgDueeB0tBcoS7PintQYuNex0/p0Ndq0t4LufcscG+/PFuNF8c/vF/OOjJUSjUa644op1jnn55ZcZOHDgZgk4kF216Pjjj8dKKhDghwXKgffffx8IcscrKirYfffdGTly5GZdpymRXyBythk2HzOwacgpffv25W9/+xtvv/02n376KW+++SYzZszghx9+AIIqg1prPvroI0455RTeffddfN9n4J/vRniaL8atG12vb199Bp5+588uAvHkk0+yzz778O3/Xc3De7blrLPO4uyzz2bw4MFAMLty+vTp7Ljjjpv9vDPVC0877bRsu3v8/g7sBMRaxxoc+/zzz1NQUMBzzz232ddrCvha4efge7yv1S8fZNggxk4xNJrM1+unn36ak08+GcuysoNenTt35vDDD2f77benTZs27LHHHnTu3BnY9Gnwm8uMGTPo1q0bRUVFKKVo06YNvXv3ZsqUKQC8/vrrjBgxgj//+c/ZafObyqhRo1i8eDETJ07M7tvj93fwyeOX8OGHHzJkyBAA9tlnH959912qqqqa7cBm5v1eMatLzuyU1r1/apavRVPAROKGnHHIIYcwdepUJk6cyN57781OO+1EKBTK1i6BoEAUwB//+Met1q+ddtop+38pJZZl8eGHH7Jy5Uq01owYMQKAu+++mz322IOTTjppk69x7bXXMmfOHLTW2W8FnzweDLIqVRdpLly4kCuvvJKrrrqqEc+oaaDQ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pqHRbM1Bus8++4x3332XO299jLKqebh+nK5duzJt2rTs4sbxeJy33nqLDz/8kE8//ZSpU6fiui7nn38+99577zptjh8/ntNPP51p06at1xPfEvwaBjYnfdMhZwObw/otZuHChQ1ei42JxM8//3xee+01pkyZssUGoZs6xk4x5IwTTjiBY445hmOPPXaLXaNXr1706tWLc889F9d1uf7667nvvvu46aabskvAAey7777su+++ACxcuJCRI0dy3333MWrUKLbffvsGbcbjcQCqq6vX+Uq/pdha12lOFBYWbtIN7YILLuDll1/mgw8++M0KOJhI3JADEokE3bp1Y9myZdu6K82Ktm3bMm/ePCKRyC8f3ITIROITv+mUs0h8334LN/pbidaaCy64gBdeeIH333+fnj17NroPzRkTiRsaTSQSYd68eaRSqS12jWXLltG2bdt19k+bNo3999+fUaNGccsttyCEID8/f53jLrroIh555BHefPNNBg0a1OCxJ554gvPOO4/33nuPXXbZZYs9h7UJhULNTsDro3M0sKk3sY3zzz+fJ598kpdeeomCgoJs8FBUVEQ0Gm10f5obRsQNOSESiWxRQRoyZAgdO3bk8MMPp0+fPiilmDFjBnfccQf5+flceumlLF26lIMOOogTTjiBYcOG0a5dO8rKynjttdd45JFHGD58OAcccEA2JTFD5g8/Pz+/2fnTv0UeeOABIJh5W59HHnmE0047bet3aBtjRNzQLLjmmmt46aWXGDt2LEuXLiWZTNKuXTv2339/rrzySrbffnvKy8sZPXo0EydO5KWXXmLlypU4jkPPnj25+eabGT169DoCbth8tlWeuHGAG2I8cYPBsElkPPE3vupGXg488ZoqxSED5jXLTJ2mgAlLDAaDoRlj7BSDwbBZKAQqB3GgMgslNwoTiRsMBkMzxkTiBoNhs9hWA5uGhhgRNxgMm4WvJb5u/Jd53+RWNApjpxgMBkMzxkTihpyQSCS26IzNXyPNfcamytEix2ah5MZhRNzQaEztlM2judZOMTQtjIgbGk0qlWLZsmXrlBLNMHbs2Oyiw0OGDOHRRx/Nlo39rVJZWUmnTp1IpVLNVsQVEt+kGG5zjIgbcsb6SomuWrWqwarxU6ZM4eSTT+ajjz5CCPM1ujljBjabBmZg07BFsW2bkpISIIjY77//fj7++GMe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pSsqDT1p6Fd4enaJ1OcSaTDc5dx0y1gQCKo++ohVb71J5zv/DyNs+UU4ZkI3vEJAakk50Q6dKOzWC8N2o/tVEM3bFpkCWeWmC6a87JWM9y1sXf2Troogok5mgjYktcY1sn+AiETl2TiRdYTi68lpp53Gt99+y7vvvst+++3X6LkTTzyRK664YourCq2vrycej+f8uJFIhD333DOnx/ytN4RNxSZpgPXpp5+y//77U1BQQDweZ6+99uKtt95qcr/+/fsTjUZp3749119/PY899hhCiCa/vqzOtGnTOPzww2nVqhWRSIR27dpx2GGHsXDhQn8fKSUPPPAAu+yyC7FYjOLiYvbcc09/cVyAl156iYMOOoi2bdsSi8XYYYcdGD58OHV1dev1fl966SX69+9PXl4e+fn5HHzwwUybNm2N/caNG8d2221HJBJhhx124Omnn16v428Krr76alq0aME111zzq/sqpRg7dqx/DUtKSjjuuOOYPXt2o/3qf/4Ru7KCn0ZdwY+j9eZXMbqtXb0CS7mqmtovJxPffgcKdu4DZNL3dOMphSwOkTdoD2RIV02aDYKajz9j8YMPMnf0jcweeS0L776Tio8+xDEcnKjCieo88sWPjGXBXXcSjpdg5uUz/9qRLLxuNDWvvEtkmSJcI2iY9Qs/3XQF6VUrqP9pJr+MvJKfbroCe/kqnKWr+Pn6K6n7dIruO15hYDa4Iu7a5sotTELp6JwaC1UZxqmyqP7PlywZdR8LLh3BgitvZPmjz2AvX6n3FQrD1Heh++67z1+guW/fvrzzzjvr9fl99dVXvPPOO5x99tlrCLjHbrvtRqdOndbreBuEzOEGdOrUyRfG9f2dU0pxxx13/Oo1XJudMnPmTE466SRat25NJBKhU6dOnHbaaSSTScaNG8fQoUMBGDx4MEKIRsdoyk5JJBJce+21dO3a1be2LrroIiorKxvt59mj//nPf+jbty+xWIztt9+eJ554Yn2ufCNyHolPnDiRAw88kN69e/P4448TiUQYO3YsRxxxBC+88AInnHACANOnT+fAAw+kR48ePPXUU8TjcR5++GGeffbZ9TpPXV0dBx54IF27duXBBx+kdevWlJeXM2HChEapW2eccQbPPvssZ599NqNHjyYcDvP11183ukn8/PPPHHrooVx++eXk5eUxc+ZMxowZw+TJk/nwww/XOY7bbruNkSNHcuaZZzJy5EhSqRR33nkn++yzD5MnT6Znz56AFvAzzzyTo446irvvvpuqqipuuukmksmkvwr65qSgoICRI0dy2WWX8eGHH65VCADOP/98xo0bx6WXXsqYMWNYtWoVo0ePZq+99uLbb78lFosBEOnYGbtyFW3+fKYfKTtRNwJP68pMGQEkNMz+BaQk3nNH/by71JqKZJZB83p9iwR+cU16xUoKevUlXFiKCJkkli9m1Ufvk1q1jJZDT/QyEEEonNpqlr/7OqX7Hki0sBX1P85g5Wf/RTbU0+rwPxHq2p4OF1zKkmefJFxSRqv9j0AZYLQoxKmp1m/AyJzbC3kypfdZ5fjeeqBpQeULr1EzdQqF+w4getRhOIk6qt76gPIxY2l7/V+hLM+f/Lzxxhs5++yzOe6441iwYAHnnnsujuOw3XbbrfPz89bqPProo9f/Q0cHNbZtr/G42gBLI9d54t5qSPDrv3OtW7cGYNSoUYwaNWqDruG3337LgAEDKCsrY/To0XTv3p0lS5bwxhtvkEqlOOyww7jtttsYMWIEDz74IH379gXWHoErpTj66KP54IMPuPbaa9lnn32YPn06N954I5MmTWLSpElEIpFG57/yyisZPnw4rVu35rHHHuPss8+mW7duv2nlp5yL+PDhwykpKeGjjz4iPz8fgMMPP5xddtmFYcOGcfzxxyOE4JZbbsE0TT744APKysoAOOyww+jVq9d6nWfmzJmsXLmSxx9/nKOOOsp//Pjjj/f//8knn/DMM89w3XXXccstt/iPH3LIIY2ONXLkSP//Sin23ntvdthhBwYOHMj06dPp3bt3k2NYsGABN954IxdffHGj4o0DDzyQ7t27M2rUKF566SWklFx33XX07duX1157zZ9AGjBgAN27d6ddu3br9Z5zzQUXXMD999/PNddcw+TJk5uctP3iiy949NFHufvuuxst7rvPPvvQo0cP7rnnHq677joAzFAUx7AoKOkCuOX0Xr8SpRdYkCHd0yRdXQmAVVyi86vdtESEwBGOXvjYtU9kWC+jJhS0OPqojEWDQ77sAoVxVrz0EiVHHYEZj/viKuvqaXnumRT02AmrTpC37XY4pKmY9jlFgwdjtiwhGuuMMC2MaIxoxy5u6T+k3QwbaelViJShKzpBP+93Q3QTXMw6E2UpEnPnUfPlF5QefiRFg/fVNyFHEG/bjYVj/o+a9z6h+E+H4qzQ4fzhhx/OY4895l/XHXfckb333vtXBWj+/PkAdO3a9Td84vhBVHNk8ODBFBYWrtfv3JgxY6isrGTMmDEcc8wxG3QNr7jiCizLYvLkybRs2dJ//JRTTgF0oNO9u16NqmfPnr9qx7z33nu8++673HHHHVx11VWA1oKOHTtywgkn8PTTT3Puuef6+69YsYLPPvvM/7a077778sEHH/D888//JhHPaQhYV1fHl19+yXHHHecLOIBpmpx66qksXLiQH3/8EdAR+3777ecLOIBhGI1EGDKRg7c5jv7l79atGyUlJVxzzTU8/PDDzJgxY43xeF+rLrroonWOe/bs2Zx88sm0adMG0zQJhUIMHKgn5/73v/+t9XXvvvsutm1z2mmnNRpjNBpl4MCBfPTRRwD8+OOPLF68mJNPPrmRUHbu3Jm99tprnWPbEJRSjcbTVOQFEA6HueWWW5g6dSovv/xyk/u8+eabCCH485//3Oh4bdq0Yeedd/bfI+CvSm843nqWGR9cP+8u0pDMeNpex0Cv6VR6/iLmXnM18668Rm/DrsGpr9MTlQIali5kydOPM++G65k77GrmXn0NK154AaTEXrY8U24vQEQjxHfpiROTpIol6SJFvG8fUIqGubMR0luY2S3wCbuvc8BMuxOnhu6pIsM0isSFo1fwMby1Qt33UD9jBghBQd++iIRE1EtEg0M4UkC4bTsSP87CSBqkZmnLb/Xf97322ovOnTv/xk98/RkzZgxTpkxZY1t9HOuFN7GZiy2L9f2dmzRpEolEwhddj/W5hvX19UycOJHjjz++kYBvDN639jPOOKPR40OHDiUvL48PPvig0eO77LJLI7srGo3So0ePJrPG1kVOI/GKigqUUrRt23aN57xoc+XKlf6/3leibFZ/bPTo0YwaNcr/uXPnzsydO5eioiImTpzIrbfeyogRI6ioqKBt27ace+65jBw5klAoxPLlyzFNkzZt2qx1zLW1teyzzz5Eo1FuueUWevToQTweZ8GCBRx77LE0NDSs9bVLly4FtPfYFJ5N4r3npsbRpk2b9fL/Lcvyb2Cr44l0KBQC9A1y8ODBjfaZM2dOk+lQJ554InfddRfXXXcdxx577BrPL126FKVUk58VwDbbbOP/v6FiMdiShlgDdly6/U0MTEPniltVAhXS1YxmPA+A1MplxBr0uJQCI7+Q9qf/BYDqb6dQ880UzGUpjHqLdF0l5WMfxGpZRvGRQwgVlmCIEMmFC1n11nic+jqcdIPuKOhIzPw8ZCKhc9INsMMgS8IAJFOVRIT+bBUKaTgkIvX6RpMS2Og8bqnSpEU9AI7URUCqIYmKJPTizmlHD7w2ARY4FZWgFPNG39Tk9bJKS3DsBtL1FcCav+/Q9O/J6nh//HPmzPnViDObbbbZhl133XWNxzdIyGQmz36jkI2Psb6/c7/2d7UuKioqcByHDh06bMiIm2TlypVYlrXGtRRC0KZNG3+8Hi1atFjjGJFIZJ2a0xQ5FfGSkhIMw2DJkiVrPLd48WIAP/Ju0aKFL4LZlJeXN/r5vPPOa5Qfne0p9erVixdffBGlFNOnT2fcuHGMHj2aWCzG8OHDadmyJY7jUF5e3uSNBfTdc/HixXz00Ud+9A2sMRHRFN57+ec//7nOO7/3Ya3+3tb2WFO0bt2aRYsWNfmc97j3S9+vXz+mTJnSaJ+1WTZCCMaMGcOBBx7IP/7xjzWeLysrQwjBJ5980ujae0QiEcLhMG3atPHfy5ybrluv9wSwcvzrrBz/+jr3mXv/rY1+Ti9azKoX/7XGfsv+seak0IIrr2/ymJXj36Zy/Nv+z05FJQuuXnPflf96lZX/erXRY4vuvWuN/WbfvH7v2V5V0WhMq/9hg/6d+LX844MPPpgRI0bw73//ew17cEtnfX7n4Nf/rtZ1DUtLSzFNs1ESxMbSokULbNtm+fLljYRcKUV5eflag72NJad2Sl5eHnvssQevvvpqo7uJlJJnn32WDh060KNHDwAGDhzIhx9+yIoVKxrt98orrzQ6Zrt27dh11139rSnPXAjBzjvvzL333ktxcTFff/01AEOGDAHgoYceWuuYPXtj9V+WRx555Fff78EHH4xlWcyaNavRGLM3gO222462bdvywgsvNJpAmjdvHp9//vmvngfggAMO4Pvvv2/SNvLWbdxjjz0A7eWtPo5wOLzOYx944IGMHj2a2traRs8dfvjhKKVYtGhRk++vV69eRKNR5syZwxFHHEHLli2pqqpar8372vn44483+fzw4cMBbXdVVVVxxx13APDTTz/5+1RWVtKvXz9Afw33Hh8wYAAAL7zwQqNjnn766RiGwffff+8/1qlTJw4++OBG+02fPh2AsWPH+o+NHTsW0JPy3mMnn3wynTp18n9+9913AXjyySfX+d7nzp1LNBpd4/f9888/X6+v03379mXIkCE8/vjja518nzp1qu+dbxI2kZ2yPr9zAHvuuSfRaJTnnnuu0evX5xrGYjEGDhzIK6+80kiDVsfThfWJjvfff3+ANZIz/vWvf1FXV+c/n2s2KBL/8MMPm7QADj30UG6//XYOPPBABg8ezLBhwwiHw4wdO5bvv9cLx3qied111zF+/Hj2339/rrvuOmKxGA8//LCf1vdrGRtvvvkmY8eO5eijj2abbbZBKcWrr75KZWUlBx54IKAnQk499VRuueUWli5dyuGHH04kEmHatGnE43EuueQS9tprL0pKSrjgggu48cYbCYVCPPfcc3z77be/eh26dOnC6NGjue6665g9ezaHHHIIJSUlLF26lMmTJ5OXl8eoUaMwDIObb76Zc845h2OOOYZzzz2XyspKbrrppvX66gxw2WWX8fTTTzNo0CBGjBhBr169qKio4KWXXuKf//wn99xzDwUFBet1rKYYM2YM/fr1Y9myZey4447+43vvvTfnnXceZ555JlOnTmXfffclLy+PJUuW8Omnn9KrVy8uvPBCP71r/PjxPPfcc/Tr1w/DMJr86u4xduxYFi1axLnnnsv777/PUUcdRbt27aivr2fmzJm89tprRKNRSktLKSws5IgjjmDkyJGcd955XH311SQSCR566CGqq3UmSV5eHoWFhYCeh2nRogVXXnklK1asoEePHrz99ts89dRTXHjhhY3eoxACy7L81wL+tYzFYv7jXhZOQUGB/1goFEII4f980EEHcd5553HRRRcxY8aMtV6vwsJChg0bxi233MI555zD0KFDWbBgwW/6nXj66ac55JBDGDJkCGeddRZDhgyhpKSEJUuWMH78eF544QW++uqrjUozrK6uXqPKs76+foOPtz6s7+9cSUnJRl3De+65hwEDBrDHHnswfPhwunXrxtKlS3njjTd45JFHKCgo8CtW//GPf1BQUEA0GqVr165NWiEHHnggBx98MNdccw3V1dXsvffefnZKnz59OPXUU3N+rQBQv4Enn3zSK1locpszZ45SSqlPPvlE7bfffiovL0/FYjG15557qvHjx69xvE8++UTtscceKhKJqDZt2qirrrpKjRkzRgGqsrJynWOZOXOmOumkk9S2226rYrGYKioqUrvvvrsaN25co/0cx1H33nuv2mmnnVQ4HFZFRUWqf//+jcbz+eefq/79+6t4PK5atmypzjnnHPX1118rQD355JP+fjfeeKNq6pL9+9//VoMHD1aFhYUqEomozp07q+OOO069//77jfZ77LHHVPfu3VU4HFY9evRQTzzxhDr99NNV586df+XKa8rLy9WFF16oOnXqpCzLUgUFBWrAgAHqlVdeWa/XK5X5DKdMmbLGcyeffLIC1I477rjGc0888YTaY489/M902223VaeddpqaOnWqv8+qVavUcccdp4qLi5UQoslrtTqO46inn35aHXjggaqsrExZluV/ltdff71auHBho/3Hjx+vdt55ZxWNRlX79u3VVVddpd555x0FqAkTJvj7DRw4UO24447qo48+UrvuuquKRCKqbdu2asSIESqdTjc6ZufOndVhhx3W6LE5c+as8fl71877PVdKrfXzW5/rJaVUt99+u+rYsaMKh8Oqd+/eavz48WrgwIFq4MCBv3rtlFKqoaFB/e1vf1P9+/dXhYWFyrIs1a5dO3Xssceqt956y99vwoQJCljr78pFF120xuc1cODAdf69H7DNpeqQbldt9HbANpcqQFVVVW2ya9jU56mUUjNmzFBDhw5VLVq0UOFwWHXq1EmdccYZKpFI+Pvcd999qmvXrso0zUbHaOqzb2hoUNdcc43q3LmzCoVCqm3bturCCy9UFRUVjfZr6nfOu+br+9l7CKWaV/eZgw46iLlz5/LTTz/93kMJ2IIZNGgQK1as4Pvvv/+9h7LVUV1dTVFREQd0vQTLWNOz/q3YMsn7cx6gqqqq0behgPXjdy27v+KKK+jTpw8dO3Zk1apVPPfcc/z3v//l8ccf/z2HFRAQELDF8LuKuOM43HDDDZSXlyOEoGfPnjzzzDP8+c9//j2HFRAQsD5Iz1nJxXECNpRmZ6cEBAQ0b3w7pfPFubNT5v09sFM2kKCLYUBAwIahpN5ycZyADSYQ8YCAgA1jC+onvjWz+dvnBQQEBATkjCASD8gJiUSCVGrjFzr4IxEOh4lGo7/3MDacYGKzWRCIeMBGk0gk6Nq163r3gQnQtGnThjlz5my5Qh7YKc2CQMQDNppUKkV5eTkLFixoMrvg0UcfZdiwYYDuN/PII49sccuG5Zrq6mo6duxIKpXackV8C+HII4/km2++YdmyZZSUlHDAAQcwZsyY362Pf64JUgwDNhov5aypFLFVq1at0Wdi8ODBv7pi0tbOuq5Zc8dPMWx7Ppax9sZq64stU7y/5JFNdi3uvfde+vfvT9u2bVm0aJEfUKxv87nmTjCxGbBJUUr5jaPS6TT33nsvEyZMWOsiFAEBueavf/0re+65p78Iy/Dhw/niiy9Ip9O/99ByQiDiAZuUFi1a+Cux3H333Vx66aXssssuXHrppdx6662/uQF+QDMix61oq6urG23JZDLnQ/bae+y1117+IipbOoGIB2xydt99d1q1asXw4cO56aabWHb4Aey+++7ccMMNDBo0iH//+9/MnDmTfv36UVZWxmWXXbZBC/cGbGakzN0GdOzYkaKiIn+7/fbbczbUa665hry8PFq0aMH8+fN5/fV1L0SyJRGIeMBmYcGCBXTu3Jmbb76Z7p9M4bLLLqP12edRW1vLMcccww477MDXX3/NypUr+dvf/uYv7BHwx2HBggWNFs649tpr17rvTTfdhBBindvUqVP9/a+66iqmTZvGe++9h2manHbaaVtNoBBMbAZsNOs7Sff111/7q/AAdLzzZkLJCK8dcTCvv/46N9xwQ6P999lnH7p3745lWey+++706NGDX375hVmzZhEKhQiHw7z55pt8/vnnTJo06VdXI29ObBUTmy3Pzt3E5vLHf9O1WLFixTpX5AG9aEtTmT8LFy6kY8eOfP755/Tv33+DxtycCFIMAzYbffv2pUWLFv66kv/c9yBKS0uZM2cOjz76qL/fVVddxWNfTqOsRQGffvopP/30U5Prf2bTv39/KioqKC4u3pRvIaCZUFZW5q9x+1vx4tZN4bn/HgQiHrBZ+eabb+jYsSOg1ySsr69HSklRURGzZs3i9NNP59lnn2XksGHstttuDBgwgH4X3EuqtoJEohKjsBAjL4YViqEaUqiSKJXzprPkhXGUlJQwePBg3nrrLT8jZlOzePFi2rRp86vLCW6VbAHFPpMnT2by5MkMGDCAkpISZs+ezQ033MC22267VUThEHjiAZuZDh06UFNTwwEHHMCJJ57IkCFDOO200/jss8/YZpttePnll+nbty8jRoxg3333ZfTo0Xz9yBXQrpTQDttgti9DFOWhwgZmJIpwoKRDbw466CAAJkyYwIsvvsjZZ5/Njz/+uEnfy8svv0z79u056KCD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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import xarray as xr\n", "import matplotlib.pyplot as plt\n", @@ -76,7 +65,7 @@ "ax.set_ylabel('Latitude')\n", "ax = axes[5]\n", "im = ax.imshow(ug_curr, vmin=np.nanmin(ug_curr), vmax=np.nanmax(ug_curr), extent=(42, 101.75, -11.75, 32), origin='upper', transform=ccrs.PlateCarree())\n", - "ax.set_title('air_temp')\n", + "ax.set_title('ug_curr')\n", "ax.add_feature(cfeature.COASTLINE)\n", "ax.set_xlabel('Longitude')\n", "ax.set_ylabel('Latitude')\n",