{ "cells": [ { "cell_type": "markdown", "id": "a07a9221", "metadata": {}, "source": [ "# TimeScale" ] }, { "cell_type": "code", "execution_count": 1, "id": "43b321d3", "metadata": {}, "outputs": [], "source": [ "# %matplotlib inline #特殊点用了%, 这说明作者用的jupyter notebook 在写代码;放在其他地方运行可能就不成功会报错\n", "from xmitgcm import open_mdsdataset #按照这个xmitgcm 的库很方便\n", "import xgcm\n", "import xarray as xr\n", "import matplotlib.pyplot as plt\n", "from xlayers import finegrid, layers\n", "from xlayers.core import layers_apply\n", "import numpy as np\n", "import os" ] }, { "cell_type": "code", "execution_count": 2, "id": "68f5e206", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'TRAC01' (time: 104, Z: 30, YC: 144, XC: 240)>\n",
       "dask.array<concatenate, shape=(104, 30, 144, 240), dtype=float32, chunksize=(1, 30, 144, 240), chunktype=numpy.ndarray>\n",
       "Coordinates:\n",
       "  * XC       (XC) >f4 0.5 1.5 2.5 3.5 4.5 5.5 ... 235.5 236.5 237.5 238.5 239.5\n",
       "  * YC       (YC) >f4 -71.5 -70.5 -69.5 -68.5 -67.5 ... 67.5 68.5 69.5 70.5 71.5\n",
       "  * Z        (Z) >f4 -10.0 -30.0 -50.0 ... -3.375e+03 -3.625e+03 -3.875e+03\n",
       "    rA       (YC, XC) >f4 dask.array<chunksize=(144, 240), meta=np.ndarray>\n",
       "    Depth    (YC, XC) >f4 dask.array<chunksize=(144, 240), meta=np.ndarray>\n",
       "    drF      (Z) >f4 dask.array<chunksize=(30,), meta=np.ndarray>\n",
       "    PHrefC   (Z) >f4 dask.array<chunksize=(30,), meta=np.ndarray>\n",
       "    hFacC    (Z, YC, XC) >f4 dask.array<chunksize=(30, 144, 240), meta=np.ndarray>\n",
       "    maskC    (Z, YC, XC) bool dask.array<chunksize=(30, 144, 240), meta=np.ndarray>\n",
       "    rhoRef   (Z) >f4 dask.array<chunksize=(30,), meta=np.ndarray>\n",
       "    iter     (time) int64 dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "  * time     (time) timedelta64[ns] 0 days 2 days 4 days ... 204 days 206 days\n",
       "Attributes:\n",
       "    standard_name:  TRAC01\n",
       "    long_name:      Tracer 0001 concentration\n",
       "    units:          kg/kg
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * XC (XC) >f4 0.5 1.5 2.5 3.5 4.5 5.5 ... 235.5 236.5 237.5 238.5 239.5\n", " * YC (YC) >f4 -71.5 -70.5 -69.5 -68.5 -67.5 ... 67.5 68.5 69.5 70.5 71.5\n", " * Z (Z) >f4 -10.0 -30.0 -50.0 ... -3.375e+03 -3.625e+03 -3.875e+03\n", " rA (YC, XC) >f4 dask.array\n", " Depth (YC, XC) >f4 dask.array\n", " drF (Z) >f4 dask.array\n", " PHrefC (Z) >f4 dask.array\n", " hFacC (Z, YC, XC) >f4 dask.array\n", " maskC (Z, YC, XC) bool dask.array\n", " rhoRef (Z) >f4 dask.array\n", " iter (time) int64 dask.array\n", " * time (time) timedelta64[ns] 0 days 2 days 4 days ... 204 days 206 days\n", "Attributes:\n", " standard_name: TRAC01\n", " long_name: Tracer 0001 concentration\n", " units: kg/kg" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_dir = \"/data2/home/liutongya/model/sun_model/MITgcm/verification/global/run_tracer_na_ex3/\"\n", "ds1 = open_mdsdataset(data_dir,prefix={'tracer'}).chunk()\n", "TRACE = ds1.TRAC01\n", "TRACE" ] }, { "cell_type": "code", "execution_count": 6, "id": "6cfad9cb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'TRAC01' (time: 100, XC: 240)>\n",
       "dask.array<getitem, shape=(100, 240), dtype=float32, chunksize=(1, 240), chunktype=numpy.ndarray>\n",
       "Coordinates:\n",
       "  * XC       (XC) >f4 0.5 1.5 2.5 3.5 4.5 5.5 ... 235.5 236.5 237.5 238.5 239.5\n",
       "    YC       >f4 -29.5\n",
       "    Z        >f4 -10.0\n",
       "    rA       (XC) >f4 dask.array<chunksize=(240,), meta=np.ndarray>\n",
       "    Depth    (XC) >f4 dask.array<chunksize=(240,), meta=np.ndarray>\n",
       "    drF      >f4 dask.array<chunksize=(), meta=np.ndarray>\n",
       "    PHrefC   >f4 dask.array<chunksize=(), meta=np.ndarray>\n",
       "    hFacC    (XC) >f4 dask.array<chunksize=(240,), meta=np.ndarray>\n",
       "    maskC    (XC) bool dask.array<chunksize=(240,), meta=np.ndarray>\n",
       "    rhoRef   >f4 dask.array<chunksize=(), meta=np.ndarray>\n",
       "    iter     (time) int64 dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "  * time     (time) timedelta64[ns] 0 days 2 days 4 days ... 196 days 198 days\n",
       "Attributes:\n",
       "    standard_name:  TRAC01\n",
       "    long_name:      Tracer 0001 concentration\n",
       "    units:          kg/kg
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * XC (XC) >f4 0.5 1.5 2.5 3.5 4.5 5.5 ... 235.5 236.5 237.5 238.5 239.5\n", " YC >f4 -29.5\n", " Z >f4 -10.0\n", " rA (XC) >f4 dask.array\n", " Depth (XC) >f4 dask.array\n", " drF >f4 dask.array\n", " PHrefC >f4 dask.array\n", " hFacC (XC) >f4 dask.array\n", " maskC (XC) bool dask.array\n", " rhoRef >f4 dask.array\n", " iter (time) int64 dask.array\n", " * time (time) timedelta64[ns] 0 days 2 days 4 days ... 196 days 198 days\n", "Attributes:\n", " standard_name: TRAC01\n", " long_name: Tracer 0001 concentration\n", " units: kg/kg" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#READ SURFACE TRACER of the deep Atlantic ocean\n", "# T=3\n", "data_dir = \"/data2/home/liutongya/model/sun_model/MITgcm/verification/global/run_tracer_na_ex3/\"\n", "ds1 = open_mdsdataset(data_dir,prefix={'tracer'}).chunk()\n", "tracer3 = ds1.TRAC01[0:100,0,42,:] \n", "# T= 2\n", "data_dir = \"/data2/home/liutongya/model/sun_model/MITgcm/verification/global/run_tracer_na_ex2/\"\n", "ds1 = open_mdsdataset(data_dir,prefix={'tracer'}).chunk()\n", "tracer2 = ds1.TRAC01[0:100,0,42,:]\n", "# T=1\n", "data_dir = \"/data2/home/liutongya/model/sun_model/MITgcm/verification/global/run_tracer_na/\"\n", "ds1 = open_mdsdataset(data_dir,prefix={'tracer'}).chunk()\n", "tracer1 = ds1.TRAC01[0:100,0,42,:]\n", "tracer1" ] }, { "cell_type": "code", "execution_count": 9, "id": "aa6f04b6", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/data/home/zsp/.conda/envs/lfy/lib/python3.7/site-packages/ipykernel_launcher.py:24: UserWarning: FixedFormatter should only be used together with FixedLocator\n", "/data/home/zsp/.conda/envs/lfy/lib/python3.7/site-packages/ipykernel_launcher.py:25: UserWarning: FixedFormatter should only be used together with FixedLocator\n", "/data/home/zsp/.conda/envs/lfy/lib/python3.7/site-packages/ipykernel_launcher.py:26: UserWarning: FixedFormatter should only be used together with FixedLocator\n", "/data/home/zsp/.conda/envs/lfy/lib/python3.7/site-packages/ipykernel_launcher.py:27: UserWarning: FixedFormatter should only be used together with FixedLocator\n", "/data/home/zsp/.conda/envs/lfy/lib/python3.7/site-packages/ipykernel_launcher.py:28: UserWarning: FixedFormatter should only be used together with FixedLocator\n", "/data/home/zsp/.conda/envs/lfy/lib/python3.7/site-packages/ipykernel_launcher.py:29: UserWarning: FixedFormatter should only be used together with FixedLocator\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaMAAAGXCAYAAAAefj9PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABETUlEQVR4nO3deXQd6V3u++/P8ii3R0meLWuwZnkWnYTkhs4E3U2g4cINHcjEsJrmpjkMN4fTuVkHAqx7bwgsLsnK0Md0mkMCdBOSTuLTNOmGkEvgQCdtu61ha54syVZbsi3Plq3hd/+o2tXb8tZgS1ZpeD5r1dq7qt6q/da7bD+uqrfeMndHREQkTkviroCIiIjCSEREYqcwEhGR2CmMREQkdgojERGJncJIRERipzASEZHYzdkwMrNVZvYvZpYxQZnlZvY9M1sazueZ2c/PXi3Hrde3zeyCmb0Qd11EROaDORtGwC8Bz7v7yHgF3P0m8B3g58JFeUDaMEoG1kwbZ79/DHzwXvyeiMhCNJfD6BeAbwGY2X1m9h0zO25mtWb2SEq5b4ZlAT4F/C9mdsLMfsvMPmJmf2dm/wN4eaL9mNmHzKzGzKrN7Cvhshwz+7qZvRpObw2Xf9LMDpvZy8CXx1bc3b8DXL4HbSIisiDdk7OF6TKz5UCBu3eGiwaBn3b3S2aWDbxiZkc8GMuoDvihsNyTwMfc/b3hfj4CvAXY6+7nw7OY2/YDlAOfAN7q7mfNbGO4v88A/6+7/5uZ5QIvAWXhukPA29z9+j1rCBGRRWJOhhGQDVxImTfg/zaztwOjwHZgM/C6u4+Y2U0zWzPOvv7R3c9Psp93Al9z97MAKeXfDZSbWXJfa1N+54iCSERkZszVMLoOrEyZ/wUgBzjk7kNm1jlm/QqCs6d0rk5hPwakGzF2CfCWsaEThtPVNOVFROQuzMl7Ru4+AGSYWTJw1gF9YYC8A9iVLGtmWUC/uw8R3KcZ7wxpov18B3hfuC9SLtO9DDyR8lv7p31wIiJymzkZRqGXgbeF3/8aqDKzowRnN40p5d4BvBh+rwGGw04Iv5Vmn2n34+4J4P8C/sXMqoE/Dcv/p7B8jZnVA49PpeJm9q/A3wHvMrMeM/uxKR2xiMgiZXP1fUZmdgD4bXefsIu0mT0PfNzdm2anZiIiMtPm7JmRu78GfHeyh16BbyqIRETmtzl7ZiQiIovHnD0zEhGRxUNhJCIisVMYiYhI7BRGIiISuzk5AkN2drbn5eXFXQ0RERnHsWPHzrp7zkztb06GUV5eHkePHo27GiIiMg4zOzmT+9NlOhERiZ3CSEREYqcwEhGR2CmMREQkdgojERGJncJIRERipzASEZHYKYxERCR2CiMREYmdwkhERGKnMBIRkdgpjEREJHbTCiMze9DMmsys1cyenKDcD5nZiJn97HR+T0REFqa7DiMzywA+DzwElAPvN7Pyccr9EfDS3f6WiIgsbNM5M7ofaHX3dne/CTwHPJKm3K8DXwf6pvFbIiKygE0njLYD3SnzPeGyiJltB34aeGqynZnZY2Z21MyO9vf3T6NaIiIy30wnjCzNMh8z/2fAf3H3kcl25u6H3b3K3atycmbs5YEiIjIPTOdNrz3AzpT5HcDpMWWqgOfMDCAbeNjMht39m9P4XRERWWCmE0avAkVmlg+cAh4Ffj61gLvnJ7+b2X8HXlAQiYjIWHcdRu4+bGZPEPSSywCecfeEmT0erp/0PpGIiAhM78wId38ReHHMsrQh5O4fmc5viYjIwqURGEREJHYKIxERiZ3CSEREYqcwEhGR2CmMREQkdgojERGJncJIRERipzASEZHYKYxERCR2CiMREYmdwkhERGKnMBIRkdgpjEREJHYKIxERiZ3CSEREYqcwEhGR2CmMREQkdgojERGJ3bReOy4iIgvblStXqKurI5FIRNN73vOeGf8dhZGIiODu9PT0UF9fT21tLcePH+f48eM0Nzfj7reUXbly5Yz/vsJIRGQRuXHjBolEgvr6elpaWqKpsbGRK1eu3FZ+2bJllJWVUVFREU379u3jyJEjM1ovhZGIyAI0OjpKd3d3FDx1dXW89tpr1NfXMzw8nHabnJwcysvLKS8v5+DBgxw8eJCKigpWrFhxz+urMBIRmceGhobo6OigsbGRxsbGKHwaGhq4evXqbeXNjNLSUvbs2UNRURFFRUXs3r2bkpIScnJyYjiCgMJIRGQeuHnzJk1NTdTV1VFfXx9Nra2t457pbNq0Kbq0Vl5ezv79+9m7dy+rV6+e5dpPTmEkIjKHuDvd3d3U1dVFU3V1NQ0NDQwNDaXdZteuXZSWllJSUhIFT1lZGVlZWbNc+7unMBIRicG1a9eora2lurqaxsZGOjo6aG9vp729PW1HAoDCwkIqKyujs52ysjJKSkrIzMyc5drPvGmFkZk9CHwGyACedvdPjVn/C8B/CWevAL/m7tXT+U0RkflkdHSUjo4Oamtro6mmpoaWlhZGR0fTbpOdnc2ePXuorKyksrKSvXv3UllZyX333TfLtZ89dx1GZpYBfB54D9ADvGpmR9y9PqVYB/Aj7j5gZg8Bh4E3TafCIiJzkbtz5syZ6AHRZPAkEom0HQkyMjKorKxk//79VFRUUFBQQEFBAfn5+fPq8tpMmc6Z0f1Aq7u3A5jZc8AjQBRG7v7vKeVfAXZM4/dERGKXDJ3m5uaoy3RyOnfuXNpttmzZwp49e9i7dy979uxhz549lJeX35OHR+er6YTRdqA7Zb6Hic96fhn4h/FWmtljwGMAubm506iWiMj0jY6OcvLkSRKJRBQ2DQ0NNDc3j3tPZ/369VRUVET3dZKX2rKzs2e59vPPdMLI0izzNMsws3cQhNHbxtuZux8muIxHVVVV2v2IiMw0d+f06dM0NjbS0NBAIpGgpqaG2tpaLl++nHabDRs2UFxcHD2vk7y3s23bNszS/dMok5lOGPUAO1PmdwCnxxYys73A08BD7p7+HFZE5B5Ljr12/PhxEolE9JBoY2PjuKGzadOmKGySPdhKSkoW5T2de206YfQqUGRm+cAp4FHg51MLmFku8DzwQXdvnsZviYhMSfKeTlNTEy0tLTQ3N1NbW8uxY8fo7+9Pu01WVhZlZWWUlpZSVlYW3dvZvHnzLNd+8brrMHL3YTN7AniJoGv3M+6eMLPHw/VPAb8LZAFfCE9dh929avrVFhEJRiWora3l6NGj1NTURPd2zp8/n7b8hg0bOHToEHv37o2CJ+5hcCRgY4cGnwuqqqr86NGjcVdDROaIoaEh2traaGxspKmpicbGRurq6qipqeHmzZu3lV+/fj2lpaUUFRVF93YOHTpEXl6e7unMEDM7NpMnFxqBQUTmjNHRUdra2qiurqa6uppEIkFDQ8OE46+VlJRQVVXF/v37o/s76kgw/yiMRGTWjY6O0tXVRVNT0y1dp+vr68cdaTovL4/S0tJoDLaysjL279/PunXrYjgCmWkKIxG5Z0ZHR+ns7KS2tpa6ujpqa2ujl7oNDg6m3Wb79u3s27ePffv2sWfPHsrKyiguLl4Q46/J+BRGIjIjLl26RCKRIJFIUF1dzYkTJ6iurh632/SWLVsoKSmhvLw8ek6noqJC3aYXKYWRiExZ8lmduro6mpubaW5ujl5Z3d3dnXabzZs3R12lk4FTUlKiy2tyC4WRiNxmeHiY9vZ2mpqaaG5upqmpKRqH7eLFi2m3WbFiBWVlZdFZzoEDB9i3b5+e1ZEpURiJLGLJoXCOHz8ejUzQ0NBAU1PTuC9yy8rKorKykrKysqjrdHFxMQUFBSxdqn9S5O7oT47IIjA6Okpvby+tra00NDTQ0NBAfX09NTU19PX1pd0mNzeXkpISSkpKbhmHbfPmzeo2LTNOYSSygAwMDFBfXx89GNrY2EhraysdHR3j9l5bv349Bw8ejC6rJYfFWcgvcpO5R2EkMg9duXKF+vp66uvro+d0amtrOXXq1LjbZGdnU1hYSGlpKeXl5ZSVlVFRUUF+fr7OdCR2CiOROWxgYID29vZosM/kdPLkybTlV61aRVlZWXR2U1JSQlFREQUFBaxdu3aWay8ydQojkZglOxGknuHU1dXR2trKhQsX0m6zfPlySkpKqKiooLy8POo2nZ+fT0ZGxuwegMgMUBiJzJIbN25Ez+SkTk1NTeO+OXT16tUUFBRQWFhIZWVl9MrqoqIi9VyTBUV/mkVm0MjICD09PbS0tNDa2kpzc3MUOJ2dnYyOjqbdLisrK+qtlpySrzbQ/RxZDBRGInfh4sWLUeeB5EvcWlpaaGtr48aNG2m3WbJkCbt3777lPTrJ+zrZ2dmzfAQic4vCSGQcN27coKOjg7a2tmjYm+Rltp6ennG327JlC0VFRezevZuioqIocAoLC1mxYsUsHoHI/KEwkkVteHiYnp6e6MVtyam5uZnu7m7Ge/nkypUrKS0tpaKiIhqJIBlAa9asmeWjEJn/FEay4I2MjHD69OnbOg+0tbXR1dU17kvblixZQl5eHoWFhRQXF98y9I16rYnMLIWRLAjXrl3j5MmTtLa20tLSQnNzczTywESBA7Bt2zby8/OjF7eVlpZSXFxMXl4ey5cvn8WjEFm8FEYyL9y8eZOuri7a2tro7Oyko6ODzs7O6Pt446slbdmyhYKCglsCp6ioiF27drFq1apZOgoRGY/CSOaEK1eu0N3dHU0nT56kq6uLkydP0tnZSVdX17jdogGWLVvGrl27KCgoiC6pJUceyM3NVeCIzHEKI5kVFy5coKuri+7ubrq6uujs7KS9vZ2Ojg7a29sZGBiYcHszIzc3l4KCAvLz86Np165d5Ofns3XrVt3DEZnHFEYyLcPDw/T29tLV1cXp06c5c+YMfX19nDlzhp6eHrq6uujq6uLSpUsT7mfFihXs3LkzmnJzc9m1axe5ubnk5eWxa9cudYsWWcAURpLW6OgoFy9epK+vj97e3mg6deoUPT090eW006dPT3j5LGn16tXk5ubeMhUUFERnOps2bdJIAyKLmMJoEbl+/Tr9/f309/fT29vL6dOno7OZ/v5+zp49y9mzZ+nv7+fcuXOMjIxMab9btmxh586d7Nixg82bN7N582Y2bdrE9u3bozOcDRs2KGxEZFzTCiMzexD4DJABPO3unxqz3sL1DwPXgI+4+/Hp/OZi5+5cuXKFgYEBBgYGOH/+fPR57ty5aEouv3DhAgMDA5w9e5Zr167d0W+tXbuW7Oxstm7dyrZt26LPZPDs2LGD7du36/KZiEzbXYeRmWUAnwfeA/QAr5rZEXevTyn2EFAUTm8Cvhh+Lio3b97k2rVrXL16latXr3Lt2jWuX7/O9evXuXr1KpcuXeLixYtcunQpmi5fvhwtT667cOECFy5cmPCZmYksW7aMnJwccnJybgmXLVu2kJOTQ3Z2NtnZ2eTk5JCVlaVnbERk1kznzOh+oNXd2wHM7DngESA1jB4BvuzBmCqvmNl6M9vq7r0T7fjy5cscPnz4rio1dvgWd4+m5Pzo6Cijo6O4OyMjI4yMjDA6Ohp9T07Dw8MMDw8zNDQUfd68eZOhoSFu3LgRTYODg9Hn4OAg169fjz6vX78+5ctdU5WZmcmGDRvYsGEDGzduZOPGjWzYsIGsrCyysrJuWZacsrKyWLNmjS6VicicNJ0w2g50p8z3cPtZT7oy24EJw+j8+fP86q/+6jSqNrcsXbqU1atXs3r1ajIzM8nMzGTVqlWsWrWKzMxM1q5dy7p161i3bh1r165l7dq1rFmzhjVr1kTLk9P69et1WUxEFpzphFG6/2KPHVVyKmWCgmaPAY+FszeAuruv2twyPDwcXW6bIdnA2Zna2QKlNpqY2mdyaqOJlczkzqYTRj3AzpT5HcDpuygDgLsfBg4DmNlRd6+aRt0WNLXP5NRGE1P7TE5tNDEzOzqT+1syjW1fBYrMLN/MlgOPAkfGlDkCfMgCbwYuTna/SEREFp+7PjNy92EzewJ4iaBr9zPunjCzx8P1TwEvEnTrbiXo2v2L06+yiIgsNNN6zsjdXyQInNRlT6V8d+Cjd7Hru+tKt3iofSanNpqY2mdyaqOJzWj72HhvshQREZkt07lnJCIiMiPmVBiZ2YNm1mRmrWb2ZNz1iYOZ7TSz75pZg5klzOw3wuUbzewfzawl/NyQss3HwzZrMrMfi6/2s8vMMszsNTN7IZxXG4XCB8y/ZmaN4Z+lt6h9bmVmvxX+Haszs2fNbOVibyMze8bM+sysLmXZHbeJmR0ys9pw3WdtKk/bp45QEOdE0AmiDSgAlgPVQHnc9YqhHbYCB8Pva4BmoBz4NPBkuPxJ4I/C7+VhW60A8sM2zIj7OGaprX4b+BvghXBebfRG2/wl8Cvh9+XAerXPLe2zHegAVoXzXwU+stjbCHg7cBCoS1l2x20C/AB4C8Gzpv8APDTZb8+lM6NoeCF3vwkkhxdaVNy918PBZN39MtBA8BfnEYJ/YAg/fyr8/gjwnLvfcPcOgp6L989qpWNgZjuAHweeTlmsNgLMbC3BPypfAnD3m+5+AbXPWEuBVWa2FMgkeAZyUbeRu38POD9m8R21iZltBda6+394kExfTtlmXHMpjMYbOmjRMrM84ADwfWCzh89ohZ+bwmKLtd3+DPgdIPVlSmqjQAHQD/xFeBnzaTNbjdon4u6ngD8BugiGJ7vo7i+jNkrnTttke/h97PIJzaUwmvLQQYuBmd0HfB34TXef6DWpi67dzOy9QJ+7H5vqJmmWLeQ2WkpwqeWL7n4AuEpweWU8i619CO97PEJweWkbsNrMPjDRJmmWLeg2moLx2uSu2mouhdGUhw5a6MxsGUEQ/bW7Px8uPhOe/hJ+9oXLF2O7vRX4STPrJLic+04z+yvURkk9QI+7fz+c/xpBOKl93vBuoMPd+919CHge+GHURuncaZv0hN/HLp/QXAqjqQwvtOCFvU6+BDS4+5+mrDoCfDj8/mHgWynLHzWzFWaWT/DuqB/MVn3j4O4fd/cd7p5H8Ofkn939A6iNAHD314FuM0sOZPkugle7qH3e0AW82cwyw79z7yK4P6s2ut0dtUl4Ke+ymb05bNsPpWwzvrh7b4zpyfEwQe+xNuATcdcnpjZ4G8EpbQ1wIpweBrKA7wAt4efGlG0+EbZZE1PotbKQJuAB3uhNpzZ643j3A0fDP0ffBDaofW5ro98HGgneEPAVgl5hi7qNgGcJ7qENEZzh/PLdtAlQFbZrG/A5wgEWJpo0AoOIiMRuLl2mExGRRUphJCIisVMYiYhI7BRGIiISO4WRiIjETmEkcpcs8G9m9lDKsveZ2bfjrJfIfKSu3SLTYGaVwN8RjCGYQfBc2IPu3nYX+8pw95GZraHI/KAwEpkmM/s0wfhvq8PPXcAegjHiPunu3woHvf1KWAbgCXf/dzN7APg9ggcN97t7+ezWXmRuUBiJTFM4IvZx4CbwApBw978ys/UEQ8YcIBhVY9TdB82sCHjW3avCMPp7oNKDYfhFFqWlcVdAZL5z96tm9rfAFeB9wE+Y2cfC1SuBXIKBIj9nZvuBEaA4ZRc/UBDJYqcwEpkZo+FkwM+4e1PqSjP7JHAG2EfQcWgwZfXVWaqjyJyl3nQiM+sl4NfD0YoxswPh8nVAr7uPAh8k6OwgIiGFkcjM+kNgGVBjZnXhPMAXgA+b2SsEl+h0NiSSQh0YREQkdjozEhGR2CmMREQkdnM2jMxslZn9i5llmNkDZvbCOOX+ycw2hN/Xm9n/Prs1va0+O83su2bWYGYJM/uNOOsjIjIfzNkwAn4JeH4Kw6N8BUgG0PqU77cws3vSe8nMxnaPHwb+D3cvA94MfNTM9FS9iMgE5nIY/QLwrZT5tWb2DTOrN7OnzCxZ9yPA+8PvnwIKzeyEmf1xeEb1XTP7G6AWwMy+aWbHwrOWx5I7N7MHzey4mVWb2XfCZavN7Bkze9XMXjOzR8LlHzGzvzOz/wG8nFppd+919+Ph98tAA7B9phtHRGQhmZMPvZrZcqDA3TtTFt8PlAMngW8D/yvwNXcfMLMVZpYFPEkwrMr+cD8PhNulDrXyS+5+3sxWAa+a2dcJQvnPgbe7e4eZbQzLfgL4Z3f/peTQLmb2T+G6twB73f38BMeRRzAUzPfvujFERBaBORlGQDZwYcyyH7h7O4CZPQu8DfhauK4P2AZcTrOvsUOt/Ccz++nw+06gCMgBvpcslxIwPwr8ZJqhXQD+cZIgug/4OvCb7n5pgmMVEVn05moYXSf4hz/V2AeiUudXhtukEz1cGJ4pvRt4i7tfM7P/L9zW0uwfxh/a5U1M8NCimS0jCKK/dvfnxysnIiKBOXnPyN0HgAwzSw2k+80sP7xX9HPAv0HwgjNgC9BJcGa0ZoJdrwMGwiAqJehgAPAfwI+YWX64z+RluvGGdhlXWPZLQIO7/+lUjldEZLGbNIzCG/h94dAm6dabmX3WzFrNrMbMDqase9DMmsJ1T95h3V4muBSX9B8EHRTqgA7gG+HyQ8Ar7j7s7ueA/2lmdWb2x2n2+W1gqZnVEAzT8gqAu/cDjwHPm1k18Ldh+fGGdpnIWwnGHntn2JHihJk9POWjFhFZhCYdDsjM3k4wNP6X3b0yzfqHgV8HHgbeBHzG3d8UdqVuBt4D9ACvAu939/opVSw4C/ltd//gJOU+Axxx9+9MZb8iIjL3THpm5O7fA8a9UQ88QhBU7u6vAOvNbCtBL7ZWd29395vAc2HZKXH314DvTuH5oDoFkYjI/DYT94y2A90p8z3hsvGWT5m7PzPZQ6/u/ud3sk8REZl7ZqI3naVZ5hMsT7+T4AHUxwBWr159qLS0dAaqJiIi98KxY8fOunvOTO1vJsKoh+B5naQdBK9YXj7O8rTc/TBwGKCqqsqPHj06A1UTEZF7wcxOzuT+ZuIy3RHgQ2GvujcDF929l6DDQlHYHXs58GhYVkRE5BaTnhmFox08AGSbWQ/wewTdnXH3p4AXCXrStQLXgF8M1w2b2RMEz+pkAM+4e+IeHIOIiMxzk4aRu79/kvUOfHScdS8ShJWIiMi45uQIDCIisrgojEREJHYKIxERiZ3CSEREYqcwEhGR2CmMREQkdgojERGJncJIRERipzASEZHYKYxERCR2CiMREYmdwkhERGKnMBIRkdhNKYzM7EEzazKzVjN7Ms36/2xmJ8KpzsxGzGxjuK7TzGrDdXpjnoiI3GYq7zPKAD4PvIfgra6vmtkRd69PlnH3Pwb+OCz/E8Bvufv5lN28w93PzmjNRURkwZjKmdH9QKu7t7v7TeA54JEJyr8feHYmKiciIovDVMJoO9CdMt8TLruNmWUCDwJfT1nswMtmdszMHhvvR8zsMTM7amZH+/v7p1AtERFZKKYSRpZmmY9T9ieA/znmEt1b3f0g8BDwUTN7e7oN3f2wu1e5e1VOTs4UqiUiIgvFVMKoB9iZMr8DOD1O2UcZc4nO3U+Hn33ANwgu+4mIiESmEkavAkVmlm9mywkC58jYQma2DvgR4Fspy1ab2Zrkd+BHgbqZqLiIiCwck/amc/dhM3sCeAnIAJ5x94SZPR6ufyos+tPAy+5+NWXzzcA3zCz5W3/j7t+eyQMQEZH5z9zHu/0Tn6qqKj96VI8kiYjMVWZ2zN2rZmp/GoFBRERipzASEZHYKYxERCR2CiMREYmdwkhERGKnMBIRkdgpjEREJHYKIxERiZ3CSEREYqcwEhGR2CmMREQkdgojERGJncJIRERiN6UwMrMHzazJzFrN7Mk06x8ws4tmdiKcfneq24qIyPzg7pw8eZKurq4Z3/ek7zMyswzg88B7CN76+qqZHXH3+jFF/9Xd33uX24qIyBxy6dIlTpw4wfHjx6mpqSGRSFBfX8+VK1d4/PHHZ/z3Jg0jgteEt7p7O4CZPQc8AkwlUKazrYiI3GOXL1+mtbWVhoYG6uvraWhooLa2lpaWlrTlN23axPLly2e8HlMJo+1Ad8p8D/CmNOXeYmbVwGngY+6euINtMbPHgMcAcnNzp1AtERGZqmvXrlFbW8trr73GiRMnSCQStLS0cObMmbTlly9fzp49ezh48CD79u2joqKCiooKcnJyAPjsZz87o/WbShhZmmVjXw97HNjl7lfM7GHgm0DRFLcNFrofBg5D8KbXKdRLRETGuHbtGk1NTdTX11NfXx9dXmtra2N0dPS28itWrKCwsJDS0lLKy8spKyujvLyc8vLye3IGNJ6phFEPsDNlfgfB2U/E3S+lfH/RzL5gZtlT2VZERO7cuXPnqK+vp7Gx8Zapo6MD99v/P5+RkUFlZSX79+/nwIED7N27l+LiYnbs2MGSJfF3rJ5KGL0KFJlZPnAKeBT4+dQCZrYFOOPubmb3E/TSOwdcmGxbEREZ35UrV0gkEtTU1FBTU0NdXR319fX09fWlLb906VKKioqis5uKigrKy8spLi5mxYoVs1z7qZs0jNx92MyeAF4CMoBn3D1hZo+H658Cfhb4NTMbBq4Dj3oQzWm3vUfHIiIyL7k7Z8+epb29nba2Nurr66mrq6O2tnbcM5377ruPsrIyysrKKCkpobS0lJKSEoqKimb18tpMsXQHGbeqqio/evRo3NUQEZlxFy5coKamhurqak6cOEF1dTWNjY1cvXo1bfmlS5dSVlbGvn372Lt3L5WVlVRUVLBz507M0t2Wnx1mdszdq2Zqf1O5TCciInfoxo0bNDY2Ultbe8vU09OTtvy6desoLCwkPz+fsrKyKHSKi4vn5ZnOnVIYiYhMw/DwMG1tbdTV1UVTIpGgubmZkZGR28qvXLmSiooK9u/fz759+9i/fz8VFRVs3LgxhtrPHQojEZEpuHr1Ko2NjTQ3N0dT8iHRGzdu3FbezCgqKmLPnj23TIWFhWRkZMRwBHObwkhEJMXQ0BDNzc1R77VEIkFdXR0dHR3jbpObm0tlZWV0aa2yspLS0lIyMzNnsebzm8JIRBala9eu0dzcTENDQ/SMTkNDA01NTdy8efO28suWLaO4uJiSkhKKi4spKiqitLSUiooK1q1bF8MRLCwKIxFZ0Nydnp4ejh07xrFjxzh+/DiJRIKTJ0+Ou01BQQF79+6NLq1VVFRQVFTEsmXLZrHmi4vCSEQWhNSOBIlEgqamJpqbm2lpaeHixYu3lU8+HFpaWkpZWRmlpaXRtGbNmhiOYHFTGInIvDM4OEhDQwNHjx6NpkQikbYjAcDGjRs5dOgQhw4d4uDBg+zdu5eCggKd6cwhCiMRmbP6+/ujeznJ+zpNTU10dnamHfRz165dUSeCsrIyioqKKC4uJjs7O9YHRGVyCiMRid3g4GD0gGh1dXU09ff3py2fkZFBcXExhw4doqqqih/6oR9i3759rF27dpZrLjNFYSQis+bixYtRj7XklHyvTrozndTx11Lv6RQWFi6KUQkWE4WRiMy4kZERmpubo7HXamtrqauro6urK235jIyMqJv0vn37onHYdu3apctri8SUwsjMHgQ+QzDy9tPu/qkx638B+C/h7BXg19y9OlzXCVwGRoDhmRxYT0TiNTIyQnd3N42NjdHDocnP69ev31Z+5cqV0dlNSUkJJSUllJeXU1JSwsqVK2M4ApkrJg0jM8sAPg+8h+Blea+a2RF3r08p1gH8iLsPmNlDBG9sTX29+Dvc/ewM1ltEZtHQ0BAtLS3RGU5dXR3Nzc20tramfUAUgs4EqWc5e/bsYffu3RoKR9KaypnR/UCru7cDmNlzwCNAFEbu/u8p5V8heKOriMwzAwMD0XhrDQ0N0Rhs7e3tDA8Pp91m27ZtFBcXU1FREQ2FU1lZyYYNG2a59jKfTSWMtgPdKfM93HrWM9YvA/+QMu/Ay2bmwH9z98N3XEsRmVGjo6OcPHmS6upqjh8/Hk29vb3jbpOXl8eePXuisCkrK2P37t16QFRmxFTCKN3dw7Rv5DOzdxCE0dtSFr/V3U+b2SbgH82s0d2/l2bbx4DHIBh0UESmx905c+YMra2t0RtEW1tbo2d20t3TyczMpLS0lPLy8ugNosXFxezevZtVq1bFcBSyWEwljHqAnSnzO4DTYwuZ2V7gaeAhdz+XXO7up8PPPjP7BsFlv9vCKDxjOgzBm17v4BhEFjV3p7u7+5Z36TQ1NdHY2Jh2GJykLVu2UFFREY1McODAAQoLC1myZMks1l4kMJUwehUoMrN84BTwKPDzqQXMLBd4HviguzenLF8NLHH3y+H3HwX+YKYqL7KYuDuvv/561Imgvr6eRCJBfX09ly5dSrvNhg0bKCoqorCwkIKCAgoLC6Ox2NavXz+7ByAygUnDyN2HzewJ4CWCrt3PuHvCzB4P1z8F/C6QBXwhfCYg2YV7M/CNcNlS4G/c/dv35EhEFojr16/T0NBAW1sb7e3ttLe309zcTG1tLefOnUu7TXZ29i0jTCcvseXk5Og5HZkXzH3uXRGrqqryo0ePxl0NkXvqypUrNDc3R5fUEokEtbW1tLa2ph2NAGD9+vVRJ4KKigrKy8spLy9n8+bNs1x7WezM7NhMPjeqERhE7iF359SpU9HQN8nBPhsbG+nu7k67TUZGRnRmU1BQEE179uxh+/btOtORBUlhJDJN7k5fXx8tLS20trbS0tJyy/crV66k3W7ZsmXR+3SS0549eygrK2PFihWzfBQi8VIYiUzRyMgIJ0+ejC6pJTsPNDU1jduBAIL7Ocmhb5KhU1ZWRl5eHkuX6q+gCCiMRG4xMjJCV1cXzc3N0XM5bW1t0SgE4w19s27dOoqKitJOGzdunOWjEJl/FEay6IyOjtLV1UVbWxsdHR3RA6GNjY00NzczODg47rbbt2+nuLiY8vLyaPibsrIyvbxNZJoURrIgDQ8Pc/LkSTo6Oujs7KSzs5PW1tboTaETBU5yrLXdu3dTWFhIYWFhNL969epZPAqRxUNhJPPWxYsX6ezsvC1wWlpaJhzYE4LRB4qKisjPzyc/P5+CgoLotQbr1q2bxaMQEVAYyRw2ODhIV1cXnZ2d0aW09vZ2Ojo66Ojo4MKFCxNuv2PHDgoKCsjLyyMvL++WwNHoAyJzi8JIYjMwMBCNMNDV1UVPTw/d3d10dXXR1dXFmTNnJtw+MzOTXbt2kZ+ff0vgFBcXU1hYSGZm5iwdiYhMl8JI7omRkRF6e3ujYDl58mQUNN3d3XR2dk56ZrN06VJ27NhBXl5eNLZaQUFBdGlNQ92ILBwKI7kj7s6lS5fo7u6+Zerq6uLUqVP09fVx5swZzp49O+6QNkmrV6+OwiUvL4+dO3dGU25uLlu3btVbQUUWCYWRMDo6yoULFzh79ixnz56lv78/+uzv76e3tzeaTp06Ne6IAmNt2rSJ3Nxcdu3aRW5u7m2TzmxEJElhtAANDw8zMDDAwMAAFy5cYGBgIAqas2fP0tfXR29vL6dPn+b06dP09fUxMjIy5f1nZmayc+dOduzYQW5ubnQms2PHDjZv3symTZvIyclh2bJl9/AoRWQhmVIYmdmDwGcIXiHxtLt/asx6C9c/DFwDPuLux6eyrdzO3blx4waXL1/m4sWLXLx4kUuXLkXBcv78+ShsUr+fO3eOc+fOTfhCtfGsX7+e7OxssrKyyMnJIScnh+zsbLKzs9m6dWs0bdu2jfXr1+uMRkRm1KRhZGYZwOeB9xC89fVVMzvi7vUpxR4CisLpTcAXgTdNcdt5w90ZGhri5s2b3LhxI5oGBwejz+R0/fr1aLp27RrXrl3j6tWrXL16NVqW/Lx06dItoXP58mWGhobuup5mxvr169m4cSMbNmxgw4YNZGVlkZ2dHYXMtm3bomnz5s06ixGRWE3lzOh+oNXd2wHM7DngESA1UB4BvuzBy5FeMbP1ZrYVyJvCtrfp7e3l0KFDd3Qgyf+pj30/k7tHU3J+dHSU0dFR3J2RkRFGRkYYHR2Nvg8PD0ffh4aGGB4ejqbZsmzZMtasWcO6detumTZs2HBLyIwNnKysLNatW6cb/yIyr0wljLYDqS9e6SE4+5mszPYpbguAmT0GPBbO3jh9+nTdFOq2YA0NDXH+/HnOnz+fbnU2cHaWqzTfqI0mpvaZnNpoYiUzubOphFG6mwNjXw87XpmpbBssdD8MHAYws6Mz+QbBhUbtMzm10cTUPpNTG03MzGb0ddxTCaMeYGfK/A7g9BTLLJ/CtiIissgtmUKZV4EiM8s3s+XAo8CRMWWOAB+ywJuBi+7eO8VtRURkkZv0zMjdh83sCeAlgu7Zz7h7wsweD9c/BbxI0K27laBr9y9OtO0U6nX4bg5mEVH7TE5tNDG1z+TURhOb0faxsb3PREREZttULtOJiIjcUwojERGJ3ZwKIzN70MyazKzVzJ6Muz5xMLOdZvZdM2sws4SZ/Ua4fKOZ/aOZtYSfG1K2+XjYZk1m9mPx1X52mVmGmb1mZi+E82qjUPjg+dfMrDH8s/QWtc+tzOy3wr9jdWb2rJmtXOxtZGbPmFmfmdWlLLvjNjGzQ2ZWG677rE1l/LDUEQrinAg6OLQBBQRdwquB8rjrFUM7bAUOht/XAM1AOfBp4Mlw+ZPAH4Xfy8O2WgHkh22YEfdxzFJb/TbwN8AL4bza6I22+UvgV8Lvy4H1ap9b2mc70AGsCue/CnxksbcR8HbgIFCXsuyO2wT4AfAWgmdN/wF4aLLfnktnRtGwQ+5+E0gOHbSouHuvh4PMuvtloIHgL84jBP/AEH7+VPj9EeA5d7/h7h0EPRrvn9VKx8DMdgA/DjydslhtBJjZWoJ/VL4E4O433f0Cap+xlgKrzGwpkEnwDOSibiN3/x4wdtiXO2qTcCi4te7+Hx4k05dTthnXXAqj8YYUWrTMLA84AHwf2OzBs1uEn5vCYou13f4M+B0g9Q1+aqNAAdAP/EV4GfNpM1uN2ifi7qeAPwG6gF6CZyNfRm2Uzp22yfbw+9jlE5pLYTTloYMWAzO7D/g68JvufmmiommWLeh2M7P3An3ufmyqm6RZtpDbaCnBpZYvuvsB4CrB5ZXxLLb2Ibzv8QjB5aVtwGoz+8BEm6RZtqDbaAqmPQxcqrkURlMZdmhRMLNlBEH01+7+fLj4THj6S/jZFy5fjO32VuAnzayT4HLuO83sr1AbJfUAPe7+/XD+awThpPZ5w7uBDnfvd/ch4Hngh1EbpXOnbdITfh+7fEJzKYw0dBDRiwq/BDS4+5+mrDoCfDj8/mHgWynLHzWzFWaWT/BOqR/MVn3j4O4fd/cd7p5H8Ofkn939A6iNAHD314FuM0uOqvwugte2qH3e0AW82cwyw79z7yK4P6s2ut0dtUl4Ke+ymb05bNsPpWwzvrh7b4zpyfEwQe+xNuATcdcnpjZ4G8EpbQ1wIpweBrKA7wAt4efGlG0+EbZZE1PotbKQJuAB3uhNpzZ643j3A0fDP0ffBDaofW5ro98HGoE64CsEvcIWdRsBzxLcQxsiOMP55btpE6AqbNc24HOEo/1MNGk4IBERid1cukwnIiKLlMJIRERipzASEZHYKYxERCR2CiMREYmdwkjkLlng38zsoZRl7zOzb8dZL5H5SF27RabBzCqBvyMYQzCD4LmwB9297S72leHuIzNbQ5H5QWEkMk1m9mmC8d9Wh5+7gD0EY8R90t2/FQ56+5WwDMAT7v7vZvYA8HsEDxrud/fy2a29yNygMBKZpnBE7OPATeAFIOHuf2Vm6wmGjDlAMKrGqLsPmlkR8Ky7V4Vh9PdApQfD8IssSkvjroDIfOfuV83sb4ErwPuAnzCzj4WrVwK5BANFfs7M9gMjQHHKLn6gIJLFTmEkMjNGw8mAn3H3ptSVZvZJ4Aywj6Dj0GDK6quzVEeROUu96URm1kvAr4ejFWNmB8Ll64Bedx8FPkjQ2UFEQgojkZn1h8AyoMbM6sJ5gC8AHzazVwgu0elsSCSFOjCIiEjsdGYkIiKxUxiJiEjsFEYiIhK7ORtGZrbKzP7FzMbtdWRmf2Jm70yZ/00zy5ydGo5bpy+ZWbWZ1ZjZ18zsvjjrIyIyH8zZDgxm9lFgqbt/ZoIyu4A/d/cfDec7gSp3P5um7IyP+xV237Wwu25y2Vp3vxR+/1Ogz90/NZO/KyKy0MzZMyPgF4BvJWfM7HfMrDY86/gUgLufBLLMbIuZ/SdgG/BdM/tuuM0VM/sDM/s+8BYz+10ze9XM6szscMqzILvN7J/CfR83s8Jw+X8Oy9eY2e+Hy/LMrMHMvkAwBMzO1EqnBJEBqwiGgRERkQnMyTMjM1sOdLn7lnD+IeC/Au9292tmttHdz4fr/hz4trt/feyZkZk58HPu/tVwPnW7rwBfdff/EYbVp9z9G2a2kiCk3wb8LPCrBE/VHwE+DXQB7cAPu/sr49T/L4CHgXrgx9392ky3kYjIQjJXz4yygQsp8+8G/iL5j3oyUEJ9BGdE6YwAX0+Zf4eZfd/MaoF3AhVmtgbY7u7fCPc9GP7Oj4bTawRnQKVAUbifk+MFUbiPXwzr1AD83OSHKyKyuM3VMLpOMMBkkjH+5a6VYfl0BpP3icIzni8AP+vue4A/D7e1cbY14P9x9/3htNvdvxSum/Tp+fB3/xb4mcnKiogsdtMKIzN7xsz6wmFP0q1/wMwumtmJcPrdqezX3QeAjDBAAF4GfinZU87MNqYULwaSv38ZWDPObpP7Ohv2cPvZ8LcuAT1m9lPhvleEv/NS+Jv3hcu3m9mmieodvvlzd/I78BNA41SOWURkMZvuqN3/Hfgc8OUJyvyru7/3Lvb9MsF9m39y92+HQ+8fNbObwIvA/2lmy4DdwNFwm8PAP5hZr7u/I3Vn7n4hvL9UC3QCr6as/iDw38zsD4Ah4H9z95fNrAz4j7CfwxXgAwSX/sZjwF+a2drwezXwa3dx7CIii8q0OzCEb7B8wd0r06x7APjY3YRRONrxb7v7Byco89PAQXf/r3e6fxERmTtmI4y+DvQQvFzsY+6eGGc/jwGPAaxevfpQaWkpZ8+eJSsri/DM5DYDAwOsWbOGpUv1WiYRkdl07Nixs+6eM1P7u9f/ih8Hdrn7FTN7GPgmb/RIu4W7Hya4zEZVVZUfPXo0XTEREZkDzOzkTO7vnvamc/dL7n4l/P4isMzMsu/lb4qIyPxzT8MoHBkhOcrB/eHvnbuXvykiIvPPtC7TmdmzwANAtpn1AL9H8JZL3P0pgu7Tv2ZmwwTPAj3qc3HIBxERidW0wsjd3z/J+s8RdP0WEREZ11wdgUFERBYRhZGIiMROYSQiIrFTGImISOwURiIiEjuFkYiIxE5hJCIisVMYiYhI7BRGIiISO4WRiIjETmEkIiKxUxiJiEjsFEYiIhI7hZGIiMROYSQiIrFTGImISOwURiIiEjuFkYiIxE5hJCIisVMYiYhI7KYVRmb2jJn1mVndOOvNzD5rZq1mVmNmB6fzeyIisjBN98zovwMPTrD+IaAonB4DvjjN3xMRkQVoWmHk7t8Dzk9Q5BHgyx54BVhvZlun85siIrLw3Ot7RtuB7pT5nnDZbczsMTM7amZH+/v773G1RERkLrnXYWRplnm6gu5+2N2r3L0qJyfnHldLRETmknsdRj3AzpT5HcDpe/ybIiIyz9zrMDoCfCjsVfdm4KK7997j3xQRkXlm6XQ2NrNngQeAbDPrAX4PWAbg7k8BLwIPA63ANeAXp/N7IiKyME0rjNz9/ZOsd+Cj0/kNERFZ+DQCg4iIxE5hJCIisVMYiYhI7BRGIiISO4WRiIjETmEkIiKxm1bXbhERWfgGBwdpamoikUiQSCTYt2/fjP+GwkhERCLnzp2jtraW48ePR1NTUxOjo6NRmfe9730z/rsKIxGRRWZoaIjW1lZaWlqiz4aGBurr60n31oQlS5ZQXFxMRUUFFRUVvPWtb+WrX/3qjNZJYSQiskC5O/39/SQSCerq6jhx4gSvvfYaiUSCmzdvpt3mvvvuo6ysjIMHD0ZTZWUlK1euvKd1VRiJiMxz7s7p06dpbGykvr4+mhKJBOfOnUu7TX5+PsXFxezevZuioiJKS0spLy9nx44dmKV7+8+9pTASEZknRkZGaGtruyVwGhsbaWpq4sqVK2m3Wbt2LeXl5VRUVLBv3z4OHDjAvn37WLNmzSzXfmIKIxGROejMmTPU1dVRV1dHdXU1NTU1JBIJBgcH05bPysqipKSEiooKysvLo2n79u2xnOncKYWRiEhMBgcHSSQSNDY20tHRQXt7O+3t7eN2JADYsWNH1JGgrKyMsrIySkpKyM7OnuXazyyFkYjIPebunDp1itraWmpqaqipqaG6uprGxkZGRkbSbrN27VoqKyuprKxk79697N27lz179rB+/frZrfwsURiJiMyggYGBqPdabW0ttbW11NXVMTAwcFvZJUuWUFZWRkVFBQUFBRQUFJCfn09ZWVlsHQniojASEbkLV65coaGhIbqvk5xOnz6dtvzGjRujs5s9e/awf/9+KioqyMzMnOWaz00KIxGRcbg7r7/+OnV1dSQSCRoaGmhubqa5uXnc0Fm1alV0TycZPJWVlWzdunVRnencKYWRiAhw4cIFGhoaSCQS0X2d2tpazp8/n7b88uXLKSoqisImOeXn57NkicagvlMKIxFZNJIdCZI92BobG2loaKCxsZEzZ86k3Wb9+vVUVlZGZzvFxcUUFxeTm5tLRkbGLB/BwjWtMDKzB4HPABnA0+7+qTHrHwC+BXSEi5539z+Yzm+KiEzF5cuXaWlpoaWlhdraWo4dO8axY8fG7TK9atUqSktLKSsru6X32nx5Tme+u+swMrMM4PPAe4Ae4FUzO+Lu9WOK/qu7v3cadRQRGdeNGzeiLtPJTgSJRGLcezobNmxg7969UfCUlJRQVlbGzp07dXktRtM5M7ofaHX3dgAzew54BBgbRiIi05a8xJYc/qa2tpajR49SU1PD0NDQbeWXL1/O7t27KS4uprS0lEOHDnHo0CHy8vJ0pjMHTSeMtgPdKfM9wJvSlHuLmVUDp4GPuXsi3c7M7DHgMYDc3NxpVEtE5jN3p7Ozk+rq6ujeTvK+ztWrV28rb2aUlpayf//+qDNBRUUFeXl5uqczj0wnjNL918LHzB8Hdrn7FTN7GPgmUJRuZ+5+GDgMUFVVNXY/IrIAnT17NnpANDnV1NRw6dKltOVzcnIoLS2NLq0dOnSIAwcOsHbt2lmuucy06YRRD7AzZX4HwdlPxN0vpXx/0cy+YGbZ7n52Gr8rIvNI8vUGyZEI6uvraWpqorGxcdxu05s3b2bfvn3s2bMnGn+ttLSUjRs3znLtZbZMJ4xeBYrMLB84BTwK/HxqATPbApxxdzez+4ElQPqXa4jIvHf9+nUaGxuprq7mxIkTnDhxgpqamrRD4UDwIrfy8vLoGZ3kaw42b948yzWXuN11GLn7sJk9AbxE0LX7GXdPmNnj4fqngJ8Ffs3MhoHrwKPurktwIvNcf39/NBJBc3MzjY2NJBIJ2traGB0dva38xo0bb7mfk7zUplEJJMnmYjZUVVX50aNH466GyKKWHAqnubmZpqYm6uvro0ttfX19abfJyMiguLiYysrK6CVu+/btY9u2bQqdBcbMjrl71UztTyMwiCxy7k5vby/Hjx+Pxl+rr6+noaFh3LeHrlmzhtLSUoqKiqIRCSoqKigpKWHFihWzfASyECiMRBaRK1eu0NjYGIVNdXU1x48fH3conI0bN1JSUhI9q5O81Jabm6szHZlRCiORBebatWvRpbXGxkba2tpoa2ujvb2d119/Pe0269atiy6rlZWVUV5eTllZ2bx/e6jMHwojkXnqxo0bNDc33/Iit7q6Ojo6OhjvXvDy5cspLi6OwqaiooJDhw6Rn5+vMx2JlcJIZI4bGhqio6MjemtobW0tiUSC1tbWtK+sXrp0Kbt37456rBUVFVFYWEhBQQHbt2/XqAQyJymMROaI8+fP3/Ka6tbWVtrb2+nq6kobOkuWLKGoqIjy8vLoXs6ePXsoKipi2bJlMRyByN1TGInMopGREbq6uqJ36SQH/Wxqahr3fo6ZsXPnzihsksFTWlrKypUrZ/kIRO4NhZHIPTAwMEBra2v0QGgycJqbmxkcHEy7TWZm5i2vqi4pKaGgoIBdu3YpdGTBUxiJ3KXk0DdNTU3RS9yS07lz4496tXXr1ug9Osn7OqWlpXqfjixqCiORCbg7Z86cobm5OQqa5NA37e3taYe+geAsZ/fu3RQVFd0SOiUlJaxbt26Wj0Jk7lMYiQAXLlyInstpbGykubmZ1tZW2tra0r5DB4Khb5JvCy0qKrpl0phrIndGYSSLxsWLF2/pONDW1kZHRwft7e3jvsoAgtdUJ4e9SX5WVFRQXFysoW9EZojCSBaM5BhrLS0t0ZlNR0cHnZ2ddHZ20t/fP+62q1atii6nlZaWUlxczO7duyksLNQ7dERmgcJI5g1359y5c3R2dt4SMqnfr1+/Pu72K1euvCVwioqKyM/Pp6CggM2bN+uymkiMFEYyZ7g758+fp7u7m5MnT9LV1cXJkyfp7OyMxlYb73XUSVlZWdHltKKiIgoKCsjLyyMvL48tW7aot5rIHKUwklkzOjpKX18fXV1ddHZ20t7eHt2z6erqoru7e8IzGwheXZCfnx9Nu3btuuW7eqqJzE8KI5kRg4ODnD59mr6+Ps6cOcOZM2fo6emhq6srOsPp7u5maGhowv2sXbuWnTt3kpuby65du8jNzSUvLy8aWy0rK0uX00QWIIWRTOry5cv09vbS29vLqVOn6Onpoaenh+7u7mga782fY2VnZ5Obm0tubi4FBQUUFBREZzU7d+5k7dq19/hoRGQuUhgtQiMjI/T19XH69GlOnz7NmTNn6O/v5+zZs5w9e/aW7319feM+Z5Nq6dKlbNu2jc2bN7N582Y2bdrE9u3bbznD2blzJ5mZmbNwhCIy30wrjMzsQeAzQAbwtLt/asx6C9c/DFwDPuLux6fzm/IGd+fy5csMDAwwMDDAuXPnoun8+fPR8uS6ZNCcO3du3JED0lm5ciXbtm1j69atbNu2jZ07d7Jjxw527NgRXVLbvHmzXk0gInftrsPIzDKAzwPvAXqAV83siLvXpxR7CCgKpzcBXww/FzV3Z2hoiOvXr3Pt2jUuXbrExYsXuXjxIpcuXeLSpUtcvnz5tuUXLly4JWAGBgbSvlpgKnJycti2bRvbtm1jy5Yt5OTkkJ2dTVZWFjk5OdF8dnY269at030aEbmnpnNmdD/Q6u7tAGb2HPAIkBpGjwBf9uC1k6+Y2Xoz2+ruvRPt+ObNmxw7dmwaVSN606W7R1NyfnR0NFo2MjIy7jQ8PMzw8DBDQ0PR582bNxkaGuLGjRvRNDg4GH0ODg5y/fr16DMZONeuXePq1atcvXqV69ev33WIjLV69Wo2bNjAhg0byMrKiqaNGzdGy5PrsrOzycnJYePGjSxfvnxGfl9EZCZMJ4y2A90p8z3cftaTrsx2YMIw6u3tpaqqahpVm/syMjLIzMwkMzOTtWvXsm7dOtatW8fatWtZu3Yta9asYc2aNdHy5JQaMOvXr9dwNCKyIEwnjNJdt/G7KBMUNHsMeCycvQHU3X3V5r6RkREuX77M5cuXOXPmzJ1ung2cvQfVWkjURhNT+0xObTSxkpnc2XTCqAfYmTK/Azh9F2UAcPfDwGEAMzvq7gv71Gga1D6TUxtNTO0zObXRxMzs6Ezubzpjo7wKFJlZvpktBx4FjowpcwT4kAXeDFyc7H6RiIgsPnd9ZuTuw2b2BPASQdfuZ9w9YWaPh+ufAl4k6NbdStC1+xenX2UREVlopvWckbu/SBA4qcueSvnuwEfvYteHp1OvRUDtMzm10cTUPpNTG01sRtvHkl2eRURE4qLx9EVEJHZzKozM7EEzazKzVjN7Mu76xMHMdprZd82swcwSZvYb4fKNZvaPZtYSfm5I2ebjYZs1mdmPxVf72WVmGWb2mpm9EM6rjULhA+ZfM7PG8M/SW9Q+tzKz3wr/jtWZ2bNmtnKxt5GZPWNmfWZWl7LsjtvEzA6ZWW247rM2lSFcUkcoiHMi6ATRBhQAy4FqoDzuesXQDluBg+H3NUAzUA58GngyXP4k8Efh9/KwrVYA+WEbZsR9HLPUVr8N/A3wQjivNnqjbf4S+JXw+3JgvdrnlvbZDnQAq8L5rwIfWextBLwdOAjUpSy74zYBfgC8heBZ038AHprst+fSmVE0vJC73wSSwwstKu7e6+Fgsu5+GWgg+IvzCME/MISfPxV+fwR4zt1vuHsHQc/F+2e10jEwsx3AjwNPpyxWGwFmtpbgH5UvAbj7TXe/gNpnrKXAKjNbCmQSPAO5qNvI3b8HnB+z+I7axMy2Amvd/T88SKYvp2wzrrkURuMNHbRomVkecAD4PrDZw2e0ws9NYbHF2m5/BvwOkDr8uNooUAD0A38RXsZ82sxWo/aJuPsp4E+ALoLhyS66+8uojdK50zbZHn4fu3xCcymMpjx00GJgZvcBXwd+090vTVQ0zbIF3W5m9l6gz92nOpruYmujpQSXWr7o7geAqwSXV8az2NqH8L7HIwSXl7YBq83sAxNtkmbZgm6jKRivTe6qreZSGE156KCFzsyWEQTRX7v78+HiM+HpL+Fn8tWqi7Hd3gr8pJl1ElzOfaeZ/RVqo6QeoMfdvx/Of40gnNQ+b3g30OHu/e4+BDwP/DBqo3TutE16wu9jl09oLoXRVIYXWvDCXidfAhrc/U9TVh0BPhx+/zDwrZTlj5rZCjPLJ3h31A9mq75xcPePu/sOd88j+HPyz+7+AdRGALj760C3mSUHsnwXwatd1D5v6ALebGaZ4d+5dxHcn1Ub3e6O2iS8lHfZzN4ctu2HUrYZX9y9N8b05HiYoPdYG/CJuOsTUxu8jeCUtgY4EU4PA1nAd4CW8HNjyjafCNusiSn0WllIE/AAb/SmUxu9cbz7gaPhn6NvAhvUPre10e8DjQRvCPgKQa+wRd1GwLME99CGCM5wfvlu2gSoCtu1Dfgc4QALE00agUFERGI3ly7TiYjIIqUwEhGR2CmMREQkdgojERGJncJIRERipzASuUsW+Dczeyhl2fvM7Ntx1ktkPlLXbpFpMLNK4O8IxhDMIHgu7EF3b7uLfWW4+8jM1lBkflAYiUyTmX2aYPy31eHnLmAPwRhxn3T3b4WD3n4lLAPwhLv/u5k9APwewYOG+929fHZrLzI3KIxEpikcEfs4cBN4AUi4+1+Z2XqCIWMOEIyqMerug2ZWBDzr7lVhGP09UOnBMPwii9LSuCsgMt+5+1Uz+1vgCvA+4CfM7GPh6pVALsFAkZ8zs/3ACFCcsosfKIhksVMYicyM0XAy4GfcvSl1pZl9EjgD7CPoODSYsvrqLNVRZM5SbzqRmfUS8OvhaMWY2YFw+Tqg191HgQ8SdHYQkZDCSGRm/SGwDKgxs7pwHuALwIfN7BWCS3Q6GxJJoQ4MIiISO50ZiYhI7BRGIiISO4WRiIjETmEkIiKxUxiJiEjsFEYiIhI7hZGIiMROYSQiIrH7/wHSq+YKZennFAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# time seriers\n", "fig1 = plt.figure(figsize=(12, 6))\n", "ax1=fig1.add_axes([0.1,0.7,0.42,0.2]) #左、底、宽、高\n", "ax2=fig1.add_axes([0.1,0.4,0.42,0.2]) #左、底、宽、高\n", "ax3=fig1.add_axes([0.1,0.1,0.42,0.2]) #左、底、宽、高\n", "\n", "t1 = tracer1.mean('XC')\n", "t2 = tracer2.mean('XC')\n", "t3 = tracer3.mean('XC')\n", "\n", "yy = np.arange(0.5, 100, 1)\n", "ax1.plot(yy,t1, 'k-', linewidth=2, label='W0')\n", "ax2.plot(yy,t2, 'k-', linewidth=2, label='W0')\n", "ax3.plot(yy,t3, 'k-', linewidth=2, label='W0')\n", "\n", "ax1.set_ylim(0,0.5)\n", "ax2.set_ylim(0,1.)\n", "ax3.set_ylim(0,1.5)\n", "\n", "ax1.set_xlim(0,100)\n", "ax2.set_xlim(0,100)\n", "ax3.set_xlim(0,100)\n", "\n", "ax1.set_xticklabels(np.arange(0, 121, 20))\n", "ax1.set_xticklabels(np.arange(0, 1001, 200))\n", "ax2.set_xticklabels(np.arange(0, 121, 20))\n", "ax2.set_xticklabels(np.arange(0, 1001, 200))\n", "ax3.set_xticklabels(np.arange(0, 121, 20))\n", "ax3.set_xticklabels(np.arange(0, 1001, 200))\n", "\n", "ax1.set_xlabel('Year')\n", "ax2.set_xlabel('Year')\n", "ax3.set_xlabel('Year')\n", "# fig1.colorbar(h1,ax=ax1)\n", "# fig1.colorbar(h2,ax=ax2)\n", "# fig1.colorbar(h3,ax=ax3)\n", "\n", "ax1.text(0, 0.55, '(a)tracer 1', size=10)\n", "ax2.text(0, 1.05, '(b)tracer 2', size=10)\n", "ax3.text(0, 1.55, '(c)tracer 3', size=10)\n", "\n", "# plt.xlim(0, 240)\n", "\n", "# x_ticks = np.arange(0, 240, 60)\n", "# y_ticks = np.arange(10, 140, 30)\n", "# ax1.set_yticks(y_ticks)\n", "# ax1.set_yticklabels(['60S','30S','0','30N','60N'],fontsize=10)\n", "\n", "fig1.savefig('MITgcm_timescale.pdf',format='pdf',dpi=300)#输出" ] }, { "cell_type": "code", "execution_count": null, "id": "d3745da4", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2394383a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "c55008d3", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "bfb2c6be", "metadata": {}, "outputs": [], "source": [] } ], "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.7.12" } }, "nbformat": 4, "nbformat_minor": 5 }