{ "cells": [ { "cell_type": "markdown", "id": "c64d3149", "metadata": {}, "source": [ "# CESM Output" ] }, { "cell_type": "markdown", "id": "409a3544", "metadata": {}, "source": [ "We'll be loading in data from the aquaplanet experiments to look at and understand CESM's output data better." ] }, { "cell_type": "code", "execution_count": 3, "id": "e59d07f3-58d9-4ca7-b14a-ed36c77ca438", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import xarray as xr" ] }, { "cell_type": "markdown", "id": "1fdd94c9", "metadata": {}, "source": [ "We'll use xarray to open CESM's datasets. The data's location depends on what archiving method you used, but if you used\n", "short term archiving, it should be in a format similar to what we have below." ] }, { "cell_type": "code", "execution_count": 2, "id": "de6429fc-ceaf-40cb-a47e-be4ee42d414c", "metadata": {}, "outputs": [], "source": [ "data_control = xr.open_dataset(\"/data/keeling/a/pappup2/a/CESM/cam5_new/CESM_output_data/atm/hist/cam5_new.cam.h0.0020-12.nc\") #End of 20 year\n", "\n", "#data_control is the experiment run with the control SST.\n", "\n", "data_00 = xr.open_dataset(\"/data/keeling/a/pappup2/a/CESM/cam_00/CESM_output_data/atm/hist/cam_00.cam.h0.0020-12.nc\") #End of 20 year\n", "\n", "#data_00 is run with a perturbation of 2K at the equator" ] }, { "cell_type": "code", "execution_count": 4, "id": "be75a01d-d601-44f9-853d-0e7aea692053", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:        (lev: 30, ilev: 31, time: 1, lat: 96, lon: 144, slat: 95,\n",
       "                    slon: 144, nbnd: 2)\n",
       "Coordinates:\n",
       "  * lev            (lev) float64 3.643 7.595 14.36 24.61 ... 957.5 976.3 992.6\n",
       "  * ilev           (ilev) float64 2.255 5.032 10.16 18.56 ... 967.5 985.1 1e+03\n",
       "  * time           (time) object 0021-01-01 00:00:00\n",
       "  * lat            (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 86.21 88.11 90.0\n",
       "  * lon            (lon) float64 0.0 2.5 5.0 7.5 ... 350.0 352.5 355.0 357.5\n",
       "  * slat           (slat) float64 -89.05 -87.16 -85.26 ... 85.26 87.16 89.05\n",
       "  * slon           (slon) float64 -1.25 1.25 3.75 6.25 ... 351.2 353.8 356.2\n",
       "Dimensions without coordinates: nbnd\n",
       "Data variables: (12/163)\n",
       "    hyam           (lev) float64 0.003643 0.007595 0.01436 ... 0.001989 0.0\n",
       "    hybm           (lev) float64 0.0 0.0 0.0 0.0 ... 0.9251 0.9512 0.9743 0.9926\n",
       "    hyai           (ilev) float64 0.002255 0.005032 0.01016 ... 0.003979 0.0 0.0\n",
       "    hybi           (ilev) float64 0.0 0.0 0.0 0.0 ... 0.9389 0.9636 0.9851 1.0\n",
       "    P0             float64 1e+05\n",
       "    date           (time) int32 210101\n",
       "    ...             ...\n",
       "    pom_a1_SRF     (time, lat, lon) float32 9.574e-15 9.574e-15 ... 9.273e-14\n",
       "    so4_a1_SRF     (time, lat, lon) float32 9.113e-12 9.114e-12 ... 4.953e-12\n",
       "    so4_a2_SRF     (time, lat, lon) float32 4.792e-12 4.792e-12 ... 1.034e-12\n",
       "    so4_a3_SRF     (time, lat, lon) float32 1.57e-13 1.57e-13 ... 4.112e-15\n",
       "    soa_a1_SRF     (time, lat, lon) float32 3.739e-16 3.739e-16 ... 1.525e-13\n",
       "    soa_a2_SRF     (time, lat, lon) float32 2.563e-17 2.564e-17 ... 8.942e-15\n",
       "Attributes:\n",
       "    Conventions:      CF-1.0\n",
       "    source:           CAM\n",
       "    case:             cam_00\n",
       "    title:            UNSET\n",
       "    logname:          pappup2\n",
       "    host:             keeling-j01\n",
       "    Version:          $Name$\n",
       "    revision_Id:      $Id$\n",
       "    initial_file:     /data/keeling/a/pappup2/a/CESM/CESM_input_data/atm/cam/...\n",
       "    topography_file:  /data/keeling/a/pappup2/a/CESM/CESM_input_data/atm/cam/...
" ], "text/plain": [ "\n", "Dimensions: (lev: 30, ilev: 31, time: 1, lat: 96, lon: 144, slat: 95,\n", " slon: 144, nbnd: 2)\n", "Coordinates:\n", " * lev (lev) float64 3.643 7.595 14.36 24.61 ... 957.5 976.3 992.6\n", " * ilev (ilev) float64 2.255 5.032 10.16 18.56 ... 967.5 985.1 1e+03\n", " * time (time) object 0021-01-01 00:00:00\n", " * lat (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 86.21 88.11 90.0\n", " * lon (lon) float64 0.0 2.5 5.0 7.5 ... 350.0 352.5 355.0 357.5\n", " * slat (slat) float64 -89.05 -87.16 -85.26 ... 85.26 87.16 89.05\n", " * slon (slon) float64 -1.25 1.25 3.75 6.25 ... 351.2 353.8 356.2\n", "Dimensions without coordinates: nbnd\n", "Data variables: (12/163)\n", " hyam (lev) float64 ...\n", " hybm (lev) float64 ...\n", " hyai (ilev) float64 ...\n", " hybi (ilev) float64 ...\n", " P0 float64 ...\n", " date (time) int32 ...\n", " ... ...\n", " pom_a1_SRF (time, lat, lon) float32 ...\n", " so4_a1_SRF (time, lat, lon) float32 ...\n", " so4_a2_SRF (time, lat, lon) float32 ...\n", " so4_a3_SRF (time, lat, lon) float32 ...\n", " soa_a1_SRF (time, lat, lon) float32 ...\n", " soa_a2_SRF (time, lat, lon) float32 ...\n", "Attributes:\n", " Conventions: CF-1.0\n", " source: CAM\n", " case: cam_00\n", " title: UNSET\n", " logname: pappup2\n", " host: keeling-j01\n", " Version: $Name$\n", " revision_Id: $Id$\n", " initial_file: /data/keeling/a/pappup2/a/CESM/CESM_input_data/atm/cam/...\n", " topography_file: /data/keeling/a/pappup2/a/CESM/CESM_input_data/atm/cam/..." ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_00\n", "\n", "#Here's what CESM output datasets typically look like." ] }, { "cell_type": "markdown", "id": "11e7f74f", "metadata": {}, "source": [ "Plotting sea surface temperature (Noted as TS)" ] }, { "cell_type": "code", "execution_count": 5, "id": "7bd806bb-ff61-488e-af18-30816b3ef3dc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'TS' (time: 1, lat: 96, lon: 144)>\n",
       "array([[[273.15, 273.15, ..., 273.15, 273.15],\n",
       "        [273.15, 273.15, ..., 273.15, 273.15],\n",
       "        ...,\n",
       "        [273.15, 273.15, ..., 273.15, 273.15],\n",
       "        [273.15, 273.15, ..., 273.15, 273.15]]], dtype=float32)\n",
       "Coordinates:\n",
       "  * time     (time) object 0021-01-01 00:00:00\n",
       "  * lat      (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n",
       "  * lon      (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n",
       "Attributes:\n",
       "    units:         K\n",
       "    long_name:     Surface temperature (radiative)\n",
       "    cell_methods:  time: mean
" ], "text/plain": [ "\n", "array([[[273.15, 273.15, ..., 273.15, 273.15],\n", " [273.15, 273.15, ..., 273.15, 273.15],\n", " ...,\n", " [273.15, 273.15, ..., 273.15, 273.15],\n", " [273.15, 273.15, ..., 273.15, 273.15]]], dtype=float32)\n", "Coordinates:\n", " * time (time) object 0021-01-01 00:00:00\n", " * lat (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n", " * lon (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n", "Attributes:\n", " units: K\n", " long_name: Surface temperature (radiative)\n", " cell_methods: time: mean" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_00.TS" ] }, { "cell_type": "markdown", "id": "4671d1ed", "metadata": {}, "source": [ "Here's what the perturbation (data_00) looks like compared to the control aquaplanet." ] }, { "cell_type": "code", "execution_count": 6, "id": "b9172a75-efea-48c3-a961-f0e8b49c622b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEXCAYAAABCjVgAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABA4klEQVR4nO3dd3gU5drH8e+dAiSEUEMRkESE0ISEKkVAwVdAkKMioIiiRxGwgCgqKl1BEZSjHqxHsSDS5CgIchApCogJEHpvEnqRlgKEPO8fO4lLSCeT2U3uz3XtxeyUZ347ZHNn2jNijEEppZQC8HE6gFJKKc+hRUEppVQqLQpKKaVSaVFQSimVSouCUkqpVFoUlFJKpdKioNIlIteLyHkR8XU6i1Iq/2hRUACIyD4RaZ/y3hjzpzEmyBhz2clcmRGRMiIyR0TiRGS/iDyQZno7EdkmIvEiskREqrlNGyIim0TknIjsFZEhaZYdIyIbRSRJREZmI0uotY54a53t3aZVEpEfROSQiBgRCc1Gew9YnylORP4rImXcpnUXkZXWupZmo63MtoOIyJsictJ6jRcRyc3nzCp3Om0VFZHPROSsiBwRkcFppkeIyBprXWtEJCKrz6qunRYF5c3+DVwEKgC9gA9EpC6AiJQDvgOGAWWAaGC627ICPASUBjoAT4lIT7fpu4AXgB+zmWUasA4oC7wCzBKREGtaMvATcG92GrI+w0dAb+uzxQOT3WY5BUwC3shGW1lth77AP4AGQH2gM/BEJk1m+DmzkTutkUANoBpwK/CCiHSw2ioCfA98jev/6Avge2u8spMxRl+F/AV8hesXVwJwHtcvw1DAAH7WPEuB14CV1jxzcf1imAqcBaKAULc2awGLcP0C2w50z+PMxXEVhJppPscb1nBfYGWa+ROAWhm09y7wXjrjvwZGZpGlJnABKOE27legX5r5/KxtGppFe2OBb9zeV7c+a4k08z0GLM2irUy3g/X/2ddt+j+B33PzObOb2236QeD/3N6PAb61hv/Pmi5u0/8EOjj9fSnoL91TUBhjeuP6wnUxrkNG4zOYtSeuvwIr4/rCrwI+x/UX6FZgBICIFMdVEL4BygP3A5NT/opPS0Qmi8jpDF4bMshSE7hsjNnhNm49kLKOutb7lM8YB+x2m+6+fgFuATZnsK6s1AX2GGPOZZAlN+25Z9+NVQDzoK202+GK6aTJLSLzROQlt3kz+5yZ5haRl0RknjVcGrguk3XXBTYYqxpYNpD7baqyyc/pAMqrfG590RGRBUAdY8zP1vuZuP7SA9chiH3GmM+t92tFZDbQjXR+8RpjBgADcpglCDiTZtwZoITb9OOZTHc3Eteh1M/TmXYtWSrncXvpZc9OW5lth7TrOgMEiYgYl87ZyFU5i+klAIwx7oe7gtymZydX2unKJrqnoHLiqNtwQjrvU77o1YBm7n/x4zrmXzEPs5wHgtOMCwbOZXM6ACLyFK5zC3caYy5kZ8Uistm6Muu8iNyS3XVl0NYtbm2lFMxct5eOnG6nYOB8mr/Qc9tW2ulp20qZfq1tqTykRUGlyMvucg8Ay4wxpdxeQcaY/unNLCIfuv1iTPvK6JDODsBPRGq4jWvA33sim633KesojuuQ12a3cY8CLwHtjDGx2f1wxpi61ucJMsb8arV5g4i4/xXrniWztn51ayvl0Eja7DcARa3PnFNZbYcrpmeRO6vPme3cxpi/gMOZrHszUD/NlVD1M8mm8orTJzX05Rkv4HeuPOEYytUnmh9zm/4aMMXtfXtglzVcAtiP6/yDv/VqAtTO48zf4roapjjQEtfhhbrWtBDr/b1AMeBN3E6g4tpzOZJRJitzMVznRV6zhn2z2H4TrPnuBk4DIW7Ti1k5DRAOFMukrbq4Tt7fYi3zNdYJWGu6r9VeP2C5NeyfQVtZbYd+uM4HVcZ1jH8zaU6QZ/dzZpU7nbbeAJbhurqoFq4i0cGaVsT6GRqIq7A8Zb0v4vR3paC/HA+gL894AV1xnWw+DTx/LUXBeh+O63LO48BJ4BcgIo8zlwH+C8RZ2R9IM709sA3Xoa2lXHl11F7gEq7DFCmvD92mT7E+v/urTyZZQq11JOC62qp9mulp2zJZfLYHrM8Uh+vSzDJu0/qk096UTNrKbDsIMB7XVWKnrGH3K34WAC/n4HNmlvtlYIHb+6LAZ7gKyVFgcJq2IoE11rrWApFOf08Kw0usja+UUkrpOQWllFJ/06KglFIqlRYFpZRSqbQoKKWUSuXVdzSXK1fOhIaGOh1DFUiHcPXQkDvbt7tuxg0PL3mNOYrgulJUqbyzZs2aE8aYkPSmeXVRCA0NJTo62ukYqkDqg+vqy9xp23YKAEuX9rnGHPtwXR2rVN4Rkf0ZTdPDR0oppVJ59Z6CUp7q1VdbOx1BqVzRoqCUDdq3v8HpCErlih4+UsoGMTFHiIk54nQMpXJM9xSUssGgQT8BeXGiWan8pXsKSimlUmlRUEoplUqLglJ5afcpmBwFh865XnO2gvZErLyInlNQKq+sOwztv4JTCX+Pu2cGDGwG79wBVzxETCnPpEVBqbwQfQhu/wqCi8KShxl7wHrm/KI98K/VkJQM73XUwqA8nhYFpa7V6li442soEwC/PAyhpWhRv4JrWqca4O8DE1a5CsPkO8FHC4PyXFoUlLoWZy9A12+hbCAseRiud3WAt3LlAQBatKgK428HPx94YwVEVoQnGjuZWKlM6Ylmpa7F68vhaBx8e29qQQB4+eXFvPzyYtcbERjbDtpUg1d+gb8SMmhMKedpUVAqt3aehHd+h0cioEnlzOcVgUkd4K9EGLUsX+IplRtaFJTKref+B8X8XHsB2RFRER5vCO//AVuO25tNqVzSoqBUbizcBXN3wLDWUDEo+8uNuRVKFIVBP+n9C8ojaVFQKqeSkuHZhXBjGXimWc6WDSkOI9u4LlWdt8OefEpdA736SKmcmr4Jtp6A2d2haPpfoUmTOmS8/IAm8H4UjFgKnWvqvQvKo+ieglI5kWzg9V/hpvLwj1oZzhYRUZGIiIrpT/T3hZdbwbojsGCXTUGVyh3bioKIFBORP0RkvYhsFpFR1vgyIrJIRHZa/5Z2W2aoiOwSke0icodd2ZTKte+2uvYSXrkl05vQfv55Dz//vCfjdh6s77qEdcxyPbegPIqdewoXgNuMMQ2ACKCDiNwMvAQsNsbUABZb7xGROkBPoC7QAZgsIr425lMqZ4yB15ZDeFnoVieDWQznzl1g1KiljBq1lAsXktJvy98XXmoJv8fCL3ttDK1Uzth2TsEYY4Dz1lt/62WArkBba/wXwFLgRWv8t8aYC8BeEdkFNAVW2ZVRqRyZtwPWH4Uv/gG+f/89dfp0Ij/9tCv1dfRoXOq0oKBxtGxZlQ4dbqRTpxrUT+n+AuCRSHjtV9ernT6+U3kGW88piIiviMQAx4BFxpjVQAVjzGEA69/y1uyVgQNui8da45RynjGuX95hpeD+egAkJibx5pu/cf3173D//bOZO3cHt94axvjx7bnhhtLccENpBg++mTNnLjB06GIaNPiQjh2nsiXlHoVifjCkBSzdB7/96dhHU8qdrUXBGHPZGBMBVAGaiki9TGZP7wDtVQdbRaSviESLSPTx43oDkMon/9sNfxyEl1qBvy+zZ2+hdu1/89JLi2nTJpQVKx7l2LHnmTbtXoYMaUnVqsFUrRrMm2/ezrp1T3Do0GDGj2/PqlUHqF//AwYM+JFTpxKgbyMICYTRepez8gz5cvWRMeY0rsNEHYCjIlIJwPr3mDVbLFDVbbEqwKF02vrYGNPYGNM4JCTEzthKuRgDw5fC9SW53Ls+zz77E926zSQ4uCiLFvVm7tz7adGiKr6+GX+dKlUqwZAhLdm16xn692/Mxx+voWnTT9j25xl4oaXrvgXdW1AewM6rj0JEpJQ1HAC0B7YBPwAPW7M9DHxvDf8A9BSRoiISBtQA/rArn1LZ9uNO+OMgCc+3oMu9M5g0aTUDBzZjzZq+tG+f/rmAjz7qzEcfdb5qfLlygbz3Xid+/fURzp27yM03f8rPNctCheIwfIndn0SpLNm5p1AJWCIiG4AoXOcU5gFvALeLyE7gdus9xpjNwAxgC/AT8KQx5rKN+ZTKmjEwfAlJ1UrS/MMoFi3aw4cf3smkSR3w88v46xMeXo7w8HIZTm/evCp//PEY1aqVosM901nVNhSW7IMleiWScpadVx9tACLTGX8SSLcHMWPM68DrdmVSKse+3w7rjjCySjC7/zzLwoUPctttYVkuNnfudgC6dAnPcJ5q1UqxYsWjdO8+k3bTN3OydDECRiyFtqF6l7NyjN7RrFRGkg3Jw5fwZ4AfE4+cY86cHtkqCAATJ65i4sSsr6YOCirC7NndadTqel46ewF+/RMW696Cco4WBaUykPztRnw2HuOlhCQ+/+qeDM8fXKuAAH9++KEnv4aX44BA3KCfXN1pKOUALQpKpef0Rc73ncdaoPk7d9CzZ2ZXU1+70qUDmPu/B3m7dADFNx/n7Nt6z6ZyhhYFpdLxZ6/lFI+7xE/31OLpQTfnyzorVw7mkV8eYomA79DFJMeezZf1KuVOi4JSaZz473+5fv5BppYN4Nmv78nXdddvUJEjI9vim5TMzk5T83XdSoE+T0GpK1yOjyeuVy/iBZoseJCAAP9ctfPVV3fnOkPPYa2ZNmMzD2w8xva3NhE+JNdNKZVjuqeglJsVXbtSLT6ebc/UpnaT63LdTtWqJalatWSulhUROv3yMNv8fSgxdC3nDl11Y79SttGioJRl36JFNP35Z1ZUqcLt7zS5pramT9/E9Ombcr18qfLFufh+JypeNqztfPWd0UrZRYuCUoBJTuZUjx4kAjfOnYtc481jH3wQzQcfRF9TG/X7NuK3uqVotW4dW7/++praUiq7tCgoBax88kka/vUX63v2pEJEhNNxUjX4sR0nfHygb1+SEhOdjqMKAS0KqtA7tXMn4R99xMagIG756iun41yhZLUgdj/zDLUTEljxwANOx1GFgBYFVeht6tKFksZQdMoUfPw874K85hMnEhUSQsM5czgcFeV0HFXAaVFQhdr2GTNotX07Kxo1oua99zodJ13i40PFWbMoAuzSvQVlM8/7s0ipfHRuwABOixA5e3aetjtrVvc8ba9q69YsbdyY1tHR7Jg1i5rduuVp+0ql0D0FVWitGTeOxidPsuGuuyhZrVqetl2uXCDlygXmaZsRM2ZwRoQz/fvnabtKudOioAql5KQkgkaP5oCfH82//DLP258yJYYpU2LytM1SYWGs79KFJidOsHb8+DxtW6kUWhRUobTyqacIT0zkQL9+FA0OzvP27SgKAM2/+ooDfn4EjBxJclJSnrevlBYFVehcOHuW0E8/ZUtgIDe/847TcXKkaHAwf/btS+2EBFY984zTcVQBpEVBFTqrn3iCKpcvkzBsmEdegpqV5v/6F9uLFeO6Tz/l8sWLTsdRBYwWBVWoXDx/nuozZ7IxKIiGL7zgdJxc8fHz49RTTxF26RKrn3vO6TiqgNGioAqV3wcMoPLly1x48UXEx3t//JuNG8fOokWp8PHHem5B5Snv/VYolUOX4uMJmzaNzcWL0+jll21d1/z5vZg/v5dt7fv4+XG8b1+qX7zIai/d41GeSYuCKjRWP/MMVZOSiBs82Pa9hMBAfwIDc/eAnuxqNmECe4oUocwHH+jegsozWhRUoZCUmEiVL79ka0AATUaOtH19kydHMXmyvf0U+RYpwuFHHyU8MZGoYcNsXZcqPLQoqELhjyFDCL10iTNPP50v5xJmzNjMjBmbbV9Ps3feYZ+/PyXefReTnGz7+lTBp0VBFXgmOZlSn33GXn9/mr7+utNx8pRfsWL82a0bdeLj2fDvfzsdRxUAthUFEakqIktEZKuIbBaRgdb4BiKySkQ2ishcEQm2xoeKSIKIxFivD+3KpgqX9e+9R534eA7cd59X3peQlcbvvstJERLHjnU6iioA7NxTSAKeM8bUBm4GnhSROsCnwEvGmJuAOcAQt2V2G2MirFc/G7OpQuTCuHGcEKHJe+85HcUWgeXKsbFVK5ocOcLehQudjqO8nG1FwRhz2Biz1ho+B2wFKgPhwHJrtkWAZ3ZirwqEPQsW0OzoUTbdcgsBZco4Hcc2dSdP5iJwYPBgp6MoL5cv5xREJBSIBFYDm4C7rEn3AVXdZg0TkXUiskxEbsmgrb4iEi0i0cePH7cztioAYp97jkRcvzTz09KlfVi6tE++rS+kXj2iatakyZYtnNy+Pd/Wqwoe24uCiAQBs4FBxpizwKO4DiWtAUoAKZ23HAauN8ZEAoOBb1LON7gzxnxsjGlsjGkcEhJid3zlxU5s3UqTrVv5IzyckLp1nY5ju0pvvUUAsHHAAKejKC9ma1EQEX9cBWGqMeY7AGPMNmPM/xljGgHTgN3W+AvGmJPW8BprfE0786mCbdPTTxMAVJ4wId/XPWHCSiZMWJmv67zxrruICgmh7pIlXDh7Nl/XrQoOO68+EuA/wFZjzNtu48tb//oArwIfWu9DRMTXGr4BqAHssSufKtiSEhMJX7KE6LJlqd65c76vf968HcybtyPf1ysDBxJiDNFDh+b7ulXBYOeeQkugN3Cb22WmnYD7RWQHsA04BHxuzd8a2CAi64FZQD9jzCkb86kCLGrYMColJ3P5iSecjpKvGr74outmtq++cjqK8lK2XbRtjPkNkAwm/yud+WfjOtSk1DUr9umnxPr60njECKej5CsfPz/2depE2++/Z/v06YT36OF0JOVl9I5mVeDs+uEHIk+fZlf79vgWKeJ0nHwX8c47xAFHC1lBVHlDi4IqcA6++ioXgHoOPmozIMCfgAB7e0nNSKmwMNbUqkXj7ds5vXevIxmU99KioAqUs7GxNNy4kagbbqBc7dqO5ViwoBcLFtj3PIWsVBg1ikAgZtAgxzIo76RFQRUo6wYPpgRQyuaH6Hi68O7d2VCiBGHz5+uzFlSOaFFQBYZJTua6H35ga0AAdR95xNEsY8YsY8yYZY5mOP/ww1RLSmKdA/dpKO+lRUEVGJs/+4waFy5w/J57HH/+8uLFe1m82Nnj+Y1ef52TIlzULrVVDmhRUAXGX+PHcx6IHD/e6SgeoWhwMBsjI2kUG8uJrVudjqO8hBYFVSCcjY2l4c6drKtZkxLXXed0HI9RddQoigCbhgzJcl6lQIuCKiBiXnyR4kDpF15wOopHqd65MxtKlKDa//6nj+tU2aJFQRUIIXPmsKNYMcdPMKcoWzaQsmUDnY4BwNkePQi7dIn1BfQhQypvaVFQXm/r1KnUTkjg8J13On6COcXs2d2ZPbu70zEAaDhuHGeAuEmTnI6ivIBnfIOUugbHx44lAWjw1ltOR/FIgeXKEVOvHo327eOv3budjqM8nBYF5dXiT5ygwZYtrAkLo1RYmNNxUg0d+jNDh/7sdIxUFV99lWLAhpdecjqK8nBaFJRXWzd8OCWB4k895XSUK6xaFcuqVbFOx0gV3qMHWwMCKP/jj05HUR5Oi4LyasWmT+eAnx8NnnnG6Sge71jHjtROSGDHrFlOR1EeTIuC8loHV60i8tQpdrdsiY+fbY8GKTDqjR3LReDQuHFOR1EeTIuC8lo7hw3DB6g+erTTUbxC2fBw1lSuTN1167gUH+90HOWhtCgor2SSkwlbtox1pUpRtXVrp+NcpUqVYKpUCXY6xlV8H32UEGNY+9prTkdRHkqLgvJKG/79b6olJRF3331OR0nX11/fw9df3+N0jKs0fPlljvn4wOefZz2zKpS0KCivdPa99zgLROpfvDniV6wYWxo2pOGRIxzfvNnpOMoDaVFQXifu2DEid+5kfc2aFC9f3uk46Ro06CcGDfrJ6RjpqvLqq/gDm195xekoygPpJRvK68SMGEFLINjD7k1wFxNzxOkIGbqxa1e2BAZS4X//czqK8kC6p6C8TrEZMzjg58dN/fs7HcVrHe/QgdoJCeycM8fpKMrDaFFQXuXI2rVEnDrF7ptv1nsTrkGd0aNJAg6+8YbTUZSH0aKgvMq24cPxBaq9+qrTUbxaSN26rC1fnvDoaC5fvOh0HOVBbCsKIlJVRJaIyFYR2SwiA63xDURklYhsFJG5IhLstsxQEdklIttF5A67sinvVWnxYjYVL07YHZ7941GzZllq1izrdIxMJT3wAJWSk1mvXWorN3buKSQBzxljagM3A0+KSB3gU+AlY8xNwBxgCIA1rSdQF+gATBYRXxvzKS+zfcYMwhMTOdmpk9NRsvTxx134+OMuTsfIVOSwYZwB4j/6yOkoyoPYVhSMMYeNMWut4XPAVqAyEA4st2ZbBNxrDXcFvjXGXDDG7AV2AU3tyqe8z+Hx47kI1BszxukoBUJAmTKsDw8nYs8e4o4dczqO8hD5ck5BREKBSGA1sAm4y5p0H1DVGq4MHHBbLNYal7atviISLSLRx48fty2z8iyXL16k1rp1rKtYkbLh4U7HyVLfvnPp23eu0zGyVPLJJwnCdZmvUpAPRUFEgoDZwCBjzFngUVyHktYAJYCUs1ySzuLmqhHGfGyMaWyMaRwSEmJXbOVhYiZOpGJyMskPPuh0lGzZseMkO3acdDpGlm7q358Dfn4UnTnT6SjKQ9haFETEH1dBmGqM+Q7AGLPNGPN/xphGwDQg5fmAsfy91wBQBThkZz7lPRI+/ZQzQKTehZunfPz82N20KZEnT3Jswwan4ygPYOfVRwL8B9hqjHnbbXx5618f4FXgQ2vSD0BPESkqImFADeAPu/Ip7xF/4gQN9uxhQ82aFCtVyuk4BU6VF1/EF9g6cqTTUZQHsPPun5ZAb2CjiMRY414GaojIk9b774DPAYwxm0VkBrAF15VLTxpjLtuYT3mJmNGjaQGU0DuYbXHjXXexNSCAkIULnY6iPIBtRcEY8xvpnycA+FcGy7wOvG5XJuWd/KZP55CvL/U9uK+jtCIiKjodIUeOtmtH23nz2LtwocffA6LspXc0K492cvt2Io8dY0fDhl7VrcWkSR2YNKmD0zGyLXzECJKB/WPHOh1FOUyLgvJom0aMwB+o9PzzTkcp0Co1bkxM6dKErVyJSU52Oo5ykBYF5dFKz5/PzqJFqdmtm9NRcuTBB7/jwQe/czpGjsR17Uq1pCQ261PZCjUtCspjHVi+nPrnznGwbVvEx7t+VGNjzxIbe9bpGDlSf9QoEoGT777rdBTlIO/6pqlCZbfVncWNw4Y5nKRwKHn99ayrXJk6GzeSlJjodBzlEC0KyiOZ5GSqLl/O+uBgqrRs6XScQsOnd29CjCFm4kSnoyiHZFgURKSJiFR0e/+QiHwvIu+KSJn8iacKqx2zZlH94kXO3Hmn01EKlYihQzkDJH72mdNRlEMy21P4CKtfIhFpDbwBfAmcAT62P5oqzA5PnMgloK6XdtTWvHkVmjev4nSMHCsaHMyGmjVpsGcPCadOOR1HOSCzouBrjEn5qegBfGyMmW2MGQbcaH80VVglJyVRY80a1pUv7xU9oqZn3Lj2jBvX3ukYuRLUty8lgJjXXnM6inJApkVBRFLuFmoH/OI2zXvuIlJeZ+OHH1L58mUuedllqAVF/aef5oiPD/Ltt05HUQ7IrCjMAJaJyPdAAvArgIjciOsQklK2OPPBB8QBDbz4qqN7753BvffOcDpGrvgWKcK2iAgiDx/m9N69TsdR+SyzovAP4DlgCtDKGJPybAMf4Gl7Y6nC6uL589TbupWYatUIquhd/Qe5O3kynpMn452OkWvlBw6kKLBx1Cino6h8luklqcaY340xc4wxcW7jdqQ8ZlOpvLZ+wgTKGIP/Qw85HaVQq/3gg+z196f4Dz84HUXls8zODZQXkcEZTXR/RoJSeeXilCmcEiHihRecjlKoiY8P+1u0oPWyZRyOjqZS48ZOR1L5JNMTzUAQrkdmpvdSKk/FHTtGg/372VSrFkWCgpyOU+hd/+KL+ADb9SqkQiWzPYXDxpjR+ZZEFXrrX3uNFkDwE084HeWatWsX5nSEa3ZDx45sDQig/KJFTkdR+SizPYWMHpCjlC18Z8zgsI8P9Z98MuuZPdywYW0YNqyN0zGu2dF27agTH88+LQyFRmZFoV2+pVCF3qmdO2l49CjbvexhOgVd+PDhJAP7xo1zOorKJxkWBbe7mZWy3aZRo/AHKgwa5HSUPNGx41Q6dpzqdIxrVqlJEzaULMn1K1bow3cKCe0lVXmEEj/+yJ4iRah1//1OR8kTCQmXSEi45HSMPHG2c2duuHiRbdOmOR1F5QMtCspxh6OiaHD6NH+2bOl1D9MpDOqNGMFF4OikSU5HUflAv4HKcdtHj8YHCB061OkoKh1latQgpnx5wteuJTkpyek4ymZaFJTjKixezJbAQEJvv93pKCoDSd27Uyk5mQ3//rfTUZTNtCgoR+2ZP5/aCQkca++d3UxnpHPnmnTuXNPpGHmmwbBhxAFnP/zQ6SjKZnrtn3LUn2++SShQy0sfppOR559v4XSEPFW8fHlWVKvGTdu3c/H8eb3jvACzbU9BRKqKyBIR2Soim0VkoDU+QkR+F5EYEYkWkabW+FARSbDGx4iI/klSwJnkZEJXrSKmdGkqNmzodByVhSKPPEJpY1in9ywUaHYePkoCnjPG1AZuBp4UkTrAeGCUMSYCGG69T7HbGBNhvfrZmE15gK1ffUXopUvEde3qdJQ817btFNq2neJ0jDwVMWQIJ0W4/NVXTkdRNrKtKBhjDqd0sW2MOQdsBSoDBgi2ZisJHLIrg/JsxydN4gJQf+RIp6OobPAPDGRznTpEHDjAuUP6tS2o8uVEs4iEApHAamAQ8JaIHAAmAO7XIYaJyDoRWSYit2TQVl/rsFP08ePHbU6u7HL54kVqb9jAuuuuo2S1ak7HUdlU6sknCQTWj9a+Mgsq24uCiAQBs4FBxpizQH/gWWNMVeBZ4D/WrIeB640xkcBg4BsRCU7bnjHmY2NMY2NM45CQELvjK5usnzSJ8snJmAcecDqKyoF6jz9OrK8vRWfPdjqKsomtRUFE/HEVhKnGmO+s0Q8DKcMzgaYAxpgLxpiT1vAaYDdQcK7pU1eI+/RTzgCRr7zidBSVAz5+fuxq0oTIEyc4vnmz03GUDey8+khw7QVsTfOUtkNASp/CtwE7rflDRMTXGr4BqAHssSufck7i6dPU37mTDTVqUKxUKafj2KJ797p0717X6Ri2qPzCC/gBW/RcUIFk530KLYHewEYRibHGvQw8DvxLRPyARKCvNa01MFpEkoDLQD/tqbVgWjdmDM2B4o895nQU2wwY0MTpCLapcffd7ChWjDI//eR0FGUD24qCMeY3Mn5QT6N05p+N61CTKuB8vvmGIz4+NCgg3WSnJz7e1UNqYKC/w0nscejWW2m7YAH7Fy+mWjt99EpBot1cqHz11+7dRB45wrbISHyLFHE6jm06dZpKp07e/zyFjNQcMYJkYO/rrzsdReUxLQoqX20cPpwiQKUhQ5yOoq7Bdc2asb5UKar99ps+fKeA0aKg8lXJefPYVbQoNe+7z+ko6hqd79qVsEuX2PLFF05HUXlIi4LKNweWL6fB2bPEtmmjD9MpAOqPGkUicEIfvlOg6DdT5ZvdY8YAcOPw4Q4nUXmhZLVqrKtcmTobN3IpPt7pOCqPaFFQ+cIkJ1N1+XJiSpakSsuWTsexXZ8+EfTpE+F0DNv5PPQQIcYQM2GC01FUHtGioPLFtm++ofrFi5zt3NnpKPmisBSFyJdf5i8RLn72mdNRVB7RoqDyxbEJE1w9olqHkAq6EyfiOXGi4B9SKRIUxMbatYncv5+zsbFOx1F5QIuCst2l+HjqbtjA2sqVKRUW5nScfNGt2wy6dZvhdIx8UXrgQFfPqXquqEDQoqBst27cOMoZg++jjzodRdmg3mOPsdffn6A5c5yOovKAFgVlu8uff85xESJfesnpKMoG4uPD/tatiTx9mtjffnM6jrpGWhSUrf7avZuGBw+ypUED/AMDnY6jbHKj1WPqLu051etpUVC22jhsGEWB8s8/73QUZaMqrVoRU7Ik1ZYv124vvJwWBWWr0nPnsrNoUWrdf7/TUfJV//6N6d+/sdMx8tW5e+4h7NIlNn36qdNR1DXQoqBss3fhQm46f56D7doVum4tevSoR48e9ZyOka8ajB5NPPDXv/7ldBR1DQrXN1Xlq/1jxnAZqFVI7k1wd+DAGQ4cOON0jHwVXKUK66pVo/7WrSSePu10HJVLWhSULS5fvEj4qlWsDQmhYsOGTsfJd717z6F378J3iWbAgAGUMoa1es+C19KioGyxbvx4KiUnk9S7t9NRVD6KGDyYWF9fik4tuA8YKui0KChbXProI06K0HDECKejqHzk4+fHrlatiDx1itgVK5yOo3JBi4LKc6d27qRhbCybGjSgaHCw03FUPrvxtdfwAXYNG+Z0FJULWhRUnts4dChFgYpDhzodRTmgSqtWrC1dmht+/ZXkpCSn46gc0qKg8lyF+fPZEhhIePfuTkdxzHPPNee555o7HcMxCfffz/VJSax/912no6gc0qKg8tS2adOolZDA8S5dnI7iqC5dwunSJdzpGI5pOGYMZ4C49993OorKIS0KKk8dHTeORKDBuHFOR3HU9u0n2L79hNMxHBNQpgwx9erRaO9ezuzf73QclQNaFFSeiT9xgoiNG1lTrVqheW5CRp54Yh5PPDHP6RiOKv/SSwQAMdrvlVexrSiISFURWSIiW0Vks4gMtMZHiMjvIhIjItEi0tRtmaEisktEtovIHXZlU/ZY88ILlASKP/us01GUB6jdqxdbAgO5bu5c7STPi9i5p5AEPGeMqQ3cDDwpInWA8cAoY0wEMNx6jzWtJ1AX6ABMFhFfG/OpPFZq5kx2FylCg6efdjqK8hAn7r2XGhcuaCd5XsS2omCMOWyMWWsNnwO2ApUBA6RcvF4SOGQNdwW+NcZcMMbsBXYBTVFeYcesWdx0/jwHOnYsdJ3fqYw1HD+es8CZ8eOdjqKyKV++vSISCkQCq4FBwFsicgCYAKRczF4ZOOC2WKw1Lm1bfa3DTtHHjx+3M7bKgcOjRrlOME+c6HQU5UGCKlYkpk4dGu3ezem9e52Oo7LB9qIgIkHAbGCQMeYs0B941hhTFXgW+E/KrOksbq4aYczHxpjGxpjGISEhdsVWORB37BgRmzYRHRZG6erVnY7jEV59tTWvvtra6RgeocLw4QQA6/WEs1ewtSiIiD+ugjDVGPOdNfphIGV4Jn8fIooFqrotXoW/Dy0pD7bWOsEcrF/6VO3b30D79jc4HcMjhPfowebixan84496wtkL2Hn1keDaC9hqjHnbbdIhoI01fBuw0xr+AegpIkVFJAyoAfxhVz6Vd8rMmsWuokW5qV8/p6N4jJiYI8TEHHE6hsc41a0bN164wIbJk52OorJg555CS6A3cJt1+WmMiHQCHgcmish6YCzQF8AYsxmYAWwBfgKeNMZctjGfygOb/vMf6sbFcbBLFz3B7GbQoJ8YNOgnp2N4jIbjx3NahDg94ezx/Oxq2BjzG+mfJwBolMEyrwOv25VJ5b0zr73GWaChPoJRZaJ4+fIsbdiQVmvWcDg6mkqNC9fzq72J/mmncu3Yhg002bePdQ0aUOK665yOozzcDRMm4ANs15sbPZoWBZVrWwYOpAhQ7a23nI6ivMD1bdsSVbEidVes0Gc4ezAtCipXLp4/T+3ly4kKCSH09tudjqO8hP+zzxJiDNFDhjgdRWVAi4LKlagXX6RCcjLyzDNOR/FIY8e2Y+zYdk7H8DiRzz/P7iJFKPPNN3p5qofSoqBypeQXX7DX35+GL73kdBSP1KJFVVq0qJr1jIWM+Phw8J57qBMfz6ZPPnE6jkqHFgWVY5s+/ZR6cXH82aULPn62XcDm1VauPMDKlQeynrEQavjOO5wBzo8Z43QUlQ4tCirHzg8fzl8iNPr3v52O4rFefnkxL7+82OkYHimoYkXW3XwzzQ4eZP9i3UaeRouCypE98+fT9PBh1rdsSVDFik7HUV6q9gcfcAnYr+ekPI4WBZUjsYMHcwGo++GHTkdRXqxCRASra9Wi6ZYtHN+0yek4yo0WBZVtR2NiaLZ9O1F16xJSt67TcZSXqzppEkWAzdpnlkfRoqCybWu/fvgB1d591+koqgAIu+MO/rjuOiJWruT8Ee080FNoUVDZcjY2lsjVq1ldtSrVbrvN6Tgeb9KkDkya1MHpGB4vaPRoShlDtO4teAwtCipb1j76KCWB0mPHOh3FK0REVCQiQk/EZ6XeP/9JTMmShM+dq11feAi9yFxl6cyff9Lg559ZXaECzR580NZ1Xbp0idjYWBITE21dT9b+ybV8PRITkwAoVuxav2JJuB5v7oxixYpRpUoV/P397VvJyJFUevZZlj36KG2++y7r+ZWttCioLK3r04e2xlDynXdsX1dsbCwlSpQgNDQU13OanLIXKJrrpbdvPwFAeHi5a8xxAQi7xjZyxxjDyZMniY2NJSzMvgwRgwaxbtQoan//PfEnThBY7lq3mboWevhIZer03r1ELlnC75UqUev++21fX2JiImXLlnW4ICgAEaFs2bL5stfmM2YM5ZOT+eORR2xfl8qcFgWVqZiHHqIkUCYfrzjSguA58uv/osFTT7GmTBnq/vijXonkMC0KKkOndu6k0W+/sapKFWp26+Z0HFXAFRk3ztWttu4tOEqLgsrQhgceoDgQ8v77TkfJV0eOHKFnz2eoXr0Fdeq0pVOn3uzYsTvH7XzxxdfExyfkeLmgoBo5XqYguKlvX6JCQqi/cCGn9+51Ok6hpUVBpWv/4sW0iI5mxY03cmPXrk7HyTfGGO6++27atm3G7t0r2bJlKWPHvsjRoydy1E61aqWYOnVahkXh8uXLeRG3wAl+/31KGUOM7pk6Rq8+Uuk63Ls3ZYGaM2c6lmHQoEHExMTkaZsRERFMmjQpw+lLlizB39+ffv16uS1TD2MMQ4aMYcGCJYgIr776DD16dGXp0pWMHPk25cqVZtOm7TRqVJ+vv36Pjz/+gsOHj3LrrfdRrlxpliyZRVBQDQYP7svChcuYOHE4f/yxjs8+mw7AY4/dz6BBj+fpZ/VG4d27s3zECFquXcvehQsJu+MOpyMVOrqnoK6y7u23ufnwYaJvv50KERFOx8lXmzZtolGjRleN/+67+cTEbGb9+kX8/PO3DBnyGocPHwVg3bpNTJo0ii1blrJnz35WrIjioYd6UbFieZYsmcmSJbMAiIuLp169cFavnkdAQDE+/3wGq1fP4/ff5/LJJ9+wbp12DAdQe+ZMEoBjDz/sdJRCSfcU1BUuX7xI4CuvEOvrS7Nvv3U0S2Z/0ee33377g/vv/we+vr5UqBBCmzY3ExW1nuDgIJo2jaBKlesAiIioy759BwgJuYHLl80Vbfj6+nLvvXemtnf33R0oXjwQgHvu6civv64mMrJe/n4wDxRSrx5LO3ak7YIFrHnjDRrp0/3yle4pqCuseOwxwhMT+fPppwkoU8bpOPmubt26rFmz5qrxxph05nYpWrRI6rCvry9JSUnpzlesWFF8fX2zbE9B82+/Zb+fH8EjR5Lk+N3thYsWBZXq2IYN3PT116wPDqb5xIlOx3HEbbfdxoULF/jkk7/3kqKiYihduhTTp//A5cuXOX78JMuXr6Zp04hM2ypePJBz586nO61165v5738XEh+fQFxcPHPm/MQttzTLy4/i1YoGB3N48GBqXLjAb/fc43ScQsW2oiAiVUVkiYhsFZHNIjLQGj9dRGKs1z4RibHGh4pIgts0fYpLPtvdqRMBxlBi2jTEp3D+vSAizJkzh0WLfqN69RbUrXsrI0dO5IEH/kH9+rVp0OB2brutO+PHv0LFiuUzbat793vp2PFBbr316itpGja8iT597qNp0ztp1qwzjz12vx46SqPZuHH8XqkSNy9YwJ4FC5yOU2iIXbuxIlIJqGSMWSsiJYA1wD+MMVvc5pkInDHGjBaRUGCeMSbb34zGjRub6OjovI5eKK167jmav/02S++4g7Y//eRYjq1bt1K7dm3H1v837fsohZP/J8c2bMA/IoIDQUHUPXEC3yJFsl5IZUlE1hhjGqc3zbY/B40xh40xa63hc7i6eqzsFkqA7sA0uzKo7Dm5fTs3vvMOWwIDafXf/zodp0AICytNWFhpp2N4vfL167O5b1/qnzvHb/nQ95bKp3MK1l5AJLDabfQtwFFjzE63cWEisk5ElonILRm01VdEokUk+vjx4/aFLiRMcjLb7riDksbg9+WX+BUr5nSkAqFIEV+KFPF1OkaB0HLyZKJCQmj83Xfs/+UXp+MUeLYXBREJAmYDg4wxZ90m3c+VewmHgeuNMZHAYOAbEQlO254x5mNjTGNjTOOQkBA7oxcKvz70EC3372flbbdR8957nY5TYJw6lcCpUznv4kJdTXx8qPLjj1wSIaFzZ+JP5OzucpUzthYFEfHHVRCmGmO+cxvvB9wDTE8ZZ4y5YIw5aQ2vAXYDNe3MV9ht/vxzmk2dSnTZstyiJ/Ly1PHjcRw/Hud0jAKjUpMm7BwxgpoJCaxt1gyTnOx0pALLzquPBPgPsNUY83aaye2BbcaYWLf5Q0TE1xq+AagB7LErX2F3fPNmSj/+OMf8/Ki+erWewFMer8mIESxv25ZWe/aw/IEHnI5TYNm5p9AS6A3c5naZaSdrWk+uPsHcGtggIuuBWUA/Y8wpG/MVWpfi44lt1YrSly8T9+WXlK5e3elISmVL60WL+KN8eZpPn86GDz5wOk6BZOfVR78ZY8QYU98YE2G95lvT+hhjPkwz/2xjTF1jTANjTENjzFy7shVml+Ljia5Zk8jTp1nz+OP58jS1wmzp0pWsXBmV4+X27TtAvXq35WiZKVOmcOjQodT3jz32GFu2bMlkCe/j4+dHzd9/55C/P9UGDGDr1187HanAKZx3KBVSSYmJRNWqRfODB1l29920+vhjpyMVaElJSSxduoqVK6/uNiMzue1WO21R+PTTT6lTp06u2vJkpcLC8F+2jLN+flR86CG2TdOr2vOSdohXSCQlJrK6Vi1aHjjA0rvuou1332W9kNMGDYI87jqbiAjIQUd7QUE1eOKJB1myZCWlS5fk228/ICSkLLt37+PJJ1/h+PGTBAYG8Mknb1Gr1o306TOIMmVKsXbtJkqXLsWqVdH4+vry9dezee+91/jPf6bRuXN7unXrnNr++fM7Wbp0JaNGvU2lShWIidnM/PlfkZSUxMMPP8+6dTupWbMmX375JYGBgYwePZq5c+eSkJBAixYt+Oijj5g9ezbR0dH06tWLgIAAVq1aRceOHZkwYQKNGzdm2rRpjB07FmMMd955J2+++aa1/iAGDhzIvHnzCAgI4Pvvv6dChQp5u81tULl5c2KXLCGubVvK9+rFdl9fwrt3dzpWgaB7CoXAkbVr2VSxIi3373f1Pvn9905H8hpxcfE0bHgTa9cupE2b5owa5bpmom/fF3jvvTGsWfMTEyYMY8CAoanL7Nixh8WLpzNnzqf069ebZ599nJiYRVn2bfTHHzG8/vqLbNmyFIDt23fTt29PNmzYQHBwMJMnTwbgqaeeIioqik2bNpGQkMC8efPo1q0bjRs3ZurUqcTExBAQEJDa7qFDh3jxxRf55ZdfiImJISoqiv9aNynGxcVx8803s379elq3bs0nn3ySh1vPXlVatSL5559J9PHhuh49WPn0005HKhB0T6GAWzNuHNe/8go1jOG3xx+nrTcdMvKArrN9fHzo0eMuAB588B7uuecxzp+PY+XKNdx33xOp8124cDF1+L77OvPXXxdyvK6mTSMIC7s+9X3VqtfRsmVja90P8u677/L888+zZMkSxo8fT3x8PKdOnaJu3bp06dIlw3ajoqJo27YtKff19OrVi+XLl/OPf/yDIkWK0Lmza6+lUaNGLFq0KMe5nXR927YcWrGCvbffTov332f5zz/TZMWKQtnDb17RolBA7VmwgIMDB9Jy5052Fy3K2VmzaGV9+VXuiQjJycmUKhVMTEz6v0CLFw/k5Mn4dKf5+fmRbF1jb4zh4sVLVyyXdl1p3ycmJjJgwACio6OpWrUqI0eOJDGLrqUz69/M398/dT2Zdfvtya5r1oyQI0dY2q4dbX//nd2VKnG0b1+avvWW3qGfC3r4qAA5vmkTUaNHs6pKFUI7daLxzp38GhlJ5dhYqmtByJXk5GRmzfoRgG++mUOrVk0JDi5BWFhVZs50XSBnjGH9+s3pLl+iRPErus8ODa3CmjUbAfj++4VcunQp3eUA/vzzIKtWrQVg2rRptGrVKrUAlCtXjvPnzzNr1iy3dZXg3LlzV7XTrFkzli1bxokTJ7h8+TLTpk2jTZs2OdkMHs8/MJC2q1YR/dprALR4/30OlSjBsm7d2DF7Npfi0y/S6mqFck9hz/z5nH7wQadjXBOx/voTYxBjqHj+PBWSkwkBzgDLW7Sg7scf06ZuXUdzervixQPZvHk7jRp1oGTJEkyf7rqSeurU9+nffyivvfYvLl1KomfPrjRocPW27tLldrp1e4Lvv1/Ie++9xuOP96Jr10do2vRO2rVrddXegbvatWvwxRezeeKJUdSoUYP+/fsTGBjI448/zk033URoaChNmjRJnb9Pnz7069cv9URzikqVKjFu3DhuvfVWjDF06tSJrl275uFW8hyNX3mF5BdfZPXw4RR/913azJ4Ns2eTCOwKCOCCdZOmEcGk2RPzNmcjI2m7eHGet2tb19n5IbddZ++eN4/zvXplPaMXSPnhjitThsv161OyTRtu7NmToIoVnY6WK57WdXbK1UE5pV1nO88kJ7Nn/nyOzJ/Ppagoiu/bh7+1ZyZe/HsvxV+RkbRdujRXy2bWdXah3FOo3rkznDnjdAyllI3Ex4fqnTvrodMcKpRFQansys1eAsCNN5bN4yRK5Q8tCsrjGGOuuvLG2/j6enf+FN58eFnljl59pDxKsWLFOHnypNf/Mjp2LI5jx7y762xjDCdPnqSYXtZZqOiegvIoVapUITY2FuefqneCa/l6HDniugz15Mmga8yRBGR+H4KdihUrRpUqVRxbv8p/WhSUR/H39ycszNmrbVz6AKG5Xrp//ykALF3a5xpz7AOmXGMbSmWfHj5SSimVSouCUkqpVFoUlFJKpfLqO5pF5Diw3+kcWSiH66ylp9Ocec9bsmrOvOfpWasZY0LSm+DVRcEbiEh0RreTexLNmfe8JavmzHvelDUtPXyklFIqlRYFpZRSqbQo2M9bHnWmOfOet2TVnHnPm7JeQc8pKKWUSqV7CkoppVJpUVBKKZVKi4INRGS6iMRYr30iEmONDxWRBLdpHzocFREZKSIH3TJ1cps2VER2ich2EbnD4Zxvicg2EdkgInNEpJQ13hO3aQdrm+0SkZeczpNCRKqKyBIR2Soim0VkoDU+w58BJ1nfnY1WpmhrXBkRWSQiO61/SzucMdxtu8WIyFkRGeSp2zQ79JyCzURkInDGGDNaREKBecaYeg7HSiUiI4HzxpgJacbXAaYBTYHrgJ+BmsaYy/ke0pXn/4BfjDFJIvImgDHmRU/bpiLiC+wAbgdigSjgfmPMFkeDASJSCahkjFkrIiWANcA/gO6k8zPgNBHZBzQ2xpxwGzceOGWMecMquKWNMS86ldGd9X9/EGgGPIIHbtPs0D0FG4nrSTHdcf1y9TZdgW+NMReMMXuBXbgKhCOMMf8zxiRZb38HPLU/56bALmPMHmPMReBbXNvSccaYw8aYtdbwOWArUNnZVDnWFfjCGv4CV1HzFO2A3cYYT+9lIVNaFOx1C3DUGOP+TMcwEVknIstE5BangqXxlHVY5jO33fHKwAG3eWLxnF8gjwIL3N570jb15O2WytrDigRWW6PS+xlwmgH+JyJrRKSvNa6CMeYwuIocUN6xdFfryZV/AHriNs2SFoVcEpGfRWRTOi/3vwrv58ofksPA9caYSGAw8I2IBDuc9QOgOhBh5ZuYslg6Tdl6rDE721REXsH15Jmp1ihHtmkm8n275ZSIBAGzgUHGmLNk/DPgtJbGmIZAR+BJEWntdKCMiEgR4C5gpjXKU7dplvQhO7lkjGmf2XQR8QPuARq5LXMBuGANrxGR3UBNINrGqFlmTSEinwDzrLexQFW3yVWAQ3kc7QrZ2KYPA52BdsY6GebUNs1Evm+3nBARf1wFYaox5jsAY8xRt+nuPwOOMsYcsv49JiJzcB2aOyoilYwxh61zJMccDfm3jsDalG3pqds0O3RPwT7tgW3GmNiUESISYp2MQkRuAGoAexzKl5Kpktvbu4FN1vAPQE8RKSoiYbiy/pHf+VKISAfgReAuY0y823hP26ZRQA0RCbP+euyJa1s6zjrH9R9gqzHmbbfxGf0MOEZEilsnwxGR4sD/4cr1A/CwNdvDwPfOJLzKFUcFPHGbZpfuKdgn7fFFgNbAaBFJAi4D/Ywxp/I92ZXGi0gErkMc+4AnAIwxm0VkBrAF1+GaJ5268sjyPlAUWOT63cbvxph+eNg2ta6OegpYCPgCnxljNjuVJ42WQG9go1iXSQMvA/en9zPgsArAHOv/2g/4xhjzk4hEATNE5J/An8B9DmYEQEQCcV1t5r7d0v1eeQO9JFUppVQqPXyklFIqlRYFpZRSqbQoKKWUSqVFQSmlVCotCkoppVJpUVBKKZVKi4LKNyJyPovppURkgNv760RkljUckZvuh60ujJ/P4fwHRWR0BtP3iUi5nObwNiLSR0Suc3uf7ucWkR7i6iLca+7YVZnToqA8SSkgtSgYYw4ZY7pZbyOA/OqT/h1jzHA7V2B1g+KRrDvE++DqMj1TxpjpwGN2Z1L5R4uCynciEiQii0VkrbgeopLS4d0bQHVxPZTkLXE9QGeT1V3EaKCHNa1H2j0Aa75Qa/gVcT3k5mcg3G2e6iLyk9Xr5q8iUisbWcuKyP/E1QvrR7h1eCciD4rIH1amj9y62/iniOwQkaUi8omIvG+NnyIib4vIEuDNjPJYXXfMFpEo69XSGt9G/n5oy7qUbiDSydzWWvcscT2YaKrVxQUi0s5adqO4eu8sao3fJyLDReQ3XF02NAamWusKsJp+2u3/LMttp7yUMUZf+sqXF66HjoCr24Jga7gcrmc1CBAKbHKbP/U9rr9c33ebNhJ43u39Jmv+RsBGIBAIttp+3ppnMVDDGm6G66E9aTOmbfddYLg1fCeubgvKAbWBuYC/NW0y8BCuv673AWUAf+DXlNzAFFwdo/lmlgf4BmhlDV+Pq68irPW1tIaDAL8MtnNb4Ayuzvh8gFVAK6AYrm69a1rzfYmrp1SszC+4tbEU1wNucJv+tDU8APg0zfrmOf3zpa+8eXnsLqwq0AQYK66ukJNxPW+gQh61fQswx1id5onID9a/QUALYKb1RzO4+lLKSmtcvd1ijPlRRP6yxrfDVYCirPYCcPXY2RRYZqz+l0RkJq5eW1PMNMZcziJPe6CO2/hga69gBfC2iEwFvjNunS2m44+U6VY/R6HAOWCvMWaHNc8XwJPAJOv99Cy2xXfWv2uwtokqeLQoKCf0AkKARsaYS+J67GKxHLaRxJWHP92XT69DLx/gtDEmIofryag9Ab4wxgy9YqTI3Vm0FZeNPD5Ac2NMQprxb4jIj7jOrfwuIu2NMdsyWM8Ft+HLuL7r6T3rIb1sGUlpM6U9VQDpOQXlhJLAMasg3ApUs8afA9I9Tp7OtH1AQwARaQiEWeOXA3eLSID113UXAON6mMxeEbnPWkZEpEE2si7HVcQQkY5AyhO0FgPdRKS8Na2MiFTD1b14GxEpbZ1Mvje9RrPI8z/gqZR5xdXbJiJS3Riz0RjzJq7nReT0uP42IFREbrTe9waWZTBvZv8XqgDToqCcMBVoLCLRuH7hbgMwxpwEVlgnjd9Ks8wSXIdUYkSkB64HxZSxDo30B3ZYbazFdRgkxprnV7c2egH/FJH1wGay9+zkUUBrEVmLq0//P631bAFexfW4yA3AIqCSMeYgMBbXYy5/xtX1+JkM2s4ozzPW9tkgIluAftb4Qda2WQ8kcOUjSbNkjEnE9UD5mSKyEdehuw8zmH0K8GGaE82qENCus5VyIyIjcZ0Qn3ANbQQZY85bewpzcD1TYU5eZfQ0ItIW18n5zg5HUXlA9xSUutJ5oK9kcPNaNo209mA2AXuB/+ZBLo9k7bVNBv7Kal7lHXRPQSkvJSI3AV+lGX3BGNPMiTyqYNCioJRSKpUePlJKKZVKi4JSSqlUWhSUUkql0qKglFIq1f8D/UAGYxHsGj0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#surface_t2 = surface_t_2.mean('lon')\n", "surface_t2 = data_control.TS.mean('lon')\n", "surface_t2.plot(color=\"black\",label=\"Control\")\n", "surface_t1 = data_00.TS.mean('lon')\n", "surface_t1.plot(color=\"red\",label=\" perturbation\")\n", "#plot\n", "plt.legend(loc='lower center')\n", "plt.axvline(x=0,color=\"black\",linestyle='dashed')\n", "plt.axvspan(-10, 10, color='yellow', alpha=0.5)" ] }, { "cell_type": "markdown", "id": "4319eb9a", "metadata": {}, "source": [ "## Other variables" ] }, { "cell_type": "markdown", "id": "13172dc2", "metadata": {}, "source": [ "Full list of CESM variables: https://www2.cesm.ucar.edu/models/cesm2/atmosphere/docs/ug6/hist_flds_f2000.html " ] }, { "cell_type": "code", "execution_count": 6, "id": "d0d9830c-6ae4-447b-9d39-fe79edfe3c9f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'FLNT' (time: 1, lat: 96, lon: 144)>\n",
       "array([[[195.13887, 195.13979, ..., 195.1388 , 195.13907],\n",
       "        [193.65504, 193.08711, ..., 194.31952, 193.94109],\n",
       "        ...,\n",
       "        [196.7363 , 196.14072, ..., 196.9263 , 197.13918],\n",
       "        [195.31691, 195.3155 , ..., 195.33676, 195.3262 ]]], dtype=float32)\n",
       "Coordinates:\n",
       "  * time     (time) object 0021-01-01 00:00:00\n",
       "  * lat      (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n",
       "  * lon      (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n",
       "Attributes:\n",
       "    Sampling_Sequence:  rad_lwsw\n",
       "    units:              W/m2\n",
       "    long_name:          Net longwave flux at top of model\n",
       "    cell_methods:       time: mean
" ], "text/plain": [ "\n", "array([[[195.13887, 195.13979, ..., 195.1388 , 195.13907],\n", " [193.65504, 193.08711, ..., 194.31952, 193.94109],\n", " ...,\n", " [196.7363 , 196.14072, ..., 196.9263 , 197.13918],\n", " [195.31691, 195.3155 , ..., 195.33676, 195.3262 ]]], dtype=float32)\n", "Coordinates:\n", " * time (time) object 0021-01-01 00:00:00\n", " * lat (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n", " * lon (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n", "Attributes:\n", " Sampling_Sequence: rad_lwsw\n", " units: W/m2\n", " long_name: Net longwave flux at top of model\n", " cell_methods: time: mean" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The net longwave flux at the top of the model\n", "\n", "data_00.FLNT" ] }, { "cell_type": "code", "execution_count": 7, "id": "95dc7cc0-469c-4856-aa57-a099358165ea", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'FLNS' (time: 1, lat: 96, lon: 144)>\n",
       "array([[[79.3983  , 79.40211 , ..., 79.39641 , 79.39886 ],\n",
       "        [80.2299  , 79.92358 , ..., 80.08627 , 80.222595],\n",
       "        ...,\n",
       "        [79.46216 , 78.62718 , ..., 80.00724 , 79.98925 ],\n",
       "        [77.15022 , 77.14897 , ..., 77.19055 , 77.16949 ]]], dtype=float32)\n",
       "Coordinates:\n",
       "  * time     (time) object 0021-01-01 00:00:00\n",
       "  * lat      (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n",
       "  * lon      (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n",
       "Attributes:\n",
       "    Sampling_Sequence:  rad_lwsw\n",
       "    units:              W/m2\n",
       "    long_name:          Net longwave flux at surface\n",
       "    cell_methods:       time: mean
" ], "text/plain": [ "\n", "array([[[79.3983 , 79.40211 , ..., 79.39641 , 79.39886 ],\n", " [80.2299 , 79.92358 , ..., 80.08627 , 80.222595],\n", " ...,\n", " [79.46216 , 78.62718 , ..., 80.00724 , 79.98925 ],\n", " [77.15022 , 77.14897 , ..., 77.19055 , 77.16949 ]]], dtype=float32)\n", "Coordinates:\n", " * time (time) object 0021-01-01 00:00:00\n", " * lat (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n", " * lon (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n", "Attributes:\n", " Sampling_Sequence: rad_lwsw\n", " units: W/m2\n", " long_name: Net longwave flux at surface\n", " cell_methods: time: mean" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Net longwave flux at the surface\n", "\n", "data_00.FLNS" ] }, { "cell_type": "code", "execution_count": 8, "id": "2711c30a-4387-422a-be5e-40cc3c921d53", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'FSNT' (time: 1, lat: 96, lon: 144)>\n",
       "array([[[0.630925, 0.630922, ..., 0.630927, 0.630926],\n",
       "        [8.233937, 8.205184, ..., 8.307201, 8.300164],\n",
       "        ...,\n",
       "        [8.369527, 8.322571, ..., 8.261292, 8.320506],\n",
       "        [0.63259 , 0.632591, ..., 0.632564, 0.632591]]], dtype=float32)\n",
       "Coordinates:\n",
       "  * time     (time) object 0021-01-01 00:00:00\n",
       "  * lat      (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n",
       "  * lon      (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n",
       "Attributes:\n",
       "    Sampling_Sequence:  rad_lwsw\n",
       "    units:              W/m2\n",
       "    long_name:          Net solar flux at top of model\n",
       "    cell_methods:       time: mean
" ], "text/plain": [ "\n", "array([[[0.630925, 0.630922, ..., 0.630927, 0.630926],\n", " [8.233937, 8.205184, ..., 8.307201, 8.300164],\n", " ...,\n", " [8.369527, 8.322571, ..., 8.261292, 8.320506],\n", " [0.63259 , 0.632591, ..., 0.632564, 0.632591]]], dtype=float32)\n", "Coordinates:\n", " * time (time) object 0021-01-01 00:00:00\n", " * lat (lat) float64 -90.0 -88.11 -86.21 -84.32 ... 84.32 86.21 88.11 90.0\n", " * lon (lon) float64 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5\n", "Attributes:\n", " Sampling_Sequence: rad_lwsw\n", " units: W/m2\n", " long_name: Net solar flux at top of model\n", " cell_methods: time: mean" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Net solar flux at the top of the model\n", "\n", "data_00.FSNT" ] } ], "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.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }