{ "cells": [ { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import ee\n", "import geemap\n", "import geopandas as gpd\n", "from shapely.ops import transform\n", "from shapely.geometry import Point, Polygon\n", "ee.Initialize()\n", "\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gdf = gpd.read_file(\"/home/patel_zeel/NDVI_PERG/golvada he 10 2023-24.kml\").to_crs(epsg=4326)\n", "gdf = gdf[gdf.index == 0]\n", "def shape_3d_to_2d(shape):\n", " if shape.has_z:\n", " return transform(lambda x, y, z: (x, y), shape)\n", " else:\n", " return shape\n", "gdf['geometry'] = gdf['geometry'].apply(shape_3d_to_2d)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_547165/231495633.py:2: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", "\n", " gdf_buffer['geometry'] = gdf_buffer.buffer(150)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAGdCAYAAADaCO5WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABi10lEQVR4nO2deXgUVdaH3+6EhC2LQbYAYRMDKihuGBUFZdVRFBwF/RRcxwWURVFmBGVcQHCQcdfvGwVn3FCjjiOigERRAgojChIRMRi2gIIkYU3SXd8ft6tS3ektpDvdVX3e5+knnepb3be6b9Wpe+45v+PQNE1DEARBECKAM9YdEARBEOyDGBVBEAQhYohREQRBECKGGBVBEAQhYohREQRBECKGGBVBEAQhYohREQRBECKGGBVBEAQhYiTHugMNgdvtZseOHaSlpeFwOGLdHUEQBEuhaRoVFRVkZ2fjdAafiySEUdmxYwcdOnSIdTcEQRAszdatW2nfvn3QNglhVNLS0gD1haSnp8e4N4IgCNaivLycDh06GNfSYCSEUdFdXunp6WJUBEEQjpJwlg9koV4QBEGIGGJUBEEQhIghRkUQBEGIGGJUBEEQhIghRkUQBEGIGGJUBEEQhIghRkUQBEGIGGJUBEEQhIiREMmPghBvuFywfDns3Alt20LfvpCUFOteCUL9EaMiCPXgaIxDfj7cdRds21azrX17+PvfYfjw6HymIDQU4v4ShKMkPx86dYL+/eHqq9XfTp3U9mD7XHGFt0EB2L5dbQ+279F+piA0JA5N07RYdyLalJeXk5GRQVlZmWh/CRFBNw6+Z48ujfT227VnHS6XMgC+BsW8b/v2UFzsf+ZxNJ/p+/kywxGOhrpcQ8WoCAlPXS+2R2scCgrUzCIUy5ZBv36R+Uyd+rrchMSmLtdQcX8JCc3RuJOWLw98cQc1k9i6VbVzu+HQIdi7F77/Prw+ffUVbNwImzdDSQns2AH//nf4n+nvGOvjchOEuiAL9ULCEsidpF9sA7mTdu4M7/2ffx4++6zm/bdsCW+/DRvg4EHvbevWhb9vnz7QpIn63+VSMxR//ghNUzOc8eNh2LDAszNxmwl1QYyKkJCEe7G99FI4cAB27655fP11eJ/RuLH3++fkQHo6lJcH3ic9XbXzJYzaSICa5ezerYxKVpaa5YQ7w/F1uYG4zYS6I0ZFsBXh3lWH68K6/XbIzvZ+rXnzozMOTicMGQILFgTeb8gQ1c6XuhqkQ4fUjCvcGY6/2dfRzuSExEbWVATbUJf1kXBdWHv21N6mG4dgBDIOPXrAlVcqA2AmPV1t79HD//sd7WeGO8P54QdYtQpKS5URCTWTAzWTc7nCe38hcZCZimALwr2rLiuDn36CoqLw3jfQRVk3DosWec8e0tPVxT2QcdD3zc1Vi/AVFeozcnL8G6H6fma4MxxNg48+Uv83aQL799fPbSYkLmJUBMsTzvrIrbcqA2OeeRzt+obO0RoHUG06dQrdrr6feTQut0OH1IJ/OASb8ckCf2Ii7i/B8oSzPvLrr7BmTc22+riwzOjGoWdP9Tccg1Jf6vqZR+NyC9dt1rat/+2S+Z+4yExFiEvqcpcb7vpIRYX3//VxYVmNus5wwnGbZWTAb78pd2KXLjXvJQv8iY0YFSHuqEsYa2kp/PJLeO/r7+67Pi4sq1EXl1s4brPBg2H9evVo1gxOOglOPLH+eTGCtRGjIsQV4dzlXnyxupCtWaPyMNzu+q2PHO36ht2py0zuwAEVPfbmm7LAn+iIURHihnAW3P/0J9WmurrmtfrkfwjBqetMztfFGIhwXZaC9ZDTTIgbwllw1334vhxt/ocQmroEBtR3gV+wPjJTEeKGo11w10mk9ZF4JZwF/latlD6ZPw4dgnvugU2boFs3mD27RsdMsAZyuglxQ7h3r8HuhmMR4ivUEE6odr9+8OSTqhSAWTjzssugaVN45hn45BP1t2lTtV2wDnLKCVHH5VIXkNdfV3/9SXscPAiHD9d2X/kSKiFRiD3huCIPHVJjYe5c+PhjFXzx/vv+3+/998WwWAlxfwlRJVR48OHDUFioHpWVsuBuF8J1RVZWqvIACxcGf7/331eGSFxh8Y9UfhSiRqjyt3/9KyQnK8NipqgoMRISBcXCheGVE7jjDnj66ej3R6hNXa6hMlMRokI4KrezZ6s2vnevsuCeWPhTgvbHpk3R7YcQGcSoCFEhVHgwqJlISYn/xENJSEwcWrSAn38O3a5bt+j3Rag/cu8nRIX6hgcLicOAAeG1+/Ofo9sPITKIURGiQiTCg4XEICVFuTuDkZsLL72kFvXNagoQXnSh0HCIURGiQtu2SsU2GBIeLOiMHBnYsOTmqterq2HZMnj22RpVBZHYjz+ialQ+//xzLrnkErKzs3E4HLz33nter48ZMwaHw+H1GOKTObV3716uueYa0tPTyczM5MYbb2T//v3R7LYQhFB3hQcPwrvvqtcHDw7+XhIeLJgZORKmTIEzzlBS+mecof4fOdK73d698K9/waRJKrrQd+1OFx8VwxIborpQf+DAAU4++WRuuOEGhgcooDBkyBBefvll4//U1FSv16+55hp27tzJ4sWLqaqq4vrrr+eWW27htddei2bXBT8Eyzm5/HL4/ntVkvbAAfVaItUrESJDSgpcdFHodm43/N//icR+PBJVozJ06FCGDh0atE1qaipt2rTx+1pRURGLFi3i66+/5vTTTwfgqaee4qKLLuLxxx8nOzs74n0W/BNKkv6uu/y7uyQ8WIgGJSXB9cVEYj92xPzULigooFWrVuTm5nLbbbexxxS0XlhYSGZmpmFQAAYMGIDT6WTVqlUB3/PIkSOUl5d7PYSjJ1TOiaapRVS32//+osclRBqR2I9fYnp6DxkyhFdeeYWlS5fy2GOP8dlnnzF06FBcHkd9aWkprVq18tonOTmZrKwsSktLA77vjBkzyMjIMB4dOnSI6nHYnbrknAhCQyAS+/FLTJMfR5pW4Hr27EmvXr3o2rUrBQUFXHjhhUf9vlOmTGHixInG/+Xl5WJY6oHknAjxRjgS+23bQt++DdcnQRFXjoguXbpw7LHH8pMnXrBNmzbs3r3bq011dTV79+4NuA4Dap0mPT3d6yEcPZJzIsQb4Ujsn3cefPWVf7etED3iyqhs27aNPXv20NZzFcvLy2Pfvn2sWbPGaPPpp5/idrvpE6jKjxBx+vaFdu2Ct5GcE6GhCSWx3727ktV/802lcGxGEiajR1TdX/v37zdmHQDFxcWsXbuWrKwssrKymD59OiNGjKBNmzZs3ryZyZMnc9xxxzHYk+DQo0cPhgwZws0338zzzz9PVVUVY8eOZeTIkRL51YDs3g2DBoEp8rsWknMixIJwogt/+AFKS5Whyc4OXY5BqB9Rlb4vKCigf//+tbaPHj2a5557jssuu4xvvvmGffv2kZ2dzaBBg3jooYdo3bq10Xbv3r2MHTuWDz74AKfTyYgRI3jyySdp3rx52P0Q6fvgVFaqLOXNm6FrV7j9dpUvAPDtt/DBByqbWSTpBSuTlKTG9ZQpgcsxvP22GBZ/1OUaKvVUEpzJk2HOHO/pf1ISTJgAF1wAvpHbbrfknAjWxO1Ws5FAi/sOh5qxFBdLwqQvUk9FCIvJk1VNE19cLnj8cVixAgYO9H5NJOkFqyIJkw2D3GMmKJWVaoYSjMLC2oqwgmBVJGGyYRCjkqA8+2zoiBdNg9WrG6Y/ghBtJGGyYRCjkqBs3hxeu717o9sPQWgo9ITJQDgc0KGDJEzWFzEqCUrXruG1y8qKbj8EoaEIlTCpafDEE7JIX1/EqCQot98e+uRxOMCk5SkIlidUwmTTppKBX18k+itBSU6GP/wB3n8/cJu8PNVOEOxEsITJVavg8GG49FKZsRwtcslIQFwulVV8yinw668qyst8d+ZwKIPiG04sCHYhWGj8t98qw3LFFdCokTpfli9XUWG6SKUYnMBI8mOCUV2tsoZ/+MF72+rValE+K0u5vGSGIiQ6nTpBkyZw990i6SIZ9T6IUVFUVcGCBbBpU6x7IgjxT1GROl98SURJl7pcQ2Wh3ob4U2CtrFT/i0ERhNC43Urnzh/6bfj48aJu7A9xctgMfwqs7drBZZfBscfGrFuCYClE0uXokZmKjcjPV4uLvqV/t2+HZ55R03lBEEIjki5HjxgVm+ByqRlKsBWyRYvUtF4QhOCIpMvRI0bFJixfXnuG4kt5uZrWC4IQHJF0OXrEqNiEcKfh4U7rBSGREUmXo0eMik0Idxoe7rReEBKdUJIuxxwTm37FOxL9ZRP69lVJWcFcYOnpalovxBlSTjNuCSbp8vnn6pwSfTxvxKjYhKQkuPdeGDcucJshQ+Ra1WCEayiKiuCjj6DCFL+alg5Dh6or2tG8pxBRgkm6fPihMizHH9+gXYprxKjYhN271bXmyitVlJc5xj49XRkU32uUECXCNRRGyrZPyF5Fhdp+5ZU17etifIQGQ9PgrbdgzBiVDyY6YSLTYgsOHID//V/Yt0/9Lze0USbYFxzIUODR9tANhdsNc+d6Gwnf9unpKk5848bw3jNU34So0awZtGoF999vT50w0f7ywc5GpboaXnlFQoUbjGAzhtzcWobCQRnHsZlsdpJFGekcomlmY1IOldHoSDlJuHDixoGGhgM3TlwkUUUSlaRw8Jgcyn+vYh9N2UlrfuQ43JhXiH2Mj8xmYoLddcLEqPhgB6Pib1rtdMJ77ympbiEChLrLDzIL6cg6zm2+kTb7fyKVIySh6fOIqKABbhwcJpXdtOCLrjdSvNnpt2+A92wGZEYTQdxuNRsJJOvicKgZS3GxdV1hdbmGypqKBfCn59W+Pdx6q1IeFiJAqDULt1u9jsZFvMMJ/EhjKnFAjfHYH95H+V72dQPh9GOIAhkmB5CERjMO05ntdN78V+O9NOAwKWzgOBbyR9V60SI1k3I6ZX0mwohOmDcyU4lzdD0v31/J4VDbfG9AhaMgxDpIt9NSGfL938k4XBoysUtd1B0cphG/kcU3nMh39EQjo6bR6DFqZjB3ricb1d8p6HFrDRsG/3zFs6WMXmzgFNbRkj2kUuXXEPniBsppzsdnTWVjziXhr88IYbFunTpPQ/HaazBqVPT7Ew1kpmITgul56dvMN6DCUWCageg4KOM63iSbXSTjxrGm9m4a4PK4n3ZxLF/Qh184CRo3UWUDgxkK3dU0dKjnAu/wae+5wA8ZomJZ09KhogKNDL4lj2/J827buDHtD6/mPFbRhl9p7ON+cwKZ7OeqlfeirbyXapzspBXzGWkydhq1ZjRCWIhOmDdiVOKYuuh5BYqjFwi+flBSAhXlOCjjNubRgn0B7/xdONhDJm9wGfsIkEV61lmqiE0wQ6F/tp6y7euK8o0BD2V8zjqLbQWHeI0TvbqSSQlX8T4t+N0wMg6gEW5yKGUqc9GAvWTwLNcrA1Ne5j2gZO0lJLpOWKg1lUTRCROjEseInlcECLF+cP7nf+Fs3qARteWbNeAgjSnkdFZc/gwsWRLaXdW3r4otDWUodIKlbJvbBDM+ubmwZk2tvu0jhxcYZ/TtzNY/cc6ml2nOIcNwOoAWlDGVuVTj5CtOZknFiLC+O0Gh64T5i/7SmTvXuov0dUXWVOKYggLo3z90u9GjZabilwBrJU3YxU38i0z215qVuHDwMx14neHguw5y6JDpyuFnxhDtfJGw8mOC9K1JE5g/z7O9jKt4j678QrLP96MB5SnHMq/yUsro4NMJWXsJRFGR/8TjBx6AiRNj169IIGsqNkHX89q+PXCdFNHzCoCftZKLeIveFJHk5yJaRjPmcyVltdxaPusg4birILi2x9ES7D3DcaW53cb6DGTwJqM9R1jGWP7PMLIOIKPyN+7iJdw4WMfxvM9IzxvK2ksgAk06Dx+GvXshKyvWPWwYZKYS5wSK/tKRG8YAbNli3JVfySvkUlxrVlKNk1XdrmFp7ynhz0AgvtcZws61AX/Hev5xxZy9+TUaad6x6hqwmQ68xg01G0ePkSlymGRnw403WtcFJsmPPljZqABMnw5z5oiel18CXUTXrePS/Cs5mR+8jIkG/EYmzzNGLUwPHwE9e/pfP0jPsOeXHOpY162D/Jf4E/Npxe+1vr/1dONdrq757uLZyMYR554LAwbEuhdHh7i/bIQe/XXXXXLe1iLAQvKAFivJ2/JWrYthIb1ZwqXe76HHg4azYG4XQh1rWhqQwQvcCUA/PuRcVuNEzWd6somTmM6ab75jYfIjspgfJl9+CV26QMeO9hadlJlKHFNVBS+8AL/9FuuexCF+FuH78gnnU+iVoKgBa+nOB1zl8wYmzSw7Go76YIhdekeTXcQ7nMZ6L2PtBj7nDD7nItNWWcwPxJYtKohw+/aabVYQnRT3lw9WNSoffwyFhbHuRRzio/B7Miu5hE9wmi6AGrCx5dks+HWQaYuOXPRCEmTtZTj/4kR+qmVcFtGf1ZxntBOj7Y2VRSfrcg2VXztO2bIFVq6MdS/iFE/CIsB4ZjGMjw2DogFbyOYhHmDBRa8qw+Gb8qzXgxWDEhg9mszPd5d/5b95aHQxm2lvmBsncBHLmMAszxatJpFSwO1WAXP+0G/rx49XKhpWR9ZU4gBfBeIzz4T33w8c8ZVQ+FsErqggj6UM4AvjblkDdnIs/8cdNftWVKiF5ERZK4k0wdZe1q3jVW4E4Hqeoz27cQBpHGIq0ykgj+UMUvvJQn5CiU6KUYkx/hSIW7SACy+UG+lAC/GTDjxAM5MkcCVJPMY4b9FGqLnLjkbOSKIQ6LszzWBe5jYclDGZp0jFhQPoTyF9WMPjxafC4sUJv5AfrupFuCoa8Uxi3S7EGXoOiq++1549yvdaVBSbfsUFugPadDE6j4VMrZhEM7cyKBrwDT2Yyf0+BsWhQmQlKzR65OQo4+CZK2pk8Bj3s5qehkusKZVM/WYYAyr+5b2vXi45gQZ4IolOilGJEcEUiHUWLVKeg4SjVjZ8GffwKP342nB3HSGZh5ngP6oLvIUbhcijqywD5qovCxnOQ0zgsMcJ4gDO5hsm8whQ5mllkthOkAGui04GwuGADh3sITopZ12MqIsCccJhWog/h8VMZS5NUBneGrCKXjzGX9D6DZNF+FgScDG/A7P6LWEFpxq3BY2pZipzOY+PPFsSayFfF50Mhl1EJ2VNJUaIAnEQPAc9mhfpSM0XdYhGzOYODKHHrCwVMpPgi8AxJdBi/vffs4RLWMJA7uYJmnqqZPbjK45jCy9xm9o/gQa4boP9iU7Ge55KXRCjEiPC9Z2G64u1FWlpTGImzTgChMiGl0X42OPvNzAGbmMeZwp9+Zh+rMQBtGc39/Aos/lzwg3wQDY4OVm5wh2O0O8R74hRiRGiQOzBJ9zUkQF/mX8cTlTAvgY8w2j20sm0kyNBvhwLoy/ke7LylzOYdfRgHC/jAJpQxf1M528pV3EowUKO/dngn36CTZvg+ONj0qWIIhn1MSThFYh9QoZ7spLL+NhY9q0kiZlMRbLhLUqArPx7eZhU003DQoayhjNr9kvAkGNQ3tzbb1ezlngjbjLqP//8cy655BKys7NxOBy89957Xq9rmsa0adNo27YtTZo0YcCAAWzatMmrzd69e7nmmmtIT08nMzOTG2+8kf3792MHhg+Hhx+uHRWSEGvNPiHDV/BPLjcZlF8bt2PmletkId7KBFjIfyx9NruadQLULcLFfMRI5tU0SMCQY1A1V+ygohFVm3jgwAFOPvlkbrjhBob7WYWaNWsWTz75JPPnz6dz585MnTqVwYMHs2HDBho3bgzANddcw86dO1m8eDFVVVVcf/313HLLLbz22mvR7HqDcOiQivZIOAVin5DhO3mcTA4YL6/mRBam3Kicz5INb20CLCK8wF0MfqgPfVgNwPH8wnhmMZfJJHIhsM8/h5NPhqZNratk3GDuL4fDwbvvvstll10GqFlKdnY2kyZN4u677wagrKyM1q1bM2/ePEaOHElRUREnnHACX3/9NaeffjoAixYt4qKLLmLbtm1kZ2eH9dnx6v5avFjJYSccpgJa9/IIqVQD6lLyBsPYxCmqnRSBsi+eMdCR9VzHOz4uz/tr2iXgGDh4EF5/3TvlINZKxnHj/gpGcXExpaWlDDBVrcnIyKBPnz4UeqR5CwsLyczMNAwKwIABA3A6naxatSrgex85coTy8nKvR7xRVgZBDsHeeMJIzQalGgcPM77GoJjaCTbE89v+wkk8xHiqPWYlBRf38XCtdolCURHMnl07h237drX+mp8fm37VhZgZldLSUgBat27ttb1169bGa6WlpbRq1crr9eTkZLKysow2/pgxYwYZGRnGo0OHDhHuff359FOoro51L2JEWppnsVZ9AVUk8SjTAmt3CfbD67fN4FGmUYny73gZlgQaA3ZRMrals3LKlCmUlZUZj61bt8a6S16UlsJ338W6Fw2E261cHevWqb9uN/f9q4cR/VNJEjPM7g5AtLsSAB/tMICZ3O9lWKbwsGrnZwzZkbooGcczMQtea9OmDQC7du2irSkTcNeuXZxyyilGm927d3vtV11dzd69e439/ZGamkpqamrkO32U+Erbl5QkiKy9H5Xh+3iYFJNBCRgyLNpd9kbXDluwAPWbqzEwk/uNkONGuJjyUGNmpM1MCJVjuygZx+ys7dy5M23atGHp0qXGtvLyclatWkVeXh4AeXl57Nu3jzVr1hhtPv30U9xuN3369GnwPh8N+flqnbF/f7j6avV33LgEiJb0ozLsZVAcKRIynOgECTk+4lTRn42oYkrFPd772TTk2C5KxlGdqezfv5+ffvrJ+L+4uJi1a9eSlZVFTk4O48eP5+GHH6Zbt25GSHF2drYRIdajRw+GDBnCzTffzPPPP09VVRVjx45l5MiRYUd+xZJAyY3l5eqcsO21s5bKsJ8ZStpMCRkWAoYcP8Zd3PtQY1KpohFupvAQM5jq2cmeIce6knEgF5jDoaLA4l3JOKq/xurVq+nduze9e/cGYOLEifTu3Ztp06YBMHnyZMaNG8ctt9zCGWecwf79+1m0aJGRowLw6quv0r17dy688EIuuugizj33XF588cVodjsiJLS0vUllGPy5vO6vUajVNSt69lR/bXKBEOqAvzFQUsJj/NmQ0NcNSw32UzkOpmSsa4JZQclYZFqiREGBcnWFYvRoG4bhr1sH+e8AcBezyeAgAEdI4jHzovzwEepCIgi+mMbQZB6hsSdSsIImPMHkmnY2HENFRbWVjDt0UAbFCnkqcagyYw8SWtre4xwexcuGQanG4W1QTO0EoRamsTGLvzCFh2iEmzQOcR3/yyvcXKudXfDnEZw2Dbp0iXXPwkN8DVEioaXtc3I4iy/ohnJNaMCj3GVqICHDQgh8Qo5ncKexQteJHfTlE1uPIV+PoJU0wcSoRAld2j5YfQTbqLf75BFklnzBQFRUnwa8wgiMwloSMiyEQ61yxRk8z/8YhqUfhbQ9weOGSYAclh9/BJ/sirhF3F9RIilJafVccUXgNra4rvrJRRnHdCOlrZA+/MJJNe3T09WB2zLsTYgoesixZ3z9SlcKyKM/hTiAm1bexEMrSzAnUNo1hwWUTuDll8e6F6GRhfoo8+qrqkaCb/lQW1xXjXoZ/kOHt6X34KW71kvIsFA/fIp4Xbt4FJ13KH9QFU5TqDHYud6O06kiSjMyQreNNLJQH0e0a2dTaXs/uShjmWMYlIOk8JK+mGq78DahQfEplfjPG79kwkNppHGQRri5i9n8HT1B0p45LKBOucJCGDgwvmXx7fONxyEuF6xebdNUDJ9clMt5jSxUKJsbB48zxXZ5BEKcUFLCE9xjKBtncJArecXUwH45LDqvvAIdO3ordHTqFF/qxXa4vMUtGzaATYpU1sYUC51BCT1RFTs14BFzpJctY6aFmOIZU49ylzFP7k4xmZT4bWcXiopUnZXt2723x5ssvhiVKPLVV7HuQRQxxULfYSoF+w4XeUvY2zJmWogpxpjK8EQWKsaaSxJ7tbM+VpLFF6MSJXbuVDLVtsWTR3Ad/0uy537xNzLYwBmeBpKLIkQJUw7LL5zELrIAcKJxA89ix7FnJVl8MSpRwtazFACnk8xerejEDkC5vZ5lvOdFyUURoohPDssLjEPPTmnPr3Tke9uNPSvJ4tvnW48xLpfS+3r9dTVN/fbbWPcoCvgkOY79cozxktkNIfL1QtTxkc2fx0jjpWt5R0V+2Sgp0kqy+BJSHAHy81XYsLmutG1yUXR8khxv4FmcnvDhXVnd+eWSx20WMy3EPSaRrG0VFWz99Fs67CvCiZs/PdSaF7ijpq3FkyKtJIsvZ3490WummA0K1NRMsUUdIZ+CWx3ZQHt+BcANvDAg34Yx04IlMMXrv3zXBtyecsSt+Y2OmGp2W7ywl5Vk8eXsrwcJUTPFT5LjtbxlPJ/HKBscpGAL3G6e5k/Gv9fxrulFz/i18FjVPX6+Ce3t28Pbb8dOFt8XcX/Vg+XLa89QfCkvV5Eblk0q90ly/BNPGXci22jFNo6vSTSz7EEKtqCkhH20pJh2dGY7DuAOnuAZJngaaJYfq76y+KefDpMnx8cMRUdmKvUgIWqmmDrvoIzW7AVU1vxL3Oa3nSDEBM8Y/Cc3Gdn2LSgnxeOq9W1nVcwKHfHoaY7DLlmHhKiZYur8JJ41nv+T4QHbCUJMMI3Bl7jaeD6eFwO2szqHDsFPP8W6F96IUakHCVEzxZNo1p4faUolAIdpZJKzt1+imWBRTEmRpRzHAVIAaEw1HVmPXcfqd9+FbtOQiFGpB3rNFAhsWCyfg+VJNPsfFhibZhuhmpLkKMQRPkmRc7jdeOkaPMJYNhyrGzfCkSOx7kUN9vp2Y8Dw4SryolUr7+12yv8749f3DUn732leo+1lp4MU7IEpKVIjg988YzUZjbOP327LsVpdDevX1yRfFxTEVgNMinRFiAULYOFCG+X/mQoj3Z9/Ck7caMBDo4ttdJCCbTGN36n5vXAAGg4eGv2z7cZvUREsWQJ799Zsa99eeVEiFWYsRboaGJcLfv7ZslGKtTFlz1/EOzg9ykolGSfa6CAFW2Mq7PXzV+fRddvnONC4fP4g3tUX8S2eZQ+m4qs+6HL4schfsb6ZjgO2bIHDh2Pdiwjhkz1/GusBlTo2v+yPls1IFhKXV89+3kjdPclT9wewfJZ9vMrhi1GJABYdk7XxyZ4fzQv6Ujxr9GgvC2ckCwmIZ0wX0htQoSU384znRWtn2cerHL4YlXqiaSr6whb4ZM/nUAoofa+FjMDOZVoFm+IZ00u4FLfnFqkNv5kaWHdMx6scvhiVerJ9u+UTdGswHcgV/NOYpSzl3IDtBCGuMY3VDxgAqNnKNfwjYDurEK9y+LJQfxS4XGpKuXOnMiputy2CSLxGaQ9+BpSDoJALA7YThLjGNFa/5WwuZTEOoAvbArazCvEqh2+HS2GDku9Ree/fH66+Gu65R4Xu2WJdxZORfBKrjFlKMe1MDeyZkSzYGFOWPcBGOoPnvzMowMpjOl7l8MWo1AHb107xZCT/gcWAmqX8i5s8L0r2vGBBfLLsF3CdEQk2AM8KtoXHdDzK4Yv7K0zCrZ2Sm2vZ8QmAI7uZkT1fQZOaF2xXylJIGPQrryf3ah/NOYb9NMJNxqAelFl8TPvK4Q8cCDffHDs5fDEqYWL72imeDOQ7XzvN2PT0sA8h6VhbZR8LCYrpyvv0tjOYuvQPANyw7E880byH5ce4KdeTFi1iW19FjEqY2Lp2iimDPt1TL6WSJKpT28jMRLAPniuv1qkTlZ+mkqIdoXnVPsh/R71ugwx7UMnYmhZcPT2aWNMsxwDb1k4xZdBfwz+MBfqPuMAmC0WC4ENREe9rKqLRgUryBSyfYa9z4AD8+mvodtFCjEqY2LJ2ik8GvR5mqaHCLwHLZhsLgl88Y76IM9BHtZ7ka/UMezPFxbH7bDEqYWLL2immDPpu/NeYpehhl1bONhYEv5jG/Hq6AWq2cipfeBrYY8yLUbEIeu2Udu28t1u2rIhpAegSUxjxAq4L2E4QLI1pLL/H1UZ48QUsD9jOihQXw7JlsamvIgv1dWT4cDj/fJg0yQZlGUwLQM1QMstV+AkbsdxCkSAEwGcsV5FECi6aeEplB2pnJYqKlAfPnGkf6foqwbDipTDmlJaq8L2ePdVfSxoUMLKNO7LecH2tJ9fUwLrZxoLgF58M+9X0As9/J/A1Vh/zetyNr3SLXl8lPz/6fbDq5TCmbN8e6x5ECE+28WV8ZGz6D3/0PJMMesGG+GTYL+FSwwU2lKXqiUXHfLzUV7HeNxcHhEqCtBQ9epDOQQCqzMPBsgtFghACUx17qHH5NuWIpcd8vNRXkTWVOuJ2N3x9gqjhdtP+i1cM19cPbftD3giLLxQJQhiYMuy/W/w1p+9YiAPotPnfbGnSxJLjP17qq1jrW4sDdu+GqqpY9yICFBXB3LkMXzbW2PTu/osgOdniC0WCECaeDPuF5z5uuMAuXzMd5s9T8r4WS4KMl/oqcuWoI7ZYTzFl0WdwAIBqHLbJKBaEsPGcC9UeF1hzDqntFjwX9PoqgXA4oEOH6NdXEaMSBpWV6sZl3Dh49lmoro51j+qBKYs+kxLD9fUzOdgpo1gQQmI6F4roCqjwlI6sx4rnQrzUV4m5UXnwwQdxOBxej+7duxuvHz58mDvuuIMWLVrQvHlzRowYwa5duxqsf5MnQ9OmMGECPP00vPQSPPooLF7cYF2ILKaM4v/hbWPzG4zxPLNHRrEghMR0LrzHKGNzTTSk9c6FeKivEhcL9SeeeCJLliwx/k9OrunWhAkT+PDDD3nrrbfIyMhg7NixDB8+nC+//DLq/Zo8GWbPrr1d02DFCvV84MCodyOymFbzMlHP/d6HWTyjWBBC4jPGq3GQjEaaJxoyULt4x1xf5cABuPVW6Nev4eTw48KoJCcn06ZNm1rby8rK+Mc//sFrr73GBRdcAMDLL79Mjx49WLlyJWeddVbU+lRZCXPmBG9TWKjKCifHxbcYJqbVPN31VUHToO0EwZb4jPFympNFBbWk/Sx4Lpjrq/Tq1bD1VWLu/gLYtGkT2dnZdOnShWuuuYYSz3RzzZo1VFVVMWDAAKNt9+7dycnJobCwMOD7HTlyhPLycq9HXXn22dBJQpoGq1fX+a1jiyejuB0/GifPak4xNbB2RrEghI1Pdv1y1E2qWlf5DrucC7/91rCfF3Oj0qdPH+bNm8eiRYt47rnnKC4upm/fvlRUVFBaWkpKSgqZmZle+7Ru3ZrS0lL/bwjMmDGDjIwM49GhQ4c692vz5vDa7d1b57eOLZ6M4sHUuBu/RPfhSRa9kED4ZNcb5R6AoRSoJzY4Fxq6tkrMHTdDjR8VevXqRZ8+fejYsSMLFiygSZMmQfYMzJQpU5g4caLxf3l5eZ0NS9eu4bXLyqrT28YHPXrQylEGmhHjopA69EKi4VO/XkPdWh1DmaWz68009Ewl5kbFl8zMTI4//nh++uknBg4cSGVlJfv27fOarezatcvvGoxOamoqqamp9erH7bfD3XcHd4E5HHD66fX6mJjRSFOqrEeSmsIwyaIXEhjTyvahf82hqauCZNy2MCjQ8DOVuLuC7N+/n82bN9O2bVtOO+00GjVqxNKlS43XN27cSElJCXl5eVHtR0oKmCY7fsnLs9giPaiY+2+/NdZTtnQ41wZyy4JQTzwr2z8eNxhQsxXHFx+qgu8WyVMJxG+/1QhKNgQxvyTefffdXHLJJXTs2JEdO3bwwAMPkJSUxKhRo8jIyODGG29k4sSJZGVlkZ6ezrhx48jLy4tq5JfOrFnq75w53jMWh0MZFMuFExcVwUcfcWnFi8amt7b0VtttclcmCPXh350mccpGlb/1x6XjVMG6tHS19mLRc+TIEfjwQxUZ3batyqiPZjRYzI3Ktm3bGDVqFHv27KFly5ace+65rFy5kpYtWwLwxBNP4HQ6GTFiBEeOHGHw4ME8++yzDda/WbPg4YdVwuPChWoN5fTTLThD0aVZ0DgeVWtUAzSaqO028R8LwlFTVAQff2ysq3Riq9quS7ZY8ByJRcGumF8a33jjjaCvN27cmGeeeYZnnnmmgXpUm5QUNZ4si0mOAjCq3FXj9GxzqJGXmysuMCExMZ0jejXIVHQ9JmueI8Z9pA96wa5oZdhb49uJA/bti3UP6oFJjgJqkh73keF5Zj05CkGIKKZzZDcqpNM7CdJa50gsC3aJUQmTsrJY96AemGQmHNQcyHq6B2wnCAmFaeybk4EzKAnYLp6JZcEuMSphYmmjYpKZOJ8vjOfL6ROwnSAkFKax/50pCfIcvg7YLp6JZcEuMSphYmmjYpKjOI4tphd095c95CgE4ajxkWzRI3A7otcOt9Y5EsuCXWJUQuByQUGBelg2ZN0kR5GBmhPXhK2LNIsg+Eq26KRxACueI7Es2GWNbyhG5OernMD+/eGNN2D+fBWKZ6FicDV45ChSUbWQNf1ESU+3ZKikIEQcXbIlLQ2X5/xIodqS50gsC3aJUQlAfr4Ku9u2zXt7ebnlqozW0KMHSZ45SqWzMYweA3fdZamTRRCiSo8eMH48lcnNAHCgWfYciVXBrpjnqcQjLpcaR8GkDSwWsq4w+e72N24hWl+C4A+nk4r09jTd+4Oar5SUWPZcMRfsOvNMOOGE6GfUW+9bagCWL689Q/GlvNwyIeuKoiKYO9fwFm89mKbmv5accglCFCkqYvPejJr/5z9t6XNFL9g1ZEjDVIAUo+KHcMPsLBKybqTWnlBRI8y5nLNq5CcserIIQsTxnCtLqRGsPYPVtjhXDh9umM8Ro+KHcMPsLBGybpKfOIXvjM37yMGIAVu0yKJhbYIQQUznikbNTOUEfsQO58qhQw3zOWJU/NC3r1rMcjgCt0lPt0jIukl+ogX7AJ/CXBaTnxCEqOEjZ6SfJ8d4zhurnytiVGJIUpIKHYbAhsUyIesmH12KJ5w4VDtBSEgCnAONDGHJ4O3iHXF/xZjhw1XYXbt23tstF7Ju8tElEUQ9zhK+PEGIIgHOgSTcYbWLZ9xu+OoreP11lcgdDSFJHQkpDsLw4TBsGMyYAd98Y9GKu7r8REUFTs+E3tv95bCQL08QoojpXFHrKp4KkMYZY81zpaFrqljp8hgTkpLUrMSyFXdN8hNO447L4f3XMr48QYgiPlItbs/54TTMC5Y7V/SaKr6KxXpNlfz8yH+mdb6dGFJdHbpNXONJrdV/bLdItAiCf0xSLW7PGeNAs+S5EquaKuL+CgPLGxXwnAwOQMPtSIbrxljQlycIDYAnDV179H5wHcKBQ0lsWOxcqUtNlX79Ive51vqWYoQtjIrbjcPj/nI7k8WgCEIwnE5cSSmefzS1yh3N1e0oEKuaKnJVCQPLGxWPRIuOy+WytOyEIESdxYuprjSF4H+8CB55BBYvjl2f6kisaqqIUQmCXkulsNDCtVT0lTpTUlc1SbaQnRCEqLB4Maz4Up0nZjQ3rPjSMoYlVjVVxKgEwFxL5R//sGgtFZPshJkqGmEH2QlBiDgul7qLpCbpsVb+c2GhJVxhsaqpIkbFD7appeIjO6FTSSPPM2vLTghCxPn6azUjIYgCheZW7SxALGqqSPSXD7aqpWJz2QlBiDh79xpPq0ki1fdc8dMu3tFrqlRUqJoqbdtGt6aKGBUf6lJLpVOnBunS0RNgpa6WUbGg7IQgRIWsLOPpEVJoxhH83l+a2lkBp1MZl1GjGuCzov8R1sJWtVR02Qkfr3CNUXFAeoblZCcEIWqccQY41GUxoFaew6naWYxoF+fSEaPig61qqfjITugkUY1VZScEIaokJUGeKtBVa0avk5fXcFfoCCJGJUbYqpYKeMlO6NN4p0VlJwShQRg4EM4+p7Y6scMJZ5+jXrcgDWVUZE3FB72WyhVXKMPib8Hecjf3+krdQ5MBF06Lyk4IQoMxcCCOVUngqkbDAYOHKJeXBWcoOjJTiSG2qaVixunE7fEVO9FUpIHkpwiCf9xunJ5cFA2nCpuysEEBmanEHL2WyvLl8MEHsGePxeWyiopwa7oRccH8eWoRf+hQi1pJQYgSRUXw0Uc4PWsqbjSVJWjhc8Xthh9+UEW6JKQ4hiQlKfXOw4dh5cpY96YeeKRadMl7Y7lIl2qx7PRLECKMLmuknF6gP7PwuSJFuuKQ1NRY96AemKRaXL5aRiLVIgg1BJA1cuHEqueKFOmKUyxtVExSLVV+J6Yi1SIIQEBZo2rjvLHWuRKrIl1iVMLA0kbFlKW5l0zAj0CeTztBSEh8zgH9PCmjedB28UpdinRFEjEqYWBpo2LK0vyWE43nGZQEbCcICYnpHHBQZjzfxHEB28UzUqQrTnG54NtvYd06i9ZUMUm1rCPP2HwOusqqSLUIAuB1rpzPF8bm5fTxPLPWuRKrIl0S/RWE/HyVI2gWmExPV8mPlgkA0aVaFiwAHGioaX1HtiFSLYJgwnSuHMcW0wsZWPFc0Yt0BXKBORwqCkyKdDUQtqmpAl5SLTpp7Ld4NqcgRAHPuZKJ8h0ZcWAWPFekSFccEW5NFUu5wnr0gPHjjbDiFNwquzM3N8YdE4Q4IzeXFEzZ9Ndepy4IFjIoOlKkK06wVU0VMxs3UkkSybhw4IZ/viJZ9YJgxpNNn+TJpq/ECe+9Z+lzpEcPOPlkOPtstSgf7Yx6man4wVY1VXQ8WVAVnvDIWln1lvLnCUIU0DMFTbkq+2lmi3PkmGOUOsioUepvNHXAxKj4wVY1VcArU3gzHU0vHMaqmcKCEFF8sun1m66tZGOHcyQjo+E+S4yKH2xXU8WUKbyU843NZ6ALmlkrU1gQIo7pHDnBCLeH5ZzleWbtc8R3TSWaiFHxg15TBQIbFgtFFnr56TRqbll6sz5gO0FIKExj/wy+MZ7vIydgOyshMxU/PPPMM3Tq1InGjRvTp08fvvrqq6h+nq1qqvj46fSgtiz2BW0nCAmDaey3ZTfgKytZu52VaMiZiiWiv958800mTpzI888/T58+fZg7dy6DBw9m48aNtGrVKmqfa66psn49rF5t0ZoqeqZwRQWgcZhGNKGKRuhKcg6L+fMEIcKYzhH9vKj0ujxa+xyRmYoPc+bM4eabb+b666/nhBNO4Pnnn6dp06a89NJLUf9svabKDTeo8GHLGRSoyRQGwEExHTzPADyRLpby5wlChDGdI7rHexttPM+sl02v43YreaklS6CgIPKKxP6I+2+osrKSNWvWMGDAAGOb0+lkwIABFBYW+t3nyJEjlJeXez3qS5Mm0Lhxvd8mdpiy6t/hUmPz5XxsQX+eIESBHj24qP0a49/XuEI9saTPW0VA//3vMH8+3Hwz9O+vboyjUUPFTNy7v3777TdcLhetW7f22t66dWt++OEHv/vMmDGD6dOnR7QfDge0aKGK21iWHj0gNxetpARt/lwcQNeU7ZY7WQQhWvT47UtAradow29QaygW9HkbBSx90ItzRSubHiwwUzkapkyZQllZmfHYunVrRN43KysibxNbnE7o1Ilqp9Lzb1JZbmEJZkGIEB4/UZPD+wBwORpBz56W9HnHqjiXTtzPVI499liSkpLYtWuX1/Zdu3bRpk0bv/ukpqaSGoUiKC1aRPwtY8beptm03l+sdIvz31EbRbJFSEQ80ixUlONE3Vjt05qr7RY8F+pSnKtfv8h/ftyb4JSUFE477TSWLl1qbHO73SxdupS8vLwge0YWlws2b7bJTX1REYv2n2r8ewafqyc2kKMQhDphkmbJNSU9FpBn2XMhVsW5dOJ+pgIwceJERo8ezemnn86ZZ57J3LlzOXDgANdff32DfL4t6qroeOQofuEkNN7BAZzFar7mPNCrrSxapNSLLTbtF4Q64SPNcgErjJc2cIZ6YsFzIVbFuXQsYVSuuuoqfv31V6ZNm0ZpaSmnnHIKixYtqrV4Hw30uiq+Mvh6XRXLBYWY5Cj0gl3p7Dc1MMlRWEqCWRDqiOlcADjGU0K4xglhzXMhVsW5dCxjfseOHcsvv/zCkSNHWLVqFX369Am9Uz2xZV0V09y4nGYAJPnLHbaoHIUghI3PGNfPgwM0Cdou3olVcS7j86PztvagLnVVLINpbpzPJcbzy3gtYDtBsCWmMX6RxxUM8B8GBGxnFfS0NN/gomgW59KxhPsrVtiyropJjmIbuYYLrAebeQ+wuhyFIISN6VzohVqQ14BN6EEs1j4XevSAceOgurphinPpiFEJgu3qqkCNHMWCBYCDCpqQziEa4cbKchSCUGdM54Ku93UQPRXBHudCTk7D20TrflsNgO3qquiYJFv+zVBj88W8Z8HIA0GoBz16MKDTBsP19REXqicWlWYx43BAgFS+qCIzlSDodVWuuEL9QP4W7C17I+ORbPm5ZDja/HwcQE/HBj6srlaJOBaUphCEOuF2Q0kJp/3yb0C5vjYMn2lZaRZfWrWClJSG/1wxKiHQ66rYJk/FjEey5WByBs2qy2ikVUp2vZAYmLLoUzgMwCFSIDnZUuHDwcjOjs3nWtsUNxDDh6ub92XL4LXX4MUXlZGxxfW2qIiF1ecAyos8gPfVdsmuF+yKKYu+L58Yrq/POMdWY963wGBDIUYlTPS6KqNGKSNj8ZmxwpNRXMQZRqbK6azzPPNssVwijiAEwSeLPs8jzaKBR1UCS4/56mpYuRIWLoQPP4TKyobvgx0ujQ1OVhY0axbrXkQAU0bxIZTztaYaJHhlFAuCHfDJok+lGoAjxkqAdcf84sXw6KPw8cfw9dfw4IPQtClMntyw/RCjchQ4HBaM+PKHKcFmMecDygU2jDcCthMES2May4N413B9fcFZAdtZgcWLYcWK2sFELhfMnt2whkWMylFiC6NiSrD5lrMNF1hPNgZsJwiWxjSWz/S4ejVghR5K7KddvFNdDQGK4BrMmdNwrjAxKkdJ+/Zq8d7SUvh6RrHnfm0rrQA1KLrxX7U9PcMmFlQQMMZ8R9bj9NxG7cKsZWK9Mb96dXB9QlAzlmefbZj+iFE5CvLz4eyzVe3n/Hz19+9/t2DQiJ5RDICDedxmzFaGs1A9sWwijiD4wTPmr9KjHIEXGet5Zs0s+r17w2u3eXN0+6FjnW8uTtCl8H2FJnUpfMsZFlN2PcABGgOQigvH4LNsEjctCCays2nsWaA/iCk70KJZ9OGWOe/aNbr90HFoWqiJk/UpLy8nIyODsrIy0tPTj/p9XC6VFxVMuTg9XeWwWOhGR+HJLs7YVshdS68G4PcmbXlq6Me2yTAWEhzPGL9twXm0PLQVgCf7L2DfMd0tPcarq1XUV7AreVISHDx49Bn2dbmGSkZ9HaiLFL7lknI92fVlnTpRvfQ6kqkm89BOybAX7IEpg/5YlEGpxsG+lidZfkwnJ0Nenor+CsTEiQ0n2WI9sxxDbCmF70tREZ+SBygP8x/5p9ouGfaCVTFl0F/CAiOMeAWn22ZMDxyo1nl9xW+TkuCee2DWrIbri8xU6oAtpfDNeLKNV3IBA1mOA+jOz54XpX69YEF8MuhPNtVNKeAi1cYmY3rgQGVAtmxRi/Jdu8Lttze8qKQYlTqgS+Fv3x7Yf2lJKXwdU7bxz7SjK9txACezgm85G6vW7BYSGNOY7sZ/DdfMdk/4vN3G9EknwWWXxbYP1jbNDYwuhQ+Ba6xYLBrRG5Pf7lVuMsKL/8CSgO0EIa4xjdU/8h9AzVJe4raA7axKSkp82EWrXv5ihi6F76sAatFoRG98/Ha7UbGKSWj048OA7QQhbvGM1bNZQrLnNmkPfqKXbDCmjztOLdrHmjjogvUYPhyGDVPRYDt3wuHDUFxs4RmKjqlmN2i8wDimMh0H0JfVFPAHi/v3hITDM6YvrPgSULOUZ5lgamDtOvRmcnNj3QOF1S+DMcMshX/11bGpsBZxfDLsAX6gi/Hflcy3uH9PSDicTi5rttCI+PqZ9qYXrZlBb8btVgvz69erG1yXK+QuUcea32SckZqqpp62wCfD/i2uNdZWcim2uH9PSER6li4F1CzlVW6secHiPuuiIrXGO38+vPOOuh/s1EmpfsQScX9FiBNOgB9+iHUvIoSnfr2KnKmgYEMp/X94AQdw29868dygDyydgSwkAJ7s+ZveGWjMUgpP+ROcPEa5dy0+fvXUG1+2b1cyUm+/rdz0sUCMSoTIzVWLZNXVse5JhPBk2AMs7/k8faf/H8m4OHb/LzjyX0IjQ7LshfjEyJ7fSlt+AsCNgyXH3xUf4VH1xO1WqTX+0DQVmTp+vFr3TUpq0K4B4v6KGKmp0LmzDeTw/VFUxFtcAigv9ESeV9sly16IN0zZ83fxojFLyWeobcZqSYmSgwqEpsHWrSqQKBbITCVC5OfDpEmwa1fNtvR0tQZo6Rt5T0byJk7mCP8hlWqacZhMSthHDpJlL8QNpuz5DErI4CAAlSSxgTNUGxuM1XBTasKVlYo01v1m4whdDt9sUMDCcvhmTBnJz3Otsfk25nueWbemt2AzTGP1Nl4xNj/PdZ5n9hir4abUhCsrFWnEqNQTl0tJ3QeTnV60yMKuMNNtURk5/I4a0Y1wM4qX/bYThJjgGYMj+BcpqNjaMpp6ZtS121mVnBzlBQmEwwEdOihZqVggRqWe1EUO35L43BY9xUQjxLgbJWRS4redIDQ4aWkk8TsnoEocasDfucdvOyvjdCq3OtSWi9L/nzs3Nov0IEal3theDt+njj3A27q6K3A78yxX01uwKTk53MvTxkj9NwN9Gliv/nwgevSAMWNqy0W1bx/bcGIQo1JvbC+H7yfLvogz+JUMAJLRGO142dILn4I9GDX/ApJRfubfSfMoa+tYP3velzFjVJTpsmXw2mvqb3FxbA0KiFGpN7ocfiDVYrCBtJBPlj3Ac4xHXybqWLaOYz5fYMNYaiHu8eiUZC55hW4lnwHK7fVU2oPe7SyePe+L0wmnnuotF9WvX+xcXmYkpLie6HL4V1yhDIu/BXtb3Bz5ZNmTlsY/y09i9Lt/BOCOZVfxMA+otpIUKTQEphLBt/NXY/Pbpz4CF4/3GqtWzp73R25u/Ho/7PMtxxBby+Gb0bPse/aETp34pdGJlNJCvQTcxLOqnSRFCtHGlOQ4mhcNWftfyaTov1WwcaPXWLWTQQE4/fRY9yAw9vqmY8jw4d7+zU8/hYcespFB8cWTaPYiYw03WDa/0pH16KVbrR1LLcQtpiTHTEroiIqWcQPPcZdqY+Oxl5UFXbrEuheBEaMSQcz+zf794ayzYt2jKGJKNJvHSGPzdbwDlGGXRDMhDjGNvXGmXKl/MsLzzH5jT5e4X7dOudnj2V6KUYkip5wCjRvHuhdRwhQjvY1cfkb5/hzAFJ70204QIoJnTN3Hw0b4cAmt+YWT/LazOmaJ+/x8uPPO+JC4D4QYlSiSkgK9e8e6F1HCZ5XwX9xEBU0AlW1/F7P9thOEepOWxljmGFnzB0lhHrf6bWd19KUjXwFJXeI+Hg2LGJUoc+aZwcONLYufpMgnmEy15/8MDjKSVy0eSy3EIyO+GEsWahbixsHjTPFpYY8kx1AS96Ak7uOh2qMZMSpR5phjoFs3G0ri+0mKBHiUuwwZl+P5iTM+n2HDgxcaFNOCwskfTOPEzR8CKhzkEX1h3sA+SY7xLnEfCMlTiTK6JH5pac02W0jiQ01SpCdXQJHBK1zLaP4JwJDP7mfTZ5trRP0kh0WoC6ZclAxKuNS0MP/GaTPQfkwxjT1sdHLFv8R9IMSoRBFdEt83IVKXxLdFDoufpMhfcnJY8c8jnL1lAQ5UhM5DemKknsNii4MXoopRM1edQON42ZgTr+YkNnUdBhfl2jbJMd4l7gNhj28/DrG9JL4Zn6RIgCV7+rCNloBySNzHw57GksMihIEpFwXgXh4xLla7yGIhV9QsONg0yTHeJe4DEdNfoFOnTjgcDq/HzJkzvdp899139O3bl8aNG9OhQwdmzZoVo97WDdtL4gfDk0fwErdzkBQAUnAxicc8DeyXRyBEGFMuygRmkUo1AIdJ5gXGkQhjKN4l7gMRc7P+17/+lZ07dxqPcePGGa+Vl5czaNAgOnbsyJo1a5g9ezYPPvggL774Ygx7HB62l8QPhumgHmeKERHWjMPczUy/7QTBC8/YmMAs0jgEqIz5WfzFbzu70qOHMhzxKHEfiJivqaSlpdGmTRu/r7366qtUVlby0ksvkZKSwoknnsjatWuZM2cOt9xySwP3tG7YXhI/GD4H9SjT+At/JQmNphzhbmaoMFBbHrwQEdLSmMRjNOMwoAzKw0z0287OtG0Lt9wCY8cq78fOnWpb377xN0PRiflMZebMmbRo0YLevXsze/ZsqqurjdcKCws577zzSElJMbYNHjyYjRs38vvvvwd8zyNHjlBeXu71aGgSQhI/EH5yWB5hGi7P/02p5G5mqHZm/QkJOU5M/IyBSW+c5mNQHgDMBsQeuSih6N9fXUPiUeI+EDGdqdx5552ceuqpZGVlsWLFCqZMmcLOnTuZM2cOAKWlpXTu3Nlrn9atWxuvHXPMMX7fd8aMGUyfPj26nQ9Bwkji+0PPYVmwAGVY1ME/wjT+zF9JRqMpldzzaDqzm/7VOyRUQo4TC1PIsE7tGcqDGAEegJ1yUYLRoYPKcbMaEf9F7rvvvlqL776PH374AYCJEyfSr18/evXqxa233srf/vY3nnrqKY4cOVKvPkyZMoWysjLjsXXr1kgcWp0JJInftm0CRNT6KewF8Gj636hG3WY1cR1gcsV93vuJbH7iYJKv17mbGSaDksTDV26o7eKyXU0J/1xwgTXVOCI+U5k0aRJjxowJ2qZLAN3mPn36UF1dzZYtW8jNzaVNmzbs2rXLq43+f6B1GIDU1FRSU1Pr1vEoMXw4DBtW2x/65pvw44+x7l2U8ZPDQk4Oj3IXf34omWQ0GlPFZB4xLcBqgEOFi+bm2vpONKHxCRkGZVCaUgmACwePpM9WY8DPGLLbuHC7vQ/x/PPBx0ljGSJuVFq2bEnLli2Pat+1a9fidDpp1aoVAHl5efzlL3+hqqqKRo0aAbB48WJyc3MDur7iEd0fambAANi0KXgeiy3Qc1jMbNnCoyZXWGOquY+Hmcn9ngamcFHffQV7YAoZBpWHoocNu3DwCNO8x4CNx0FRkbqHMi/9fvIJZGTEZ3RXKGJm7gsLC5k7dy7ffvstP//8M6+++ioTJkzgf/7nfwyDcfXVV5OSksKNN97I999/z5tvvsnf//53Jk70EwViMVq1UtL4CYknDPRRphnhxim4mMp0Mimp1U6wIZ7fNpMSpjLdMCjVukHxaWdXAqkQl5bGrwpxKGJmVFJTU3njjTc4//zzOfHEE3nkkUeYMGGCVw5KRkYGn3zyCcXFxZx22mlMmjSJadOmxX04cbj07w+eCVhiYfKRP8o0I0FSl3Tpy6Ja7QSbkZZGHku9pFcO04hHzQbF086uWFWFOBQOTbO9A4by8nIyMjIoKysjPZjuQQxYuhQ++8z2LmNv3G6V0VVRge5TH8Nz5LDbaFJCO+ZN9cxaEurLsSG+CwY5OVz7j3PpvKPQaLKNlrzE7aadHGpB/q67bPt7b9miCm+FYtmy2u7zhqYu19CYJz8mOr/+Ck8+CWVlNdtsJLTqHz8hx/O4jb58Qj8KcQA5bOfuGRk83mS6hBxbmRAhwxrwJafzKRebdkqMkGGrqhCHwr6/mAXIz4err/Y2KFCjYmzrqFo/IcfLGcRT3GHEAzWt3s/9FZNwsq9mPwk5tg4+IcMOyrif6V4G5eWznufTtFHe+yVIyLBVVYhDIe6vGOFyqYCWYKKTNp/9K/y4RgDueyiVFM/irQZ8yAD+yzmenezvGrE8hotTGZQT+JoRLDTWTypJYmbSg/DnP6sNCejidLtVgnQgwQ+HQ6lyFBfHPoO+LtdQ+/9ycUpCqxib8ZXNdzqhpISZ/IVfyQSUM+QPLKmpe58ACrWWxxQyPI6/cYXJoOwlTYWPu6pVO39jIAGwqgpxKBLj14tDElrFOBSeg36Ou1hNT8MdlsFBpjKdMyioaSfaYbHH329QUcGprGAq0zmG/YCacX5Ld542C0Mm5ACvoUcP+MtfrKVCHApZqI8RCa1iHArTQS9kOB9xIffyFCkeScqhfEZfVjFnb38vF4vaVxbyGxQ/C/GkpTP+4EOkm9bCqnDyLKMp08tKG20TcYDXkJEBt98O06dbR4U4FLKmEiP0NZXt2wNn1SfssoGfkGOAy3idnvxouFE0oIA8ljPItLPn1QRY6I05PuV+AfJYygC+8PqNiujC21zrs7Osi4EK1Dn++Fj3IjSypmIBdBVjCCwaZ/OIysDoIceAWT7/PUbxMOM54hGkdAD9KVQy+ughdFKuuEHwo901iZkMNBmUSpJ4mPG8zXU+OydGyHAoeva0hkGpK4n7i8YBgVSM27eHa69N8BvtACrHWnoOj/Vb6rXW0pRKpjKXK3lFbyUL+dHGtBA/nFeZynSaodTFNeAbejCT+9H6XZawKsPBaNKkZpHeboj7Kw5wuWr7U3/8USkZJzz+Qo6//x7y3wHKmMzTNKamsJsGrKU7H3AVDB+hbgf9vUcC3yHXiUDf3bp1XJR/NaexHvNE+wjJzGIsGhlqw/ARcOKJCf/9+36Nd94Jp54a616Fj2TUWwx/KsY9eqjr4bp1MelS/OBP5di4881gFn+hHx/Sl9U4UI6V3vzAKUyn8NsfWZI81e9Csizmh0GARfj+x67h3OLXcZhcXxpQSG+WcKn3e6Sl+f8NEwh/KsRLlyr3txWju0IhM5U45uBBePbZmnyVBL7R8ybAQv4w3qQXP3jdObuBz2Qxv+74WYQ/kwIG8ZmXz1wD1tONd7na5w1kIR5MX6MP+jqqVcKGZaZiE5o2hdTU2lm3ttcGC0WAcsXvcxXv4+BK5pHLFhyoRcP+FHI+K1nIhZ6sfCkEFhSfRfiTWMkwPiHJZ2ayOet0Xtv7B9MWHVmIh9AqxA6HUiEeNsy64cP+kJlKHJOfr2oqBPqFEv5G2597Jj1DXcyaNGH0/LPJYWetmUsJ2bzCzWrD6DE1rplEWnsJdqxbtsD8eVzDP+jMtlozk2204mVuU9/doUOBf4OEHpzWUiEOhcxUbIDLpTwHwUx+wt9oByhXrC8kz0fV3bmZp2nDHmPm0okdTGM6h0nmP/91saHTQwHXD2y59hLkWLsd+orLP7yNVA55GWMN2E0WLzCuZmNFhVr4S4Byv0eDXVWIQyFGJU6pizZYAq+BBl4ENoWx/i9jAbiW/6UjO4w778ZUc8W6h9HWPUwpLfhfrgU9aglqFJF9p4TxPKMJ1Tc/ayWwnxsqnqXdgkn4pkxpwFbaMg8/hfH07zjBF+IDYVcV4lCIUYlTRBusnuTkqLtv02L+Pz0ur46s5498QBMqjYixtuxhGnOpJImvOYWl/AG/ay/xPKMJ1TeftZLz+ZA8viEF79KCGnCYFN7mEoo5yc8HeRbhc3L8vCbo5OSorymUCnHfvg3br2gjRiVOEW2wehJgMR/gF3ryOD3hyiu54vNb6V76uTF7ScHFOazhHNbgBn4nnf+UD+SXksvV+kGtu3z8z2iiMZsJ9p5+ZyDefcvZvZJLKv7KMZT5zXp2Az/SiQWjl5mOFWQR/uhwOuHGG1WgIni7sq2sQhwKWaiPU0QbLEIEW8zv0UMlAuW/QyYlXM8bNPdZS9DRgCqS2Eo2rzICLzcZ4BVCu3Fj3WYz4RigYLOQ3NzawpoAlDGSd+nENhp5xDj9HdcBGvMyI/mdjmqjnjQa6rsTgpKVBbfcAgsXqmFhdmd36KB+MiuEE0PdrqFiVOIYPfoLat/laJpEf4VNGJFOZtqzgUv5hKwAd/RQY2QqaMZmOvExF6gs8n79oaCAWjOGQLkx4bjTAs1C9Pfs1w9HwXtcSAG5FJPG/oBGBKiZgTGQX/y5txI1Ii6CNGoEN90ErVur//2pZlhphiJGxQerGhVQhsXfXc6ECbXLEAtHQYBEyhocXMAiTk36niauioAXakx7V5HEAZpQQns+4gIqaWm8l9f0MpSxuPLKWrMQJ79zMZ/QiW004xCNPOshofp1iBTW5lzKkt/zgh6rTH8jwwjPZM8uiFHxwcpGBQLf5SxZAl98Eeve2QCvtGc/6wdXXqkUAOfPw0EZ/8NbtKM0rAu6L1qt5w5cONBw4EDzJBhqXu95NO9fRRI7ac0rXFmjw6XnlYQ6Vpn+ho2/idzZZ9tPLFLyVGyGP20wgAsugN27lfikUA90ReRa6wcm6QK3G9LS0Soc/JObfN6gjAv4guP5mQzKDNeTP2NQ21hoOP3OGoKjUeOCKyeNTRzPEs4B/J3wpmgtpzP0sQph4U/T65hjoFev2PUpHpCZisU5fBj+7//gt9/E/V1vws7xAL93+f36QcEyr7c8iZVks4tMymjOfppwhEYpjWjkOkKS6xBO3F5GxY0DN05cOKmiEVWNmnOoSmM/zSgjg1Ja8y15tfturOUE6JuVcm0sgF00vcJF3F8+2NmoAOzZo9zgH3wgGmFRJ1hElLH+EcaaRUlJrQABv1x7Hbz3Xnjv6S/qTKK1Io7bXVuPz4yef1JcbK3F+GCI+yvB+OwzeO212qHH5eX+E8KFehBMGgYC5sbUyu/wk5zpjcdYdOoU/nuG6psQEUpKAhsUUOfh1q1qHTTeNb2igYw2ixOuRphU1o0guixJz57qr/miHaBiZa1qhwFKJnv9bzYW4bxnqL4JESFRNb3CRWYqFkc0wuKQcGcM4QQI1PU9haiTqJpe4SJGxeKIRlicEq7IYl2MhQg3xgWJqukVLnKbY3FEI8wGiMvKUjidcMMNyng4fDyXdtb0ChcZvRanb191V+Q7uM2IoKwgRI4uXWD2bBU23K6d92vt29svnLiuiPvL4iQlqfDGK66o0QTT0f8XQVlBiAw5OTByJCQnK8MxbJi1Nb2igRgVGzB8uLo78tUIa98eZs1Srvrt22PXP0GwEoHyQtu2hauvhpSUmraB1C4SGTEqNiHYXdPhw/DKK7BjR6x7KQjxjT/pFT1ye/JkaNw4dn2zCpJRnyAcOqQMix4tJiodguBNIOkVUK7kRF4rkYx6oRZNmsC11yrDsmyZ/7sxUfMQEhW3W50TwRg/XnkDEn3NJBRyb5pANG0KGRnqbsw3xl6XdCkqik3fBCGW1EV6RQiOGJUEwuVSfuFgiKSLkIiI9ErkEKOSQNRF0kUQEgmRXokcYlQSCJF0EQT/6NIrgXA4VBnvRJVeqQtiVBIIkXQRBP84nTBunEivRAIxKgmESLoIQm0cDhX5+PDDIr0SCSSkOIEIJekCcPHFkq8i2I9AeVmNGsGIEdC9u2on0iv1R4xKghFM0mXuXMjLg9dfDx5eKQhWIlCW/LBhMGNG7ZmJSK/UD8moT1BcrsB3YxUV8MYb3nphkoEvWBHJko8MdbmGRu2y8Mgjj3D22WfTtGlTMjMz/bYpKSnh4osvpmnTprRq1Yp77rmH6upqrzYFBQWceuqppKamctxxxzFv3rxodTmh0O/GRo1Sf83T+7Q0GDMGTjpJ/V9UpNxm8+dDfr76+/e/S6KkEN+EmyXvcjVIdxKGqBmVyspK/vjHP3Lbbbf5fd3lcnHxxRdTWVnJihUrmD9/PvPmzWPatGlGm+LiYi6++GL69+/P2rVrGT9+PDfddBMff/xxtLoteNB9zcnJkoEvWBPJko8NUXd/zZs3j/Hjx7Nv3z6v7R999BF/+MMf2LFjB61btwbg+eef59577+XXX38lJSWFe++9lw8//JD169cb+40cOZJ9+/axKNQtiAlxfx0dLpcqRBgsYTI9Xa3PiCtMiDfWrVMz61C89pqasQuBiQv3VygKCwvp2bOnYVAABg8eTHl5Od9//73RZsCAAV77DR48mMLCwqDvfeTIEcrLy70eQt2RDHzBykiWfGyImVEpLS31MiiA8X9paWnQNuXl5Rw6dCjge8+YMYOMjAzj0aFDhwj3PjGQDHzByuTkwLHHBs7Lkiz56FAno3LffffhcDiCPn744Ydo9TVspkyZQllZmfHYunVrrLtkSSQDX7AqzZurUg8vvKD+lyz5hqNOeSqTJk1izJgxQdt06dIlrPdq06YNX331lde2Xbt2Ga/pf/Vt5jbp6ek0adIk4HunpqaSmpoaVj+EwOgZ+Nu3eydKmpEMfKGhCRXe3r07XHIJNGsG3boFz8uScOLIUyej0rJlS1q2bBmRD87Ly+ORRx5h9+7dtGrVCoDFixeTnp7OCSecYLRZuHCh136LFy8mLy8vIn0QghNOBv7UqVBVBUeOeO8reS1CNAiUyDhkCPTqpf6eeqr3zESy5BuWqGXUl5SUsHfvXkpKSnC5XKxduxaA4447jubNmzNo0CBOOOEErr32WmbNmkVpaSn3338/d9xxhzHLuPXWW3n66aeZPHkyN9xwA59++ikLFizgww8/jFa3BR9CZeAPHw779sH770NxsXot2IkvlSWFoyVQIqMe3n7RRXDaaf73lSz5hiNqIcVjxoxh/vz5tbYvW7aMfp5f95dffuG2226joKCAZs2aMXr0aGbOnElyco2tKygoYMKECWzYsIH27dszderUkC44XySkuP4Ey8AHNYv5+mtlaF5/PfD7XHmlGBah7rjdatYcKJDT4VA3OsXFMgOJBnW5hopMixAxXC7l5tqxI3AbyWsRjoYtW5SSQyiWLZMZSTSwRJ6KYD+WLw9uUEDyWoSjQ8r9WgcxKkLEkLwWIVpIIqN1EKMiRAzJaxGixTnnqPEliYzxj9RTESJGqLwWhwMyMiSvRaghVOh5ZiYMHAgnnAAtWgQPb5dExvhAjIoQMcLJa3nxRVUUafly8FXakdyWxCJY6Pkpp8B550GfPkopG8ILbxdij0R/CREnP7/2id+hg/eJf+gQfPEFrFoF1dWS25JoBCueBfDqq3D11f5fCxXeLkQeCSn2QYxKwxPuiV9Wpkq6PvZY4PeS3BZ7ITkn1qMu11BxfwlRIdwM5ubN1V1pMBYtgtxccYXZhboUz5KcE+shp6kQU6RmS+IhOSf2RoyKEFMikdvidquM63Xr1F+3OxI9E+pCuL9B06YqPDgcJOfEmoj7S4gp4V44AtVZkwX+2BPOb9C6tYrk6tlTuTGfeCJ46Hn79pJzYlVkoV6IKS4XdOoU+gLz88+qzddfw4YN6k44VASRLPBHn1C/wfjxcOed6jc2Jy7m56vQc/Afev722xIiHE+I9pdgGfTcFghenS85GTp2VBeiCRNUDsPHHwd/70WLxBUWTdxu9R0HwuGAd95R+Ua+v62ec9Kunff29u3FoFgdMSpCzKnrBSYtTblQysqCv68s8NeduqxP1SWKyx/Dh6vPWLYMXntN/S0uFoNidWRNRYgL6lqdLxIL/NXVsHo17N0LWVlw+uk12duJSF3Xpw4cCO99g/1WUjzLfiTwKSTEG3W5wIS7wJ+Z6X/74sVQWOjtz//kE8jLU1pTiUaoqor6+lSjRtC1q3qel6dmkqGQKK7EQhbqBUsS7gL/jz/CL7/Axo3q+f79yqCsWBH4vc8+29uwWHFGUxcdtVAZ7qDEHAsKVBJqo0ZqW7i/gWTGWx/JqBdsTzjilXPnQuPG6kKYm6vabNkCDz0U/L0LC6F/f2U46jujqY9I5tHuW1c3Vqi1EYA9e+C33+Ckk2q2hfsbiEFJLMSoCJalrqq1Dge8/37oiDBNUzOTigr/MxpNq9kezLDUJ4fmaPcN141l5uDB4H3R8bc2IsrBgi9iVARLU9cF/s2bw3tfl0vNUIJhntH4cjQX9/ruGyrEF9Tr/fqpi367dpCdDd9/D2+9FXw/CLw2UtffQLA3YlQEy1OXBf6uXcNr17y5/3UCM/qM5qyzvLeHe3H3J5JZn33DcWOVlyuDZP6+WrYMXVwtVIa7RHEJOpKnIiQUt98e+g46KQnatAnv/Vq1gksvVRfU3r2hSxeVPxPOxd1fDk24hmH3biV9ctxxqqBV377hG0xfN1a4Cagy8xDCQWYqQkKRkgITJ8Ls2YHbTJyo3ELhcOqp6mGmUSN48snQ+3brBoMHq9mB/gilEqBz/vkwapT3tnAv+v7cWLI2IkQKMSpCwjFrlvo7Z45aO9FJSlIGZdYsqKyEu+/2ft2XpCQ18/El3LyMc85R4clmfEssB8LfZ/TtWz83lqyNCJFA8lSEhKWyEp59Vi3ed+2qDERKSs3rkycHn9Hcc0+NgTJTn/yN+uZ+iFCjEA3qdA3VEoCysjIN0MrKymLdFcFi3HOPpiUlmR1U6v977gm+3zvvaJrDoR7mffVt77wTnX31/du39963Q4fQ+wlCIOpyDZWZiiCEINSMJhD5+bXXKDp0CG+Noj77gprxiBtLiBR1uYaKURGEKFKfi7sYBiFeEJkWQYgT6pO/IbkfghWRPBVBEAQhYohREQRBECKGGBVBEAQhYohREQRBECKGGBVBEAQhYohREQRBECKGGBVBEAQhYohREQRBECKGGBVBEAQhYiRERr2uRFMeqvqRIAiCUAv92hmOqldCGJWKigoAOnToEOOeCIIgWJeKigoyMjKCtkkIQUm3282OHTtIS0vD4VsvNY4oLy+nQ4cObN261RbCl3Y6HjmW+ESOpWHQNI2Kigqys7NxOoOvmiTETMXpdNK+fftYdyNs0tPT425Q1Qc7HY8cS3wixxJ9Qs1QdGShXhAEQYgYYlQEQRCEiCFGJY5ITU3lgQceIDU1NdZdiQh2Oh45lvhEjiX+SIiFekEQBKFhkJmKIAiCEDHEqAiCIAgRQ4yKIAiCEDHEqAiCIAgRQ4xKnNCpUyccDofXY+bMmV5tvvvuO/r27Uvjxo3p0KEDs2bNilFvQ/PMM8/QqVMnGjduTJ8+ffjqq69i3aWQPPjgg7V+g+7duxuvHz58mDvuuIMWLVrQvHlzRowYwa5du2LY4xo+//xzLrnkErKzs3E4HLz33nter2uaxrRp02jbti1NmjRhwIABbNq0yavN3r17ueaaa0hPTyczM5Mbb7yR/fv3N+BRKEIdy5gxY2r9TkOGDPFqEy/HMmPGDM444wzS0tJo1aoVl112GRs3bvRqE864Kikp4eKLL6Zp06a0atWKe+65h+rq6oY8lLARoxJH/PWvf2Xnzp3GY9y4ccZr5eXlDBo0iI4dO7JmzRpmz57Ngw8+yIsvvhjDHvvnzTffZOLEiTzwwAP897//5eSTT2bw4MHs3r071l0LyYknnuj1G3zxxRfGaxMmTOCDDz7grbfe4rPPPmPHjh0MHz48hr2t4cCBA5x88sk888wzfl+fNWsWTz75JM8//zyrVq2iWbNmDB48mMOHDxttrrnmGr7//nsWL17Mf/7zHz7//HNuueWWhjoEg1DHAjBkyBCv3+n111/3ej1ejuWzzz7jjjvuYOXKlSxevJiqqioGDRrEgQMHjDahxpXL5eLiiy+msrKSFStWMH/+fObNm8e0adMa/HjCQhPigo4dO2pPPPFEwNefffZZ7ZhjjtGOHDlibLv33nu13NzcBuhd3TjzzDO1O+64w/jf5XJp2dnZ2owZM2LYq9A88MAD2sknn+z3tX379mmNGjXS3nrrLWNbUVGRBmiFhYUN1MPwALR3333X+N/tdmtt2rTRZs+ebWzbt2+flpqaqr3++uuapmnahg0bNED7+uuvjTYfffSR5nA4tO3btzdY333xPRZN07TRo0drw4YNC7hPvB6Lpmna7t27NUD77LPPNE0Lb1wtXLhQczqdWmlpqdHmueee09LT072uB/GCzFTiiJkzZ9KiRQt69+7N7Nmzvaa3hYWFnHfeeaSkpBjbBg8ezMaNG/n9999j0V2/VFZWsmbNGgYMGGBsczqdDBgwgMLCwhj2LDw2bdpEdnY2Xbp04ZprrqGkpASANWvWUFVV5XVc3bt3JycnJ+6Pq7i4mNLSUq++Z2Rk0KdPH6PvhYWFZGZmcvrppxttBgwYgNPpZNWqVQ3e51AUFBTQqlUrcnNzue2229izZ4/xWjwfS1lZGQBZWVlAeOOqsLCQnj170rp1a6PN4MGDKS8v5/vvv2/A3odHQghKWoE777yTU089laysLFasWMGUKVPYuXMnc+bMAaC0tJTOnTt77aMPstLSUo455pgG77M/fvvtN1wul9cJAKqvP/zwQ4x6FR59+vRh3rx55ObmsnPnTqZPn07fvn1Zv349paWlpKSkkJmZ6bVP69atKS0tjU2Hw0Tvn7/fRH+ttLSUVq1aeb2enJxMVlZW3B3fkCFDGD58OJ07d2bz5s38+c9/ZujQoRQWFpKUlBS3x+J2uxk/fjznnHMOJ510EkBY46q0tNTvb6e/Fm+IUYki9913H4899ljQNkVFRXTv3p2JEyca23r16kVKSgp/+tOfmDFjhuVlG6zC0KFDjee9evWiT58+dOzYkQULFtCkSZMY9kwwM3LkSON5z5496dWrF127dqWgoIALL7wwhj0Lzh133MH69eu91unsiLi/osikSZMoKioK+ujSpYvfffv06UN1dTVbtmwBoE2bNrUiQvT/27RpE9XjqAvHHnssSUlJfvsaT/0Mh8zMTI4//nh++ukn2rRpQ2VlJfv27fNqY4Xj0vsX7Ddp06ZNrUCK6upq9u7dG/fH16VLF4499lh++uknID6PZezYsfznP/9h2bJlXmU4whlXVjn3dcSoRJGWLVvSvXv3oA/zGomZtWvX4nQ6jWl8Xl4en3/+OVVVVUabxYsXk5ubGzeuL4CUlBROO+00li5damxzu90sXbqUvLy8GPas7uzfv5/NmzfTtm1bTjvtNBo1auR1XBs3bqSkpCTuj6tz5860adPGq+/l5eWsWrXK6HteXh779u1jzZo1RptPP/0Ut9tNnz59GrzPdWHbtm3s2bOHtm3bAvF1LJqmMXbsWN59910+/fTTWi7scMZVXl4e69at8zKUixcvJj09nRNOOKFhDqQuxDpSQNC0FStWaE888YS2du1abfPmzdq//vUvrWXLltp1111ntNm3b5/WunVr7dprr9XWr1+vvfHGG1rTpk21F154IYY9988bb7yhpaamavPmzdM2bNig3XLLLVpmZqZX9Eo8MmnSJK2goEArLi7WvvzyS23AgAHascceq+3evVvTNE279dZbtZycHO3TTz/VVq9ereXl5Wl5eXkx7rWioqJC++abb7RvvvlGA7Q5c+Zo33zzjfbLL79omqZpM2fO1DIzM7X3339f++6777Rhw4ZpnTt31g4dOmS8x5AhQ7TevXtrq1at0r744gutW7du2qhRo+LqWCoqKrS7775bKyws1IqLi7UlS5Zop556qtatWzft8OHDcXcst912m5aRkaEVFBRoO3fuNB4HDx402oQaV9XV1dpJJ52kDRo0SFu7dq22aNEirWXLltqUKVMa/HjCQYxKHLBmzRqtT58+WkZGhta4cWOtR48e2qOPPup1kmiapn377bfaueeeq6Wmpmrt2rXTZs6cGaMeh+app57ScnJytJSUFO3MM8/UVq5cGesuheSqq67S2rZtq6WkpGjt2rXTrrrqKu2nn34yXj906JB2++23a8ccc4zWtGlT7fLLL9d27twZwx7XsGzZMg2o9Rg9erSmaSqseOrUqVrr1q211NRU7cILL9Q2btzo9R579uzRRo0apTVv3lxLT0/Xrr/+eq2ioiKujuXgwYPaoEGDtJYtW2qNGjXSOnbsqN188821blji5Vj8HQegvfzyy0abcMbVli1btKFDh2pNmjTRjj32WG3SpElaVVVVAx9NeIj0vSAIghAxZE1FEARBiBhiVARBEISIIUZFEARBiBhiVARBEISIIUZFEARBiBhiVARBEISIIUZFEARBiBhiVARBEISIIUZFEARBiBhiVARBEISIIUZFEARBiBhiVARBEISI8f8rnNTlEpBIwgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gdf_buffer = gdf.copy()\n", "gdf_buffer['geometry'] = gdf_buffer.buffer(150)\n", "\n", "import matplotlib.pyplot as plt\n", "fig, ax = plt.subplots()\n", "x, y = gdf['geometry'].iloc[0].exterior.xy\n", "\n", "# draw radius 100 circle around every point\n", "for xx, yy in zip(x, y):\n", " circle = Point(xx, yy).buffer(100)\n", " x, y = circle.exterior.xy\n", " ax.plot(x, y, color='red', alpha=0.4)\n", "\n", "ax.scatter(x, y, color='red')\n", "gdf.plot(ax=ax, color='red', alpha=0.5)\n", "gdf_buffer.plot(ax=ax, color='blue', alpha=0.5)\n", "x, y = gdf_buffer['geometry'].iloc[0].exterior.xy\n", "ax.scatter(x, y, color='blue')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[(73.19791470947145, 24.01977640858627),\n", " (73.1951165609439, 24.01754094149261),\n", " (73.1955205367043, 24.01738340683521),\n", " (73.19480033400262, 24.01523619312771),\n", " (73.19463695073262, 24.01440311871703),\n", " (73.19454286010809, 24.0139003560814),\n", " (73.1942443392165, 24.0126807914708),\n", " (73.1942341944796, 24.0126863557728),\n", " (73.19653511275247, 24.01252023885471),\n", " (73.19648432210984, 24.01217871972386),\n", " (73.19764861281237, 24.01199930187962),\n", " (73.1981728693097, 24.01433254741455),\n", " (73.1986819814156, 24.01611200638915),\n", " (73.19959745133227, 24.01895266153662),\n", " (73.19791470947145, 24.01977640858627)]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polygon = gdf.geometry.item()\n", "points = list(polygon.exterior.coords)\n", "points" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{'type': 'FeatureCollection',\n", " 'features': [{'id': '0',\n", " 'type': 'Feature',\n", " 'properties': {'Name': 'kelava 25 he',\n", " 'Description': '
kelava irrigation he 25 
Year 2022-23
'},\n", " 'geometry': {'type': 'Polygon',\n", " 'coordinates': [[[73.19791470947145, 24.01977640858627],\n", " [73.1951165609439, 24.01754094149261],\n", " [73.1955205367043, 24.01738340683521],\n", " [73.19480033400262, 24.01523619312771],\n", " [73.19463695073262, 24.01440311871703],\n", " [73.19454286010809, 24.0139003560814],\n", " [73.1942443392165, 24.0126807914708],\n", " [73.1942341944796, 24.0126863557728],\n", " [73.19653511275247, 24.01252023885471],\n", " [73.19648432210984, 24.01217871972386],\n", " [73.19764861281237, 24.01199930187962],\n", " [73.1981728693097, 24.01433254741455],\n", " [73.1986819814156, 24.01611200638915],\n", " [73.19959745133227, 24.01895266153662],\n", " [73.19791470947145, 24.01977640858627]]]}}]}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import json\n", "json.loads(gdf.to_json())" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    • type:ImageCollection
    • id:COPERNICUS/S2_SR_HARMONIZED
    • version:1729736727181191
          • 0:1490659200000
          • 1:1647907200000
        • description:

          Sentinel-2 is a wide-swath, high-resolution, multi-spectral\n", "imaging mission supporting Copernicus Land Monitoring studies,\n", "including the monitoring of vegetation, soil and water cover,\n", "as well as observation of inland waterways and coastal areas.

          The Sentinel-2 L2 data are downloaded from scihub. They were\n", "computed by running sen2cor. WARNING: ESA did not produce L2 data\n", "for all L1 assets, and earlier L2 coverage is not global.

          The assets contain\n", "12 UINT16 spectral bands representing SR scaled by 10000 (unlike in L1 data,\n", "there is no B10). There are also several more L2-specific bands (see band\n", "list for details). See the\n", "Sentinel-2 User Handbook\n", "for details. In addition, three QA bands are present where one\n", "(QA60) is a bitmask band with cloud mask information. For more\n", "details, see the full explanation of how cloud masks are computed.

          EE asset ids for Sentinel-2 L2 assets have the following format:\n", "COPERNICUS/S2_SR/20151128T002653_20151128T102149_T56MNN. Here the\n", "first numeric part represents the sensing date and time, the\n", "second numeric part represents the product generation date and\n", "time, and the final 6-character string is a unique granule identifier\n", "indicating its UTM grid reference (see MGRS).

          Clouds can be removed by using\n", "COPERNICUS/S2_CLOUD_PROBABILITY.\n", "See\n", "this tutorial\n", "explaining how to apply the cloud mask.

          For more details on Sentinel-2 radiometric resolution, see this page.

          Provider: European Union/ESA/Copernicus

          Revisit Interval
          \n", " 5 days\n", "

          Bands
          NameDescription
          B1

          Aerosols

          B2

          Blue

          B3

          Green

          B4

          Red

          B5

          Red Edge 1

          B6

          Red Edge 2

          B7

          Red Edge 3

          B8

          NIR

          B8A

          Red Edge 4

          B9

          Water vapor

          B11

          SWIR 1

          B12

          SWIR 2

          AOT

          Aerosol Optical Thickness

          WVP

          Water Vapor Pressure. The height the water would occupy if the vapor were condensed into\n", "liquid and spread evenly across the column.

          SCL

          Scene Classification Map (The "No Data" value of 0 is masked out)

          TCI_R

          True Color Image, Red channel

          TCI_G

          True Color Image, Green channel

          TCI_B

          True Color Image, Blue channel

          MSK_CLDPRB

          Cloud Probability Map (missing in some products)

          MSK_SNWPRB

          Snow Probability Map (missing in some products)

          QA10

          Always empty

          QA20

          Always empty

          QA60

          Cloud mask

          \n", " Bitmask for QA60\n", "
          • \n", " Bit 10: Opaque clouds\n", "
            • 0: No opaque clouds
            • 1: Opaque clouds present
          • \n", " Bit 11: Cirrus clouds\n", "
            • 0: No cirrus clouds
            • 1: Cirrus clouds present

          Image Properties
          NameTypeDescription
          AOT_RETRIEVAL_ACCURACYDOUBLE

          Accuracy of Aerosol Optical thickness model

          CLOUDY_PIXEL_PERCENTAGEDOUBLE

          Granule-specific cloudy pixel percentage taken from the original metadata

          CLOUD_COVERAGE_ASSESSMENTDOUBLE

          Cloudy pixel percentage for the whole archive that\n", "contains this granule. Taken from the original metadata

          CLOUDY_SHADOW_PERCENTAGEDOUBLE

          Percentage of pixels classified as cloud shadow

          DARK_FEATURES_PERCENTAGEDOUBLE

          Percentage of pixels classified as dark features or shadows

          DATASTRIP_IDSTRING

          Unique identifier of the datastrip Product Data Item (PDI)

          DATATAKE_IDENTIFIERSTRING

          Uniquely identifies a given Datatake. The ID contains\n", "the Sentinel-2 satellite, start date and time, absolute orbit\n", "number, and processing baseline.

          DATATAKE_TYPESTRING

          MSI operation mode

          DEGRADED_MSI_DATA_PERCENTAGEDOUBLE

          Percentage of degraded MSI and ancillary data

          FORMAT_CORRECTNESSSTRING

          Synthesis of the On-Line Quality Control (OLQC) checks\n", "performed at granule (Product_Syntax) and datastrip (Product\n", "Syntax and DS_Consistency) levels

          GENERAL_QUALITYSTRING

          Synthesis of the OLQC checks performed at the datastrip level (Relative_Orbit_Number)

          GENERATION_TIMEDOUBLE

          Product generation time

          GEOMETRIC_QUALITYSTRING

          Synthesis of the OLQC checks performed at the datastrip level (Attitude_Quality_Indicator)

          GRANULE_IDSTRING

          Unique identifier of the granule PDI (PDI_ID)

          HIGH_PROBA_CLOUDS_PERCENTAGEDOUBLE

          Percentage of pixels classified as high probability clouds

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B1DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B1 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B2DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B2 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B3DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B3 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B4DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B4 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B5DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B5 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B6DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B6 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B7DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B7 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B8DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B8 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B8ADOUBLE

          Mean value containing viewing incidence azimuth angle average for band B8a and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B9DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B9 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B10DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B10 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B11DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B11 and for all detectors

          MEAN_INCIDENCE_AZIMUTH_ANGLE_B12DOUBLE

          Mean value containing viewing incidence azimuth angle average for band B12 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B1DOUBLE

          Mean value containing viewing incidence zenith angle average for band B1 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B2DOUBLE

          Mean value containing viewing incidence zenith angle average for band B2 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B3DOUBLE

          Mean value containing viewing incidence zenith angle average for band B3 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B4DOUBLE

          Mean value containing viewing incidence zenith angle average for band B4 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B5DOUBLE

          Mean value containing viewing incidence zenith angle average for band B5 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B6DOUBLE

          Mean value containing viewing incidence zenith angle average for band B6 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B7DOUBLE

          Mean value containing viewing incidence zenith angle average for band B7 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B8DOUBLE

          Mean value containing viewing incidence zenith angle average for band B8 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B8ADOUBLE

          Mean value containing viewing incidence zenith angle average for band B8a and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B9DOUBLE

          Mean value containing viewing incidence zenith angle average for band B9 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B10DOUBLE

          Mean value containing viewing incidence zenith angle average for band B10 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B11DOUBLE

          Mean value containing viewing incidence zenith angle average for band B11 and for all detectors

          MEAN_INCIDENCE_ZENITH_ANGLE_B12DOUBLE

          Mean value containing viewing incidence zenith angle average for band B12 and for all detectors

          MEAN_SOLAR_AZIMUTH_ANGLEDOUBLE

          Mean value containing sun azimuth angle average for all bands and detectors

          MEAN_SOLAR_ZENITH_ANGLEDOUBLE

          Mean value containing sun zenith angle average for all bands and detectors

          MEDIUM_PROBA_CLOUDS_PERCENTAGEDOUBLE

          Percentage of pixels classified as medium probability clouds

          MGRS_TILESTRING

          US-Military Grid Reference System (MGRS) tile

          NODATA_PIXEL_PERCENTAGEDOUBLE

          Percentage of No Data pixels

          NOT_VEGETATED_PERCENTAGEDOUBLE

          Percentage of pixels classified as non-vegetated

          PROCESSING_BASELINESTRING

          Configuration baseline used at the time of the product\n", "generation in terms of processor software version and major Ground\n", "Image Processing Parameters (GIPP) version

          PRODUCT_IDSTRING

          The full id of the original Sentinel-2 product

          RADIATIVE_TRANSFER_ACCURACYDOUBLE

          Accuracy of radiative transfer model

          RADIOMETRIC_QUALITYSTRING

          Based on the OLQC reports contained in the Datastrips/QI_DATA with RADIOMETRIC_QUALITY checklist name

          REFLECTANCE_CONVERSION_CORRECTIONDOUBLE

          Earth-Sun distance correction factor

          SATURATED_DEFECTIVE_PIXEL_PERCENTAGEDOUBLE

          Percentage of saturated or defective pixels

          SENSING_ORBIT_DIRECTIONSTRING

          Imaging orbit direction

          SENSING_ORBIT_NUMBERDOUBLE

          Imaging orbit number

          SENSOR_QUALITYSTRING

          Synthesis of the OLQC checks performed at granule\n", "(Missing_Lines, Corrupted_ISP, and Sensing_Time) and datastrip\n", "(Degraded_SAD and Datation_Model) levels

          SOLAR_IRRADIANCE_B1DOUBLE

          Mean solar exoatmospheric irradiance for band B1

          SOLAR_IRRADIANCE_B2DOUBLE

          Mean solar exoatmospheric irradiance for band B2

          SOLAR_IRRADIANCE_B3DOUBLE

          Mean solar exoatmospheric irradiance for band B3

          SOLAR_IRRADIANCE_B4DOUBLE

          Mean solar exoatmospheric irradiance for band B4

          SOLAR_IRRADIANCE_B5DOUBLE

          Mean solar exoatmospheric irradiance for band B5

          SOLAR_IRRADIANCE_B6DOUBLE

          Mean solar exoatmospheric irradiance for band B6

          SOLAR_IRRADIANCE_B7DOUBLE

          Mean solar exoatmospheric irradiance for band B7

          SOLAR_IRRADIANCE_B8DOUBLE

          Mean solar exoatmospheric irradiance for band B8

          SOLAR_IRRADIANCE_B8ADOUBLE

          Mean solar exoatmospheric irradiance for band B8a

          SOLAR_IRRADIANCE_B9DOUBLE

          Mean solar exoatmospheric irradiance for band B9

          SOLAR_IRRADIANCE_B10DOUBLE

          Mean solar exoatmospheric irradiance for band B10

          SOLAR_IRRADIANCE_B11DOUBLE

          Mean solar exoatmospheric irradiance for band B11

          SOLAR_IRRADIANCE_B12DOUBLE

          Mean solar exoatmospheric irradiance for band B12

          SNOW_ICE_PERCENTAGEDOUBLE

          Percentage of pixels classified as snow or ice

          SPACECRAFT_NAMESTRING

          Sentinel-2 spacecraft name: Sentinel-2A, Sentinel-2B

          THIN_CIRRUS_PERCENTAGEDOUBLE

          Percentage of pixels classified as thin cirrus clouds

          UNCLASSIFIED_PERCENTAGEDOUBLE

          Percentage of unclassified pixels

          VEGETATION_PERCENTAGEDOUBLE

          Percentage of pixels classified as vegetation

          WATER_PERCENTAGEDOUBLE

          Percentage of pixels classified as water

          WATER_VAPOUR_RETRIEVAL_ACCURACYDOUBLE

          Declared accuracy of the Water Vapor model

          Terms of Use

          The use of Sentinel data is governed by the Copernicus\n", "Sentinel Data Terms and Conditions.

          • 0:copernicus
          • 1:esa
          • 2:eu
          • 3:msi
          • 4:reflectance
          • 5:sentinel
          • 6:sr
        • period:0
          • 0:msi
          • 1:sr
          • 2:reflectance
        • provider:European Union/ESA/Copernicus
        • provider_url:https://earth.esa.int/web/sentinel/user-guides/sentinel-2-msi/product-types/level-2a
        • sample:https://mw1.google.com/ges/dd/images/COPERNICUS_S2_SR_sample.png
          • 0:eu
          • 1:esa
          • 2:copernicus
          • 3:sentinel
        • system:visualization_0_bands:B4,B3,B2
        • system:visualization_0_max:3000.0
        • system:visualization_0_min:0.0
        • system:visualization_0_name:RGB
          • 0:copernicus
          • 1:esa
          • 2:eu
          • 3:msi
          • 4:reflectance
          • 5:sentinel
          • 6:sr
        • thumb:https://mw1.google.com/ges/dd/images/COPERNICUS_S2_SR_thumb.png
        • title:Sentinel-2 MSI: MultiSpectral Instrument, Level-2A
        • type_name:ImageCollection
        • visualization_0_bands:B4,B3,B2
        • visualization_0_max:3000.0
        • visualization_0_min:0.0
        • visualization_0_name:RGB
          • type:Image
          • id:COPERNICUS/S2_SR_HARMONIZED/20201123T054141_20201123T054143_T43QCG
          • version:1729736727181191
              • id:B1
              • crs:EPSG:32643
                • 0:60
                • 1:0
                • 2:300000
                • 3:0
                • 4:-60
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:1830
                • 1:1830
              • id:B2
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B3
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B4
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B5
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B6
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B7
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B8
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B8A
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B9
              • crs:EPSG:32643
                • 0:60
                • 1:0
                • 2:300000
                • 3:0
                • 4:-60
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:1830
                • 1:1830
              • id:B11
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B12
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:AOT
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:WVP
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:4294967295
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:SCL
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:TCI_R
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:TCI_G
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:TCI_B
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:MSK_CLDPRB
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:MSK_SNWPRB
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:QA10
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:QA20
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:4294967295
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:QA60
              • crs:EPSG:32643
                • 0:60
                • 1:0
                • 2:300000
                • 3:0
                • 4:-60
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:1830
                • 1:1830
              • id:MSK_CLASSI_OPAQUE
              • crs:EPSG:4326
                • 0:1
                • 1:0
                • 2:0
                • 3:0
                • 4:1
                • 5:0
                • type:PixelType
                • max:255
                • min:0
                • precision:int
              • id:MSK_CLASSI_CIRRUS
              • crs:EPSG:4326
                • 0:1
                • 1:0
                • 2:0
                • 3:0
                • 4:1
                • 5:0
                • type:PixelType
                • max:255
                • min:0
                • precision:int
              • id:MSK_CLASSI_SNOW_ICE
              • crs:EPSG:4326
                • 0:1
                • 1:0
                • 2:0
                • 3:0
                • 4:1
                • 5:0
                • type:PixelType
                • max:255
                • min:0
                • precision:int
            • AOT_RETRIEVAL_ACCURACY:0
            • CLOUDY_PIXEL_PERCENTAGE:0.016463
            • CLOUD_COVERAGE_ASSESSMENT:0.016463
            • CLOUD_SHADOW_PERCENTAGE:0.009552
            • DARK_FEATURES_PERCENTAGE:1.398771
            • DATASTRIP_ID:S2A_OPER_MSI_L2A_DS_EPAE_20201123T072949_S20201123T054143_N02.14
            • DATATAKE_IDENTIFIER:GS2A_20201123T054141_028316_N02.14
            • DATATAKE_TYPE:INS-NOBS
            • DEGRADED_MSI_DATA_PERCENTAGE:0
            • FORMAT_CORRECTNESS:PASSED
            • GENERAL_QUALITY:PASSED
            • GENERATION_TIME:1606116589000
            • GEOMETRIC_QUALITY:PASSED
            • GRANULE_ID:L2A_T43QCG_A028316_20201123T054143
            • HIGH_PROBA_CLOUDS_PERCENTAGE:0.006025
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B1:232.11726589084
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B10:233.790789152103
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B11:232.209130825563
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B12:231.507436878415
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B2:237.628590002328
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B3:235.369282617454
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B4:233.990713441498
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B5:233.429996662561
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B6:232.992270722564
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B7:232.622728430871
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8:236.329407478809
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A:232.336593031099
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B9:231.662919601039
            • MEAN_INCIDENCE_ZENITH_ANGLE_B1:3.91546108459987
            • MEAN_INCIDENCE_ZENITH_ANGLE_B10:3.50486432316536
            • MEAN_INCIDENCE_ZENITH_ANGLE_B11:3.66340394735033
            • MEAN_INCIDENCE_ZENITH_ANGLE_B12:3.8503951085781
            • MEAN_INCIDENCE_ZENITH_ANGLE_B2:3.34868303207191
            • MEAN_INCIDENCE_ZENITH_ANGLE_B3:3.44415407250745
            • MEAN_INCIDENCE_ZENITH_ANGLE_B4:3.55318178918467
            • MEAN_INCIDENCE_ZENITH_ANGLE_B5:3.61896567357658
            • MEAN_INCIDENCE_ZENITH_ANGLE_B6:3.68857472300646
            • MEAN_INCIDENCE_ZENITH_ANGLE_B7:3.76222764579956
            • MEAN_INCIDENCE_ZENITH_ANGLE_B8:3.39461702383514
            • MEAN_INCIDENCE_ZENITH_ANGLE_B8A:3.83897074448141
            • MEAN_INCIDENCE_ZENITH_ANGLE_B9:3.99738679929829
            • MEAN_SOLAR_AZIMUTH_ANGLE:160.627010328015
            • MEAN_SOLAR_ZENITH_ANGLE:46.6728454654855
            • MEDIUM_PROBA_CLOUDS_PERCENTAGE:0.010063
            • MGRS_TILE:43QCG
            • NODATA_PIXEL_PERCENTAGE:3e-05
            • NOT_VEGETATED_PERCENTAGE:58.044851
            • PROCESSING_BASELINE:02.14
            • PRODUCT_ID:S2A_MSIL2A_20201123T054141_N0214_R005_T43QCG_20201123T072949
            • RADIATIVE_TRANSFER_ACCURACY:0
            • RADIOMETRIC_QUALITY:PASSED
            • REFLECTANCE_CONVERSION_CORRECTION:1.02450270695611
            • SATURATED_DEFECTIVE_PIXEL_PERCENTAGE:0
            • SENSING_ORBIT_DIRECTION:DESCENDING
            • SENSING_ORBIT_NUMBER:5
            • SENSOR_QUALITY:PASSED
            • SNOW_ICE_PERCENTAGE:0
            • SOLAR_IRRADIANCE_B1:1884.69
            • SOLAR_IRRADIANCE_B10:367.15
            • SOLAR_IRRADIANCE_B11:245.59
            • SOLAR_IRRADIANCE_B12:85.25
            • SOLAR_IRRADIANCE_B2:1959.66
            • SOLAR_IRRADIANCE_B3:1823.24
            • SOLAR_IRRADIANCE_B4:1512.06
            • SOLAR_IRRADIANCE_B5:1424.64
            • SOLAR_IRRADIANCE_B6:1287.61
            • SOLAR_IRRADIANCE_B7:1162.08
            • SOLAR_IRRADIANCE_B8:1041.63
            • SOLAR_IRRADIANCE_B8A:955.32
            • SOLAR_IRRADIANCE_B9:812.92
            • SPACECRAFT_NAME:Sentinel-2A
            • THIN_CIRRUS_PERCENTAGE:0.000375
            • UNCLASSIFIED_PERCENTAGE:2.477093
            • VEGETATION_PERCENTAGE:36.290869
            • WATER_PERCENTAGE:1.762393
            • WATER_VAPOUR_RETRIEVAL_ACCURACY:0
            • system:asset_size:1823320152
              • type:LinearRing
                  • 0:74.11016540745601
                  • 1:24.410902070189405
                  • 0:74.11015304070706
                  • 1:24.41090268552488
                  • 0:73.02774900042658
                  • 1:24.400670996155263
                  • 0:73.02770404977073
                  • 1:24.400633859210657
                  • 0:73.02765432478664
                  • 1:24.400602059690048
                  • 0:73.02765153226005
                  • 1:24.40058724459411
                  • 0:73.03524590991442
                  • 1:23.905101331454237
                  • 0:73.04263691932812
                  • 1:23.40958874371405
                  • 0:73.04267736331765
                  • 1:23.409547741651778
                  • 0:73.04271195238107
                  • 1:23.409502480476807
                  • 0:73.0427280759271
                  • 1:23.409499872731466
                  • 0:74.11691932286789
                  • 1:23.41926657630988
                  • 0:74.11696421791991
                  • 1:23.41930339484835
                  • 0:74.11701386233618
                  • 1:23.419334786767944
                  • 0:74.11701681949414
                  • 1:23.41934958311633
                  • 0:74.11368048838503
                  • 1:23.915101382828507
                  • 0:74.11025251236038
                  • 1:24.410813246431026
                  • 0:74.11021209640668
                  • 1:24.410854510840057
                  • 0:74.11017759497592
                  • 1:24.41090002461655
                  • 0:74.11016540745601
                  • 1:24.410902070189405
            • system:index:20201123T054141_20201123T054143_T43QCG
            • system:time_end:1606110746788
            • system:time_start:1606110746788
          • type:Image
          • id:COPERNICUS/S2_SR_HARMONIZED/20201128T054159_20201128T054158_T43QCG
          • version:1729736727181191
              • id:B1
              • crs:EPSG:32643
                • 0:60
                • 1:0
                • 2:300000
                • 3:0
                • 4:-60
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:1830
                • 1:1830
              • id:B2
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B3
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B4
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B5
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B6
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B7
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B8
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:B8A
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B9
              • crs:EPSG:32643
                • 0:60
                • 1:0
                • 2:300000
                • 3:0
                • 4:-60
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:1830
                • 1:1830
              • id:B11
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:B12
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:AOT
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:WVP
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:4294967295
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:SCL
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:TCI_R
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:TCI_G
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:TCI_B
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:MSK_CLDPRB
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:MSK_SNWPRB
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:255
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:QA10
              • crs:EPSG:32643
                • 0:10
                • 1:0
                • 2:300000
                • 3:0
                • 4:-10
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:10980
                • 1:10980
              • id:QA20
              • crs:EPSG:32643
                • 0:20
                • 1:0
                • 2:300000
                • 3:0
                • 4:-20
                • 5:2700000
                • type:PixelType
                • max:4294967295
                • min:0
                • precision:int
                • 0:5490
                • 1:5490
              • id:QA60
              • crs:EPSG:32643
                • 0:60
                • 1:0
                • 2:300000
                • 3:0
                • 4:-60
                • 5:2700000
                • type:PixelType
                • max:65535
                • min:0
                • precision:int
                • 0:1830
                • 1:1830
              • id:MSK_CLASSI_OPAQUE
              • crs:EPSG:4326
                • 0:1
                • 1:0
                • 2:0
                • 3:0
                • 4:1
                • 5:0
                • type:PixelType
                • max:255
                • min:0
                • precision:int
              • id:MSK_CLASSI_CIRRUS
              • crs:EPSG:4326
                • 0:1
                • 1:0
                • 2:0
                • 3:0
                • 4:1
                • 5:0
                • type:PixelType
                • max:255
                • min:0
                • precision:int
              • id:MSK_CLASSI_SNOW_ICE
              • crs:EPSG:4326
                • 0:1
                • 1:0
                • 2:0
                • 3:0
                • 4:1
                • 5:0
                • type:PixelType
                • max:255
                • min:0
                • precision:int
            • AOT_RETRIEVAL_ACCURACY:0
            • CLOUDY_PIXEL_PERCENTAGE:0.025713
            • CLOUD_COVERAGE_ASSESSMENT:0.025713
            • CLOUD_SHADOW_PERCENTAGE:0.008898
            • DARK_FEATURES_PERCENTAGE:1.402143
            • DATASTRIP_ID:S2B_OPER_MSI_L2A_DS_EPAE_20201128T073705_S20201128T054158_N02.14
            • DATATAKE_IDENTIFIER:GS2B_20201128T054159_019479_N02.14
            • DATATAKE_TYPE:INS-NOBS
            • DEGRADED_MSI_DATA_PERCENTAGE:0
            • FORMAT_CORRECTNESS:PASSED
            • GENERAL_QUALITY:PASSED
            • GENERATION_TIME:1606549025000
            • GEOMETRIC_QUALITY:PASSED
            • GRANULE_ID:L2A_T43QCG_A019479_20201128T054158
            • HIGH_PROBA_CLOUDS_PERCENTAGE:0.005342
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B1:230.050226692801
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B10:232.204553065881
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B11:230.997403423476
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B12:230.206069557044
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B2:236.122960089129
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B3:233.624978269314
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B4:232.18076175573
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B5:231.461533364706
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B6:231.007796306567
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B7:230.787969804436
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8:234.71946645578
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A:230.499988976047
            • MEAN_INCIDENCE_AZIMUTH_ANGLE_B9:229.85550581239
            • MEAN_INCIDENCE_ZENITH_ANGLE_B1:3.89001274341912
            • MEAN_INCIDENCE_ZENITH_ANGLE_B10:3.49119228344896
            • MEAN_INCIDENCE_ZENITH_ANGLE_B11:3.64891824959749
            • MEAN_INCIDENCE_ZENITH_ANGLE_B12:3.82734526049264
            • MEAN_INCIDENCE_ZENITH_ANGLE_B2:3.31813056020681
            • MEAN_INCIDENCE_ZENITH_ANGLE_B3:3.41422419043191
            • MEAN_INCIDENCE_ZENITH_ANGLE_B4:3.52215410993695
            • MEAN_INCIDENCE_ZENITH_ANGLE_B5:3.5900187347735
            • MEAN_INCIDENCE_ZENITH_ANGLE_B6:3.6594212476107
            • MEAN_INCIDENCE_ZENITH_ANGLE_B7:3.73006322903248
            • MEAN_INCIDENCE_ZENITH_ANGLE_B8:3.36306029450754
            • MEAN_INCIDENCE_ZENITH_ANGLE_B8A:3.80665396513889
            • MEAN_INCIDENCE_ZENITH_ANGLE_B9:3.97510117903208
            • MEAN_SOLAR_AZIMUTH_ANGLE:160.565629448864
            • MEAN_SOLAR_ZENITH_ANGLE:47.6885273693607
            • MEDIUM_PROBA_CLOUDS_PERCENTAGE:0.012452
            • MGRS_TILE:43QCG
            • NODATA_PIXEL_PERCENTAGE:6e-05
            • NOT_VEGETATED_PERCENTAGE:56.842738
            • PROCESSING_BASELINE:02.14
            • PRODUCT_ID:S2B_MSIL2A_20201128T054159_N0214_R005_T43QCG_20201128T073705
            • RADIATIVE_TRANSFER_ACCURACY:0
            • RADIOMETRIC_QUALITY:PASSED
            • REFLECTANCE_CONVERSION_CORRECTION:1.0264844356904
            • SATURATED_DEFECTIVE_PIXEL_PERCENTAGE:0
            • SENSING_ORBIT_DIRECTION:DESCENDING
            • SENSING_ORBIT_NUMBER:5
            • SENSOR_QUALITY:PASSED
            • SNOW_ICE_PERCENTAGE:0
            • SOLAR_IRRADIANCE_B1:1874.3
            • SOLAR_IRRADIANCE_B10:365.41
            • SOLAR_IRRADIANCE_B11:247.08
            • SOLAR_IRRADIANCE_B12:87.75
            • SOLAR_IRRADIANCE_B2:1959.75
            • SOLAR_IRRADIANCE_B3:1824.93
            • SOLAR_IRRADIANCE_B4:1512.79
            • SOLAR_IRRADIANCE_B5:1425.78
            • SOLAR_IRRADIANCE_B6:1291.13
            • SOLAR_IRRADIANCE_B7:1175.57
            • SOLAR_IRRADIANCE_B8:1041.28
            • SOLAR_IRRADIANCE_B8A:953.93
            • SOLAR_IRRADIANCE_B9:817.58
            • SPACECRAFT_NAME:Sentinel-2B
            • THIN_CIRRUS_PERCENTAGE:0.00792
            • UNCLASSIFIED_PERCENTAGE:1.833193
            • VEGETATION_PERCENTAGE:38.073343
            • WATER_PERCENTAGE:1.81397
            • WATER_VAPOUR_RETRIEVAL_ACCURACY:0
            • system:asset_size:1828103127
              • type:LinearRing
                  • 0:74.11016540745601
                  • 1:24.410902070189405
                  • 0:74.11015304070706
                  • 1:24.41090268552488
                  • 0:73.02774900042658
                  • 1:24.400670996155263
                  • 0:73.02770404977073
                  • 1:24.400633859210657
                  • 0:73.02765432478664
                  • 1:24.400602059690048
                  • 0:73.02765153226005
                  • 1:24.40058724459411
                  • 0:73.03524590991442
                  • 1:23.905101331454237
                  • 0:73.04263691932812
                  • 1:23.40958874371405
                  • 0:73.04267736331765
                  • 1:23.409547741651778
                  • 0:73.04271195238107
                  • 1:23.409502480476807
                  • 0:73.0427280759271
                  • 1:23.409499872731466
                  • 0:74.11691932286789
                  • 1:23.41926657630988
                  • 0:74.11696421791991
                  • 1:23.41930339484835
                  • 0:74.11701386233618
                  • 1:23.419334786767944
                  • 0:74.11701681949414
                  • 1:23.41934958311633
                  • 0:74.11368048838503
                  • 1:23.915101382828507
                  • 0:74.11025251236038
                  • 1:24.410813246431026
                  • 0:74.11021209640668
                  • 1:24.410854510840057
                  • 0:74.11017759497592
                  • 1:24.41090002461655
                  • 0:74.11016540745601
                  • 1:24.410902070189405
            • system:index:20201128T054159_20201128T054158_T43QCG
            • system:time_end:1606542744780
            • system:time_start:1606542744780
    " ], "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED').filterBounds(ee.Geometry(gdf.iloc[0].geometry.__geo_interface__)).filterDate('2020-11-20', '2020-11-30')\n", "collection" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# get image with minimum cloud cover\n", "image = collection.sort('CLOUDY_PIXEL_PERCENTAGE').first()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "2" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get number of images in collection\n", "count = collection.size().getInfo()\n", "count" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# get first image from collection\n", "image = collection.first()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
      • type:Image
      • id:COPERNICUS/S2_SR_HARMONIZED/20200103T054229_20200103T054832_T43QCG
      • version:1729693238711098
          • id:B1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:B2
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B3
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B4
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B5
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B6
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B7
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B8
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B8A
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B9
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:B11
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B12
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:AOT
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:WVP
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:4294967295
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:SCL
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:TCI_R
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:TCI_G
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:TCI_B
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:MSK_CLDPRB
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:MSK_SNWPRB
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:QA10
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:QA20
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:4294967295
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:QA60
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:MSK_CLASSI_OPAQUE
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:MSK_CLASSI_CIRRUS
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:MSK_CLASSI_SNOW_ICE
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:B1_1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:B2_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B3_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B4_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B5_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B6_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B7_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B8_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B8A_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B9_1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:B11_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B12_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:AOT_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:WVP_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:4294967295
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:SCL_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:TCI_R_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:TCI_G_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:TCI_B_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:MSK_CLDPRB_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:MSK_SNWPRB_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:QA10_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:QA20_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:4294967295
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:QA60_1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:MSK_CLASSI_OPAQUE_1
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:MSK_CLASSI_CIRRUS_1
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:MSK_CLASSI_SNOW_ICE_1
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:B1_1_1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:B2_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B3_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B4_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B5_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B6_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B7_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B8_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:B8A_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B9_1_1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:B11_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:B12_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:AOT_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:WVP_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:4294967295
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:SCL_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:TCI_R_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:TCI_G_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:TCI_B_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:MSK_CLDPRB_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:MSK_SNWPRB_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:255
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:QA10_1_1
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
          • id:QA20_1_1
          • crs:EPSG:32643
            • 0:20
            • 1:0
            • 2:300000
            • 3:0
            • 4:-20
            • 5:2700000
            • type:PixelType
            • max:4294967295
            • min:0
            • precision:int
            • 0:5490
            • 1:5490
          • id:QA60_1_1
          • crs:EPSG:32643
            • 0:60
            • 1:0
            • 2:300000
            • 3:0
            • 4:-60
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:1830
            • 1:1830
          • id:MSK_CLASSI_OPAQUE_1_1
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:MSK_CLASSI_CIRRUS_1_1
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
          • id:MSK_CLASSI_SNOW_ICE_1_1
          • crs:EPSG:4326
            • 0:1
            • 1:0
            • 2:0
            • 3:0
            • 4:1
            • 5:0
            • type:PixelType
            • max:255
            • min:0
            • precision:int
        • AOT_RETRIEVAL_ACCURACY:0
        • CLOUDY_PIXEL_PERCENTAGE:31.922709
        • CLOUD_COVERAGE_ASSESSMENT:31.922709
        • CLOUD_SHADOW_PERCENTAGE:0.198579
        • DARK_FEATURES_PERCENTAGE:0.549102
        • DATASTRIP_ID:S2B_OPER_MSI_L2A_DS_EPAE_20200103T090132_S20200103T054832_N02.13
        • DATATAKE_IDENTIFIER:GS2B_20200103T054229_014760_N02.13
        • DATATAKE_TYPE:INS-NOBS
        • DEGRADED_MSI_DATA_PERCENTAGE:0
        • FORMAT_CORRECTNESS:PASSED
        • GENERAL_QUALITY:PASSED
        • GENERATION_TIME:1578042092000
        • GEOMETRIC_QUALITY:PASSED
        • GRANULE_ID:L2A_T43QCG_A014760_20200103T054832
        • HIGH_PROBA_CLOUDS_PERCENTAGE:7.175779
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B1:228.866693947
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B10:231.181075346
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B11:229.390344022
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B12:228.693796089
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B2:234.499920967
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B3:232.023517476
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B4:230.59537529
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B5:229.956341503
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B6:229.518495929
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B7:229.037434243
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8:233.108324536
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A:228.7554452
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B9:228.681896618
        • MEAN_INCIDENCE_ZENITH_ANGLE_B1:3.84876005888
        • MEAN_INCIDENCE_ZENITH_ANGLE_B10:3.45177233793
        • MEAN_INCIDENCE_ZENITH_ANGLE_B11:3.60137297281
        • MEAN_INCIDENCE_ZENITH_ANGLE_B12:3.78570081137
        • MEAN_INCIDENCE_ZENITH_ANGLE_B2:3.2782764992
        • MEAN_INCIDENCE_ZENITH_ANGLE_B3:3.37551363359
        • MEAN_INCIDENCE_ZENITH_ANGLE_B4:3.48451409456
        • MEAN_INCIDENCE_ZENITH_ANGLE_B5:3.54599791747
        • MEAN_INCIDENCE_ZENITH_ANGLE_B6:3.61605291573
        • MEAN_INCIDENCE_ZENITH_ANGLE_B7:3.6859370775
        • MEAN_INCIDENCE_ZENITH_ANGLE_B8:3.32377205921
        • MEAN_INCIDENCE_ZENITH_ANGLE_B8A:3.76323633487
        • MEAN_INCIDENCE_ZENITH_ANGLE_B9:3.93447100737
        • MEAN_SOLAR_AZIMUTH_ANGLE:156.635542399
        • MEAN_SOLAR_ZENITH_ANGLE:50.4236448912
        • MEDIUM_PROBA_CLOUDS_PERCENTAGE:19.061849
        • MGRS_TILE:43QCG
        • NODATA_PIXEL_PERCENTAGE:7e-06
        • NOT_VEGETATED_PERCENTAGE:25.851753
        • PROCESSING_BASELINE:02.13
        • PRODUCT_ID:S2B_MSIL2A_20200103T054229_N0213_R005_T43QCG_20200103T090132
        • RADIATIVE_TRANSFER_ACCURACY:0
        • RADIOMETRIC_QUALITY:PASSED
        • REFLECTANCE_CONVERSION_CORRECTION:1.03421965737
        • SATURATED_DEFECTIVE_PIXEL_PERCENTAGE:0
        • SENSING_ORBIT_DIRECTION:DESCENDING
        • SENSING_ORBIT_NUMBER:5
        • SENSOR_QUALITY:PASSED
        • SNOW_ICE_PERCENTAGE:0
        • SOLAR_IRRADIANCE_B1:1874.3
        • SOLAR_IRRADIANCE_B10:365.41
        • SOLAR_IRRADIANCE_B11:247.08
        • SOLAR_IRRADIANCE_B12:87.75
        • SOLAR_IRRADIANCE_B2:1959.75
        • SOLAR_IRRADIANCE_B3:1824.93
        • SOLAR_IRRADIANCE_B4:1512.79
        • SOLAR_IRRADIANCE_B5:1425.78
        • SOLAR_IRRADIANCE_B6:1291.13
        • SOLAR_IRRADIANCE_B7:1175.57
        • SOLAR_IRRADIANCE_B8:1041.28
        • SOLAR_IRRADIANCE_B8A:953.93
        • SOLAR_IRRADIANCE_B9:817.58
        • SPACECRAFT_NAME:Sentinel-2B
        • THIN_CIRRUS_PERCENTAGE:5.685081
        • UNCLASSIFIED_PERCENTAGE:23.282081
        • VEGETATION_PERCENTAGE:17.555073
        • WATER_PERCENTAGE:0.640701
        • WATER_VAPOUR_RETRIEVAL_ACCURACY:0
        • system:asset_size:1657256589
          • type:LinearRing
              • 0:74.11016540745601
              • 1:24.410902070189405
              • 0:74.11015304070706
              • 1:24.41090268552488
              • 0:73.02774900042658
              • 1:24.400670996155263
              • 0:73.02770404977073
              • 1:24.400633859210657
              • 0:73.02765432478664
              • 1:24.400602059690048
              • 0:73.02765153226005
              • 1:24.40058724459411
              • 0:73.03524590991442
              • 1:23.905101331454237
              • 0:73.04263691932812
              • 1:23.40958874371405
              • 0:73.04267736331765
              • 1:23.409547741651778
              • 0:73.04271195238107
              • 1:23.409502480476807
              • 0:73.0427280759271
              • 1:23.409499872731466
              • 0:74.11691932286789
              • 1:23.41926657630988
              • 0:74.11696421791991
              • 1:23.41930339484835
              • 0:74.11701386233618
              • 1:23.419334786767944
              • 0:74.11701681949414
              • 1:23.41934958311633
              • 0:74.11368048838503
              • 1:23.915101382828507
              • 0:74.11025251236038
              • 1:24.410813246431026
              • 0:74.11021209640668
              • 1:24.410854510840057
              • 0:74.11017759497592
              • 1:24.41090002461655
              • 0:74.11016540745601
              • 1:24.410902070189405
        • system:index:20200103T054229_20200103T054832_T43QCG
        • system:time_end:1578030739975
        • system:time_start:1578030739975
    " ], "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "image.addBands([image, image])" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "(, 78)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "image, 26*3" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
      • type:Image
      • id:COPERNICUS/S2_SR_HARMONIZED/20200103T054229_20200103T054832_T43QCG
      • version:1729686309598954
          • id:B2
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:65535
            • min:0
            • precision:int
            • 0:10980
            • 1:10980
        • AOT_RETRIEVAL_ACCURACY:0
        • CLOUDY_PIXEL_PERCENTAGE:31.922709
        • CLOUD_COVERAGE_ASSESSMENT:31.922709
        • CLOUD_SHADOW_PERCENTAGE:0.198579
        • DARK_FEATURES_PERCENTAGE:0.549102
        • DATASTRIP_ID:S2B_OPER_MSI_L2A_DS_EPAE_20200103T090132_S20200103T054832_N02.13
        • DATATAKE_IDENTIFIER:GS2B_20200103T054229_014760_N02.13
        • DATATAKE_TYPE:INS-NOBS
        • DEGRADED_MSI_DATA_PERCENTAGE:0
        • FORMAT_CORRECTNESS:PASSED
        • GENERAL_QUALITY:PASSED
        • GENERATION_TIME:1578042092000
        • GEOMETRIC_QUALITY:PASSED
        • GRANULE_ID:L2A_T43QCG_A014760_20200103T054832
        • HIGH_PROBA_CLOUDS_PERCENTAGE:7.175779
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B1:228.866693947
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B10:231.181075346
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B11:229.390344022
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B12:228.693796089
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B2:234.499920967
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B3:232.023517476
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B4:230.59537529
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B5:229.956341503
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B6:229.518495929
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B7:229.037434243
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8:233.108324536
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A:228.7554452
        • MEAN_INCIDENCE_AZIMUTH_ANGLE_B9:228.681896618
        • MEAN_INCIDENCE_ZENITH_ANGLE_B1:3.84876005888
        • MEAN_INCIDENCE_ZENITH_ANGLE_B10:3.45177233793
        • MEAN_INCIDENCE_ZENITH_ANGLE_B11:3.60137297281
        • MEAN_INCIDENCE_ZENITH_ANGLE_B12:3.78570081137
        • MEAN_INCIDENCE_ZENITH_ANGLE_B2:3.2782764992
        • MEAN_INCIDENCE_ZENITH_ANGLE_B3:3.37551363359
        • MEAN_INCIDENCE_ZENITH_ANGLE_B4:3.48451409456
        • MEAN_INCIDENCE_ZENITH_ANGLE_B5:3.54599791747
        • MEAN_INCIDENCE_ZENITH_ANGLE_B6:3.61605291573
        • MEAN_INCIDENCE_ZENITH_ANGLE_B7:3.6859370775
        • MEAN_INCIDENCE_ZENITH_ANGLE_B8:3.32377205921
        • MEAN_INCIDENCE_ZENITH_ANGLE_B8A:3.76323633487
        • MEAN_INCIDENCE_ZENITH_ANGLE_B9:3.93447100737
        • MEAN_SOLAR_AZIMUTH_ANGLE:156.635542399
        • MEAN_SOLAR_ZENITH_ANGLE:50.4236448912
        • MEDIUM_PROBA_CLOUDS_PERCENTAGE:19.061849
        • MGRS_TILE:43QCG
        • NODATA_PIXEL_PERCENTAGE:7e-06
        • NOT_VEGETATED_PERCENTAGE:25.851753
        • PROCESSING_BASELINE:02.13
        • PRODUCT_ID:S2B_MSIL2A_20200103T054229_N0213_R005_T43QCG_20200103T090132
        • RADIATIVE_TRANSFER_ACCURACY:0
        • RADIOMETRIC_QUALITY:PASSED
        • REFLECTANCE_CONVERSION_CORRECTION:1.03421965737
        • SATURATED_DEFECTIVE_PIXEL_PERCENTAGE:0
        • SENSING_ORBIT_DIRECTION:DESCENDING
        • SENSING_ORBIT_NUMBER:5
        • SENSOR_QUALITY:PASSED
        • SNOW_ICE_PERCENTAGE:0
        • SOLAR_IRRADIANCE_B1:1874.3
        • SOLAR_IRRADIANCE_B10:365.41
        • SOLAR_IRRADIANCE_B11:247.08
        • SOLAR_IRRADIANCE_B12:87.75
        • SOLAR_IRRADIANCE_B2:1959.75
        • SOLAR_IRRADIANCE_B3:1824.93
        • SOLAR_IRRADIANCE_B4:1512.79
        • SOLAR_IRRADIANCE_B5:1425.78
        • SOLAR_IRRADIANCE_B6:1291.13
        • SOLAR_IRRADIANCE_B7:1175.57
        • SOLAR_IRRADIANCE_B8:1041.28
        • SOLAR_IRRADIANCE_B8A:953.93
        • SOLAR_IRRADIANCE_B9:817.58
        • SPACECRAFT_NAME:Sentinel-2B
        • THIN_CIRRUS_PERCENTAGE:5.685081
        • UNCLASSIFIED_PERCENTAGE:23.282081
        • VEGETATION_PERCENTAGE:17.555073
        • WATER_PERCENTAGE:0.640701
        • WATER_VAPOUR_RETRIEVAL_ACCURACY:0
        • system:asset_size:1657256589
          • type:LinearRing
              • 0:74.11016540745601
              • 1:24.410902070189405
              • 0:74.11015304070706
              • 1:24.41090268552488
              • 0:73.02774900042658
              • 1:24.400670996155263
              • 0:73.02770404977073
              • 1:24.400633859210657
              • 0:73.02765432478664
              • 1:24.400602059690048
              • 0:73.02765153226005
              • 1:24.40058724459411
              • 0:73.03524590991442
              • 1:23.905101331454237
              • 0:73.04263691932812
              • 1:23.40958874371405
              • 0:73.04267736331765
              • 1:23.409547741651778
              • 0:73.04271195238107
              • 1:23.409502480476807
              • 0:73.0427280759271
              • 1:23.409499872731466
              • 0:74.11691932286789
              • 1:23.41926657630988
              • 0:74.11696421791991
              • 1:23.41930339484835
              • 0:74.11701386233618
              • 1:23.419334786767944
              • 0:74.11701681949414
              • 1:23.41934958311633
              • 0:74.11368048838503
              • 1:23.915101382828507
              • 0:74.11025251236038
              • 1:24.410813246431026
              • 0:74.11021209640668
              • 1:24.410854510840057
              • 0:74.11017759497592
              • 1:24.41090002461655
              • 0:74.11016540745601
              • 1:24.410902070189405
        • system:index:20200103T054229_20200103T054832_T43QCG
        • system:time_end:1578030739975
        • system:time_start:1578030739975
    " ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b2 = image.select('B2')\n", "b2" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
      • type:Image
          • id:B2
          • crs:EPSG:32643
            • 0:10
            • 1:0
            • 2:300000
            • 3:0
            • 4:-10
            • 5:2700000
            • type:PixelType
            • max:4294836227.5
            • min:-4294836222.5
            • precision:double
            • 0:10980
            • 1:10980
    " ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b2.subtract(b2).multiply(b2).add(2.5)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{'type': 'Image',\n", " 'bands': [{'id': 'B2',\n", " 'data_type': {'type': 'PixelType',\n", " 'precision': 'int',\n", " 'min': 0,\n", " 'max': 65535},\n", " 'dimensions': [10980, 10980],\n", " 'crs': 'EPSG:32643',\n", " 'crs_transform': [10, 0, 300000, 0, -10, 2700000]}],\n", " 'version': 1729686309598954,\n", " 'id': 'COPERNICUS/S2_SR_HARMONIZED/20200103T054229_20200103T054832_T43QCG',\n", " 'properties': {'DATATAKE_IDENTIFIER': 'GS2B_20200103T054229_014760_N02.13',\n", " 'AOT_RETRIEVAL_ACCURACY': 0,\n", " 'SPACECRAFT_NAME': 'Sentinel-2B',\n", " 'SATURATED_DEFECTIVE_PIXEL_PERCENTAGE': 0,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A': 228.7554452,\n", " 'CLOUD_SHADOW_PERCENTAGE': 0.198579,\n", " 'MEAN_SOLAR_AZIMUTH_ANGLE': 156.635542399,\n", " 'system:footprint': {'type': 'LinearRing',\n", " 'coordinates': [[74.11016540745601, 24.410902070189405],\n", " [74.11015304070706, 24.41090268552488],\n", " [73.02774900042658, 24.400670996155263],\n", " [73.02770404977073, 24.400633859210657],\n", " [73.02765432478664, 24.400602059690048],\n", " [73.02765153226005, 24.40058724459411],\n", " [73.03524590991442, 23.905101331454237],\n", " [73.04263691932812, 23.40958874371405],\n", " [73.04267736331765, 23.409547741651778],\n", " [73.04271195238107, 23.409502480476807],\n", " [73.0427280759271, 23.409499872731466],\n", " [74.11691932286789, 23.41926657630988],\n", " [74.11696421791991, 23.41930339484835],\n", " [74.11701386233618, 23.419334786767944],\n", " [74.11701681949414, 23.41934958311633],\n", " [74.11368048838503, 23.915101382828507],\n", " [74.11025251236038, 24.410813246431026],\n", " [74.11021209640668, 24.410854510840057],\n", " [74.11017759497592, 24.41090002461655],\n", " [74.11016540745601, 24.410902070189405]]},\n", " 'VEGETATION_PERCENTAGE': 17.555073,\n", " 'SOLAR_IRRADIANCE_B12': 87.75,\n", " 'SOLAR_IRRADIANCE_B10': 365.41,\n", " 'SENSOR_QUALITY': 'PASSED',\n", " 'SOLAR_IRRADIANCE_B11': 247.08,\n", " 'GENERATION_TIME': 1578042092000,\n", " 'SOLAR_IRRADIANCE_B8A': 953.93,\n", " 'FORMAT_CORRECTNESS': 'PASSED',\n", " 'CLOUD_COVERAGE_ASSESSMENT': 31.922709,\n", " 'THIN_CIRRUS_PERCENTAGE': 5.685081,\n", " 'system:time_end': 1578030739975,\n", " 'WATER_VAPOUR_RETRIEVAL_ACCURACY': 0,\n", " 'system:time_start': 1578030739975,\n", " 'DATASTRIP_ID': 'S2B_OPER_MSI_L2A_DS_EPAE_20200103T090132_S20200103T054832_N02.13',\n", " 'PROCESSING_BASELINE': '02.13',\n", " 'SENSING_ORBIT_NUMBER': 5,\n", " 'NODATA_PIXEL_PERCENTAGE': 7e-06,\n", " 'SENSING_ORBIT_DIRECTION': 'DESCENDING',\n", " 'GENERAL_QUALITY': 'PASSED',\n", " 'GRANULE_ID': 'L2A_T43QCG_A014760_20200103T054832',\n", " 'REFLECTANCE_CONVERSION_CORRECTION': 1.03421965737,\n", " 'MEDIUM_PROBA_CLOUDS_PERCENTAGE': 19.061849,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B8': 233.108324536,\n", " 'DATATAKE_TYPE': 'INS-NOBS',\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B9': 228.681896618,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B6': 229.518495929,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B7': 229.037434243,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B4': 230.59537529,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B1': 3.84876005888,\n", " 'NOT_VEGETATED_PERCENTAGE': 25.851753,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B5': 229.956341503,\n", " 'RADIOMETRIC_QUALITY': 'PASSED',\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B2': 234.499920967,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B3': 232.023517476,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B5': 3.54599791747,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B1': 228.866693947,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B4': 3.48451409456,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B3': 3.37551363359,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B2': 3.2782764992,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B9': 3.93447100737,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B8': 3.32377205921,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B7': 3.6859370775,\n", " 'DARK_FEATURES_PERCENTAGE': 0.549102,\n", " 'HIGH_PROBA_CLOUDS_PERCENTAGE': 7.175779,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B6': 3.61605291573,\n", " 'UNCLASSIFIED_PERCENTAGE': 23.282081,\n", " 'MEAN_SOLAR_ZENITH_ANGLE': 50.4236448912,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B8A': 3.76323633487,\n", " 'RADIATIVE_TRANSFER_ACCURACY': 0,\n", " 'MGRS_TILE': '43QCG',\n", " 'CLOUDY_PIXEL_PERCENTAGE': 31.922709,\n", " 'PRODUCT_ID': 'S2B_MSIL2A_20200103T054229_N0213_R005_T43QCG_20200103T090132',\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B10': 3.45177233793,\n", " 'SOLAR_IRRADIANCE_B9': 817.58,\n", " 'SNOW_ICE_PERCENTAGE': 0,\n", " 'DEGRADED_MSI_DATA_PERCENTAGE': 0,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B11': 3.60137297281,\n", " 'MEAN_INCIDENCE_ZENITH_ANGLE_B12': 3.78570081137,\n", " 'SOLAR_IRRADIANCE_B6': 1291.13,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B10': 231.181075346,\n", " 'SOLAR_IRRADIANCE_B5': 1425.78,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B11': 229.390344022,\n", " 'SOLAR_IRRADIANCE_B8': 1041.28,\n", " 'MEAN_INCIDENCE_AZIMUTH_ANGLE_B12': 228.693796089,\n", " 'SOLAR_IRRADIANCE_B7': 1175.57,\n", " 'SOLAR_IRRADIANCE_B2': 1959.75,\n", " 'SOLAR_IRRADIANCE_B1': 1874.3,\n", " 'SOLAR_IRRADIANCE_B4': 1512.79,\n", " 'GEOMETRIC_QUALITY': 'PASSED',\n", " 'SOLAR_IRRADIANCE_B3': 1824.93,\n", " 'system:asset_size': 1657256589,\n", " 'WATER_PERCENTAGE': 0.640701,\n", " 'system:index': '20200103T054229_20200103T054832_T43QCG'}}" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b2.getInfo()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{'type': 'Polygon',\n", " 'coordinates': [[[-122.52021789550781, 37.76885797689413],\n", " [-122.51060485839844, 37.76885797689413],\n", " [-122.51060485839844, 37.77478500000001],\n", " [-122.52021789550781, 37.77478500000001],\n", " [-122.52021789550781, 37.76885797689413]]]}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ee_polygon.getInfo()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import geemap.foliumap as gee_folium" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m = gee_folium.Map()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "7272.727272727272" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1/2.75e-05 * 0.2" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31mSignature:\u001b[0m\n", "\u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maddLayer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mee_object\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvis_params\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Layer untitled'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mshown\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mopacity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mSource:\u001b[0m \n", " \u001b[0;32mdef\u001b[0m \u001b[0madd_layer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mee_object\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvis_params\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Layer untitled\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mshown\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mopacity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"\"\"Adds a given EE object to the map as a layer.\u001b[0m\n", "\u001b[0;34m\u001b[0m\n", "\u001b[0;34m Args:\u001b[0m\n", "\u001b[0;34m ee_object (Collection|Feature|Image|MapId): The object to add to the map.\u001b[0m\n", "\u001b[0;34m vis_params (dict, optional): The visualization parameters. Defaults to {}.\u001b[0m\n", "\u001b[0;34m name (str, optional): The name of the layer. Defaults to 'Layer untitled'.\u001b[0m\n", "\u001b[0;34m shown (bool, optional): A flag indicating whether the layer should be on by default. Defaults to True.\u001b[0m\n", "\u001b[0;34m opacity (float, optional): The layer's opacity represented as a number between 0 and 1. Defaults to 1.\u001b[0m\n", "\u001b[0;34m \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mlayer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mEEFoliumTileLayer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mee_object\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvis_params\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshown\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopacity\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mlayer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_to\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0marc_add_layer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlayer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0murl_format\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshown\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopacity\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mFile:\u001b[0m /opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/geemap/foliumap.py\n", "\u001b[0;31mType:\u001b[0m method" ] } ], "source": [ "m.addLayer??" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "Index(['2023-01', '2023-02', '2023-03', '2023-04', '2023-05', '2023-06',\n", " '2023-07', '2023-08', '2023-09', '2023-10', '2023-11', '2023-12',\n", " '2024-01'],\n", " dtype='object')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "start = \"2023-01\"\n", "end = \"2024-01\"\n", "pd.date_range(start, end, freq='MS').strftime(\"%Y-%m\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "{'type': 'Polygon', 'coordinates': (((73.19791470947145, 24.01977640858627), (73.1951165609439, 24.01754094149261), (73.1955205367043, 24.01738340683521), (73.19480033400262, 24.01523619312771), (73.19463695073262, 24.01440311871703), (73.19454286010809, 24.0139003560814), (73.1942443392165, 24.0126807914708), (73.1942341944796, 24.0126863557728), (73.19653511275247, 24.01252023885471), (73.19648432210984, 24.01217871972386), (73.19764861281237, 24.01199930187962), (73.1981728693097, 24.01433254741455), (73.1986819814156, 24.01611200638915), (73.19959745133227, 24.01895266153662), (73.19791470947145, 24.01977640858627)),)}\n", "\n" ] }, { "data": { "text/html": [ "
      • type:FeatureCollection
        • system:index:String
          • type:Feature
          • id:0
            • type:Polygon
                  • 0:73.19791470947145
                  • 1:24.01977640858627
                  • 0:73.1951165609439
                  • 1:24.01754094149261
                  • 0:73.1955205367043
                  • 1:24.01738340683521
                  • 0:73.19480033400262
                  • 1:24.01523619312771
                  • 0:73.19463695073262
                  • 1:24.01440311871703
                  • 0:73.19454286010809
                  • 1:24.0139003560814
                  • 0:73.1942443392165
                  • 1:24.0126807914708
                  • 0:73.1942341944796
                  • 1:24.0126863557728
                  • 0:73.19653511275247
                  • 1:24.01252023885471
                  • 0:73.19648432210984
                  • 1:24.01217871972386
                  • 0:73.19764861281237
                  • 1:24.01199930187962
                  • 0:73.1981728693097
                  • 1:24.01433254741455
                  • 0:73.1986819814156
                  • 1:24.01611200638915
                  • 0:73.19959745133227
                  • 1:24.01895266153662
                  • 0:73.19791470947145
                  • 1:24.01977640858627
      " ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdf = gpd.read_file(\"/home/patel_zeel/Mean_NDVI/golvada he 10 2023-24.kml\")\n", "gdf = gdf.to_crs(epsg=4326)\n", "def poly_3d_to_2d(shape):\n", " if shape.has_z:\n", " return transform(lambda x, y, z: (x, y), shape)\n", " else:\n", " return shape\n", "gdf['geometry'] = gdf['geometry'].apply(poly_3d_to_2d)\n", "gdf = gdf.to_crs(epsg=4326)\n", "first_item = gdf.iloc[0].geometry.__geo_interface__\n", "print(first_item)\n", "print(type(first_item))\n", "ee_geometry = ee.Geometry(first_item)\n", "ee_feature_collection = ee.FeatureCollection(ee_geometry)\n", "ee_feature_collection\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "['LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230405', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230421', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230507', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230523', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230608', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230624', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230811', 'LANDSAT/LC08/C02/T1_TOA/LC08_148043_20230827', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230405', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230421', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230507', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230523', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230608', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230811', 'LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230827']\n" ] } ], "source": [ "dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA').filterBounds(ee_geometry).filterDate('2023-04', '2023-09')\n", "# print image IDs\n", "image_ids = dataset.aggregate_array('system:id').getInfo()\n", "print(image_ids)\n", "\n", "# true_color_432 = dataset.select(['B4', 'B3', 'B2'])\n", "# print(\"Number of images in the collection: \", true_color_432.size().getInfo())" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Image ID: LC08_148044_20230115\n", "New Image ID: LC08_148044_20230115\n" ] } ], "source": [ "# pick the second image in the collection\n", "image = dataset.toList(true_color_432.size()).get(1)\n", "image = ee.Image(image)\n", "# print image id\n", "print(\"Image ID: \", image.id().getInfo())\n", "# replace id with \"anonymous\"\n", "image = image.set('id', 'anonymous')\n", "# print new image id\n", "print(\"New Image ID: \", image.id().getInfo())" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Computing statistics ...\n" ] }, { "data": { "text/plain": [ "{'type': 'FeatureCollection',\n", " 'columns': {'mean': 'Float', 'system:index': 'String'},\n", " 'features': [{'type': 'Feature',\n", " 'geometry': {'type': 'Polygon',\n", " 'coordinates': [[[73.19791470947145, 24.01977640858627],\n", " [73.1951165609439, 24.01754094149261],\n", " [73.1955205367043, 24.01738340683521],\n", " [73.19480033400262, 24.01523619312771],\n", " [73.19463695073262, 24.01440311871703],\n", " [73.19454286010809, 24.0139003560814],\n", " [73.1942443392165, 24.0126807914708],\n", " [73.1942341944796, 24.0126863557728],\n", " [73.19653511275247, 24.01252023885471],\n", " [73.19648432210984, 24.01217871972386],\n", " [73.19764861281237, 24.01199930187962],\n", " [73.1981728693097, 24.01433254741455],\n", " [73.1986819814156, 24.01611200638915],\n", " [73.19959745133227, 24.01895266153662],\n", " [73.19791470947145, 24.01977640858627]]]},\n", " 'id': '0',\n", " 'properties': {'mean': 0.7695880858277654}}]}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "geemap.zonal_stats(dataset.qualityMosaic(\"B4\").select([\"B4\"]), ee_feature_collection, statistics_type='mean', scale=10, return_fc=True).getInfo()" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[{'type': 'Feature',\n", " 'geometry': {'type': 'Polygon',\n", " 'coordinates': [[[73.19791470947145, 24.01977640858627],\n", " [73.1951165609439, 24.01754094149261],\n", " [73.1955205367043, 24.01738340683521],\n", " [73.19480033400262, 24.01523619312771],\n", " [73.19463695073262, 24.01440311871703],\n", " [73.19454286010809, 24.0139003560814],\n", " [73.1942443392165, 24.0126807914708],\n", " [73.1942341944796, 24.0126863557728],\n", " [73.19653511275247, 24.01252023885471],\n", " [73.19648432210984, 24.01217871972386],\n", " [73.19764861281237, 24.01199930187962],\n", " [73.1981728693097, 24.01433254741455],\n", " [73.1986819814156, 24.01611200638915],\n", " [73.19959745133227, 24.01895266153662],\n", " [73.19791470947145, 24.01977640858627]]]},\n", " 'id': '0',\n", " 'properties': {'mean': 0.7695880858277654}}]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "features.getInfo()['features']" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'20210125'" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import re\n", "\n", "re.findall(r\"LC08_\\d+_(\\d+)_NDVI\", \"LC08_148043_20210125_NDVI\")[0]" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
      <ee.image.Image object at 0x7fd10c62b820>
      " ], "text/plain": [ "" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset.qualityMosaic('NDVI')" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'2023-01-01'" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "start = '2023-01-01'\n", "start.format(\"YYYY-MM\")" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "['2023-01-01', '2023-02-01', '2023-03-01', '2023-04-01', '2023-05-01', '2023-06-01', '2023-07-01', '2023-08-01', '2023-09-01', '2023-10-01', '2023-11-01', '2023-12-01', '2024-01-01']\n" ] } ], "source": [ "import pandas as pd\n", "start_date = '2023-01'\n", "end_date = '2024-01'\n", "\n", "# get 1st day of each month\n", "dates = pd.date_range(start_date, end_date, freq='MS').strftime(\"%Y-%m-%d\").tolist()\n", "print(dates)" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31mSignature:\u001b[0m\n", "\u001b[0mgeemap\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzonal_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0min_value_raster\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0min_zone_vector\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mout_file_path\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mstat_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'MEAN'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mtile_scale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mreturn_fc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mproxies\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mSource:\u001b[0m \n", "\u001b[0;32mdef\u001b[0m \u001b[0mzonal_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0min_value_raster\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0min_zone_vector\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mout_file_path\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mstat_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"MEAN\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mtile_scale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mreturn_fc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mproxies\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"\"\"Summarizes the values of a raster within the zones of another dataset and exports the results as a csv, shp, json, kml, or kmz.\u001b[0m\n", "\u001b[0;34m\u001b[0m\n", "\u001b[0;34m Args:\u001b[0m\n", "\u001b[0;34m in_value_raster (object): An ee.Image or ee.ImageCollection that contains the values on which to calculate a statistic.\u001b[0m\n", "\u001b[0;34m in_zone_vector (object): An ee.FeatureCollection that defines the zones.\u001b[0m\n", "\u001b[0;34m out_file_path (str): Output file path that will contain the summary of the values in each zone. The file type can be: csv, shp, json, kml, kmz\u001b[0m\n", "\u001b[0;34m stat_type (str, optional): Statistical type to be calculated. Defaults to 'MEAN'. For 'HIST', you can provide three parameters: max_buckets, min_bucket_width, and max_raw. For 'FIXED_HIST', you must provide three parameters: hist_min, hist_max, and hist_steps.\u001b[0m\n", "\u001b[0;34m scale (float, optional): A nominal scale in meters of the projection to work in. Defaults to None.\u001b[0m\n", "\u001b[0;34m crs (str, optional): The projection to work in. If unspecified, the projection of the image's first band is used. If specified in addition to scale, rescaled to the specified scale. Defaults to None.\u001b[0m\n", "\u001b[0;34m tile_scale (float, optional): A scaling factor used to reduce aggregation tile size; using a larger tileScale (e.g. 2 or 4) may enable computations that run out of memory with the default. Defaults to 1.0.\u001b[0m\n", "\u001b[0;34m verbose (bool, optional): Whether to print descriptive text when the programming is running. Default to True.\u001b[0m\n", "\u001b[0;34m return_fc (bool, optional): Whether to return the results as an ee.FeatureCollection. Defaults to False.\u001b[0m\n", "\u001b[0;34m timeout (int, optional): Timeout in seconds. Default to 300.\u001b[0m\n", "\u001b[0;34m proxies (dict, optional): A dictionary of proxy servers to use for the request. Default to None.\u001b[0m\n", "\u001b[0;34m \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0min_value_raster\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mImageCollection\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0min_value_raster\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0min_value_raster\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtoBands\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0min_value_raster\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mImage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"The input raster must be an ee.Image.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0min_zone_vector\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFeatureCollection\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"The input zone data must be an ee.FeatureCollection.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mout_file_path\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mout_file_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetcwd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"zonal_stats.csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m\"statistics_type\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mstat_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"statistics_type\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mallowed_formats\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m\"csv\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"geojson\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"kml\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"kmz\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"shp\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabspath\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout_file_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mbasename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbasename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;31m# name = os.path.splitext(basename)[0]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mfiletype\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msplitext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbasename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mfiletype\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mallowed_formats\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"The file type must be one of the following: {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\", \"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mallowed_formats\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;31m# Parameters for histogram\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;31m# The maximum number of buckets to use when building a histogram; will be rounded up to a power of 2.\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmax_buckets\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;31m# The minimum histogram bucket width, or null to allow any power of 2.\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmin_bucket_width\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;31m# The number of values to accumulate before building the initial histogram.\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmax_raw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhist_min\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;31m# The lower (inclusive) bound of the first bucket.\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhist_max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m100.0\u001b[0m \u001b[0;31m# The upper (exclusive) bound of the last bucket.\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhist_steps\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;31m# The number of buckets to use.\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m\"max_buckets\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmax_buckets\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"max_buckets\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m\"min_bucket_width\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmin_bucket_width\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"min_bucket\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m\"max_raw\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmax_raw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"max_raw\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstat_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mstat_type\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"FIXED_HIST\"\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\"hist_min\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\"hist_max\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\"hist_steps\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhist_min\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"hist_min\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhist_max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"hist_max\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhist_steps\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"hist_steps\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mstat_type\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"FIXED_HIST\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"To use fixedHistogram, please provide these three parameters: hist_min, hist_max, and hist_steps.\"\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mallowed_statistics\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"COUNT\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcount\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MEAN\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MEAN_UNWEIGHTED\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munweighted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MAXIMUM\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MEDIAN\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmedian\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MINIMUM\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MODE\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"STD\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstdDev\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"MIN_MAX\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mminMax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"SUM\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"VARIANCE\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"HIST\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistogram\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmaxBuckets\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmax_buckets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mminBucketWidth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmin_bucket_width\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmaxRaw\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmax_raw\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"FIXED_HIST\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfixedHistogram\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhist_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhist_max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhist_steps\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"COMBINED_COUNT_MEAN\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcount\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcombine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msharedInputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"COMBINED_COUNT_MEAN_UNWEIGHTED\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcount\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcombine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munweighted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msharedInputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstat_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mstat_type\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mallowed_statistics\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\"The statistics type must be one of the following: {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m\", \"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mallowed_statistics\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mreducer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mallowed_statistics\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstat_type\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstat_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mee\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReducer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mreducer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstat_type\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"statistics_type must be either a string or ee.Reducer.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mscale\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mscale\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0min_value_raster\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprojection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnominalScale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmultiply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Computing statistics ...\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0min_value_raster\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreduceRegions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcollection\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0min_zone_vector\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mreducer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreducer\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mscale\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcrs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mtileScale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtile_scale\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_fc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mee_export_vector\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproxies\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mproxies\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mFile:\u001b[0m /opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/geemap/common.py\n", "\u001b[0;31mType:\u001b[0m function" ] } ], "source": [ "geemap.zonal_stats??" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31mSignature:\u001b[0m\n", "\u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmerge\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'DataFrame | Series'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'DataFrame | Series'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'MergeHow'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'inner'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mon\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'IndexLabel | None'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_on\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'IndexLabel | None'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_on\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'IndexLabel | None'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_index\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'bool'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_index\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'bool'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msort\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'bool'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msuffixes\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Suffixes'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m'_x'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'_y'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'bool | None'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mindicator\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'str | bool'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvalidate\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'str | None'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m'DataFrame'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Merge DataFrame or named Series objects with a database-style join.\n", "\n", "A named Series object is treated as a DataFrame with a single named column.\n", "\n", "The join is done on columns or indexes. If joining columns on\n", "columns, the DataFrame indexes *will be ignored*. Otherwise if joining indexes\n", "on indexes or indexes on a column or columns, the index will be passed on.\n", "When performing a cross merge, no column specifications to merge on are\n", "allowed.\n", "\n", ".. warning::\n", "\n", " If both key columns contain rows where the key is a null value, those\n", " rows will be matched against each other. This is different from usual SQL\n", " join behaviour and can lead to unexpected results.\n", "\n", "Parameters\n", "----------\n", "left : DataFrame or named Series\n", "right : DataFrame or named Series\n", " Object to merge with.\n", "how : {'left', 'right', 'outer', 'inner', 'cross'}, default 'inner'\n", " Type of merge to be performed.\n", "\n", " * left: use only keys from left frame, similar to a SQL left outer join;\n", " preserve key order.\n", " * right: use only keys from right frame, similar to a SQL right outer join;\n", " preserve key order.\n", " * outer: use union of keys from both frames, similar to a SQL full outer\n", " join; sort keys lexicographically.\n", " * inner: use intersection of keys from both frames, similar to a SQL inner\n", " join; preserve the order of the left keys.\n", " * cross: creates the cartesian product from both frames, preserves the order\n", " of the left keys.\n", "\n", " .. versionadded:: 1.2.0\n", "\n", "on : label or list\n", " Column or index level names to join on. These must be found in both\n", " DataFrames. If `on` is None and not merging on indexes then this defaults\n", " to the intersection of the columns in both DataFrames.\n", "left_on : label or list, or array-like\n", " Column or index level names to join on in the left DataFrame. Can also\n", " be an array or list of arrays of the length of the left DataFrame.\n", " These arrays are treated as if they are columns.\n", "right_on : label or list, or array-like\n", " Column or index level names to join on in the right DataFrame. Can also\n", " be an array or list of arrays of the length of the right DataFrame.\n", " These arrays are treated as if they are columns.\n", "left_index : bool, default False\n", " Use the index from the left DataFrame as the join key(s). If it is a\n", " MultiIndex, the number of keys in the other DataFrame (either the index\n", " or a number of columns) must match the number of levels.\n", "right_index : bool, default False\n", " Use the index from the right DataFrame as the join key. Same caveats as\n", " left_index.\n", "sort : bool, default False\n", " Sort the join keys lexicographically in the result DataFrame. If False,\n", " the order of the join keys depends on the join type (how keyword).\n", "suffixes : list-like, default is (\"_x\", \"_y\")\n", " A length-2 sequence where each element is optionally a string\n", " indicating the suffix to add to overlapping column names in\n", " `left` and `right` respectively. Pass a value of `None` instead\n", " of a string to indicate that the column name from `left` or\n", " `right` should be left as-is, with no suffix. At least one of the\n", " values must not be None.\n", "copy : bool, default True\n", " If False, avoid copy if possible.\n", "indicator : bool or str, default False\n", " If True, adds a column to the output DataFrame called \"_merge\" with\n", " information on the source of each row. The column can be given a different\n", " name by providing a string argument. The column will have a Categorical\n", " type with the value of \"left_only\" for observations whose merge key only\n", " appears in the left DataFrame, \"right_only\" for observations\n", " whose merge key only appears in the right DataFrame, and \"both\"\n", " if the observation's merge key is found in both DataFrames.\n", "\n", "validate : str, optional\n", " If specified, checks if merge is of specified type.\n", "\n", " * \"one_to_one\" or \"1:1\": check if merge keys are unique in both\n", " left and right datasets.\n", " * \"one_to_many\" or \"1:m\": check if merge keys are unique in left\n", " dataset.\n", " * \"many_to_one\" or \"m:1\": check if merge keys are unique in right\n", " dataset.\n", " * \"many_to_many\" or \"m:m\": allowed, but does not result in checks.\n", "\n", "Returns\n", "-------\n", "DataFrame\n", " A DataFrame of the two merged objects.\n", "\n", "See Also\n", "--------\n", "merge_ordered : Merge with optional filling/interpolation.\n", "merge_asof : Merge on nearest keys.\n", "DataFrame.join : Similar method using indices.\n", "\n", "Examples\n", "--------\n", ">>> df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],\n", "... 'value': [1, 2, 3, 5]})\n", ">>> df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'],\n", "... 'value': [5, 6, 7, 8]})\n", ">>> df1\n", " lkey value\n", "0 foo 1\n", "1 bar 2\n", "2 baz 3\n", "3 foo 5\n", ">>> df2\n", " rkey value\n", "0 foo 5\n", "1 bar 6\n", "2 baz 7\n", "3 foo 8\n", "\n", "Merge df1 and df2 on the lkey and rkey columns. The value columns have\n", "the default suffixes, _x and _y, appended.\n", "\n", ">>> df1.merge(df2, left_on='lkey', right_on='rkey')\n", " lkey value_x rkey value_y\n", "0 foo 1 foo 5\n", "1 foo 1 foo 8\n", "2 foo 5 foo 5\n", "3 foo 5 foo 8\n", "4 bar 2 bar 6\n", "5 baz 3 baz 7\n", "\n", "Merge DataFrames df1 and df2 with specified left and right suffixes\n", "appended to any overlapping columns.\n", "\n", ">>> df1.merge(df2, left_on='lkey', right_on='rkey',\n", "... suffixes=('_left', '_right'))\n", " lkey value_left rkey value_right\n", "0 foo 1 foo 5\n", "1 foo 1 foo 8\n", "2 foo 5 foo 5\n", "3 foo 5 foo 8\n", "4 bar 2 bar 6\n", "5 baz 3 baz 7\n", "\n", "Merge DataFrames df1 and df2, but raise an exception if the DataFrames have\n", "any overlapping columns.\n", "\n", ">>> df1.merge(df2, left_on='lkey', right_on='rkey', suffixes=(False, False))\n", "Traceback (most recent call last):\n", "...\n", "ValueError: columns overlap but no suffix specified:\n", " Index(['value'], dtype='object')\n", "\n", ">>> df1 = pd.DataFrame({'a': ['foo', 'bar'], 'b': [1, 2]})\n", ">>> df2 = pd.DataFrame({'a': ['foo', 'baz'], 'c': [3, 4]})\n", ">>> df1\n", " a b\n", "0 foo 1\n", "1 bar 2\n", ">>> df2\n", " a c\n", "0 foo 3\n", "1 baz 4\n", "\n", ">>> df1.merge(df2, how='inner', on='a')\n", " a b c\n", "0 foo 1 3\n", "\n", ">>> df1.merge(df2, how='left', on='a')\n", " a b c\n", "0 foo 1 3.0\n", "1 bar 2 NaN\n", "\n", ">>> df1 = pd.DataFrame({'left': ['foo', 'bar']})\n", ">>> df2 = pd.DataFrame({'right': [7, 8]})\n", ">>> df1\n", " left\n", "0 foo\n", "1 bar\n", ">>> df2\n", " right\n", "0 7\n", "1 8\n", "\n", ">>> df1.merge(df2, how='cross')\n", " left right\n", "0 foo 7\n", "1 foo 8\n", "2 bar 7\n", "3 bar 8\n", "\u001b[0;31mSource:\u001b[0m \n", "\u001b[0;34m@\u001b[0m\u001b[0mSubstitution\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"\\nleft : DataFrame or named Series\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m@\u001b[0m\u001b[0mAppender\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_merge_doc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindents\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;32mdef\u001b[0m \u001b[0mmerge\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDataFrame\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0mSeries\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDataFrame\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0mSeries\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mMergeHow\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"inner\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mon\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndexLabel\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_on\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndexLabel\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_on\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndexLabel\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_index\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_index\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msort\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msuffixes\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mSuffixes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\"_x\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"_y\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mindicator\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvalidate\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[0;34m|\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mDataFrame\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_validate_operand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mleft\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_validate_operand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mright\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhow\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"cross\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_cross_merge\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_df\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_df\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mon\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mon\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_on\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mleft_on\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_on\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mright_on\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_index\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mleft_index\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_index\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mright_index\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msort\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msort\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msuffixes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msuffixes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mindicator\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindicator\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvalidate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvalidate\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mop\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_MergeOperation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_df\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_df\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mhow\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mhow\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mon\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mon\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_on\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mleft_on\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_on\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mright_on\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mleft_index\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mleft_index\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mright_index\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mright_index\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msort\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msort\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msuffixes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msuffixes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mindicator\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindicator\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvalidate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvalidate\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mFile:\u001b[0m /opt/anaconda3/envs/zeel_py310/lib/python3.10/site-packages/pandas/core/reshape/merge.py\n", "\u001b[0;31mType:\u001b[0m function" ] } ], "source": [ "pd.merge??" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
        • type:Image
        • id:LANDSAT/LC08/C02/T1_TOA/LC08_148044_20230115
        • version:1728577061133366
            • id:B1
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B2
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B3
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B4
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B5
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B6
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B7
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B8
            • crs:EPSG:32643
              • 0:15
              • 1:0
              • 2:221692.5
              • 3:0
              • 4:-15
              • 5:2673907.5
              • type:PixelType
              • precision:float
              • 0:15341
              • 1:15661
            • id:B9
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B10
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:B11
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • precision:float
              • 0:7671
              • 1:7831
            • id:QA_PIXEL
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • max:65535
              • min:0
              • precision:int
              • 0:7671
              • 1:7831
            • id:QA_RADSAT
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • max:65535
              • min:0
              • precision:int
              • 0:7671
              • 1:7831
            • id:SAA
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • max:32767
              • min:-32768
              • precision:int
              • 0:7671
              • 1:7831
            • id:SZA
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • max:32767
              • min:-32768
              • precision:int
              • 0:7671
              • 1:7831
            • id:VAA
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • max:32767
              • min:-32768
              • precision:int
              • 0:7671
              • 1:7831
            • id:VZA
            • crs:EPSG:32643
              • 0:30
              • 1:0
              • 2:221685
              • 3:0
              • 4:-30
              • 5:2673915
              • type:PixelType
              • max:32767
              • min:-32768
              • precision:int
              • 0:7671
              • 1:7831
          • CLOUD_COVER:0.04
          • CLOUD_COVER_LAND:0.04
          • COLLECTION_CATEGORY:T1
          • COLLECTION_NUMBER:2
          • DATA_SOURCE_ELEVATION:GLS2000
          • DATA_SOURCE_TIRS_STRAY_LIGHT_CORRECTION:TIRS
          • DATE_ACQUIRED:2023-01-15
          • DATE_PRODUCT_GENERATED:1675122294000
          • DATUM:WGS84
          • EARTH_SUN_DISTANCE:0.9836383
          • ELLIPSOID:WGS84
          • GEOMETRIC_RMSE_MODEL:7.591
          • GEOMETRIC_RMSE_MODEL_X:5.31
          • GEOMETRIC_RMSE_MODEL_Y:5.425
          • GEOMETRIC_RMSE_VERIFY:4.289
          • GRID_CELL_SIZE_PANCHROMATIC:15
          • GRID_CELL_SIZE_REFLECTIVE:30
          • GRID_CELL_SIZE_THERMAL:30
          • GROUND_CONTROL_POINTS_MODEL:685
          • GROUND_CONTROL_POINTS_VERIFY:186
          • GROUND_CONTROL_POINTS_VERSION:5
          • IMAGE_QUALITY_OLI:9
          • IMAGE_QUALITY_TIRS:9
          • K1_CONSTANT_BAND_10:774.8853
          • K1_CONSTANT_BAND_11:480.8883
          • K2_CONSTANT_BAND_10:1321.0789
          • K2_CONSTANT_BAND_11:1201.1442
          • LANDSAT_PRODUCT_ID:LC08_L1TP_148044_20230115_20230130_02_T1
          • LANDSAT_SCENE_ID:LC81480442023015LGN00
          • MAP_PROJECTION:UTM
          • NADIR_OFFNADIR:NADIR
          • ORIENTATION:NORTH_UP
          • PANCHROMATIC_LINES:15661
          • PANCHROMATIC_SAMPLES:15341
          • PROCESSING_LEVEL:L1TP
          • PROCESSING_SOFTWARE_VERSION:LPGS_16.2.0
          • RADIANCE_ADD_BAND_1:-64.88466
          • RADIANCE_ADD_BAND_10:0.1
          • RADIANCE_ADD_BAND_11:0.1
          • RADIANCE_ADD_BAND_2:-66.44268
          • RADIANCE_ADD_BAND_3:-61.22636
          • RADIANCE_ADD_BAND_4:-51.62952
          • RADIANCE_ADD_BAND_5:-31.59469
          • RADIANCE_ADD_BAND_6:-7.85731
          • RADIANCE_ADD_BAND_7:-2.64833
          • RADIANCE_ADD_BAND_8:-58.4304
          • RADIANCE_ADD_BAND_9:-12.34792
          • RADIANCE_MULT_BAND_1:0.012977
          • RADIANCE_MULT_BAND_10:0.0003342
          • RADIANCE_MULT_BAND_11:0.0003342
          • RADIANCE_MULT_BAND_2:0.013289
          • RADIANCE_MULT_BAND_3:0.012245
          • RADIANCE_MULT_BAND_4:0.010326
          • RADIANCE_MULT_BAND_5:0.0063189
          • RADIANCE_MULT_BAND_6:0.0015715
          • RADIANCE_MULT_BAND_7:0.00052967
          • RADIANCE_MULT_BAND_8:0.011686
          • RADIANCE_MULT_BAND_9:0.0024696
          • REFLECTANCE_ADD_BAND_1:-0.1
          • REFLECTANCE_ADD_BAND_2:-0.1
          • REFLECTANCE_ADD_BAND_3:-0.1
          • REFLECTANCE_ADD_BAND_4:-0.1
          • REFLECTANCE_ADD_BAND_5:-0.1
          • REFLECTANCE_ADD_BAND_6:-0.1
          • REFLECTANCE_ADD_BAND_7:-0.1
          • REFLECTANCE_ADD_BAND_8:-0.1
          • REFLECTANCE_ADD_BAND_9:-0.1
          • REFLECTANCE_MULT_BAND_1:2e-05
          • REFLECTANCE_MULT_BAND_2:2e-05
          • REFLECTANCE_MULT_BAND_3:2e-05
          • REFLECTANCE_MULT_BAND_4:2e-05
          • REFLECTANCE_MULT_BAND_5:2e-05
          • REFLECTANCE_MULT_BAND_6:2e-05
          • REFLECTANCE_MULT_BAND_7:2e-05
          • REFLECTANCE_MULT_BAND_8:2e-05
          • REFLECTANCE_MULT_BAND_9:2e-05
          • REFLECTIVE_LINES:7831
          • REFLECTIVE_SAMPLES:7671
          • REQUEST_ID:1631847_00022
          • RESAMPLING_OPTION:CUBIC_CONVOLUTION
          • ROLL_ANGLE:-0.001
          • SATURATION_BAND_1:N
          • SATURATION_BAND_2:N
          • SATURATION_BAND_3:N
          • SATURATION_BAND_4:N
          • SATURATION_BAND_5:N
          • SATURATION_BAND_6:N
          • SATURATION_BAND_7:Y
          • SATURATION_BAND_8:N
          • SATURATION_BAND_9:N
          • SCENE_CENTER_TIME:05:33:07.2544160Z
          • SENSOR_ID:OLI_TIRS
          • SPACECRAFT_ID:LANDSAT_8
          • STATION_ID:LGN
          • SUN_AZIMUTH:148.67360104
          • SUN_ELEVATION:39.17034349
          • TARGET_WRS_PATH:148
          • TARGET_WRS_ROW:44
          • THERMAL_LINES:7831
          • THERMAL_SAMPLES:7671
          • TIRS_SSM_MODEL:FINAL
          • TIRS_SSM_POSITION_STATUS:ESTIMATED
          • TRUNCATION_OLI:UPPER
          • UTM_ZONE:43
          • WRS_PATH:148
          • WRS_ROW:44
          • WRS_TYPE:2
          • system:asset_size:1223935931
            • type:LinearRing
                • 0:72.31883641964504
                • 1:22.52056460806495
                • 0:72.29786773945534
                • 1:22.42936978641094
                • 0:72.29790667636928
                • 1:22.42736139148
                • 0:72.30336790848062
                • 1:22.426188648118245
                • 0:72.91869001515637
                • 1:22.30172835792067
                • 0:73.56730118878409
                • 1:22.167716185850985
                • 0:74.09737210807053
                • 1:22.056060171921665
                • 0:74.0993441010931
                • 1:22.056071041671355
                • 0:74.10397180462448
                • 1:22.07490056623611
                • 0:74.1329028941469
                • 1:22.19375917371582
                • 0:74.338430292183
                • 1:23.033751135411748
                • 0:74.47374505900434
                • 1:23.582190648182443
                • 0:74.52477957148619
                • 1:23.788055785032157
                • 0:74.52361975586437
                • 1:23.788584893320223
                • 0:73.58117794062672
                • 1:23.982739409188408
                • 0:72.7016330176871
                • 1:24.15813876032298
                • 0:72.69921791350811
                • 1:24.158102347091965
                • 0:72.60125718541295
                • 1:23.739508350574084
                • 0:72.50666704989243
                • 1:23.333219126751594
                • 0:72.41253287124782
                • 1:22.926903337749174
                • 0:72.31883641964504
                • 1:22.52056460806495
          • system:index:LC08_148044_20230115
          • system:time_end:1673760787254
          • system:time_start:1673760787254
      " ], "text/plain": [ "" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "first_item\n", "ee_object = geemap.gdf_to_ee(first_item)\n", "image = dataset.toList(true_color_432.size()).get(1)\n", "image = ee.Image(image)\n", "image" ] }, { "cell_type": "code", "execution_count": 232, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d5625c7aabcf4d92a42515ca045ef758", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[27.0, 72.0], controls=(WidgetControl(options=['position', 'transparent_bg'], widget=SearchDataGUI(…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import geemap\n", "Map = geemap.Map(center=(27.0, 72.0), zoom=17)\n", "\n", "wmts_url = \"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0\"\n", "\n", "Map.add_tile_layer(\"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/default028mm/MapServer/tile/56450/{z}/{y}/{x}\")\n", "Map" ] }, { "cell_type": "code", "execution_count": 249, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 249, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import geemap.foliumap as geemap\n", "Map = geemap.Map(center=(27.0, 72.0), zoom=17)\n", "\n", "wmts_url = \"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0\"\n", "\n", "Map.add_tile_layer(\"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56450/{z}/{y}/{x}\")\n", "Map" ] }, { "cell_type": "code", "execution_count": 268, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ad7f77aad13a49ce9cc3518d296d1138", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[27.0, 72.0], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoom_out…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import leafmap\n", "Map = leafmap.Map(center=(27.0, 72.0), zoom=17)\n", "Map.split_map(\"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10/{z}/{y}/{x}\", \"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56450/{z}/{y}/{x}\")\n", "Map" ] }, { "cell_type": "code", "execution_count": 277, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "67487913ce194912975217073b4e6912", "version_major": 2, "version_minor": 0 }, "text/plain": [ "GridspecLayout(children=(Output(layout=Layout(grid_area='widget001')), Output(layout=Layout(grid_area='widget0…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import leafmap.leafmap as leafmap\n", "\n", "layers = [\"ROADMAP\", \"HYBRID\"]\n", "leafmap.linked_maps(rows=1, cols=2, height=\"400px\", layers=layers)" ] }, { "cell_type": "code", "execution_count": 204, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import xml.etree.ElementTree as ET\n", "import requests\n", "\n", "# WMTS capabilities URL\n", "wmts_url = \"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml\"\n", "\n", "# Get the XML content\n", "response = requests.get(wmts_url)\n", "root = ET.fromstring(response.content)" ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Number of layers: 175\n" ] } ], "source": [ "import xml.etree.ElementTree as ET\n", "import requests\n", "\n", "# WMTS capabilities URL\n", "wmts_url = \"https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml\"\n", "\n", "# Fetch the XML content\n", "response = requests.get(wmts_url)\n", "root = ET.fromstring(response.content)\n", "\n", "# Define namespaces\n", "namespace = {\n", " 'wmts': 'https://www.opengis.net/wmts/1.0',\n", " 'ows': 'https://www.opengis.net/ows/1.1'\n", "}\n", "\n", "# Extract mapping of layer identifiers to their ResourceURL templates\n", "layer_mapping = {}\n", "\n", "# Find all Layer elements\n", "for layer in root.findall('.//wmts:Layer', namespace):\n", " identifier = layer.find('ows:Identifier', namespace).text\n", " title = layer.find('ows:Title', namespace).text\n", " resource_url_elem = layer.find('wmts:ResourceURL', namespace)\n", "\n", " if resource_url_elem is not None:\n", " resource_template = resource_url_elem.get('template')\n", " layer_mapping[identifier] = {\n", " 'title': title,\n", " 'resource_template': resource_template\n", " }\n", "\n", "# Display the extracted layer mapping\n", "print(f\"Number of layers: {len(layer_mapping)}\")" ] }, { "cell_type": "code", "execution_count": 240, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b822840dfb914ba7b3b96695f6def7f5", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/175 [00:00\n", " .geemap-dark {\n", " --jp-widgets-color: white;\n", " --jp-widgets-label-color: white;\n", " --jp-ui-font-color1: white;\n", " --jp-layout-color2: #454545;\n", " background-color: #383838;\n", " }\n", "\n", " .geemap-dark .jupyter-button {\n", " --jp-layout-color3: #383838;\n", " }\n", "\n", " .geemap-colab {\n", " background-color: var(--colab-primary-surface-color, white);\n", " }\n", "\n", " .geemap-colab .jupyter-button {\n", " --jp-layout-color3: var(--colab-primary-surface-color, white);\n", " }\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{'2024-10-10': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56450/{z}/{y}/{x}',\n", " '2024-09-19': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20337/{z}/{y}/{x}',\n", " '2024-08-15': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/32553/{z}/{y}/{x}',\n", " '2024-06-27': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/39767/{z}/{y}/{x}',\n", " '2024-06-06': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/12428/{z}/{y}/{x}',\n", " '2024-05-09': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/52930/{z}/{y}/{x}',\n", " '2024-03-28': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13968/{z}/{y}/{x}',\n", " '2024-03-07': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/60013/{z}/{y}/{x}',\n", " '2024-02-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/37965/{z}/{y}/{x}',\n", " '2024-01-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/41468/{z}/{y}/{x}',\n", " '2023-12-07': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56102/{z}/{y}/{x}',\n", " '2023-11-01': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/12457/{z}/{y}/{x}',\n", " '2023-10-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1034/{z}/{y}/{x}',\n", " '2023-08-31': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/64776/{z}/{y}/{x}',\n", " '2023-08-10': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17632/{z}/{y}/{x}',\n", " '2023-06-29': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/47963/{z}/{y}/{x}',\n", " '2023-06-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25982/{z}/{y}/{x}',\n", " '2023-05-03': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/46399/{z}/{y}/{x}',\n", " '2023-04-05': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/37890/{z}/{y}/{x}',\n", " '2023-03-15': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/44873/{z}/{y}/{x}',\n", " '2023-02-23': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/57965/{z}/{y}/{x}',\n", " '2023-01-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11475/{z}/{y}/{x}',\n", " '2022-12-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/45134/{z}/{y}/{x}',\n", " '2022-11-02': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/7110/{z}/{y}/{x}',\n", " '2022-10-12': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/44988/{z}/{y}/{x}',\n", " '2022-09-21': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/47471/{z}/{y}/{x}',\n", " '2022-08-31': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/45441/{z}/{y}/{x}',\n", " '2022-08-10': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17825/{z}/{y}/{x}',\n", " '2022-07-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13851/{z}/{y}/{x}',\n", " '2022-06-29': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4905/{z}/{y}/{x}',\n", " '2022-06-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/44710/{z}/{y}/{x}',\n", " '2022-05-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5314/{z}/{y}/{x}',\n", " '2022-04-27': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16245/{z}/{y}/{x}',\n", " '2022-04-06': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/48232/{z}/{y}/{x}',\n", " '2022-03-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10321/{z}/{y}/{x}',\n", " '2022-02-24': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10312/{z}/{y}/{x}',\n", " '2022-02-02': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/26083/{z}/{y}/{x}',\n", " '2022-01-12': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/42663/{z}/{y}/{x}',\n", " '2021-12-21': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/26120/{z}/{y}/{x}',\n", " '2021-11-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/48624/{z}/{y}/{x}',\n", " '2021-11-03': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/42403/{z}/{y}/{x}',\n", " '2021-10-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16749/{z}/{y}/{x}',\n", " '2021-09-22': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/51313/{z}/{y}/{x}',\n", " '2021-09-01': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/47568/{z}/{y}/{x}',\n", " '2021-08-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/51423/{z}/{y}/{x}',\n", " '2021-07-21': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8432/{z}/{y}/{x}',\n", " '2021-06-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13534/{z}/{y}/{x}',\n", " '2021-06-09': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/48376/{z}/{y}/{x}',\n", " '2021-05-19': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15423/{z}/{y}/{x}',\n", " '2021-04-28': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/27659/{z}/{y}/{x}',\n", " '2021-04-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6863/{z}/{y}/{x}',\n", " '2021-03-17': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5359/{z}/{y}/{x}',\n", " '2021-02-24': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9812/{z}/{y}/{x}',\n", " '2021-01-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1049/{z}/{y}/{x}',\n", " '2020-12-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/29260/{z}/{y}/{x}',\n", " '2020-11-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20753/{z}/{y}/{x}',\n", " '2020-10-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/119/{z}/{y}/{x}',\n", " '2020-09-23': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19187/{z}/{y}/{x}',\n", " '2020-09-02': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9181/{z}/{y}/{x}',\n", " '2020-08-12': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6049/{z}/{y}/{x}',\n", " '2020-07-22': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9549/{z}/{y}/{x}',\n", " '2020-07-01': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18289/{z}/{y}/{x}',\n", " '2020-06-10': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11135/{z}/{y}/{x}',\n", " '2020-05-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/32645/{z}/{y}/{x}',\n", " '2020-04-29': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15045/{z}/{y}/{x}',\n", " '2020-04-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/26751/{z}/{y}/{x}',\n", " '2020-03-23': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16062/{z}/{y}/{x}',\n", " '2020-02-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8495/{z}/{y}/{x}',\n", " '2020-01-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/21485/{z}/{y}/{x}',\n", " '2020-01-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23001/{z}/{y}/{x}',\n", " '2019-12-12': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4756/{z}/{y}/{x}',\n", " '2019-10-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11060/{z}/{y}/{x}',\n", " '2019-10-09': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11351/{z}/{y}/{x}',\n", " '2019-09-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9892/{z}/{y}/{x}',\n", " '2019-08-28': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/30442/{z}/{y}/{x}',\n", " '2019-08-07': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17216/{z}/{y}/{x}',\n", " '2019-07-17': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16681/{z}/{y}/{x}',\n", " '2019-06-26': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/645/{z}/{y}/{x}',\n", " '2019-06-05': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/12576/{z}/{y}/{x}',\n", " '2019-05-15': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9598/{z}/{y}/{x}',\n", " '2019-04-24': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18063/{z}/{y}/{x}',\n", " '2019-04-03': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18691/{z}/{y}/{x}',\n", " '2019-03-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4383/{z}/{y}/{x}',\n", " '2019-02-21': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17677/{z}/{y}/{x}',\n", " '2019-01-31': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25944/{z}/{y}/{x}',\n", " '2019-01-09': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6036/{z}/{y}/{x}',\n", " '2018-12-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23448/{z}/{y}/{x}',\n", " '2018-11-29': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/239/{z}/{y}/{x}',\n", " '2018-11-07': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3201/{z}/{y}/{x}',\n", " '2018-10-17': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18820/{z}/{y}/{x}',\n", " '2018-09-26': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14426/{z}/{y}/{x}',\n", " '2018-09-06': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/2168/{z}/{y}/{x}',\n", " '2018-08-15': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1858/{z}/{y}/{x}',\n", " '2018-07-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14829/{z}/{y}/{x}',\n", " '2018-06-27': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11334/{z}/{y}/{x}',\n", " '2018-06-06': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8249/{z}/{y}/{x}',\n", " '2018-05-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/32337/{z}/{y}/{x}',\n", " '2018-04-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1296/{z}/{y}/{x}',\n", " '2018-04-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20399/{z}/{y}/{x}',\n", " '2018-03-28': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/7072/{z}/{y}/{x}',\n", " '2018-03-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8255/{z}/{y}/{x}',\n", " '2018-02-23': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13067/{z}/{y}/{x}',\n", " '2018-01-31': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10768/{z}/{y}/{x}',\n", " '2018-01-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13045/{z}/{y}/{x}',\n", " '2018-01-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13161/{z}/{y}/{x}',\n", " '2017-11-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25521/{z}/{y}/{x}',\n", " '2017-10-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23264/{z}/{y}/{x}',\n", " '2017-10-04': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15212/{z}/{y}/{x}',\n", " '2017-09-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18358/{z}/{y}/{x}',\n", " '2017-08-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25379/{z}/{y}/{x}',\n", " '2017-08-10': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14035/{z}/{y}/{x}',\n", " '2017-07-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3319/{z}/{y}/{x}',\n", " '2017-06-27': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4073/{z}/{y}/{x}',\n", " '2017-06-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14765/{z}/{y}/{x}',\n", " '2017-05-31': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14342/{z}/{y}/{x}',\n", " '2017-05-17': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20365/{z}/{y}/{x}',\n", " '2017-05-03': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/784/{z}/{y}/{x}',\n", " '2017-04-19': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1052/{z}/{y}/{x}',\n", " '2017-03-29': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5205/{z}/{y}/{x}',\n", " '2017-03-15': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/29387/{z}/{y}/{x}',\n", " '2017-02-27': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/31026/{z}/{y}/{x}',\n", " '2017-02-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/27946/{z}/{y}/{x}',\n", " '2017-01-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9486/{z}/{y}/{x}',\n", " '2017-01-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/577/{z}/{y}/{x}',\n", " '2016-12-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18966/{z}/{y}/{x}',\n", " '2016-12-07': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6678/{z}/{y}/{x}',\n", " '2016-11-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/21750/{z}/{y}/{x}',\n", " '2016-10-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4222/{z}/{y}/{x}',\n", " '2016-10-12': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13770/{z}/{y}/{x}',\n", " '2016-09-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6984/{z}/{y}/{x}',\n", " '2016-08-31': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9175/{z}/{y}/{x}',\n", " '2016-08-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23601/{z}/{y}/{x}',\n", " '2016-07-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5097/{z}/{y}/{x}',\n", " '2016-07-06': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13240/{z}/{y}/{x}',\n", " '2016-06-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11509/{z}/{y}/{x}',\n", " '2016-05-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8551/{z}/{y}/{x}',\n", " '2016-04-28': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5769/{z}/{y}/{x}',\n", " '2016-04-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/388/{z}/{y}/{x}',\n", " '2016-03-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19085/{z}/{y}/{x}',\n", " '2016-03-02': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20443/{z}/{y}/{x}',\n", " '2016-02-17': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11262/{z}/{y}/{x}',\n", " '2016-02-04': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6354/{z}/{y}/{x}',\n", " '2016-01-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3515/{z}/{y}/{x}',\n", " '2015-12-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/28163/{z}/{y}/{x}',\n", " '2015-11-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8781/{z}/{y}/{x}',\n", " '2015-10-28': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11092/{z}/{y}/{x}',\n", " '2015-10-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10850/{z}/{y}/{x}',\n", " '2015-09-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3630/{z}/{y}/{x}',\n", " '2015-09-16': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1431/{z}/{y}/{x}',\n", " '2015-09-02': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/30584/{z}/{y}/{x}',\n", " '2015-08-19': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/28219/{z}/{y}/{x}',\n", " '2015-07-08': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/24007/{z}/{y}/{x}',\n", " '2015-06-24': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11952/{z}/{y}/{x}',\n", " '2015-05-13': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19930/{z}/{y}/{x}',\n", " '2015-04-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23880/{z}/{y}/{x}',\n", " '2015-04-15': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9203/{z}/{y}/{x}',\n", " '2015-03-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/2730/{z}/{y}/{x}',\n", " '2015-03-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15084/{z}/{y}/{x}',\n", " '2015-02-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10443/{z}/{y}/{x}',\n", " '2015-01-21': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20222/{z}/{y}/{x}',\n", " '2014-12-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5844/{z}/{y}/{x}',\n", " '2014-12-18': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14720/{z}/{y}/{x}',\n", " '2014-12-03': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23383/{z}/{y}/{x}',\n", " '2014-11-12': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/30195/{z}/{y}/{x}',\n", " '2014-10-29': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11019/{z}/{y}/{x}',\n", " '2014-10-01': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/22692/{z}/{y}/{x}',\n", " '2014-09-17': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25586/{z}/{y}/{x}',\n", " '2014-07-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5232/{z}/{y}/{x}',\n", " '2014-07-02': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3026/{z}/{y}/{x}',\n", " '2014-06-25': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11033/{z}/{y}/{x}',\n", " '2014-06-11': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/31144/{z}/{y}/{x}',\n", " '2014-05-14': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16513/{z}/{y}/{x}',\n", " '2014-04-30': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19819/{z}/{y}/{x}',\n", " '2014-03-26': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4230/{z}/{y}/{x}',\n", " '2014-02-20': 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10/{z}/{y}/{x}'}" ] }, "execution_count": 264, "metadata": {}, "output_type": "execute_result" } ], "source": [ "map_dict" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6a87c6af055444be8d9f304293e5287f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "GridspecLayout(children=(Output(layout=Layout(grid_area='widget001')), Output(layout=Layout(grid_area='widget0…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import leafmap.leafmap as leafmap\n", "\n", "layers = [\"Esri.WorldTopoMap\", \"OpenTopoMap\"]\n", "leafmap.linked_maps(rows=1, cols=2, height=\"400px\", layers=layers)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1ce50feee5594597a06e1de0b80600b1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[45.8107, 8.6288], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoo…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ipyleaflet import Map, TileLayer, WidgetControl\n", "from ipywidgets import SelectionSlider\n", "\n", "# Prepare a slider widget to navigate the version history of the basemap\n", "# There doesn't seem to be any pattern between timeId and basemap date, so just a few couples manually extracted from\n", "# https://wayback.maptiles.arcgis.com/arcgis/rest/services/world_imagery/mapserver/wmts/1.0.0/wmtscapabilities.xml\n", "date_timeId_mapping = [('2016-01-13', 3515),\n", " ('2017-01-11', 577),\n", " ('2018-01-08', 13161),\n", " ('2019-01-09', 6036),\n", " ('2020-01-08', 23001),\n", " ('2021-01-13', 1049),\n", " ('2022-01-12', 42663),\n", " ('2023-01-11', 11475)]\n", "\n", "# Date slider widget\n", "wayback_slider = SelectionSlider(\n", " options=date_timeId_mapping,\n", " value=3515,\n", " description='Date',\n", " disabled=False,\n", " continuous_update=True,\n", " orientation='horizontal',\n", " readout=True\n", ")\n", "time_control = WidgetControl(widget=wayback_slider, position='topright')\n", "\n", "# Connect tile layer (wayback, not yet defined) with slider value\n", "def on_date_change(*args):\n", " wayback.url = 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/world_imagery/wmts/1.0.0/default028mm/mapserver/tile/%d/{z}/{y}/{x}' % wayback_slider.value\n", " wayback.redraw()\n", " \n", "wayback_slider.observe(on_date_change, 'value')\n", "\n", "# Prepare map, tilelayer and draw it\n", "m = Map(center=(45.8107, 8.6288), zoom=16, scroll_wheel_zoom=True)\n", "wayback = TileLayer(url='https://wayback.maptiles.arcgis.com/arcgis/rest/services/world_imagery/wmts/1.0.0/default028mm/mapserver/tile/3515/{z}/{y}/{x}')\n", "m.add_layer(wayback)\n", "m.add_control(time_control)\n", "m" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "zeel_py310", "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.15" } }, "nbformat": 4, "nbformat_minor": 2 }