{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Download Process\n", "\n", "These notebooks contain information about querying and downloading data of the Sentinel-2 mission from the Copernicus Open Access Hub.\n", "\n", "```{note}\n", "In order to run these notebooks, a free account for the Copernicus Open Access Hub is needed.\n", "Please create an account first:\n", "\n", "https://scihub.copernicus.eu/dhus/#/self-registration\n", "\n", "Consult the [README](../README.md) for information on setting up the environment variables.\n", "```" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "from sentinelsat import SentinelAPI, read_geojson\n", "from tqdm.notebook import tqdm\n", "\n", "api = SentinelAPI(os.getenv('SCIHUB_USERNAME'), os.getenv('SCIHUB_PASSWORD'))\n", "api._tqdm = tqdm # ← gives us better progress bars" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining the Region of Interest\n", "\n", "The Copernicus Open Access Hub API expects a point or area that designates the region of interest.\n", "We use the [OpenStreetMap Nominatim API](https://nominatim.org/) to query for the administrative boundaries of Berlin using the `search_osm` function defined in `sentinel_helpers.py`:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0msearch_osm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplace\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[0msearch_osm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplace\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 Returns a GeoDataFrame with results from OpenStreetMap Nominatim for the given search string.\u001b[0m\n", "\u001b[0;34m '''\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0murlescaped_place\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquote\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0msearch_url\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m'https://nominatim.openstreetmap.org/search/?q={}'\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m'&format=geojson&polygon_geojson=1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murlescaped_place\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mgpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msearch_url\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 ~/sources/sentinel_helpers.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sentinel_helpers import search_osm\n", "??search_osm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function is mostly concerned with constructing the correct URL and ensuring that the response is returned as GeoJSON so it can be parsed by the `GeoPandas` library.\n", "\n", "A query returns a `GeoPandas` `GeoDataFrame` which contains a geometry and additional information that can be used to narrow down the area we are interested in:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
place_idosm_typeosm_iddisplay_nameplace_rankcategorytypeimportanceicongeometry
0574401node240109189Berlin, 10117, Deutschland15placecity0.897539https://nominatim.openstreetmap.org/ui/mapicon...POINT (13.38886 52.51704)
1256375666relation62422Berlin, Deutschland8boundaryadministrative0.897539https://nominatim.openstreetmap.org/ui/mapicon...MULTIPOLYGON (((13.08835 52.41963, 13.09021 52...
21253688node313826576Berlin, Tauentzienstraße, Charlottenburg, Char...30tourismartwork0.315372https://nominatim.openstreetmap.org/ui/mapicon...POINT (13.33864 52.50340)
3225671node50798110Berlin, Seedorf, Trave-Land, Segeberg, Schlesw...19placevillage0.272651https://nominatim.openstreetmap.org/ui/mapicon...POINT (10.44613 54.03636)
4107621118way68276545Berlin, Potsdam, Klein Bennebek, Kropp-Stapelh...26highwayunclassified0.210000NoneLINESTRING (9.41929 54.40283, 9.42072 54.40343...
\n", "
" ], "text/plain": [ " place_id osm_type osm_id \\\n", "0 574401 node 240109189 \n", "1 256375666 relation 62422 \n", "2 1253688 node 313826576 \n", "3 225671 node 50798110 \n", "4 107621118 way 68276545 \n", "\n", " display_name place_rank category \\\n", "0 Berlin, 10117, Deutschland 15 place \n", "1 Berlin, Deutschland 8 boundary \n", "2 Berlin, Tauentzienstraße, Charlottenburg, Char... 30 tourism \n", "3 Berlin, Seedorf, Trave-Land, Segeberg, Schlesw... 19 place \n", "4 Berlin, Potsdam, Klein Bennebek, Kropp-Stapelh... 26 highway \n", "\n", " type importance \\\n", "0 city 0.897539 \n", "1 administrative 0.897539 \n", "2 artwork 0.315372 \n", "3 village 0.272651 \n", "4 unclassified 0.210000 \n", "\n", " icon \\\n", "0 https://nominatim.openstreetmap.org/ui/mapicon... \n", "1 https://nominatim.openstreetmap.org/ui/mapicon... \n", "2 https://nominatim.openstreetmap.org/ui/mapicon... \n", "3 https://nominatim.openstreetmap.org/ui/mapicon... \n", "4 None \n", "\n", " geometry \n", "0 POINT (13.38886 52.51704) \n", "1 MULTIPOLYGON (((13.08835 52.41963, 13.09021 52... \n", "2 POINT (13.33864 52.50340) \n", "3 POINT (10.44613 54.03636) \n", "4 LINESTRING (9.41929 54.40283, 9.42072 54.40343... " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = search_osm('Berlin, Germany')\n", "results.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OpenStreetMap contains geoinformation at vastly different scales and of very different types.\n", "We can use it to query outlines of parks or entire countries.\n", "The [OpenStreetMap wiki](https://wiki.openstreetmap.org/wiki/Main_Page) contains exhaustive information about the architectural design of OpenStreetMap.\n", "Using the `search_osm` function we are very flexible in the type of query information we can retrieve.\n", "\n", "The first result is the city's centroid.\n", "We use the `type` to select the administrative boundaries." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEzCAYAAAA4mdRkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABDBUlEQVR4nO2deZgcRd2A32wOCEkgXIEEkHCvLUKI6IdyNCGAHAqCUioCIQHTHCo2N0EERbkCtigQWyKEUygRPJAjiGEQISCJXDbhBjkCJMACCSHnfn9Ub9iZzOzM9PRV2/U+zz6700f1O73TVVPXr/p0dnZiMBgMhuLRlrWAwWAwGLLBFAAGg8FQUEwBYDAYDAXFFAAGg8FQUEwBYDAYDAXFFAAGg8FQUApdAJRKpYOzdoiCjt7GOR10dAY9vXV0rqSPmQdgMBgMxaToNYBpWTtEQUdv45wOOjqDnt46OldS6AIAODprgYjo6G2c00FHZ9DTW0fnMopeAJybtUBEdPQ2zumgozPo6a2jcxlFLwCuyFogIjp6G+d00NEZ9PTW0bmMohcAB2UtEBEdvY1zOujoDHp66+hcRtELgJlZC0RER2/jnA46OoOe3jo6l1H0AmCzrAUioqO3cU4HHZ1BT28dncsoegGwKGuBiOjobZzTQUdn0NNbR+cyil4AdGQtEJGOrAUi0JG1QAQ6shaIQEfWAhHpyFogAh1ZC7RK0QuA9qwFIqKjt3FOBx2dQU9vHZ3LKHoBMCNrgYjo6G2cW8D3gtV8L1ivgUNz49wkOnrr6FxG0QuAQ7MWiIiO3sY5Ar4XbOV7wd9QY84HN3BK5s4R0dFbR+cyil4AXJK1QER09DbOTeJ7wQDgZmA/4BXHtV5u4DQd7zPo6a2jcxlFLwAmZy0QER29jXPzXADsADwLXNTgOVk7R0VHbx2dyzDhoA2GHOJ7wRHANeHLHziu9etu+wYCpwOe41odGegZegmFrgGUSqXrs3aIgo7exrk2vhes7XuB8L2gb/h6M+CycPdS4MZw+1DfC34CvAYcXy3z1/E+g57eOjpXYmoABkOG+F7QB/gz8FXgeVSzzwTgS+Ehy4CvAHsDRwFrhdsfcFxr13RtDb0NUwPQEB29jXNNTkdl/gBbAlP5JPMH6AfcBJzIJ5k/QFAtMR3vM+jpraNzJaYGYDBkhO8FE4DfRTz9BMe1fhWnj6F4FL0G4GXtEAUdvY1zOb4XfBX4bQtJ1KoBaHefQU9vHZ0rKXQBAJyXtUBEdPQ2zuUsBR5q4fyqBQB63mfQ01tH5zKKXgCMz1ogIrnz9r1gN98L1u7hkNw5N0Bizo5r3QXYND6+vzvvO671Ro19Ot5n0NNbR+cy+mUtkDF3Zi0QkTx63w6s5nvBs8BbwCxgDvAxsGLQmmt97M8ODkd1dN7kuNbT2ak2TKL32XGtFcBpvhfMAXygf4OnzvO9oI/jWtU68PL42WgEHb11dC6j6DWA0VkLRCRX3r4X9AOGAAOAbYGxwKnAVagx7Dct/GDApcC1wI+BW3wvWD0j3WZI5T47rnU1apjnOw2esiXwgxr7cvXZaAIdvXV0LqPoBcDcrAUikjfvoU0e/0qEc7IgtfvsuNZ9wDBgc2AfVAZ/GfBcjVMu9L3gs1W25+2z0Sg6euvoXEbRm4AM8bBW/UMAtYCG67jWtORU9CVsEnop/LkbwPeCA4E/VTl8NeBG3ws+77jWx6lJGnoVDRUAQoiXgQ+B5cAyKeWOQojJqAksS4AXgPFSyo4q5w5FTW7ZFugEJkgpHxJCnAN8F5gXHjpJSnlHK28mAsNTvl5c5M27p85fAPoPWP7Y0iV99++h8zKPZHqfw1nCu/RwyLbAv3wv+K7jWrPDbXn7bDSKjt46OpfRTA1gjJRyfrfX9wBnSCmXCSEuBM4ATqty3qXAXVLKbwghBgBrdNvnSSkvbto6PmbXPySX5M37XeBXwGHAOtUO6Nt/xR8nHP9ZnTJ/yPA+h5n/VcCRdQ4dDTzie8EvgLPbR+fus9EoOnrr6FxG5D4AKeV0KeWy8OVMYOPKY4QQawK7Ec52lFIuqVZLyJB9sxaISK68Hdd60XGtE4D5tY5Z8nFfN+ws1onU77PvBev7XvBr4D7qZ/5d9AVOAZ587+3Vv5eQWtLk6jPdIDo6l9HoA9kJTBdCdAK+lLJyBuME1MIVlWyOauK5WgixPWpo4AlSyoXh/u8JIY4AHgVOklK+1/Q7aI2rU75eXOTVe/1aO1Ysb1sHOJz8ulcjNtdwcZf1UR28/YBHHNf6T8Uxnwf+CmwQ8TJbvPXakC3Ca53juNYrrTinjE6fiy50dC6joVhAQogRUso3hBDDUE0/35dS3h/uOxPYEThYStlZcd6OqNrBzlLKh4UQlwIfSCnPEkJsgPrG2AmcCwyXUk6ocu2JwESA9vb2p8eOHXslagTJQFRn2U7AbcBxwFnAVNu2jyyVStfZtn14qVSaBhwdXuMK4KDQaTPUkm6XoBZ3ntHt9WTbto8tlUrX27Z9WLffHmr233jUGODRfDISYDiqSrgv6oMxybZtt0oaU1Df1k5CDZEcgxov38x7+i+wfY33tAjV2Zrqe5o/d42z588d9Fbl/6+czle2HjX/prY2ftTk/ynV9zRn9vpHbL39vCltfVmK+gIT9f80DTj6rVcH/+29eatvA3027boTbW0rXh84eOk1awxeunpnZ5+/tvXtnPD2a4N2hD6f7vkeNszCYRt/OOugQ/7PjvmzN41k/k/bAveSzfMU6T2h5risn9M8ouw92bb9arUPSdPB4MLO2wVSyouFEOOAY4CxUsqPqhy7ITBTSjkyfL0rcLqUcv+K40YCt0spt21KxpAbfC/YAHizgUOPclzrqqR9ouJ7wRjUQ7U+cKDjWu/HkKZP+CUmZTqB0xzXWrlyVTj/YrnjWksz8DHkjLp9AEKIQUKIIV1/oyasPCWE2AfV6XtAtcwfQEr5JvCqEGKbcNNYwhgmQojuPegHAU9FfhcR0TWca069Gx0K+iPfCxqd8ZoFHvANwO4/YPlLvhdsGEOacX2rb5Y+wEW+F1zhe8Fo3wuuRdW698vIpyY5/Uz3iI7OldStAQghNkdVNUC1Xd4opfy5EOJ51FjkrtmLM6WUxwghRgBTpZT7heePQg0DHQC8iBou+p4Q4jpgFOpbysuAI6XUfmJFUfG94IvAgw0ePtFxrSuT9ImC7wWHALJi8yuoWsu9TaY1EtU3thfweVRHbV4IgDsd1zo5axFDthR6PYCuNresPZolj96+F+yPigfUCB8B7Y5rVW2XzArfC24Bvl5j99GodthdgF/Ua0LxveAy4Ph4DWNluuNaX85aoos8fqbroaNzJboNy4sVXf95OfVet4lj+5GzafS+F3yB2pk/qFpsF7uilmnsiZGtOiVMruZk5PQz3SM6OldS6AKgVCpNsW372Kw9miVNb98L1kP1+zzouNbL4bbVUKMiBgM7o0Yk7NBEstJxrWX1D0uVZoZefsb3gnUc13q3h2M+bFUoYV7PWqA7Oj6LOjpXUugCADXUSkfS9B4A3ADge8F84G3Ut9s1ejinJ95CjbLJG81M6x8J3Ox7wdcd1/qgxjHPtq6UKLOyFqhAx2dRR+cyih4N9KSsBSKSmncYu6cr7vl6gEX0zB9UrSFXHU/hqKTvNHnansCjvhd8pls6Q30v+JTvBeuiwmPnlSWoMe15QsdnUUfnMopeA7gxa4GIpO19EfFNe5/huNaCmNKKTBhr5xuovouTgS0iJLMV8KDvBQejRrL9A/hUXI4J8h/HtTqylqhAx2dRR+cyil4DGJO1QETS9r4fqNXU0Sz714hjnzZro+axTCFa5t/FmsAdwL/QI/MHNeM2b+j4LOroXEbRC4A5WQtEJFXvME79vLoHNkYf4JyY0oqE7wXnoNroPxdTkgOIHr8nC/6StUAVdHwWdXQuo+gFwNCsBSIyNINrrhdjWgf7XrB9jOk1jO8F+6JipzQzbLU38Q7w76wlqjA0a4EIDM1aoFWKXgAMzFogIql6h2Gc14w52V1jTq9RDqLYn/v7wxpd3tDxWdTRuYwiPwigourpSNre66KabuKk0QXQ4+bvGV03L9yftUANdHwWdXQuo+ijgHYCHslaIgI9eocjXPZGfUOZVSvkQhh//s0GQjLE1fyzAPgtcBPwVnj9JxzXWhxT+j3ie8EwwEnjWjljGXArKoTFw1nL1EDHZ1FH5zKKXgDcVv+QXFLPe13grvDvBb4XPIKKArkOaujimqhAfmsAH/tecD2qNtiGin++EbApKsLnC8B/Y/K+E7BRIcS75hK84XvBzcB1QJBEYeB7wXaouDyH0MD6xb2MG4FJGiwOo+OzqKNzGUUvAI5DrWWsG/W8uy/PORjYo4djV0cFOqvFSFQY7zg4pMq2EYAb/uB7wVzgD8B0VMCyyHHrfS/YCBWq4hTUokVFYz/Hte6sf1gu0PFZ1NG5jKIXAGdlLRCRet6fT8UiGYYDPwh/nvG9wAXubrTjMuyw/hzwE1TmPzgp0ZzTySe1QB3Q8VnU0bmMohcAU2l84e08Uc9b14XBK9kGNcnqQd8LzgK+hGrG+iyqZtIHVYM4EzVT+WFgO+CALGRzxiLHtXIVcqMOOj6LOjqXUej1AHojvhfsTv7ivBjSZ57jWsOyljDkm0IPAy2VStdl7RCFOt695du/oTXyHo66DB2fRR2dKzE1gF6E7wVXAFrHJzfEwnzgKzke8mnICUWvAUzL2iEK1bzDNWgnpi5jyCNX65b56/gs6uhcSaELAHoe/phnqnmfSL4WHjdkxzVZC0RAx2dRR+cyil4AnJu1QETKvH0vWBuYkJGLIUf07bd8vuNacU3cSxMdn0UdncsoegFwRdYCEan0PhYYlIWIIW/0+X3WBhHR8VnU0bmMohcAB2UtEJGV3r4XrA58P0MXQ44YvumHcS3ckzY6Pos6OpdR9AJgZtYCEenu/T1gw6xEDLli1uC1luRxsZdG0PFZ1NG5jKIXAJtlLRCRzQB8L1gTOD1jF0N+uA/NP9OaoaNzGUUvABZlLRCRRb4XbI4KmlbUla0Mq/IwGn+msxaIgI7OZRQ9FlBH1gJR+N9za+2GCkVb9ALcUM4syiPB6kRH1gIR6MhaoFWKnoG0Zy0Qhc5OtsP87wzlLERlSFp+ptHTW0fnMhqqAQghXkbFFlkOLJNS7iiEmAx8FViCWjRkvJSyo8q5Q1FR87ZFhaidIKV8SAixDnAzKqrjy4CQUr7X2ttpGi2DprW1cQOwV9YehlwxCHhn7iuDD8xaJCI6Pos6OpfRzLfIMVLKUVLKroU17gG2lVJuBzxL7YURLgXuklK2A9sDT4fbTwfulVJuBdxLNp2Zh2ZwzZbZZMv3RwKXZ+1hyB9LPu73k6wdIqLjs6ijcxmR+wCklNO7vZwJfKPyGCHEmsBuhDGzpZRLUDUGgAOB3cO/r0GNYDgtqk9ELkn5enFxCbAY+CIwOmMXQ45YtLDfp30vGOa41ttZuzSJjs+ijs5lNFoD6ASmCyFmCSGqBRybgFrvtZLNgXnA1UKI/wghpgohumasbiClnAsQ/s4idvnkDK4ZB5PDpRJN6GdDBX1WQ8+IsDo+izo6l9FoDWBnKeUbQohhwD1CiDlSyvsBhBBnAsuAG2qkPxr4vpTyYSHEpaimnoaXUgsLnIkA7e3tT48dO/ZKYCgwEHgJ2Ak1Iua4MN2ptm0fWSqVrrNt+/AwYt/RqLgdV6Bm781EjeG9s1Qq7YbqzJmBqtJdAky2bfvYUql0vW3bh3X77QHnAeNRBd5oYG6oOhyYjVqZ6mpgkm3bbvc05sxe/8QNP/XB1MFDlxzar1/nSagFu8cAc5p5T8DAUqnUr300Bzz3+LpXLV/eZuIAGVbS1rbiFN8Lzm8fPe+qis/vFNT6yJE/e3Wep0V80hHd7PN0RalUGkcTz5MG76npPCKp92Tb9qvVPitNrwcghDgHWCClvFgIMQ44BhgrpfyoyrEbAjOllCPD17sCp0sp9xdCPAPsLqWcK4QYDtwnpdymKZkW6brhSV7D94KBwM+ALwMWahnD3wPjHddaHCXN7t6+F/QF/gzsH4+xoZdwhONa2ixYksazGDc6OldStwlICDFICDGk629gb+ApIcQ+qDb7A6pl/gBSyjeBV4UQXRn7WCAI//4LMC78exwqE0uVFDL/1VHv80TgM6jMH+DbwIe+F9zte0HThV53b8e1lgOHANe2bmzoRWgVH0rHjFRH50oa6QPYAHhACPE48AjwNynlXcBlwBBUk9BjQojfAAghRggh7uh2/veBG4QQTwCjUNUjgAuAvYQQz6GGNF4QxxtqhlKpdH3Cl7gA2LPGvv6owvQB3wt+53vBj30v2K6RRCu9Hdda5LjWOFR10CzxZgD4vO8FO9Y/LB+k8CzGjo7OlZglIRPC94K9gLtobqhtJ/BP4FrHtX4X8brH0gvC1Bpi4WrHtUz/kKEmhS4ASqWSZ9u2G3e6vhdsiepEaiVOz8XAzxzXer9yRz1v3wseAT7fwrUNvYNFwE+AtcOfdbr9vRbwP+A/wD+Aux3XWpaRZ2LPYpLo6FxJ0WMBnVf/kMbxvWAAcDJwJrBGi8mdDBzle8GhjmvdVbGvnvf8Fq9t6B0MpOem1S1QI0xOBOb7XnAzcF1G6wnH+iymhI7OZRS9ABgPXNRKAr4X9EHNcP4Sqr8jzvggawN3+l7wFPAgasb0n9tH1/YOO57tGB0MxWA94HjgeN8LngGuQzVFVh0+mAAtP4sZoKNzGUUvAKpNXmsY3wsGA3/lkxnNSbFt+DMRWPzCf9eeNmd2sBrq//dL4D1UiI1ZqLHLrdY+DMVmG9TQ5Z/6XjAduMRxrb8nfM2WnsWM0NG5jKIXAKOBJ5s5wfcCF9gaFXxrT9TkjjRZbenifg5q5NStqMkeBkMStAH7AHv5XjAFmOS41ocJXavpZzEH6OhcRtFDCs+tf8gq9EFNfjuc9DP/7myO6icwGJKmLyrsyFO+F+yc0DWiPItZo6NzGUUvAKKwS9YCBkNGfAqYEdaCDb2AohcAUb7B/wQ1dK4aK1B9AvsCj0aVMhhyTH/gF74XeOEAiLjIsjYdFR2dyyh6ATC72RMc13ocuKVi80LAB77kuNYB4bDNM2PwMxjyyg9RCz3FRdPPYg7Q0bmMohcA+0Y878+ob/i/QHUEb+O41jEV46dnAK+06Gcw5JkJvhecHVNaUZ/FLNHRuYyijwK6OspJjmv9lzozbR3XWup7wU2kv8iNwZAmZ/leUHJc674W04n0LGaMjs5lFL0GMCnh9B9POH2DIWv6Ar8NZ8G3QtLPYhLo6FxGoWMBJY3vBQcDf8zaw2BIgdMd17owawlDcxS6BpBCONe+CadvMOSFE8IwJJHQMbSyjs6VmBpAgvhecDRwZdYeBkNKXAo8B+yI+vJznONaC7JVMvSEqQEkyx4Jp28w5IkTUAtFHYmaKf/tRk/U8du0js6VmBpAQvhesBpqqOi2WbsYDBnxDmrNgZ87rmX6wnJI0WsAUxJM/ihM5m8oNusCO9BAwMKEn8VE0NG5kkIXAMApCab99QTTNhh0Yg/fCwbVOSbJZzEpdHQuo+gFwElJJOp7wUZAUlETDQbdGED9NSoSeRYTRkfnMopeANyYULpTgNUSSttg0JF6o4GSehaTREfnMopeAIyJO0HfC9YFvhp3ugaD5tRbpjT2ZzEFdHQuo+gFwJwE0hySQJoGg+6sWWd/Es9i0ujoXEbRC4ChCaR5QAJpGgy689k6+4emIREzQ7MWaJWiFwADE0hT+2qhwZAAI+rsT+JZTBodncsoegHwUgJp3pFAmgaD7hzse8GnetifxLOYNDo6l1H0AmCnBNKcn0CaBoPuDAXO6GF/Es9i0ujoXEbRC4Dbopzke8GePez+X0QXg6G3823fC2rlOZGexYzR0bmMhlYEE0K8DHwILAeWSSl3FEJMRg13XAK8AIyXUnY0cm64/Rzgu8C88NBJUsq0m0+Oo+dvJavge8GGwN2+F3zDca1qH4BNYjEzGHofa6FqAu9W2df0s5gDdHQuo5klIcdIKbs3b9wDnCGlXCaEuBB1I2otf1h5bheelPLiJhzi5qwI5+yBqjldFa6C9BfHtRZ1239qLGYGQ+9keY3tUZ7FrNHRuYzIawJLKad3ezkT+EbrOqkzFRW6thm6QjwPBW4C8L1gMaoWtJz6w90MhqIyy3Gt92vsi/IsZo2OzmU0WgB0AtOFEJ2AL6X8bcX+CcDNEc79nhDiCFTY5JOklO814d4ytm0fGeG0vapsWw2wWrMxGHo9M2vtiPgsZoqOzpU0WgDsLKV8QwgxDLhHCDFHSnk/gBDiTGAZcEOT504BzkUVEOcCl6AKkjKEEBOBiQDt7e1Pjx079krUt++BqGFYO6E6Y45DVcmm2rZ9ZKlUus627cNLpdI0VDjac4ErgINQH8TNgGOAs4F2YAZwaOgx2bbtY0ul0vW2bR/W9fvO2x+cBkN7GspmMBhq0NZ3xVG+FywevukHo+a+sub+7aPnnQ+cB4wHdgVuAeaGhw8HZgP7AlcDk2zbdiufyTAk8ymowGw3oubhzCG+PGIR0EGVPAIYDPSp8PG6vac7gdF5eE+2bb9a7X/S9IIwYeftAinlxUKIcahMdKyU8qNmzq3YPhK4XUqZ6/j5vhe4wC+y9jAYegEfA/cDdwN3O67134x9CkndYaBCiEFCiCFdfwN7A08JIfZBdfoeUCvzr3Vu+Hp4t0MP6tqeJmEp2QwmyJvBEA+ro/KDS4CnrvzVUwt9L7ja94Jv+V6wXsZuDREh/8gdjTQBbQDcJoToOv5GKeVdQojnUW3f94T7ZkopjxFCjACmSin3q3VumO5FQohRqCaglwEntnfVOHVXKurC94KBwC4JuhgMhWXF8rY1UB2qRwIrfC/4DzA9/HnQca0l2dnVpOH8I68Uek3gUql0vm3bDY3j9b1gJL1g6rfBoCELUG3nz6NG270APAs867jWwqykmsk/8krkYaC9hCuaOLZvYhYGg6EnBgO7hT9l+F7wOmoE4g2Oa81O2auZ/COXFD0UxEFNHLtDYhYGgyEqGwEnoqIKpE0z+UcuKXoBUHNcchVGJ2ZhMBhaYTHgZXDdZvKPXFL0AmCzJo7do/4hBoMhYZai4o8tAN4H3gN+5LjWsxm4NJN/5JKi9wEsqn8I+F4wCFMDMBjywFJgQ2AAqgBY7rhWViNZGso/8kzRC4COBo+bCPRP0MNgMDTGGsBgx7Xm1j0yeTqyFmiVojcBtTd43LhELQwGQzMMr39IKjSaf+SWohcAM+od4HvBBkCuQ1QYDAVifgbDPWtRN//IO0UvAA5t4JjvYuYAGAx5YT3fC9bNWiKkkfwj1xS9D+CSBo5ZZfKJwWDIlNN8L3gf2BLVGfwx0Ac1HPQl4A7gOdRoofVQX+AGAO86rrUgRo9G8o9cU/QCYDJwbJ1jtkpDxGAwNMwpdfZfGP7uRBUMXfwYFR45LhrJP3JNoZuAbNtu5J+3TuIiBoMhCfpUvN4xzsQbzD9yTaELgFKpdH1P+30v6AsMSUnHYDAky87hMx0L9fIPHSh0NNB6hCOA3szaw2AwtMwK4EjHta7LWiRPmBpAz5jmH4NBf14D9o078zc1gF6O7wVfAv6VtYfBYIjMVcCJjmu9n7VIHil6DaBeBMHBqYgYDIa4eRPY33Gto5LK/BvIP3JPoQsA4Lw6+xsZAvoh8Afg+6hViwwGQ7bMAHZwXOuOhK9TL//IPUWfBzAeuKiH/dtUvF4OPI7K6J8ASsCcrvVKfS94EJiVgKfBYGgMHzjeca3lKVyrXv6Re4peANxZZ/9twIOozP41YIHjWitqHey41mzfC7YGJqEWtzYYDOlxC3BcT89ozNTLP3JP0QuA0cCTtXY6rtV0sCfHtZ4DxvtecANwNbBxdD2DwdAgfwEOTTHzhzr5hw4UvQ8gsZjijmv9HfUBuS2paxgMBgD+DQjHtZamfN08rEnQEkUvABLFca15jmsdDOyF6i8wGAzx8jHqm//irEV0pOgFQCoLSziu9XfHtXYHjkctY2cwGOLhcse1ns/o2nlZmCYyRS8AUh226bjWFcAWwK+BZWle22DohSwl25DM2g/7LnoBsG/aF3Rc6x3gVOCxtK9tMPQybsl4beDU84+4KXoBcHXaF/S9oA8wjZhD0xoMBeRXGV8/9fwjbopeAEzK4JqXAt/M4LoGQ28icFxrZsYOWeQfsdJQMDghxMuokAfLgWVSyh2FEJOBr6KWXXsBGC+l7Gjk3HD7OsDNwEjgZUBIKd9r9Q3lGd8LfkS8KxIZDEXll45ruVlL6E4zNYAxUspRXRk4cA+wrZRyO+BZ4IwmzgU4HbhXSrkVcG/4OlXSDOfqe8EPMZm/wRAXWX/77xXhoCPPBJZSTu/2cibwjSaTOBDYPfz7GuA+4LSoPlGwbfuwNK7je8F4QPvIgQZDjvhP1gJp5R9J0mgNoBOYLoSYJYSYWGX/BGrHxah17gZSyrkA4e9hjUrHRRoluO8FNipAlcFgiIePUc3OmVKkGsDOUso3hBDDgHuEEHOklPcDCCHORI1pv6HZcxshLDQmArS3tz89duzYK4GhwEDgJWAnVLiF44CzgKm2bR9ZKpWus2378FKpNA04GtX8cgVwEKrGshkgS6XSbkA7KoTsoahxxZNt2z62VCpdb9v2Yd1+e6gQsONRBd5oPpkOPhw1Lnhf1OiASXNmr395W9uKu1esaOvf6Ps1GAx1ebx99LxrgMNKpdIU4BTgJOBGYAwwh/jyiEVAB9XziMNazSNs23arpBH7e7Jt+9VqN7LpFcGEEOcAC6SUFwshxgHHAGOllB81ee4zwO5SyrlCiOHAfVLKyvDLiVIqlabYtn1sEmn7XrAO8BCwdRLpGwwF5ueOa/0oa4kk84+0qNsEJIQYJIQY0vU3sDfwlBBiH1Sb/QG1Mv9a54a7/wKMC/8eB/y5lTcSkVOSSNT3giHAXZjM32BIgpuyFghJJP9Ik0b6ADYAHhBCPA48AvxNSnkXcBkwBNWs85gQ4jcAQogRQog76pwLcAGwlxDiOVSwtAtie1eNc1LcCYYTva4BPh932gaDgYcd13qq/mGpEHv+kTaFXhS+VCptZdv2c3Gm6XvBKWi+SpDBkGMeAI5yXOvZrEWSyD/SpugzgcfEmZjvBXsA58eZpsFgKGMX4BnfC+7OWoSY848sKHoBMCeuhHwv2BjVNtk3rjQNBkNVFgEnZi1BjPlHVhS9ABgaRyK+FwwA/gisH0d6BoOhR05wXOu/WUsQU/6RJUUvAAbGlM6vgC/ElJbBYKiNdFzryqwlQuLKPzKj6AXAS60m4HvBBMCJwcVgMPTMy4STQnNCy/lH1hS9ANiplZN9L/gccHlMLgaDoTZLgW85rpWnJVVbyj/yQNELgNuinuh7wbqodv/V49MxGAw1OMtxrYezlqggcv6RF4peABwX5STfC9pQMTo2jVfHYDBU4W7yObcmUv6RJ4peAJwV8byfosJaGAyGZJkLHOG4Vh5nrEbNP3JD0QuAqc2e4HvB1+gFS8EZDJpwhuNab2ctUYOm84+8UehQEM3ie8HewK3AoKxdDIaCsJ3jWk82erDvBQNRwSWfBp53XOv1xMx6AYUuALpiZ9fa73vBeqjp3nuGv7dKy81gMLACGOS41seNHOx7wc6ob+Xt4ablqMCMP3NcK/Yhm/XyDx0odAFQD98LLgOOz9rDYCgoLzqutUW9g8K1N34MfJ/qzdorgD8BxziuNS9WQ80pdB9AuGpOT2g/089g0JgNfC+4Igyxvgq+F+zse8FtqI7iE6idn7UBBwP/8L0gtjU6Gsg/ck/kReF7CUfX2T88FQuDwVCNQcAHlSOAfC8QwAjUGiKrNZHetkDge8EfUGGldwH+CtzsuNbyCH718o/cU+gaAGq9zKr4XjAY2DVFF4PBUM6/gLKlH8PawA2AR3OZfxd9gW+hFrT6VpjWP30viBLIsWb+oQtFrwFc0cO+c4DBKXkYDIZyFqIWYF/ue4EDzAp/1iX+fOuLwL99LxjvuNaMJs7rKf/QgqLXAA6qttH3gp3oBcu9GQwaMwh4ELgF+A3wb+DTwLCErrcpcI/vBef4XtBoeJeq+YdOFL0GMLPG9t3TlDAYDFXZCNV528XuqGabpOgLnI0qZHoM8+B7wWfW3XCN+Qm6pELRawCbVW7wvWB/zLKOBkMe2QbYPoXrHOt7wZF1jln+7ltrXOZ7wWdT8EmMohcAi6ps+27qFgaDoRF+AKyZ0rWu9L3gF74XtFfb6bjWnL79VzwDPOR7wSEpOcVO0ZuAOqpsexo4MGUPg8GQL/oBLuD6XrAEtRjN/cADjmtdA7Dm0MXXvvv2GlcA0veCPwHHO671Rka+kSh6DaBa6f5y2hIGgyHXDAC2Ro37n+Z7wVYA62+0cDmwIDzma6g5Bp7vBaf6XrBWJqZNUvQCoNqQr3VTtzAYDDpxJECfPswAXum2fS3gh8CFwITUrSJQ9ALg0CrbtF/mzWAwJEpXHnEocBfV+xJP8L0g903sRS8ALqmy7QQ+qdYZDAZDJeuEvy9xXOtkVCFQyaZA7iOFFr0AmFy5IQwbOzcDF4PBoAdWGCq+K//4sMZxp9QKZJcXCl0A2LZ9bOW28B82IgMdg8GgBwOA9m75R63ZyZ8GTkxHKRoNrQcghHgZVcotB5ZJKXcUQkwGvgosAV4AxkspO2qc3xd4FHhdSvmVcNs5qDH3XfG5J0kp72jlzTRLqVS63rbtw7pvC4NC5XUJOoPBkA/+sM6wjzZ79+01Lgd+Aaxd47gVwCGOa92anlrjNNNJMUZK2X3q8z3AGVLKZUKIC4EzgNNqnHsCanx95SQOT0p5cRMOsVKZ+Yf8X+oiBoNBNw559+01AK6uc1wbcL3vBbs7rvVI8lrNEbkJSEo5XUq5LHw5E9i42nFCiI2B/cnhAsqlUun6KptPTl3EYDD0ZgYCf/W9YJXQM1nTaA2gE5guhOgEfCnlbyv2TwBurnHuL4FTgSFV9n1PCHEEqnnoJCnlew36xEKV5p8vAnaaDgaDoRAMA+7wveBEVGvIlo5r/T1jp4YLgJ2llG8IIYYB9wgh5kgp7wcQQpwJLEMtrFCGEOIrwNtSyllCiN0rdk9BLajQGf6+hCqTJ4QQE4GJAO3t7U+PHTv2SmAoqlR9CTUm9zZU9L6zgKm2bR/ZtWBzuGzb0eE1rkCFcJ2JCgR3aHjddmDG1qPY59nH1psJfcxcAIPBEDftwMp+zmm/eeKlxYv6eRtt/v7+r7+41qGbWe9eufeXd/l6qVSaApyCCkl/IzAGmEML+Z5t269WE2p6Ufiw83aBlPJiIcQ44BhgrJTyoyrHno8aC7sMWB3VB3CrlPKwiuNGArdLKbdtSqZFSqXS+rZtly0S7XvBJsBjfDLW12AwGNJiLjAdmOa41n1JX6xuH4AQYpAQYkjX38DewFNCiH1Qnb4HVMv8AaSUZ0gpN5ZSjkTF8f5HV+YvhOi+3u5BwFMtvZNojK/c4LjWq9W2GwwGQwoMB8YBM3wv+FnSF2ukE3gD4AEhxOPAI8DfpJR3odbUHIJqEnpMCPEbACHECCFEI8M5LxJCPCmEeAJVxXGjvYWWuLPaRse1/oKqgi2rtt9gMBhS4NRa4ajjoukmoN5EqVQaZ9v2NbX2+16wG2q464D0rAwGgwFQoad3TfIChZ4JTJ2QD45r3Q9ov+ybwWDQko18LzgqyQvkPlpdDrgc+HnWEgaDoTDMAB5ARRmtOnonLopeAxhe7wDHtc4DLkrBxWAwGHxgL8e1fuy41vnAk0lerOg1gNkNHvc71GQ2g8FgSIJOYJLjWhd0bQiHpC9P8qJFrwHsW+8A3wt2AW5JwcVgMPROqg6Tr2BG98w/ZAzwuu8F7/peIBLwKnwNoGYgpzAs9DVosKiDwWDINa+ivslbPRzzTJVttwNjgW2oMWS9VYpeAEyi9vyDiZjM32AwtM42qLD3/0IVAtVCR79QucFxrXeBf4Q/iVDoeQC18L1gBPBfVOwNg8FgiIvngA/Cv/ug1h5ZDzjbca1U10OBghcANRaEGYiqsq2bjZXBYCgIncCTjmttn5VAoTuBqy0I47jWIkzTmMFgSJ4+qEIgMwpdAFRbEMb3gjbM7F+DwZAOj2d58UI3AVUSNv/8HjgwaxeDwVAIlgI/dVwr8cif1Sh6DWBK199h5j8Dk/kbDIZ0eBW4HnglK4HCtnX7XrBOW9u6L8yZHbShOnxvwCwIbzAY0mOi41p3ZSlQ5BrA+BUr2iaj1ue8AdgrYx+DwVAcbsg684eC1gDCGBunhy+3Dn8MBoMhDeYDP8xaAgpWAPheMAA1w3cSavJFb+ctYAmwSbdtHwALgI+B91AfxuHAdqnbGbrzMfAEsBmwfsYuhmQ5wXGtXIw0LEwB4HvBYai4/p/K2iUFZgC/AW5xXGuF7wVrAhujlvCc7bjW0u4H+16wB3Bv+pqFZylwKzAVKDmutdT3gv6ogQgSNU7c0LtYDvw5a4kuClMAAN+k92f+dwPfd1zrue4bHdf6AAh6OO9+YDGwWoJuhnLuQH0TfL77xrBwvsX3gseAHbIQMyTK26jaXi4oUgHwGPCVrCUSYDkq4z/Pca1/RUnAca1lvhe8BCS6ALUBgDmAEy432hO3YwqA3sg1jmslGuO/GYpWAOjOq8CKtrYVC1esaHsUFSXwbzG1Jz5G/AXA68BDwDdiTldHXkatLHe141qNfAO8BTgrUSNDFiS6xGOzFGkY6GNZC7TAS8ChwKaOa43cetQ7vuNa4xzXuibGzqQnYkqni8eALwDLYk5XJzpRtbPvAFs7rjWlwcwfx7WeAJ6ve6BBN04IJ53mgiLVAF5EPZB9UG1wJ662+rK2xR/3uyzc/wxqTsDXstGryrvAz4DLHdda0m37bQlc678xpnU/8FXHtT7wveBvwLdiTFsHlgHXAhdU9sc0yU3Aj+JRMuSErYELgR9kLQIFqgE4rtUJzApfrg68OWKzD7bpdsg8YAKwMG23KiwGLga2dFzLq8j8AY5L4JqrLEgRkb8B+4QdzziudT2qPTtO5sacXhy8i1pB7lvAxo5rHdVi5g9wXetahhxyvO8FuZh7VJgCIOT/gHNR4+DPm/vKkLOBEqpmMM9xrfdQQ0WzohMVG2Qbx7VOCX2qkUTb8NL6h9TlWuBrYUjt7jjQ2RFD+q8AX0YNm8wDC1HDOA8FhjuudaTjWjc7rvVWHIk7rvUs8O840jLkijbgbN8LMl9zpFAFgONaKxzX+jFqOOj+I9s7PMe1dkct0faQ7wWXkN0Mvb8Dn3Nc63DHteoFh0oiA+zf4vmXAEc6rrVKm7/jWm+sN/yjp1pIe1mY/mcc15oODGohrTi5zHGtrzuu9fsqtbS4uDGhdA3ZciiQeSgIEw66G74XTAZOTvmyTwGnOq6VyKLPjeJ7waaokSrN0gmc7rjWRQ1c4zaa72P5J3Cc41orCxDfCy4CTmkynSQ42XGtS5K8gO8Fw1AjRwYkeR1DZoxxXOu+rC5eqBpAJaVSqbKN9S7SG7XyKjAe2L7ZzL+Kd8uEtY6FqOaxv6Pas28HKptzutOBavKpm/mHzseiwk80wjxUjWK37pl/yNkkuFB2E2yZ9AUc13ob+GPS1zGkznLgatS8kMxoqAYghHgZ+BAlvUxKuaMQYjLwVVSsmReA8VLKjhrn9wUeBV6XUn4l3LYOcDMwEvXNU0gpG80cEsP3ginAMQle4kPgfMBrdEhgWvheMA74g+NaH3XbthHgAQfxyaixZcCdwImVM1kbuMbRwJU9HNIJ+MAZjmt19JDOGqgCakwz14+Z5x3X2irpi/hecCDwp6SvY0iVvzmulfnE1GZqAGOklKOklDuGr+8BtpVSbgc8C5zRw7knoIZYdud04F4p5VaoODSnr3JWwpRKpWlVNl9K/GPiQXWyXo4a2XN+K5l/De+WCecVfFSx7XXHtQSwAfB5YFdgQ8e1Dmgm8+/m/DtUx3s1AmAXx7WO7SnzD70+Qn0BiTT7OSa2DJvOkuZu4I0UrmNIj0ybfLuI3AQkpZwupexqLpmJCja2CkKIjYH9WbXj8kBUMwPh769FdWmBoys3OK41B/gcqjP4xRivdYjjWt8Lq/Stsop30jiu9a7jWo86rvWA41rvREji6DCdTtQw1u5NbR8DpwKjHNd6sAmnhahRQbdG8ImLxNeRCL8szEz6OoZUiWWkWKs0WgB0AtOFELOEEBOr7J9A7RLtl6iHe0XF9g2klHMBwt/DGnSJk3OrbXRca5njWpeiYgf11AbeDAtiSgdqeOeclc6OawXAr8KXDwE7OK41uTJKaSOEhcAhqGajLNg7petEHTHSiZqVfS5qEtJEVP9JT6OWzMiQZPk78NesJaDxmcA7SynfEEIMA+4RQsyRUt4PIIQ4E/Vt7obKk4QQXwHellLOEkLsHkUwLHAmArS3tz89duzYK4GhwEBUiISdUDNjj0ONj59q2/aRpVLpOtu2Dw+bHo5GPQBXoNqyZ6Lirj9XKpV2Q8XAmYEamnUJMNm27WPbR887c87s9Y8HrlrVrHMp9Gl46OSIzT44Dbg3XIf4FOAk1BC/MaiOoIbfE7BFqVTqV+M9LUJ1zlZ9T6VS6Xrbtg/r9tsDzkN1SN8JjOaTiVbDgdnAvqgOq0m2bbtV0mjkPS0qlUqbdL2nrbbrM+y5J9a7eetR85aNGWPPqfN/6vE9tY+ed61t24fd8vt/j3rnzUGjaX1IaxN07n3ffaXz+/Rp+rPX1P9p023e++Irz6zdiM97q62+/IPFH/e7aYNNPtzprVeHHNw+et6vbNv+cbf/04i5rwz+5YL3B/xq+bK+I7uf3a//8hc7O/v8ffmytmpf9AwN0dnRf8CKd5Yu6btF15a+/VY8NmjIkscWL+o3f5Ot3n+/X/8Va5ZKpVaep6byPdu2q8YganoYqBDiHGCBlPJiIcQ4VIfpWCnlR1WOPR84HFVArA6sCdwqpTxMCPEMsLuUcq4QYjhwn5Rym8o0kqRUKv3Atu1f1TvO94LzKe+jeBT4NnAE8F1gwzpJvAVsFFcUwEa980Razr4X7I1qUqz3P4mTnRzXejjJC4SLGS1i1Vr7XFRo6QeAx7bZYd5uu+/e+H32veBgYBqqMDoeNZP7AeCLrVsXkmWoJuQXAQv4NLApKlpv7uJi1a0BCCEGAW1Syg/Dv/cGfiqE2Ac4DbCrZf4AUsozCDuHwxrAyVLKw8LdfwHGAReEv7NYJKGhdlXHtc7wveAj4CjUw/KzMITyfFRsoWWoJojjqL6Ix93A6r4XbIn6QGwDfBZoc1zr4KS8c0Yqzo5rTfe94DOoz9V40ol39WUg0QLAca0lvhe8jhpF9gdUvKXngVfDfhUASqVSU/MFHNe61feCJ4A3Hdda4HvBhpjMPyrvADs7rvVM+PqR8Ce3NPJwbADcJoToOv5GKeVdQojnUQuI3BPumymlPEYIMQKYKqXcr066FwBSCHEU8D9UO27abEaD/yDHtc5l1bb3m1FLLD7juNZDvhfcjwry9GlgnW7HddUWKnmgaWNFw945IjVnx7XeBSb6XnAZMAX4UsKX/DLw04SvAbBflTkRlTR9nytGc2U5rFZnXgP2iCH+U6oUeiZwqVQ6wLbtv0Q9P/xGP89xrfer7FsH2AKwgT1R4Sfmo1YEmoeKa3Nplbg5iXtnQVbOvhf0QQ1SuBBIKvbKcmDdap+DtInhM+2RkwXLNWKS41rnZy0RhSKFg65GR9QTfS/YAni9VgYefgt9FxXM6+Ko16lBR8zppUFHFhcNm0d+53uBjeqPSoK+wFiyHY7aRUeL528Xh0QPzEDV/gej+Qzntr4rnlyxvO1Ux7Uyj+kTlaIXAO2ottSG8L1gOCBQba8PRPn2HhNNeeeErJ23Tzj9rOcjdNHqfU6i8/xpVL/FjV3t474XDE3gOmmxEPjfBhsv+NMBB++kbeYPpgCY0eTxe6LCInwt4+p+s955IDNn3wv6k/x6x3sknH6jtHqf41gP4zXUXIMScI/jWtWGIG5RZZsuPAQct9a6i7P2aJlCB4NDjb1uhpmoDuurfS/YNQGfRmnWOw9k6bwVtaNpfkg8k/S29L1gkxjSaZVW7/MvUCParkeNM5+OyvAC1BrPtUKYvISa6zAG+FS4ZOlVNTJ/gCeB/7TomgUvAMeGnb06PodlFL0G0FQoX8e1nvO94EvAZaixvv9MxKo+iYYgTojMnB3XCsJx9MNQc1H6oPpn3nNca7HvBReiZqu3yhjUojhZ0tJ9dlzrJtRSlDXxvaBrTs8QYA1goeNaTYVNCYe1zgJ2iOqaAe+hljrtGjWl43NYRtELgMmoEMUN47jWG0CUsftx0rR3DsjUOQwz8Xr4U0lcgda2jSmdVkj8PoexiT5GjWhrhT8Ch6EmieaZRagvDQc5rtU9qKWOz2EZhR4GajAA+F7wLeD3MST1Tce1ZAzpFAbfC4agFr6PowaWBM+hhhEvclxrVr2DdaPQfQClUun6rB2ioKN3zp3jiND6OjkYBZTz+7wKjmt9CJw5eK3FeZ1A1Rc1Z2cVP93udTVMDcBQeHwv2JHWF18/y3Gtn8XhU0R8L2hDDbDYKGuXGswFxjmudU/WInFiagAaoqN3zp1bDdK3GPhtHCKtkvP7XJP20fOuBb7DqmHjqzGbdEJvdGc4cLfvBdf6XnCH7wVf0PVed8fUAAyFJxzZ1crKYtc5rlUt1pOhSXwvkNSOCzYPOBP4neNaK8LYW1kMx14ArJ3H6J7NUvQagJe1QxR09M658/9Qs7vfRi2U0uy3ol/HbhSRnN/nmnTzrjYycSlqfsJWjmtd6bhWVy3hRLJZvOYR0Pded6fow0DPy1ogIjp659bZca3XUJPFAPC9oC+w4eqDlm738cL+GwIjgRHA5qiQv3uhxsG3AbMc12q1/yBOcnuf69DlPadi+5+BU6pF2XRc61HfC64D/g81SXMmaoJZ1Ci7jfIl4IN33hyYdNykxCl6ATAeuChriQjo6K2Nc7hwz+ulUuk7tm3XdPa9YBD5q0Vrc58r6PLuGmr5GHCi41o9hrZwXGtc99e+F6SRp60OzF53w0UHo+e9XknRC4Ba6xjnHR29e51zuB5x3tDxPsMn3iNRqwx2b+ppmHChpk6qL8wUJ+cALyd8jcQpegEwGlVl1A0dvY1zOujoDKG341othVcI139Imlsc1/prqVQah573eiV5q76mzdz6h+QSHb2Nczro6AzxeX+GZL/9d/BJ+Add7/VKil4AGAyG3sWLwDdREU1bYWmVbSuA7zquNb/FtHND0QuA4VkLRERHb+OcDjo6Q0zejmt9FMZjitqU9DBqRNhAYG/Kgwfe6LjWLd1e63qvV1L0PoDZWQtEREdv45wOOjpD/N5NhacG3kTVGi4Io50C3ON7wW6oYHX/AJ6oOEfXe72SohcA+6JnJ46O3sY5HXR0hvi9t6p/yEruBb4cDv8tI1znYEKN83S91yspehPQ1VkLRERHb+OcDjo6Q4zevhfsQOMLzr8DnFct828AXe/1SopeAEzKWiAiOnob53TQ0Rli8va94EhUXCerwVO+5bjWPyJeTtd7vRITDM5gMPQKfC/YAnga6N/gKf90XGu3BJVyT6FrALqGc9XR2zing47OEJu3R+OZP8DjrVxM13vdHVMDMBgMvQLfCz4EBjdxynGOa01JykcHTA1AQ3T0Ns7poKMztO4dRnBtJnbQ08BTrVxT13vdHVMDMBgM2uN7wSaodR0aoRPYMhziWWiKXgPQsvqno7dxTgcdnSEW74FNHPu/ODJ/Xe91dxqaCCaEeBn4ELV26jIp5Y5CiMnAV1ErKL0AjJdSdlSctzpwP7BaeK1bpJRnh/vOAb6LWuYNYJKU8o4W30+znJLy9eJCR2/jnA46OkPr3gMaPG4xMLnFa3Wh671eSTM1gDFSylFSyh3D1/cA20optwOeBc6ocs5iYA8p5fbAKGAfIcRO3fZ7YZqjMsj8AU7K4JpxoKO3cU4HHZ2hde9GC4CjHNe6vMVrdaHrvV5J5FAQUsrp3V7OBL5R5ZhO1ALKoIZn9SebNTxrcWPWAhHR0ds4p4OOztC6dyMFwGmOa93Q4nW6o+u9XkmjBUAnMF0I0Qn4UsrfVuyfANxc7UQhRF/UMm9bApdLKR/utvt7QogjgEeBk6SU7zVl3zpjgFXWGtUAHb2Nczro6AytezdSADzTQvrV0PVer6ShUUBCiBFSyjeEEMNQTT/fl1LeH+47E9gRODj8xl8rjaHAbeG5TwkhNgDmowqXc4HhUspVgi4JISYCEwHa29ufHjt27JXAUFSnz0vATmG6xwFnAVNt2z6yVCpdZ9v24aVSaRpwdHiNK4CDUDWWzVCLfP8LaAdmAIeiwshOtm372FKpdL1t24d1++2hFq8ej1rCbjSfLAoxHBUdcF9UjJBJtm27VdKYgmo7PAn1DWIMaiHsZt7Tnaj+l2rvaRFq0Yq8vafvABdH/D9l9Z7+FP4vov6fsnhPTwN7JPjZS+o9vY3KCyJ99ubPXWPq/LmDvklNOpdv/pl3fz1gtRWnxPWegN8DE3OaR5S9J9u2X612V5oeBhp23i6QUl4shBiHWr9zrJTyowbOPRtYKKW8uGL7SOB2KeW2Tcm0SKlUOsC27b+kec040NHbOKeDjs7QurfvBS+h1hOuxcOOa+3Uw/6m0fVed6duJ7AQYpAQYkjX36hFEp4SQuwDnAYcUCvzF0KsH37zRwgxENgTVZIhhOi+mMJBtDgpIyLNDB3LEzp6G+d00NEZWvde0MO+N4CvtZh+NXS91ytppA9gA+A2IUTX8TdKKe8SQjyPGt55T7hvppTyGCHECGCqlHI/VJXnmrAfoA2QUsrbw3QvEkKMQlX7Xgac+N5Ww7yUwTXjQEdv45wOOjpD6963ArVaEC53XOvNFtOvhq73eiV1CwAp5YvA9lW2b1nj+DeA/cK/nwB2qHHc4U2ZJsNOwCNZS0RAR2/jnA46OkPr3hei1gLepmL7RyQXt1/Xe72SQs8ERnWi6IiO3sY5HXR0hha9Hdf6CNgDeK1i1/OOa82tckoc6HqvV1L0AuC4rAUioqO3cU4HHZ0hBm/Htd4AflCxeUSr6faArvd6JUUvAM7KWiAiOnob53TQ0Rli8nZc6zZgXeCtcFOSAd90vdcrKXoBMDVrgYjo6G2c00FHZ4jR23Gtd4GtgS84rvV/caVbBV3v9UpMOGiDwWAoKIWuAZRKpeuydoiCjt7GOR10dAY9vXV0rsTUAAwGg6GgFL0GMC1rhyjo6G2c00FHZ9DTW0fnSgpdAKCCJemIjt7GOR10dAY9vXV0LqPoBcC5WQtEREdv45wOOjqDnt46OpdR9ALgiqwFIqKjt3FOBx2dQU9vHZ3LKHoBcFDWAhHR0ds4p4OOzqCnt47OZRS9AJiZtUBEdPQ2zumgozPo6a2jcxlFLwA2y1ogIjp6G+d00NEZ9PTW0bmMohcAi7IWiIiO3sY5HXR0Bj29dXQuo+gFQEfWAhHpyFogAh1ZC0SgI2uBCHRkLRCRjqwFItCRtUCrFLoAuPzyy9uzdoiCjt7GOR10dAY9vXV0rqTQBQAwMWuBiOjobZzTQUdn0NNbR+cyil4AGAwGQ2ExBYDBYDAUlKIXAL/NWiAiOnob53TQ0Rn09NbRuQwTDtpgMBgKStFrAAaDwVBY+mUtkARCiKuArwBvSym3DbedCxwIrADeBo6UUr7RyLlpEdVbCLEJcC2wYXjcb6WUl+bceXXgfmA11OfwFinl2Xl27nZ+X+BR4HUp5Vfy7iyEeBn4EFgOLJNS7piGcwzeQ1Hr7m4LdAITpJQP5dVZCLENcHO3TZsDP5ZS/jJp56j01hrANGCfim2TpZTbSSlHAbcDP27i3LSodu1GvJcBJ0kpPw3sBBwvhLCSFO3GNKI5Lwb2kFJuD4wC9hFC7JSgZ3emEf3zAXAC8HQyajWZRmvOY6SUo9LM/EOmEd37UuAuKWU7sD3p3fNpRHCWUj4T3uNRwOeAj4DbklVtjV5ZAEgp7wferdj2QbeXg1DfKBo6Ny2ieksp50opZ4d/f4h6UDZKULX7taM6d0opF4Qv+4c/qXRItfL5EEJsDOyP+maaGq04Z0lUbyHEmsBuwO/Cc5ZIKTuSMy3zi+NejwVekFK+ErNerPTKJqBaCCF+DhwBvA+MyVinYZrxFkKMBHYAHk7erEePus5hU8osYEvgcill7p2BXwKnAkNS0uqRBp07gelCiE7Al1JmPnqlAe/NgXnA1UKI7VGfkxOklAvTsyynyfzjW8DvE5dqkV5ZA6iFlPJMKeUmwA3A97L2aZRGvYUQg4E/Aj+s+MaSOo04SymXh9XljYEvCCFS7XOp4tOjsxCiq114VupyNWjws7GzlHI0sC+qeXC31ARr0IB3P2A0MEVKuQOwEDg9RcVVaOI5HAAcAPwhLbeoFKoA6MaNwNezlohATW8hRH9U5n+DlPLWVK16pu69Dqv295Fd30sltZx3Bg4IO1VvAvYQQlyfplgP1LzPXZ2VUsq3UW3SX0jRqx61vF8DXutWK7wFVSDkgXqf6X2B2VLKt1LyiUxhCgAhxFbdXh4AzMnKpRka8RZC9EG1lT4tpfxFWm61aNB5/XCUB0KIgcCe1Y5Li0acpZRnSCk3llKORFXx/yGlPCwlxVVo8D4PEkIM6fob2Bt4Kh3D6jR4r98EXg1H1oBqUw9S0KtKk/nHt9Gg+Qd66UQwIcTvgd2B9YC3gLOB/YBtUMO4XgGOkVK+LoQYAUyVUu5X61wp5e/y7C2E2AX4J/BkeBzAJCnlHTl23g64BuiL+iIipZQ/Tdq3FeeKNHYHTk5xGGjU+7w5n4xE6QfcKKX8eRrOrXiH545CdbYPAF4Exksp38u58xrAq8DmUsr3k3ZtlV5ZABgMBoOhPoVpAjIYDAZDOaYAMBgMhoJiCgCDwWAoKKYAMBgMhoJiCgCDwWAoKKYAMBgMhoJiCgCDwWAoKKYAMBgMhoLy/3//qHZ5R69IAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "berlin = results[results['type'] == 'administrative']\n", "berlin.plot(figsize=(6,6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "… and save this result for later. All downloaded files as well as all the artifacts generated by the various notebooks will live inside the `resources` directory:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "resources = Path('resources')\n", "resources.mkdir(exist_ok=True)\n", "berlin.to_file(resources / 'berlin.geojson', driver='GeoJSON')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OpenStreetMap provides detailed geometries not only for cities, but also for larger areas such as federal states:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "brandenburg = search_osm('Brandenburg, Germany')\n", "brandenburg.iloc[:1].plot(figsize=(6,6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "… or smaller areas such as parks:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "tiergarten = search_osm('Tiergarten, Berlin, Germany')\n", "tiergarten.plot(figsize=(6,6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition to the [OpenStreetMap Wiki](https://wiki.openstreetmap.org/) the [OpenStreetMap Website](https://openstreetmap.org/) is useful to interactively test out different search queries.\n", "\n", "We continue with `berlin`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining a Request to the Copernicus Open Access Hub\n", "\n", "An API request additionally contains the time span for which to search for results - we might be interested in very recent images or in imagery over a long time span - and the maximum cloud coverage.\n", "The maximum cloud coverage is needed because Sentinel-2 is equipped with optical instruments.\n", "If there are too many clouds the products will not contain a lot of useful information." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from datetime import date\n", "import datetime\n", "\n", "# note that start_date are python date objects this means they can be\n", "# manipulated using python functions\n", "start_date = date(2020, 5, 22) \n", "end_date = date(2020, 6, 22) \n", "cloud_coverage = (0,30) # between 0 and 30 percent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The region of interest is given as the `footprint` parameter.\n", "We use a simplified version of the geometry retrieved from OpenStreetMap - its convex hull - due to restrictions in URL lengths that don't allow us to query for arbitrarily detailed geometries:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "footprint = berlin.iloc[0]['geometry'].convex_hull\n", "footprint" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 16 results\n" ] } ], "source": [ "products = api.query(footprint,\n", " platformname='Sentinel-2',\n", " processinglevel='Level-2A',\n", " date=(start_date, end_date),\n", " cloudcoverpercentage=cloud_coverage)\n", "\n", "print(f'Found {len(products)} results')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Selecting Products from the Result Set\n", "\n", "The criteria for selecting a product depends on the specific use case.\n", "The first use case is to plot an image of Berlin, so want to make sure that as much of the city as possible is visible in the data we download.\n", "\n", "We convert the list of products to a `GeoDataFrame`, for which `gdf` is an acronym:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.8/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=:' syntax is deprecated. ':' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6\n", " return _prepare_from_string(\" \".join(pjargs))\n" ] } ], "source": [ "gdf = api.to_geodataframe(products)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`plot_downloaded_products` is a helper that allows us to draw downloaded products along with a designated area of interest.\n", "\n", "We can use it to get a quick visual impression of the result:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sentinel_helpers import plot_downloaded_products\n", "ax = plot_downloaded_products(gdf, berlin, figsize=(9,9))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{note}\n", "The geometrical shape of the captured data depends on where the Sentinel-2 satellite was in orbit when it crossed the area of interest.\n", "For an in-depth analysis see [](01c-coverage-analysis.ipynb).\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because products are are large (roughly 1GB), we want to skip unnecessary downloads wherever possible.\n", "We are selecting products based on two criteria:\n", "\n", "- How much of the area of interest is visible in the product (i.e. area of the intersection of a product's tile and our area of interest)\n", "- Cloud coverage (the less the better)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# we are using a metric coordinate reference system for europe in order to\n", "# safely compare areas \n", "gdf = gdf.to_crs('EPSG:4839')\n", "berlin = berlin.to_crs('EPSG:4839')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titlelinklink_alternativelink_iconsummaryondemandbeginpositionendpositioningestiondateorbitnumber...osm_typeosm_iddisplay_nameplace_rankcategorytypeimportanceicongeometryarea
1S2A_MSIL2A_20200617T101031_N0214_R022_T33UUU_2...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...Date: 2020-06-17T10:10:31.024Z, Instrument: MS...false2020-06-17 10:10:31.0242020-06-17 10:10:31.0242020-06-17 21:35:56.83626045...relation62422Berlin, Deutschland8boundaryadministrative0.897539https://nominatim.openstreetmap.org/ui/mapicon...MULTIPOLYGON (((215331.937 168288.512, 216047....8.535962e+08
3S2B_MSIL2A_20200615T101559_N0214_R065_T33UUU_2...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...Date: 2020-06-15T10:15:59.024Z, Instrument: MS...false2020-06-15 10:15:59.0242020-06-15 10:15:59.0242020-06-16 01:21:09.37817108...relation62422Berlin, Deutschland8boundaryadministrative0.897539https://nominatim.openstreetmap.org/ui/mapicon...MULTIPOLYGON (((215331.937 168288.512, 216047....8.535962e+08
10S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_2...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...Date: 2020-06-02T10:05:59.024Z, Instrument: MS...false2020-06-02 10:05:59.0242020-06-02 10:05:59.0242020-06-02 18:40:43.33116922...relation62422Berlin, Deutschland8boundaryadministrative0.897539https://nominatim.openstreetmap.org/ui/mapicon...MULTIPOLYGON (((215331.937 168288.512, 216047....8.535962e+08
11S2A_MSIL2A_20200531T102031_N0214_R065_T33UUU_2...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...https://scihub.copernicus.eu/apihub/odata/v1/P...Date: 2020-05-31T10:20:31.024Z, Instrument: MS...false2020-05-31 10:20:31.0242020-05-31 10:20:31.0242020-05-31 20:21:27.27925802...relation62422Berlin, Deutschland8boundaryadministrative0.897539https://nominatim.openstreetmap.org/ui/mapicon...MULTIPOLYGON (((215331.937 168288.512, 216047....8.535962e+08
\n", "

4 rows × 46 columns

\n", "
" ], "text/plain": [ " title \\\n", "1 S2A_MSIL2A_20200617T101031_N0214_R022_T33UUU_2... \n", "3 S2B_MSIL2A_20200615T101559_N0214_R065_T33UUU_2... \n", "10 S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_2... \n", "11 S2A_MSIL2A_20200531T102031_N0214_R065_T33UUU_2... \n", "\n", " link \\\n", "1 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "3 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "10 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "11 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "\n", " link_alternative \\\n", "1 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "3 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "10 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "11 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "\n", " link_icon \\\n", "1 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "3 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "10 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "11 https://scihub.copernicus.eu/apihub/odata/v1/P... \n", "\n", " summary ondemand \\\n", "1 Date: 2020-06-17T10:10:31.024Z, Instrument: MS... false \n", "3 Date: 2020-06-15T10:15:59.024Z, Instrument: MS... false \n", "10 Date: 2020-06-02T10:05:59.024Z, Instrument: MS... false \n", "11 Date: 2020-05-31T10:20:31.024Z, Instrument: MS... false \n", "\n", " beginposition endposition ingestiondate \\\n", "1 2020-06-17 10:10:31.024 2020-06-17 10:10:31.024 2020-06-17 21:35:56.836 \n", "3 2020-06-15 10:15:59.024 2020-06-15 10:15:59.024 2020-06-16 01:21:09.378 \n", "10 2020-06-02 10:05:59.024 2020-06-02 10:05:59.024 2020-06-02 18:40:43.331 \n", "11 2020-05-31 10:20:31.024 2020-05-31 10:20:31.024 2020-05-31 20:21:27.279 \n", "\n", " orbitnumber ... osm_type osm_id display_name place_rank \\\n", "1 26045 ... relation 62422 Berlin, Deutschland 8 \n", "3 17108 ... relation 62422 Berlin, Deutschland 8 \n", "10 16922 ... relation 62422 Berlin, Deutschland 8 \n", "11 25802 ... relation 62422 Berlin, Deutschland 8 \n", "\n", " category type importance \\\n", "1 boundary administrative 0.897539 \n", "3 boundary administrative 0.897539 \n", "10 boundary administrative 0.897539 \n", "11 boundary administrative 0.897539 \n", "\n", " icon \\\n", "1 https://nominatim.openstreetmap.org/ui/mapicon... \n", "3 https://nominatim.openstreetmap.org/ui/mapicon... \n", "10 https://nominatim.openstreetmap.org/ui/mapicon... \n", "11 https://nominatim.openstreetmap.org/ui/mapicon... \n", "\n", " geometry area \n", "1 MULTIPOLYGON (((215331.937 168288.512, 216047.... 8.535962e+08 \n", "3 MULTIPOLYGON (((215331.937 168288.512, 216047.... 8.535962e+08 \n", "10 MULTIPOLYGON (((215331.937 168288.512, 216047.... 8.535962e+08 \n", "11 MULTIPOLYGON (((215331.937 168288.512, 216047.... 8.535962e+08 \n", "\n", "[4 rows x 46 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import geopandas as gpd\n", "\n", "intersection = gpd.overlay(\n", " gdf,\n", " berlin,\n", " how=\"intersection\"\n", ")\n", "intersection['area'] = intersection['geometry'].area\n", "max_area = max(*intersection['area'])\n", "\n", "largest_intersections = intersection[intersection['area'] == max_area]\n", "largest_intersections" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titlecloudcoverpercentage
1S2A_MSIL2A_20200617T101031_N0214_R022_T33UUU_2...24.374344
3S2B_MSIL2A_20200615T101559_N0214_R065_T33UUU_2...3.626466
10S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_2...0.345483
11S2A_MSIL2A_20200531T102031_N0214_R065_T33UUU_2...16.512980
\n", "
" ], "text/plain": [ " title cloudcoverpercentage\n", "1 S2A_MSIL2A_20200617T101031_N0214_R022_T33UUU_2... 24.374344\n", "3 S2B_MSIL2A_20200615T101559_N0214_R065_T33UUU_2... 3.626466\n", "10 S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_2... 0.345483\n", "11 S2A_MSIL2A_20200531T102031_N0214_R065_T33UUU_2... 16.512980" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "largest_intersections[['title', 'cloudcoverpercentage']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These files will all be downloaded to `resources/true_color_image`.\n", "Repeated calls to `download` or `download_all` will skip the download process if a product has previously been downloaded." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'958ef7fc-815e-47c6-b323-219de6a91339': {'id': '958ef7fc-815e-47c6-b323-219de6a91339',\n", " 'title': 'S2A_MSIL2A_20200617T101031_N0214_R022_T33UUU_20200617T161854',\n", " 'size': 854267363,\n", " 'md5': 'E8E78FEEBF25D95E50A7E5E0C971C061',\n", " 'date': datetime.datetime(2020, 6, 17, 10, 10, 31, 24000),\n", " 'footprint': 'POLYGON((12.352510548540328 52.23126993496904,12.408603762795623 52.36271559980042,12.470993716931147 52.50836314366547,12.533637922787934 52.653880456978825,12.596456783078388 52.79937966494399,12.659608391506955 52.944876790325615,12.72334134983589 53.09033052896263,12.783072077326212 53.2261774473976,13.648341514492438 53.24196354764364,13.678544065009483 52.25515074878083,12.352510548540328 52.23126993496904))',\n", " 'url': \"https://scihub.copernicus.eu/apihub/odata/v1/Products('958ef7fc-815e-47c6-b323-219de6a91339')/$value\",\n", " 'Online': True,\n", " 'Creation Date': datetime.datetime(2020, 6, 17, 21, 36, 46, 539000),\n", " 'Ingestion Date': datetime.datetime(2020, 6, 17, 21, 35, 56, 836000),\n", " 'path': 'resources/true_color_image/S2A_MSIL2A_20200617T101031_N0214_R022_T33UUU_20200617T161854.zip',\n", " 'downloaded_bytes': 0},\n", " 'b64d4450-d999-41dc-9ecb-6d263f322dd3': {'id': 'b64d4450-d999-41dc-9ecb-6d263f322dd3',\n", " 'title': 'S2B_MSIL2A_20200615T101559_N0214_R065_T33UUU_20200615T141117',\n", " 'size': 1176239030,\n", " 'md5': '86D9DB1D0C6C087D66AE28E4A106EF04',\n", " 'date': datetime.datetime(2020, 6, 15, 10, 15, 59, 24000),\n", " 'footprint': 'POLYGON((12.004760925069467 53.21197782662703,13.648341514492438 53.24196354764364,13.678544065009483 52.25515074878083,12.071595116334858 52.22621087043558,12.004760925069467 53.21197782662703))',\n", " 'url': \"https://scihub.copernicus.eu/apihub/odata/v1/Products('b64d4450-d999-41dc-9ecb-6d263f322dd3')/$value\",\n", " 'Online': True,\n", " 'Creation Date': datetime.datetime(2020, 6, 16, 1, 22, 2, 573000),\n", " 'Ingestion Date': datetime.datetime(2020, 6, 16, 1, 21, 9, 378000),\n", " 'path': 'resources/true_color_image/S2B_MSIL2A_20200615T101559_N0214_R065_T33UUU_20200615T141117.zip',\n", " 'downloaded_bytes': 0},\n", " '10190cf1-5690-48a3-b71e-861629703a3f': {'id': '10190cf1-5690-48a3-b71e-861629703a3f',\n", " 'title': 'S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_20200602T135324',\n", " 'size': 862966648,\n", " 'md5': 'A93C8F7AA12C2396CF57CFD02ADF21A2',\n", " 'date': datetime.datetime(2020, 6, 2, 10, 5, 59, 24000),\n", " 'footprint': 'POLYGON((12.358321903656456 52.23137459287384,12.415699786858166 52.36633012201262,12.47808001229512 52.51194199175493,12.5407946185535 52.65754848189568,12.603698138951865 52.80313660845604,12.667166015291048 52.94869104851679,12.731188091140115 53.09422646557383,12.789415151489028 53.226293171356296,13.648341514492438 53.24196354764364,13.678544065009483 52.25515074878083,12.358321903656456 52.23137459287384))',\n", " 'url': \"https://scihub.copernicus.eu/apihub/odata/v1/Products('10190cf1-5690-48a3-b71e-861629703a3f')/$value\",\n", " 'Online': True,\n", " 'Creation Date': datetime.datetime(2020, 6, 2, 18, 42, 4, 900000),\n", " 'Ingestion Date': datetime.datetime(2020, 6, 2, 18, 40, 43, 331000),\n", " 'path': 'resources/true_color_image/S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_20200602T135324.zip',\n", " 'downloaded_bytes': 0},\n", " 'e385d397-4d1b-4fa2-a1ce-917f420c86dd': {'id': 'e385d397-4d1b-4fa2-a1ce-917f420c86dd',\n", " 'title': 'S2A_MSIL2A_20200531T102031_N0214_R065_T33UUU_20200531T134031',\n", " 'size': 1162711104,\n", " 'md5': '7E74A83DA5EA1176CFB68517E53A343D',\n", " 'date': datetime.datetime(2020, 5, 31, 10, 20, 31, 24000),\n", " 'footprint': 'POLYGON((12.004760925069467 53.21197782662703,13.648341514492438 53.24196354764364,13.678544065009483 52.25515074878083,12.071595116334858 52.22621087043558,12.004760925069467 53.21197782662703))',\n", " 'url': \"https://scihub.copernicus.eu/apihub/odata/v1/Products('e385d397-4d1b-4fa2-a1ce-917f420c86dd')/$value\",\n", " 'Online': True,\n", " 'Creation Date': datetime.datetime(2020, 5, 31, 20, 22, 5, 475000),\n", " 'Ingestion Date': datetime.datetime(2020, 5, 31, 20, 21, 27, 279000),\n", " 'path': 'resources/true_color_image/S2A_MSIL2A_20200531T102031_N0214_R065_T33UUU_20200531T134031.zip',\n", " 'downloaded_bytes': 0}}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dst_path = resources / 'true_color_image'\n", "# we make sure to create the directory at dst_path so the notebook can run\n", "# without interruptions\n", "dst_path.mkdir(exist_ok=True, parents=True)\n", "\n", "downloads, _, _ = api.download_all(largest_intersections['uuid'].values, dst_path)\n", "downloads" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`downloads` contains a dictionary, mapping each product's UUID to detailed information about the downloaded product.\n", "We can use it to calculate the total download size:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloaded 0.00GB\n" ] } ], "source": [ "downloaded_bytes_total = sum(p['downloaded_bytes'] for p in downloads.values())\n", "print(f'Downloaded {(downloaded_bytes_total / 1024 ** 3):.2f}GB')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.6" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }