{ "cells": [ { "cell_type": "markdown", "id": "bee2fd42-01de-4c90-9246-ad04f1e97c31", "metadata": {}, "source": [ "# Example Vis 3" ] }, { "cell_type": "code", "execution_count": 1, "id": "annoying-fetish", "metadata": {}, "outputs": [], "source": [ "from math import ceil\n", "import pystare as ps\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import matplotlib.tri as tri\n", "import cartopy.crs as ccrs\n", "\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "id": "polish-performance", "metadata": {}, "outputs": [], "source": [ "def shiftarg_lon(lon):\n", " \"If lon is outside +/-180, then correct back.\"\n", " if(lon>180):\n", " return ((lon + 180.0) % 360.0)-180.0\n", " else:\n", " return lon\n", "\n", "def triangulate1(lats,lons):\n", " \"Prepare data for tri.Triangulate.\"\n", " print('triangulating1...')\n", " intmat=[]\n", " npts=int(len(lats)/3)\n", " k=0\n", " for i in range(npts):\n", " intmat.append([k,k+1,k+2])\n", " k=k+3\n", " for i in range(len(lons)):\n", " lons[i] = shiftarg_lon(lons[i])\n", " print('triangulating1 done.') \n", " return lons,lats,intmat\n", "\n", "def plot1(lon,lat,lons,lats,triang,c0='r',c1='b',transf=None,lw=1):\n", " if(lon is not None):\n", " x=np.zeros([lon.size+1],dtype=np.double);x[:-1]=lon[:];x[-1]=lon[0]\n", " y=np.zeros([lat.size+1],dtype=np.double); y[:-1]=lat[:]; y[-1]=lat[0]\n", " ax.plot(x,y,True,transform=transf,c=c0)\n", " plt.triplot(triang,c1+'-',transform=transf,lw=lw,markersize=3)\n", " plt.scatter(lons,lats,s=10,c=c1,transform=ccrs.PlateCarree())\n", " return\n", "\n", "def plot2(sivs,c1='g',transf=None):\n", " lath0,lonh0,lathc0,lonhc0 = ps.to_vertices_latlon(sivs)\n", " lons0,lats0,intmat0 = triangulate1(lath0,lonh0)\n", " triang0 = tri.Triangulation(lons0,lats0,intmat0)\n", " ax.triplot(triang0,c1+'-',transform=transf)\n", " return\n", "\n", "def make_hull(lat0,lon0,resolution0):\n", " hull0 = ps.to_hull_range_from_latlon(lat0,lon0,resolution0)\n", " lath0,lonh0,lathc0,lonhc0 = ps.to_vertices_latlon(hull0)\n", " lons0,lats0,intmat0 = triangulate1(lath0,lonh0)\n", " triang0 = tri.Triangulation(lons0,lats0,intmat0)\n", " return lats0,lons0,triang0,hull0\n", "\n", "def make_nc_hull(lat0,lon0,resolution0,restrict=None):\n", " hull0 = ps.cover_from_ring(lat0, lon0, resolution0)\n", " print('make_nc_hull hull size: ',len(hull0))\n", " if restrict is not None:\n", " try:\n", " hull0=hull0[restrict[0]:restrict[1]]\n", " except:\n", " hull0=hull0[0:1]\n", " lath0,lonh0,lathc0,lonhc0 = ps.to_vertices_latlon(hull0)\n", " lons0,lats0,intmat0 = triangulate1(lath0,lonh0)\n", " triang0 = tri.Triangulation(lons0,lats0,intmat0)\n", " return lats0,lons0,triang0,hull0" ] }, { "cell_type": "code", "execution_count": 3, "id": "modular-cleaners", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "triangulating1...\n", "triangulating1 done.\n", "hull0: 1416\n", "triangulating1...\n", "triangulating1 done.\n", "triangulating1...\n", "triangulating1 done.\n", "triangulating1...\n", "triangulating1 done.\n", "triangulating1...\n", "triangulating1 done.\n", "make_nc_hull hull size: 1610\n", "triangulating1...\n", "triangulating1 done.\n", "make_nc_hull hull size: 889\n", "triangulating1...\n", "triangulating1 done.\n", "hull6: 0x0\n", "make_nc_hull hull size: 1600\n", "triangulating1...\n", "triangulating1 done.\n", "hull6a: 0x3d2aa80000000008\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA8MklEQVR4nO3dd3xT5f4H8M+T0V060qZNW1aZBcreU0A2ikiLg+FFERXFhXIVFAURELh4HQg/FVDg4mgB2bMgsqHsTUtBbEma7t004/n9cZoOuts0J22/79crr9CTc06e9PZ+fPJMxjkHIYQQ65CIXQBCCGlIKHQJIcSKKHQJIcSKKHQJIcSKKHQJIcSKZGIXgNQtI0eO5ImJiWIXw6acP39+P+d8pNjlIHUDhS6pksTERERGRopdDJvCGPMSuwyk7qDmBUIIsSIKXUIIsSIKXUIIsSIKXUIIsSIKXUIIsSIKXUIIsSIaMkZsRr91/XDyn5MAAAkkMH5iFLlEhFgehS4RVcDKAMRlxJU4boIJbAErdqxv47448eIJaxWNkFpBzQtENGwBKzVwy3Lyn5MlgpiQuoZCl4iiJuFJwUvqMgpdYnWWCE0KXlJXUegSq7JkWFLwkrqIQpdYTW2EZMDKAIvfk5DaRKFLrKLfun61ct+qdMQRYgsodIlVmMffVoZMIoPKRVXp86m2S+oSCl1icwwmA9SZ6kqfT7VdUpdQ6JJaZ/eZXZXOVzlXvpZrRrVdUldQ6JJapzfpKzxHkv+nqHJWQZ1V+VquGdV2SV1BoUtsggkmGD82FgTurddvFQQxIfUJ/VUTm+Dv6g/pZ1IAwNEXjqKNVxsYPzHC19lX5JIRYlkUuqRWVXaomLl5YPPTmzGw2cCC45osjcXfixAxUeiSWnXqn1NVOn/y1snFfvZ39a/0tVUZlkaIWCh0Sa3i4FU637yko3ShFO1WtcP0LtOrNZqBEFtF6+kSm2MvtYfOqMPNxJtY8NeCSl/HQGsxENtHNV1SKYwxB8ZYYFWv69u4b5XO93f1R+5HueCf8ILHnTfuVOraPo37VLV4lmLPGHMR681J3cI4r9rXP1I/5YdGcwCBrq6ubd3c3DoBaGUwGJQymczOyclJGhAQwNPS0pSRkZFVu3cFC91IIIEJpoKf/V39EftuLADAb4Vfpcft8k/E+Vtu1KiRoUmTJikZGRkmvV6vl0gkyRKJ5G5mZubVlJSU6wBi8h8pnP4P1+BR80IDwhizB9AKQJBCoejm5OTU1WAwNJdIJC5BQUHSVq1aoUOHDo5t27Z1CQwMRPPmzeHj4wOpVFpwj+7du1u8XEUDFygcyVCVwLWUu3fnIjFxB7y9xyEw8HMAQEzMPCQm7oCX15MFx4pq3bq1LDIy0hsAOOdISkoKuH//fseYmJjxt2/fzr1+/Xrm7du3TYmJiVCpVDlyufxBXl7eZa1We5ZzfhPALc55plU/KBENhW49xBiTA2grlUo7+/j49JVIJJ0NBkPjli1b2rVp0wbdunVz7tixo1ObNm0QGBgIJycnsYtcjHnEgrUDNzp6DmJjlwMAHjy4jrS0k5DLFUhM3JJ/7BoAlBq8ZowxeHl5wcvLy/wfKIf8BwBAr9fj77//bnr79u0B165dyzt//nz6tWvXuJ+fn0EikcQzxq4kJCSc0ul0FwBc45xn19bnJeKg0K3jGGNuALq4uLj08PDwGKjX6zs0b97cuX379ujfv3+jTp062QcFBaFx48aQSMRpwvd39a9wmq5MIoPBZAAA7Jm0B+5L3av0HlVtO36UyWSAWr2m2LGsrKswGNKKHUtM3FFu6FZELpejZcuWaNmyJcaMGWMHwAsQasharVZ18+bNzlevXn3+5MmTaRcuXDCpVCqdXC6PyszMPJaSknIGwAXOeeUHLxObQ226dQhjzAFAZ2dn574eHh7DDAZDB09PT/u+ffvK+vTp4965c2fWrl07ODg4VHiv6urevTuq2qYLVG4B82faP4Pfrv9W8LOL3AWZ+sp9665Je+7VqyFITt4JxuQwmbIKjqtUr5YI4iZN5pYI3er+TirDaDQiKioKly5dwpkzZ9KPHz+eGxsba5LJZNGZmZkRqampfwE4zzlPq/BmxCZQ6NowxpivRCLp5+vrO9ZkMg1wcnJq1KNHD8mQIUPce/XqJW3fvj1kMut+WaluwJS11bolyCVy5H2cV61rr14NQVLSloKf7e0DkZf3AJwbCo41bvwh4uK+gqfnCHTosLXEPWozdEvDOUd0dDTOnj2Lo0ePphw/ftyQkpKSK5PJIjUazQ6DwXAMQAx12tkmCl0bwhhrZm9vP8zb23ucwWDo7O/vLx8+fLjzkCFDnHv16gVXV1exi1ijgKmtPc1qUss9etQJnOcUO8bygEEjgMvLgPR2gF2OI1zbPY2EhN/BmAs8PYeiQ4ewgvOtHbqlycvLw4ULF/Dnn3/q9u3bl3779m2TTCa7nZaWtisjI2MfgOucc1OFNyK1jkJXRIwxlVwuH+Lj4xNiMBh6tmjRQj5u3Di3oUOH2nXs2NHqtdjKqEnA1EZtt+jwsqqIiZkHtXo9DIZEcF649KTCfTxUM7fB6xQQ9yQQ9U7p13t5hRQEry2E7qM457hz5w7++usv4x9//JF88eJFLpPJricnJ2/Jyso6ACCaasLioNC1ovwhW/19fX2fATDC39/fcdy4ca7Dhw936Natm02G7KNqGjDSBdISQ8Rqojq13JiYeXjwYHHBz46ObZGTcwvyZIY2Kzjk6YA8BZCnA0Z74O7HPkjoFF/sHlKpJwYMSAJgm6H7KM45bt68iUOHDum3bduWevPmTaNMJjuhVqs3m0ymCGoTth4K3VrGGGvs6ur6dKNGjZ6TSqWBw4cPlz/99NPugwYNsrmhWpVhiYCxVDNDdZsVzpxph5ycmyWO93oecFQD2SpAO0QClxgT8jyBO++VvIet13QrYjAYcObMGWzfvj1zx44dOenp6Qk6nW5LcnLy7xCaIigYagmFroUxxhiAzt7e3s9JpdIJAQEBrpMnT3Z/4okn5IGBVZ5Fa3MsFTA1qfHWpOMMKFnTdXIKQk7aTQwaDuT4AfJUgEsBgysgzQJObgG8/wJy/eTIbCuFRGIHe/smBZMl6mLoPkqr1WLfvn1806ZNSVeuXMmTSCT71Wr1BgDHedFeRVJjFLoWwBiTAOjl6+s7nXM+qnv37vJJkyYpRo8ezdzc3MQunkVZMmD6retX5eUYLTXVNyrqbcTFfQt//9eRnn4aGRlnIckBTI5A/xHA3Y+8kd0oAfJUIHEgUNZaOk2azMXEifvrfOgWpdPpcOTIEWzevDklIiLCwBg7rVar15hMpkOc8+r/144AoNCttvwabR+VSvWyyWQa2b9/f7tp06Z5Pv7447C3txe7eLWmtmp15dV8+zbuixMvnrD4e0ZGdkVm5kUAQHDwHmh/egnx3dRwjgayWgrnBPwGxD4D9BsLRC9QQds9GZzrCu7h5NQBM2fa16vQLcpkMuH06dPYsGFD2s6dO/MkEsmZhw8frjGZTAd40R5IUmkUulXEGAtSKpWvMMZC+/XrZz99+nTF0KFDYWdXtR1v66r68FUaKK0zrTUAhpyc2wXHPDxGw+HAZah7xEGexCDxawy5XFEQ1ED9rOmWxWQy4ezZs/j555/Tt2/fngsgQq1WfwvgFLUBVx6FbiUwxhRubm4vOTo6zmjVqlWjmTNnej355JOsLnaE1VR9Cd2zZ4ORnX2t4Gc7u8bQ6xMfGbPLYGfnh7y8wmFujRt/AMYkxRbAqS+/k6owGo04fPgw1qxZk3TixAmdyWT6NSEhYRXnPEbsstk6Ct0yMMakEolkmEqlmuPk5BQ8c+bMRpMnT7bz8vISu2iiqi8B82hNt0mTucjOvoPExPCCY56eY5GVdR063b2CY05OHdCz59Vi96ovv5Pqys7OxtatW01fffVVUlxcnDolJWVlbm5uGC3WUzoK3Ucwxvy8vLzekslkU0aPHu34xhtvuHfp0kXsYtmM+hQwpS3ZeO1aKFJSDsPDYwg6dAgrNZytufZCXXP//n18//33WRs2bMg2Go37NBrNUs75DbHLZUsodCF0ikkkkiG+vr4fu7u7t5s9e7bnc889J3V0dBS7aDanIQZMRevpNsTfSUWMRiP27duHpUuXJt69e1eTnJy8RKfThdPohwYeuowxR1dX12lOTk5zBg8e3Oj999/36Nq1q9jFsmkUMCXR76R89+/fx9dff535yy+/ZBkMhrWJiYlfcs4TxS6XWBpk6DLGfJVK5YcymezZl19+2eX111938vb2FrtYdQIFTEn0O6mc7OxsbNy4Ub9s2bK03NzcPx8+fDg/f+eMBqVBbUzJGGvp5+f3a8uWLa8uX7789Xv37ik//fRTClwrmTcPCA4Wniv7WnWuqeo5xDqcnJzwyiuvyKOjo73WrVsX0rNnz2N+fn7HZDJZb7HLZlWc83r/ANBRpVId6Ny5c8Lu3bu5yWTipHq6detW8G8PD86BuvVo27Z2fyekaiIjI/mIESMSfX19r8jl8uHI//Zdnx+2v6xVDTDGOqlUqv/27t07eMWKFYp+/fqJXaR6Q6EAuqRE4FN8CokFVw2rLUZI8SGW4OStfggKAm42uC+1tqlbt27Yt2+f4s6dO4p58+b9euzYMY2dnd07er3+AOe8XrZ91svQZYy1U6lUq/r06RP8n//8R9GnTx+xi1TvJCcDI7Af/XACERgqdnHKxcDxOCLwOA7hJPrh1i2xS0Qe1bp1a4SFhXlER0d7zJ0795f88J2Vl5cXIXbZLK1ehS5jrKlKpfqqS5cu/b/55huq2VpBLhwwHAfFLkYFOHjD6r6os1q2bInff//dIyoqyuPdd9/9XaVSxSQkJLxqMBjOi102S6kXf4mMMXdfX9/vW7Vqdf7HH3988vz58xS4hNRhrVq1ws6dOz337NnTvXfv3vtVKtUBxlhzsctlCXU6dBljck9Pz/f8/f1vL1my5F+3bt1SjB49On8BMEJIXdelSxccP35csWnTpmGtW7c+6+vru4ox1kjsctVEnQ1dOzu7x318fO68+uqrn96+fVs5bdo0uURSZz8OKYefn9glIGIbOnQobty44bVw4cLpKpXqjru7+yv561jXOXWu0Iwxf5VKtX/w4MG/nT17ttnixYudnZ2dxS4WqUBpfZkuLkBl/juZmVn8esYAf3/LlY3UDVKpFDNmzLC7deuWz/PPP7/Mx8fnilwu7yx2uaqqzoQuY0zq5eX1QbNmzS6tX79+2P79+z2bNGkidrFIOfz9AU9PYNAg4NQpYNiwwlqrmxuQkQE8/XTxa554ouR90tOF6804B+LjS55HX3QahkaNGuG7775rdPDgwfYdO3Y85Ovru5Yx5iJ2uSqrTvyZMsaClUrltWnTps27efOm18iRI6nRtg7IyQGOHhUegYHAgQNAXBzQogWQlr/3bFgYEBIihHNICPDnnyXv4+8PeHgUP2YoZdcuk+0PFyYWFBwcjMjISMXChQsn+/r63nJychotdpkqw6ZDlzEm9/HxWd6+ffsjBw8ebLt8+XIXBwcHsYtFKql3b2EKLgDcvVt4/GT+tmh79gjPYWFAUhIQHS3UfiMjizcfxMYCQx8ZCjxsWMn3o1amhocxhhkzZthduHDBf9CgQZt8fX23M8bcxS5XeWw2dBlj7ZVK5bXXX3995qVLlxQdO3YUu0ikisyh+mgNVKkUnseMKTw2YQJw6ZJQG+7WTQjaLVuE15KSiteIR48GDuYPDTY3Vzg5AV9/XWsfhdg4lUqFvXv3enz55ZejfX19bzg4OIwUu0xlEnse8qMPAEyhUHzQpk2bxMuXL1dm+jaxIvM6AwDnX+B9ngXHctc68PbmvLSlLq5eFV6/coXzt98W/r1pU8nzAM6Dgwt/TkwsvLf5viEhhceaNOGcsUfLYeIc4PPxacGx2vidENvw8OFDPmjQoGQfH5+fAThwG8i1og+bqukyxrx9fHyOhYaGzr18+TLVbuuBhAShg4sx4SGTAU89BZw+LbzesSPw3/8CK1YAkyaVvH7pUuDqVSAvD8jOBsy7Jen1wv0AwGgsPP/BAyFWScOlUqlw5MgRj7lz505UKpXXGGPtxC5TUTYTuvb29oNUKtWVtWvX9lm9erVrfd7GvCHx9wfu3AG+/BIYMkQIyO3bgZdfLn7ee+8BjRsDr78O7NsH5OYKx+fMEZ4DAwvbbLOzhfA2O3q0+L1oFANhjOHNN990OHToUIuWLVse9fDweEXsMpmJ/ufJGGPe3t7z27dvv/XcuXO+Y8aMEb1MpGaKTgjMyADmzgXefhuIiCj8wl+a2Fjgu++AUaMAR0fhPuYAjSvckBdTphS/bsiQ4j93717jj0DqieDgYFy6dMlr8ODBX/j6+v7OGBO9J17UgGOMuSiVygMhISHvnTlzxtOfRrzXC0VDNT0dCA8HQkMLj50vZekSP7/irbDJycDmzcBzz5U8d8uWwuYKZ2eh1tuzZ+HrZ88CNMiFmDk7O2PLli1uH3/88ZNKpfISY6yxmOURLXQZY02VSuXF5cuXD1q9erWrXC4XqyjEwkr7en/4sPAcHS3URF1diw8Le3TDZQ8PIXA3bxZGLRQ1fDjwxRdA//5CU8OvvwpBW5S5eYIQQGhueP311+23bdvWxs/P75y9vX1fscoiSuja29v38fPzO7Njx46WU6dOpbStZ0qbpDBkCKDVAq1aCT+npQnNCZwDr70G7N5ddrPDoxMo9u8X2nqPHSusGUdF1d7nIfVH3759cfr0aZ8WLVrsVCgUL4lRBquHrpub24SmTZvuPH36tE+vXr2s/fbEikaOFMbPAsChQ4CPj/Bvo7F4u+833wjP//532fcyT6AICyv5Wnx8YZgTUpHGjRvj3Llznp06dVrh4+OzyNrLElo1dL28vN5p06bND2fPnlU0bixqswqxgn37APMglNRU4Xn8+JLND1Ip8NhjwPLlVX+PjAzA11f4t9FIC+GQynF2dsaBAwfcR44cOcvHx2cjY0xqrfe2Wuj6+Pgs6tGjx/xjx455uLu7W+ttichSUor//OjwLrOdO4XntWsrf++8PKBR/sqqublCmNPOTKSyZDIZfvrpp0YvvvjiU0qlcidjzCpNnbUeuowx5uvr+82gQYNm7dy5053G3zYcpdU6Hx3eZebiIjQ/TJ9e8X1DQ4X23aK1aPO/zR12hFQGYwyLFy92nj179mNKpfKQNYaU1WroMsaYUqn8ZsSIEVN//fXXRjJZvdqSjVTAPLZ2xIjCTrDS2mTNIiOF5yNHyj4nNFQYgmauQY8ZIywTaVZWqBNSnjlz5jh+/PHHPb29vQ8yxmq1ZlirKahUKr8cNmzYlPXr1zeiXR0aLldXoROsIgEBwvOQIWWPZHi0Jrt7t9ApZ2cHPPmksB7vH3+UvvQjIeV54403HIxGY/fPP//8AGNsGOc8rzbep9aSUKlUfjpw4MB/bdiwgQK3gXm0L7gqX/nPnROe79yp3PkdOwIDBwrtu+HhwAsvUOCS6nvrrbcc5syZ00OpVP5RW9sB1cpNPT09XwsODn7rl19+caPAbXgeraVW5Su/eQpvhw4lX3v2WWGmWr9+hTPOzp8XOueKzmbT6apXbkIA4L333nOcOnXqAKVSub42hpNZPBGdnJxGNWvWbNGuXbvcqQ234bK3r1w7bmm2bBFWEUtOLjw2Zw7w22/A+vXA8ePCTDQAePXV4teGhhaOByakupYtW+YybNiwp7y9vedb+t4WDV25XN5BqVRu2L9/v6ejo6Mlb03qGJ1OCM3wcKG5oVs34NNPhc6yirbVMe+bZq4hf/WVMIZ38WLgX/8SjjEmnFd0iJm5k808JpiQ6mKMYf369Y1atmz5lpubW2jFV1SexUKXMeapUCj27t2718vb29tStyV1lEpV2MaqUAAXLgALFgA9egiTIcwL1jAmjEBYswb455/C65csAS5fFl5/+21g5kzgww+Lv8fmzcLzihXCc0SEVT4aaSDkcjn27Nnj4eXltVoulwdb6r4WCV3GmESpVO76v//7P1VQUJAlbknqOJ1OWIjmp5+AxMTiba737wOrVgnThAFhW5/XXgOaNCkM4kcDdtu2ku9hbw8EBQHvvy/c99GJGAMH1sYnIw2Ju7s7du/erfD09Nxtqb3XLBK6SqVy6dSpU4PHjRtntal0xLaZmxZCS/li1rSpUHPdu7d4GBuNwJkzwMcfl7xGrS5eO+7eXag5f/WV8Lq5v3bUqMKJEn/9VTufjTQsbdu2xbfffqvy8fH5wxIdazUOXXt7+/4BAQEvLV26tM7sO0+spyrDxSQSYV3cadNKvqZSAVu3Cm26CoUwauHTT4VlHovau7fkkDVCaio0NFQ2duzYLp6enu/U9F41Cl3GmJunp+ev27Zt85RKqZJLSqrqDLGEBGFrHqBwp18AePhQWCxn/frizRWlobV0SW345ptvGikUirmMsfY1uU+NQtfHx+f7L774QtmkSZOa3IbUM+ZFx2UyoaZbWhNDabKyCrdnNxiEacTmdtrffit5/syZJY/RKmOktjg6OiIsLEyhVCrDGWPVHg9b7dB1dHQcFhQUNGzKlCm0CDkpZutW4dlgKL9ttyi9Xlj0BgBycoQRDgDg7i5syfPss8XPX7wYWL0a+Prr4kFbdC81QiytU6dOePHFFxsrFIq51b1HtUKXMWbv5ua2duPGjR5WXv+X1AGljcMtr22Xc2HtBECo2T66v9mVK8LzmTPC8/r1wLx5wqLns2YJO1A8uqUP7ZFGasuCBQuc3dzcZjHGqvUVv1qh6+Xl9dGsWbO8AswrlBBSgfLads0jD2JjhZrto8xtvL17C4vnvPgi8PzzwNKlhec8GurUrktqi52dHdasWaPw9fVdV53rqxy6jDEfFxeXV99//32ackbKNWGC8NymTdlTgc0biNy4UX577GOPCc+ZmcJz3iPrP9GSjsSahg0bxoKDg7vKZLIqjwavcuj6+vr+Z9myZZ525u+DhJSBMWHH3tu3S3990CChdnv8uDDJoTzmJgYz8/Tizp2Fcb1z5gghT2vkE2v59ttvPby8vNZUdexulUKXMdbMw8NjZEhICC0dRip0+LAw2wwANmwo/tq//iVMXti+XVg1rCKP1mSbNxcWtrl8GVi0SBjfu2ULrTBGrKd169YYNmyYys7O7smqXFel8FSpVJ8vWbLEkzrPSGUMGSK0wSoUwhoMZh9/DPz8M/B//ycsPF4Z5m3YAeF+MTGARlNyejEh1vTZZ5+5e3h4fFGV2m6lQ5cx5uPk5DT8iSeeoMQl5ZLLiy/peOGC8HzsmDDMa9Ei4JNPgBkzqnbfsDBh1EJSkjBl+FE//FCzchNSVc2aNUO/fv2UEolkcGWvqXToent7v/PBBx+406LkpCJ6vdDmqlQCL71UGLoDBwoTGpychCm81fHZZ8Lza68VP756NfD558J6DPRFjFjT/PnzPXx9fRdW9vxKJShjTCaVSl+YNGkSrUpOyiWVCs0HnTsLU3rXrROm7xaVnS3UhufOBU6dKllrDQ0VmhBKm1DBmHC/orXarVuFMH/5ZWD+/MJRE4RYQ6dOnaBQKNpUdtxupUJXIpGMePLJJx1pYXJSEaMRWLgQuHixsK31+vWS5xkMwpq5ffsK04WLriAWHl7+TLZffhGev/xS6IybMEFY+Ob774XjYWFCqBNiLbNnz/b09vYuZWJ6SZUKXZVK9faMGTPcKj6TkOJBGRsLtC9leRB//8JQjo0VOtWeeKLkeeahYYwJEyemTBFGPKhUwLvvCsPOpFJg//7C91YoCtdwIMQaJkyYIJFIJJMq06FWYegyxpxkMlmnrl27WqZ0pN4zzw5LSSmc/GAyFU5+kMuFoDXz9xc61Uob+j10qNBO2707kJYGbNoEPPOMsL6umdEo3LNt28JaMq3BQKzJxcUF3bp1cwTQpaJzKwxdiUTy+Lhx4xxomBiprCFDhGm4np7Cz3q9UFONjRWaHvR64VHU7NnCONuNGwv3SAsOBg4dEtppz50rrBknJpZ8T4Oh7EkYhFjDlClTPL29vZ+v6LwKQ9fPz++F0NBQV8sUizQE4eGAufk/K0toszX76CPhefr0wmMrVwqPZcuAyZOF8O3QAbh6teS9x48HvLxKHi/tGA20IdY0atQoJpPJnqrovAr/LA0GQ69evXpZpFCkYbG3F5oXAgIKRyMwBjz3nDBDjXOhU2z2bOCtt4S9zsz+/FN4/uOPwmPjxhX/uShz7dcc8O7uFe86TIglubm5wd3dvVFFe6mVG7qMMf/GjRvbyakrmFSDeRv2uLji27GbRx9IJMJqYYwJ6+La2RV2wikUwuvm4WYhIcCOHRW/p8EgPNM27EQMo0aNcpBIJOUuglNu6Eokkp6PP/64k2WLRUhx5rZa86QK82gFc02VMaHJgRBbN2jQIFcvL6+h5Z1T7mQHLy+vAb169XK2bLFIfRGEm3BCDkZjt9hFKRdDGZupEWJhXbp0gVwu71veOeWGrr29fc/g4GDLlorUG09gFwBgN8aKXJLKSQMNNSe1KyAgACaTqdyd+soNXb1e35g2nSRl6YsT6Ih+OI+zYhelQkZIcQUdxS4GqecYY3B2dpYxxuw556UuNFpu6MrlcgeZjJZbICWFhADh4X1xqg5+dd++XewSkPosMDCQR0dHNwVwp7TXy+xIY4w5Ojs704wIUirz+rZ1ZWALY0CLFkLgVnYNX0Kqw9/fXwagzIno5VVjvb29veteNYZYTVn7nhHSkPn5+dkD8C7r9fKGjDk3atSIarqEEFIFbm5ucgBlDrUtL3TtHRwcKHQJIaQKHB0dZQDK3CK1vNBltEsEIYRUTf7yjmVWWMtLVV1OTg616RJCSBXk5OQYAJS5L3V5oZuTlZVFoUsIIVWQmZmpB5BT1uvlhW6CVqulNl1CCKkCtVqtA1DKqs+C8kI3KyMjw/IlIoSQeiwuLs4AIKGs18sMXc45z8vL05loUVJCCKm0u3fvAsDfZb1e7vAEmUymVhfdjIoQQki5MjIyDJzzrLJeLzd0TSbTxWvXrlm+VIQQUg8lJCSAc15mey5QQeiq1eo/z507l2vZYhFCSP108eJFcM7PlHdOuaHLOT8XERFBvWmEEFIJx48fz9FqtYfLO6eiKWd3b9++baTONEIIqdiePXsyjEbjn+WdU1FNl0ul0itXrlyxaMEIIaS+yc3NRVxcnI5zXu7ogwoXV0hISNi4bdu2bMsVjRBC6p/Dhw+DMba/ovMqDF2dTrf7119/LXP4AyGEEGDz5s0parV6U0XnVRi6nPOUzMzMv6OioixTMkIIqWfy8vIQERGRB+B4RedWau3GpKSkr9atW0e1XUIIKcW+ffsAYAfn3FjRuZUKXZ1Ot3Xjxo3ZBoOhpmUjhJB6Z8WKFYkajebrypxbqdDlnGcbjcadO3bsoKUeCSGkiHv37iE6OlrDOa/U9N1Kbw2h0WiWLFq0KKn6RSOEkPpn+fLl6cnJyYsqe36lQ5dzHq3RaC6fOHGieiUjhJB6JikpCVu3bk3T6XThlb2mSpugqdXq9+bMmUO1XUIIAbB06dLM7OzsRZXpQDOrUuhyzi/du3fv0tGjR6teOkIIqUc0Gg02btyYnJGRsa4q11V5u1+1Wj3zjTfeSOKc+tQIIQ3Xhx9+mJaenv4+57xKw7qqHLqc8zuJiYm7NmzYoK/qtYQQUh9cvnwZe/fufZCTkxNW1WurHLoAoNFo3p47d25yWlpadS4nhJA6i3OOadOmJcXHx0/h1fjKX63Q5ZynZmZmzp01axalLiGkQVmzZo3u4cOH2znnl6tzfbVCFwDS09PX79+//3pERAQ17hJCGoR//vkHCxYsSIiPj3+zuveoduhyzrlWq31m2rRpiampqdW9DSGE1AkmkwkTJ05MTk5OnlrexpMVqXboAgDnPDY1NfXtKVOmpNJoBkJIfbZ06dLsmJiYX/Ly8o7U5D41Cl0ASE9P33zu3LmI77//XlfTexFCiC06ffo0vvrqq7+1Wu07Nb1XjUMXAOLj46fOnz//n8jISEvcjhBCbEZ8fDxCQkK0Wq12FOe8xkNlLRK6nPNsrVY74umnn9bGx8db4paEECK6vLw8jB07NiUlJWUq5/xvS9zTIqELAJzzmKSkpCnDhw9PzsnJsdRtCSFEFJxzvPDCC2n379//T1ZWVoV7n1WWxUIXALKysg7ExsZ+MnHixFTatp0QUpd9/vnn2YcPH96TmJi42JL3tWjoAkBSUtK3Z8+e3fDaa69l0IgGQkhdtHbt2ryvv/76glarfaE6s87KY/HQBQCtVvv2tm3b9s6fP5/2VSOE1Cnbt283fPjhh7cSEhJGWKLj7FG1Erqcc56QkPD8999/f3zJkiXZtfEehBBiabt37za9/PLLMQkJCY9xzmslu2oldAGAc27UarVP/Pe//z25fPly6lkjhNi0ffv2maZNm3Y3ISGhL+c8pbbep9ZCFwA453qtVjt6xYoVJxYuXEg1XkKITdq+fbtx6tSp5sCt1d1xajV0gYLgHbVq1aoD77zzTiZ1rhFCbMmmTZv0L7/88s2EhISenPPE2n6/Wg9dAOCcG7Ra7YTNmzeHT5o0KV2vp/XPCSHiW7FiRc7s2bMvJiQk9OGcp1rjPa0SugDAOTdptdoXDx06tHLo0KGpmZmZ1nprQggpxmQy4bXXXstYvnz5Aa1WO4BzbrVAslroAgXLQS64cuXKWz169Eh+8OCBNd+eEEKQmZmJkSNHpm7dunWtVqsdzznPs+b7WzV0zVJTUzfExMQ80bt37/iTJ0+KUQRCSAN0//59dOvWLfncuXPvxsfHv2PpiQ+VIUroAoBOpzupVqt7jB8//s53332now62ukexTAG2gIEtYAhYGSB2ccoUtCqooJx2n9mJXRwikkOHDvG+fftq7t69OyolJWW9WOUQLXQBgHP+j1ar7bxw4cJdEydOTMvOplFldYVimQLJji2Bth8BEjvEZcTB8XNHsYtVgusSV9xKvg+0+wRw7wy9SU/B28CYTCYsWLAge9KkSZfVanUXg8FwVszyiBq6AMA5z9FoNCERERFzO3funHTjxg2xi0QqITknGXDvAvgMBVrPBgDkGnIRtCpI5JIVcl3iisy8LKDth4D3Y4BbRwCA3kSjZxqKhIQEDB48OOW7777boNVqe3DONWKXSfTQNUtOTv7u3r17gwcPHnyPmhvqGJ/hQEAoAOBW4i3MOzxP5AIJTQqZeZlA0ymA90Cxi0NEcODAAd65c2ftuXPnpsbHx7/GOTeIXSbAhkIXAPR6/VWtVtth4cKFW0eMGJGq1WrFLhKpiFEHJPwFBL4CeHQDACw+ZtGV8KrlVuItQNEPaDYNiD8gdnGIFeXm5mLWrFkZU6ZMiXz48GHn7OzsXWKXqSibCl1A2IVCo9E8f/LkyX917txZs3XrVqPYZSLl4cCtJUDW30DQfMDBDwDAFjDRSuT4uSPg1AxoOxdIvwncWSlaWYh1RUZGokOHDombN2/+TKvV9uacq8Uu06NsLnTNMjMzt6vV6g4zZ8489NRTT6UmJCSIXSRSFlMucP0jABzosAiQCh1qYnSsOX7uiFzIhXIYc4Dr8wGTVYdhEhHk5uZizpw5mWPGjLlx9+7dfklJScs55za5k4LNhi4AcM6TNBrNyIMHD07v2LGjZsOGDXpq67VRuWrgxkLAqYnQcQVm9Y61gJUByDXkAUEfA/ZK4MYnQF6tT6UnIjt27BjatWuXuHbt2sVarbYj5/yO2GUqj02HrllWVtYWjUbTds6cOeH9+/dPvnPHpn+nDVfqBeDuasBrgNCBBet1rAWtCkJcRhwQOAPw7AFE/RdIv17r70vEk5iYiMmTJ6eFhoaeuXfvXo+kpKQlnHObb46sE6ELAJzzNI1G8/yZM2fGDhw4MOq9997LzMqijSlsTtwWQLNP6MBS9AdQ+x1r8w7PEzrOlI8DjZ8B4rYBmj21+p5EPEajEd99911ecHCweseOHa/Gx8f34ZzfF7tclVVnQtfMYDCcio+PD1q/fv0nbdu2Tfjf//5npCYHG3NnpdCBFTRX6NBC7XasLT62GHBpDbR5H0i9BNxdVWvvRcR17NgxBAcHJy1cuHCtRqNpnZ6e/qsYU3lros6FLiDsSpGUlLQyNja23XvvvfdLp06dkk6fPi12sYgZ1wPXPwYM2UKHlswVQO10rAWsDADkHkD7z4C8ZODGp4Dtf8MkVRQTE4NRo0alTJw48a+bN2/21Wg0M625Mpgl1cnQNeOcJ6rV6ilXr14dMH78+NOjR4+m9l5bkZcE3JgP2HsD7eYDkCDXkAvXJa4We4uAlQGIy9QC7RcC8kbAtY8AfZrF7k/El5CQgJkzZ6b37dv3bkRERKharR5k6x1lFanToWvGOb+pVqv77N+/f8LAgQNvTpkyJTUuLk7sYpH0G0KHlkd3YfIEgMy8TIuMaAgNCxU6zlq+Cbh1AG5/AWTdrfF9iW3IyMjAvHnzsoKDg+M2btw4Kz4+vnVeXl6E2OWyhHoRumZGo/HP+Pj49uHh4S9269bt/iuvvJKuVtvc2OiGRbMXiN0KNJ4oTBdG/myxGph3eB7Cb4QDqicBv7HAg/8BCX8WO8deal+j9yDiyMzMxKJFi3Jat24dv3r16o/j4+MDMzIyNtjqmNvqqFehCwgLpefk5GyLj49vsXHjxle6dOlyf8aMGekPHz4Uu2gNV8x3QMoFYWEc1zYAqt+xNu/wPKHjzK0j0HIWkHQKuLeuxHk6ow7eTt41KjaxHnPYtmrVKn7lypWfaDSa5snJyV9ae4Fxa6h3oWvGOTdlZ2f/Gh8f32LTpk2vdO3aNWbSpEmpUVFRYhetQXC3dy/8gRuBGwuEjq72nwkdX6hex9qyE8sAex+g3adA7kPg5ucASq8EJWTTLEZbl5CQgA8++CCrVatWmiJhu5xzniN22WpLvQ1dsyLh2/L333+fNHDgwKujRo1KjoyMFLto9RrDIzVZQ7rQ0SVzETq+mLzKHWsBKwNggFS4XiIX7mcsHKsd0i6k2PkdlB1q9BlI7bl37x6mT5+eHhwc/PeqVave0Wg0Tet72JrV+9A145xzvV6/R61Wdzx48ODYcePGHe3UqVNieHi4yWCwiRXf6pUUXUrJg1l3gVtfCB1frd4EIHSsKZYpKrxfwMoAoeOszfuAS0vg5iIg55+C10PahSAsNAwh7ULgIncBAAR6BFrmwxCL4Jzj2LFjGDZsWFK/fv2u/+9//5uW32b7Q31sRihLgwndogwGw6m4uLjHrly50nPWrFnrmjdvnrB06dLcpKQksYtW78gl8uIHEo8Cf28CVGMBv3EAhAXRy5sqXBC4jZ8FlEOBez8CyWeKnRN+IxxsAUNcehw+HPAhAGDH7R2W/TCkWnJycvDTTz8Z27Vrl/jss8/uOXTo0IiHDx92yMnJ2VqfOsgqq0GGrhnn/J5arX45Nja2xdKlS+e2b9/+/oQJE5JPnz6NOjbJxWaNazuuZPDeXwcknQRavAG4dQJQ9lThgqFhnr2A5i8D2sPAP78UvP5E6yfw81M/Y2L7iXCWO+NU7KlSAjy/qYP+N7WqqKgovPHGG+mBgYGaOXPmfHnr1q1OcXFxYzjn58Uum5gadOiacc4zUlNTv4yPjw/cvn37UxMmTDjQpk2bxK+//jovJaWUr8mkXMNbDIeng2fBV/5xbcc9cgYHbi4WOsLafSp0jKH0EQ3hN8IBx8ZA0EdA5l3g9rJir9vL7DG101T8FvIbMudmgn9CwSqm3Nxc/PLLL7xnz56Jjz322MUffvjhJY1G00Sr1b7POachRKDQLYZzzg0Gw7G4uLgRUVFR7T755JP5QUFB98eMGZN08OBBmEwN7ptQtZx4cAKbnt6EDU9tAACEhYaVrO0as4SOMIlMGNEgEcbVFu1YCw0LBaTOwlRik0GYWmzSFbtN+I1w4bz8850+d6rFT0ZKwznHhQsX8OKLL6Y2a9ZM8/bbb3997ty5PnFxcV11Ol0455w2pStCJnYBbBXnPAHAF4yxZXv27Ol28eLF2YyxoRMmTHCYPn26a8eOHcUuos3K0mdh9ObRFZ+Y84/QIdZhMdBmDnDzs4KOtSHNhyD8xlYhcB38gCvvAbr4Um9zOOYwQsNChVoxsZoHDx5gw4YNOevXr8/U6XTX1Gr1MpPJdLAuLK8oJgrdCuSvYBQJ4DnGmP3q1atHb9269S17e/t206ZNc5k0aZJj8+bNxS6mzQlpF4Ifn/gRB2MOYtedXdh1ZxeSckrpqEw+A9z7QZgmnBkN/PMLknOShQBt9hKg6CNMJU67XOZ7DQkcgv1R+2vvw5ACiYmJCA8PN6xZsyYlISFBnZqauio7O/t3znmq2GWrKyh0q4BzrgOwDcA2xpj7kiVLJq5Zs2aGs7Nzk6lTp7o+++yzDi1atBC7mDZh+63tBUO4QtqFIC03De5fuJd+8j+/CsPAmk8HsmKEIPZ+DGg6GVDvAh5uL3HJ+LbjsSdqD3RGXak1XH9Xf6EDjtSYVqvFli1bDOvWrUuJi4tLycnJ2ZiamvoT5zxW7LLVRRS61ZT/X/bvAXzPGPNcvHjxhO+++26Gs7Nz02eeecZ5woQJTp06dQJj4m3QKCa9SY/QsFCEhYZBZ9AVBK6fix8eZpbSn3J7eWGH2Z3/CM0NadeAqK9Lvf+2W9sgYcW7JBxkDpAyKbL0WRS4NXT//n1s3bo1b9OmTWkajSY5Jyfn59TU1P9xzh+IXba6jkLXAjjnyQB+APADY8z9iy++GP3TTz9N45x3GjlypPzZZ591HzhwIOzs7MQuqlUdjjkMEzfB4XMHAED6B+lwtXfFkJ+H4Mj9I8VPNumEjrKua4B2nwC6BGFTyXL6YEyPDPHMNeRa/DM0FCaTCRcuXMDvv/+euWXLlhydTvcgLS3t58zMzG1Uo7UsCl0Ly68BbwawmTFmt3bt2oF79+79l8lkeqx169Z2EydO9Bg9erSsIbQDD24+GNKFUgCAZrYGrvbCyITLmjLaZ3VaYTPJFm8AUSsBfdnD9VQuKqgzi68g5+noieScZMsUvgFISEjA/v37eVhYWNLZs2eNMpnsvEaj+clgMOzjnGeIXb76ikK3FuVPbTyU/wBjrOWFCxeeWLJkybNSqbT5448/Lhs7dqzHoEGD4OnpKW5ha8GWm1sAANGzouHj4lNwfEjgkGLtsI4yR+QY8qfcp10FLrxS4b3NgVu0ucJgpOnc5cnOzsbJkyexd+/ezF27duVkZmYm6nS6LUlJSdsAXGqIs8PEQKFrRZzzaABfAviSMeawbt26Prt27XpCJpONdnZ29hwxYoT96NGjG/Xr1w+NGjUSu7gWM2D9ADycXdiOGxYaVjDES+GowB/P/oEB6wdU6959m/RFVl4W9kbvRXpeuqWKXC/odDqcO3cO+/fvz965c2dWfHx8lkQiOarRaLaaTKa/aMSBOCh0RcI5zwVwJP/xLmPMJSoqqn94ePjTjLHHnJ2d3QcMGCAbPny4R//+/REQECByiatPnakuNtusqVtTjG09Ft39uiPyYSQGrB8AKZPC18W33A6w0kYkHI45XGvlrmuSk5Nx8uRJHDp0KP3QoUO6pKSkHKlUekaj0YQbjcYj+WPPicgodG1E/iZ7+/IfYIw5RUdH99i+ffswR0fHkQCaBAcHY/DgwW59+vSx69q1K5ydnUUtc2X5ufhhw/gN2B21G7vu7EJUchRWnSu+Y6+RG0sNXAeZQ0EH2cOMkqMehgQOAYBizRUtPVsiOjnakh/B5uTl5eHq1as4c+aM8ciRIymRkZFcp9Mlcs6PaDSaPQBO5XfwEhtDoWujOOfZAI7mPz5ijEnj4uLaHDp0qKevr+8Ig8HQw8nJqVH37t3ZoEGDPLp06SINDg6Gi4uLyCUXmMNSJpEhbrYQpkMDh2LliJUAgJScFHguq7gdu+iIBA5hXQWlsxJ6gx5DWwxFWGgYABQ0V9hJ7bBx/Eb0WdvH0h9JNHl5ebhx4wYuXbrEjx07lnry5ElDampqrkwmu5KUlHQgJyfnFIAr+ePIiY2j0K0j8qdW3sh//AQAjDH7mJiYTjt27Ojp5eU1yGg0dpLJZO5t2rRB3759XXr06OHYoUMHNGnSBBKJdZfZcJI54dNBn+KDiA+QZ8yDnbRwuFyOPqfUwPV39Uefxn2K1Vq7qrriavxV6E2FQ8e0WVoAhcs52kntMKbVGAxqOghH/z6KPmv7QMIkJYaU2TrOOeLj43H9+nVcuHAh78SJE+lXr17l2dnZWXK5/GZaWtpf6enpZwCc55xTA3YdRaFbh+XXbM7mP74FAMaY9J9//mkRERHRSalU9rezs+uh1+ubODs727Vt2xZdu3Z17tixo1NQUBBatWpVa2OHhwQOwZx+c/BBxAd44Y8X8MsEYTlGo8kIp8XCojRZc7PQ+pvWBc0Kse8Kw0FDw0JxOOYwhgQOKdbpZjYhaAIWPLagoLni2INj2HZrW7H3t+XANRqNuH//Pm7evIlr167pLly4kHH16lWelpZmkEqlGs75Ja1We1Sv118CcLMhLfDdEFDo1jP5NeI7+Y8w83HGmP3du3db7t69O0ihUHRzcnLqrtfrW0qlUicvLy+0adNG0r59e+c2bdo4BgYGIjAwEJ6entWaUWde0hEAJnecjE1XNmHz05sBALLPhD+5xPcT4SR3Quy7sdBmaeGzwgd7ovZgdKvRBdeamYO3aBADQHtle8zpNwcAyp9mLIKMjAzcu3cPd+/eRVRUVN7169czbt26ZVSr1Uyv1+fKZLIHer3+glarPcs5vwngdn67PqnnKHQbiPxa8fX8R7HFChhjHpcvXw4EEOjp6dne2dk52GQytTKZTAo7Ozu5QqHgTZs2lTRv3tweQLmbmg1tPhS/h/xe8PO6J9dh05VNCF4djOsJ1wEA99+6D4VT4RY9SmclAGDM5jFlrof7aBAXVXSacflqZ63d2NhY03PPPZfy999/G+Pj45lOpzNwztNlMtndnJyca4mJiVc55zEAYgDEc1ohv0Fj9L8/KQ8TqroKAP4A/Lt167Y7MjJSGAIW+Arg9xRwfFSV7lm0Jmx2XXsdHVZ3wNXXrlZpQ0mjyVhQe874MANtv21byigICTAoAri3FniwCQAsutg5Y+wugGcBxAHQ0tKGpDy0iDkpFxckcs4vc873VHj+Jxwxb8bgm1HfYESLEaWeU9rY2vbK9gCA4NXBVSlbQeDGvxcPFzsXxL4bi/Ftx1f6HhaSyjmP5JyrKXBJRSh0iUWFhoWiuUdzvNHzDeybvA8zus4ocY55bO2jdj+/G0Dh6ISK3keyUPjzvfvm3YImCgA4ev9odYpOiFVQ6BKL2n6rcO3bz45+hu8vfI9Vo1chpF1IsX3TSjO6lbDbREVTgkN+Dyk2muHfh/5d7PWyQp0QW0AdacSizONpf7zwI+b/OR/zBszDzB4zMbPHzEpd/+WIL/HO/negM+hgL7Mv9Zztt4svam4erwsAg5sNxphWY/DHzT9g4LQADrE9VNMlFtdvXT+8vPNlvNDpBSwasqhK177d+20AwPNbny/19Tf3vgmDqXiYdlN1w7g24yCTyHDk/hG8d/A9Clxis6imSyzu5D8nMbDpQPz01E/Vun56l+n48eKP4JwXGye87MQyfHP2G/xn+H/w5/0/sfPOTvQJ6IOTL50scY/knGQolilKHCdEbFTTJbXihvYG9Mbq7by9euxqAMD8I/MLjm24vAH/PvRvzO4zG+/2eRc7ntsBBoZTsaeKXRsaFgrPpZ4UuMRmUeiSWpGYkwi7RXZgC1jBo/ePvbHor0V4fMPjcF/qjtCw0ILzQ8NCofhCgdCwUMgkMvQO6I1Fx4SmiX3R+/DCHy8gtF0oVgxfUXDNjddvAAAuqi8W3CP8RjhSdMKOE15OXtb6uIRUGjUvkFrh7+qPS69ewr7ofdgdtRu77+zGmbgzOBN3puCcoh1gRY+FhoVi36R9cP/CveD1Hn498Hvo78XObevVFgDQ9fuu4J9wRNyNKPZ6YnZibXw0QmqEarqkVmTnZeO13a9hcsfJ+GXCL0j/MB38Ew47SfEFduQSeYlrw2+El5jWG50cjeSc5GI1YgA4MPkAAIAtYAU1XLOQdiEW/ESEWAaFLqkVKbqUglorIHz1d1zkiDxT8QWzxrUdV+Laoc2HlrxfbgoUyxQIvxGO5NxkhN8Ih/NiZ4z/rfjsM4bCmnPRsbyE2AoKXVKrDsccLmhrzTWW3CLdHIxFZ5RF3IsocZ6/qz9c5MUXaM/WZyNLn1XsGK+lRW0IsRQKXVKrHOWOlapxVjT1Ny4jDpn64isf+rv616hshIiBQpfUqvI2mrTlexNSW2j0Aqk+5xaA1AHwtvG1DhjVLYjtoNAl1efZQ3hu97G45agsfZrYJSCEQpfUwLlpgKMKyI4VuyQV40YgV9jCXcboz56Ih/76SLXMHTAXi48tBrLvi12UKpvTf47YRSANGIUuqZbPh3wOAFh2fFmVV/SSQAITrLtbr53EDo0cGmFGtxkFZSdEDLRHGqmS7t2788jISLGLYVMYY+c5593FLgepG6hblxBCrIhClxBCrIhClxBCrIhClxBCrIhClxBCrIhClxBCrIiGjJEqYYzReLGSEjnnI8UuBKkbKHQJIcSKqHmBEEKsiEKXEEKsiEKXEEKsiEKXEEKsiEKXEEKs6P8Bi1SI6fxVkgMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Spatial ID 0x3800000000000000\n", "triangulating1...\n", "triangulating1 done.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# figax = add_coastlines(plt.subplots(subplot_kw={'projection':proj,'transform':transf}))\n", "\n", "# resolution = 7\n", "# resolution = 12\n", "resolution = 13 \n", "resolution0 = resolution\n", "lat0 = np.array([ 0, 0, 1,1], dtype=np.double)\n", "lon0 = np.array([ 0,1,1,0], dtype=np.double)\n", "lats0,lons0,triang0,hull0 = make_hull(lat0,lon0,resolution0)\n", "print('hull0: ',len(hull0))\n", "\n", "idx = ps.from_latlon(np.array([1.25],dtype=np.double),np.array([1.25],dtype=np.double),10)\n", "nbrs = ps.to_neighbors(idx)\n", "\n", "latn,lonn,latcn,loncn = ps.to_vertices_latlon(idx)\n", "lons1,lats1,intmat1 = triangulate1(latn,lonn)\n", "triang1 = tri.Triangulation(lons1,lats1,intmat1)\n", "\n", "lata,lona,latca,lonca = ps.to_vertices_latlon(nbrs)\n", "lons2,lats2,intmat2 = triangulate1(lata,lona)\n", "triang2 = tri.Triangulation(lons2,lats2,intmat2)\n", "\n", "# idx1 = ps.from_latlon(np.array([1.5],dtype=np.double),np.array([0.5],dtype=np.double),10)\n", "cover = ps.to_circular_cover(1.5,0.5,0.25,13)\n", "latco,lonco,latcco,loncco = ps.to_vertices_latlon(cover)\n", "lons3,lats3,intmat3 = triangulate1(latco,lonco)\n", "triang3 = tri.Triangulation(lons3,lats3,intmat3)\n", "\n", "# Set up the projection and transformation\n", "# proj = ccrs.PlateCarree()\n", "# proj = ccrs.Robinson()\n", "# proj = ccrs.Geodesic()\n", "proj = ccrs.Mollweide()\n", "transf = ccrs.Geodetic()\n", "# transf = ccrs.PlateCarree()\n", "plt.figure()\n", "plt.subplot(projection=proj,transform=transf)\n", "ax = plt.axes(projection=proj,transform=transf)\n", "# ax.set_global()\n", "ax.coastlines()\n", "\n", "box_cover = ps.to_box_cover_from_latlon(np.array([-2,-2,-1,-1],dtype=np.double)\n", " ,np.array([-2,-1,-1,-2],dtype=np.double)\n", " ,10)\n", "latco,lonco,latcco,loncco = ps.to_vertices_latlon(cover)\n", "lons4,lats4,intmat4 = triangulate1(latco,lonco)\n", "triang4 = tri.Triangulation(lons4,lats4,intmat4)\n", "\n", "# resolution = 12\n", "resolution = 13\n", "\n", "flag5 = True\n", "if flag5:\n", " resolution5 = resolution;\n", " # CCW\n", " lat5 = np.array([ -1, -1.5, -1, -2, -2], dtype=np.double)[::-1]\n", " lon5 = np.array([ 0,0.5,1,1,0], dtype=np.double)[::-1]\n", " lats5,lons5,triang5,hull5 = make_nc_hull(lat5,lon5,resolution5)\n", " # lats5,lons5,triang5,hull5 = make_hull(lat5,lon5,resolution5)\n", "\n", "flag6 = True\n", "if flag6:\n", " resolution6 = resolution;\n", " # CW\n", " # lat6 = np.array([ -2-2, -2-2, -1-2, -1.5-2, -1-2], dtype=np.double)[::-1]\n", " # lon6 = np.array([ 0,1,1,0.5,0], dtype=np.double)[::-1]\n", " lat6 = np.array([ -1, -1.5, -1, -2, -2], dtype=np.double)-2\n", " lon6 = np.array([ 0,0.5,1,1,0], dtype=np.double)\n", " lats6,lons6,triang6,hull6 = make_nc_hull(lat6,lon6,resolution6,restrict=None)\n", " # lats6,lons6,triang6,hull6 = make_nc_hull(lat6,lon6,resolution6,restrict=[100,101])\n", " print('hull6: ',hex(hull6[0]))\n", " # lats6a,lons6a,triang6a,hull6a = make_nc_hull(lat6[::-1],lon6[::-1],resolution6,restrict=[0,1001])\n", " lats6a,lons6a,triang6a,hull6a = make_nc_hull(lat6[::-1],lon6[::-1],resolution6,restrict=None)\n", " print('hull6a: ',hex(hull6a[0]))\n", "\n", "# hull6 = np.array([0x3d2b61000000000a],dtype=np.int64)\n", "\n", "plot1(lon0,lat0,lons0,lats0,triang0,c0='r',c1='b',transf=transf)\n", "plot1(None,None,lons2,lats2,triang2,c0='r',c1='y',transf=transf)\n", "plot1(None,None,lons1,lats1,triang1,c0='c',c1='r',transf=transf)\n", "plot1(None,None,lons3,lats3,triang3,c0='c',c1='g',transf=transf)\n", "plot1(None,None,lons4,lats4,triang4,c0='c',c1='g',transf=transf)\n", "\n", "if flag5:\n", " plot1(lon5,lat5,lons5,lats5,triang5,c0='c',c1='g',transf=transf)\n", "\n", "plt.show()\n", " \n", "# Set up the projection and transformation\n", "# proj = ccrs.PlateCarree()\n", "# proj = ccrs.Robinson()\n", "# proj = ccrs.Geodesic()\n", "proj = ccrs.Mollweide()\n", "transf = ccrs.Geodetic()\n", "# transf = ccrs.PlateCarree()\n", "plt.figure()\n", "plt.subplot(projection=proj,transform=transf)\n", "ax = plt.axes(projection=proj,transform=transf)\n", "ax.set_global()\n", "ax.coastlines()\n", "\n", "plot1(lon0,lat0,lons0,lats0,triang0,c0='r',c1='b',transf=transf)\n", "plot1(None,None,lons2,lats2,triang2,c0='r',c1='y',transf=transf)\n", "plot1(None,None,lons1,lats1,triang1,c0='c',c1='r',transf=transf)\n", "plot1(None,None,lons3,lats3,triang3,c0='c',c1='g',transf=transf)\n", "plot1(None,None,lons4,lats4,triang4,c0='c',c1='g',transf=transf)\n", "\n", "if flag5:\n", " plot1(lon5,lat5,lons5,lats5,triang5,c0='c',c1='g',transf=transf)\n", "\n", "if flag6:\n", " plot1(lon6,lat6,lons6,lats6,triang6,c0='c',c1='g',transf=transf)\n", " # plot1(None,None,lons6a,lats6a,triang6a,c0='y',c1='c',transf=transf)\n", " # plot1(lon6,lat6,lons6a,lats6a,triang6a,c0='y',c1='c',transf=transf)\n", " \n", " # plot2([0x3d2b61000000000b],c1='r',transf=transf)\n", " # plot2([0x3d2b61200000000b],c1='g',transf=transf)\n", " # plot2([0x3d2b61400000000b],c1='b',transf=transf)\n", " # plot2([0x3d2b61600000000b],c1='k',transf=transf)\n", "\n", " # plot2([0x3d2b61400000000c],c1='r',transf=transf)\n", " # plot2([0x3d2b61480000000c],c1='g',transf=transf)\n", " # plot2([0x3d2b61500000000c],c1='b',transf=transf)\n", " # plot2([0x3d2b61580000000c],c1='k',transf=transf)\n", "\n", "if False:\n", " plot2([0x3d2b61400000000d],c1='r',transf=transf)\n", " plot2([0x3d2b61420000000d],c1='g',transf=transf)\n", " plot2([0x3d2b61440000000d],c1='b',transf=transf)\n", " plot2([0x3d2b61460000000d],c1='k',transf=transf)\n", " plt.scatter(0.9474437025372493,-2.9981275066380708,s=10,c='c',transform=ccrs.PlateCarree())\n", "\n", "test_trixels = [0x3d2b61400000000d,0x3d2b61420000000d,0x3d2b61440000000d,0x3d2b61460000000d]\n", " \n", " \n", " \n", " \n", "level_zero_increment = ps.spatial_increment_from_level(0)\n", "sivs = [ siv for siv in range(0,8*level_zero_increment,level_zero_increment) ]\n", "\n", "print(\"Spatial ID\",hex(sivs[7]))\n", "plot2([sivs[7]],transf=transf)\n", "\n", "plt.show()\n" ] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }