mirror of
https://github.com/heyarne/earth-observation-for-journalism.git
synced 2026-05-06 19:13:40 +02:00
402 lines
54 KiB
Text
402 lines
54 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Data retrieval from the Long-Term Archive\n",
|
|
"\n",
|
|
"Sentinel data that has not been accessed for a longer period of time is moved to a Long-Term Archive (LTA).\n",
|
|
"Data in the LTA can not be retrieved immediately but instead has to moved out of this archive first.\n",
|
|
"\n",
|
|
"This notebook shows how API responses in this case look like and what to do in this situation.\n",
|
|
"The relevant part is at the end of this notebook, the rest is documented for the sake of completeness."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Defining the area of interest\n",
|
|
"\n",
|
|
"The data retrieval process looks like in other notebooks:\n",
|
|
"The sentinelsat API client is initialized and the geometry of an area of interest is fetched using OpenStreetMap nominatim and narrowed down using GeoPandas."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sentinel_helpers import search_osm, geodataframe_on_map\n",
|
|
"from datetime import date\n",
|
|
"import os\n",
|
|
"from sentinelsat import SentinelAPI\n",
|
|
"from tqdm.notebook import tqdm\n",
|
|
"\n",
|
|
"api = SentinelAPI(os.getenv('SCIHUB_USERNAME'), os.getenv('SCIHUB_PASSWORD'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>place_id</th>\n",
|
|
" <th>osm_type</th>\n",
|
|
" <th>osm_id</th>\n",
|
|
" <th>display_name</th>\n",
|
|
" <th>place_rank</th>\n",
|
|
" <th>category</th>\n",
|
|
" <th>type</th>\n",
|
|
" <th>importance</th>\n",
|
|
" <th>icon</th>\n",
|
|
" <th>geometry</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>257891092</td>\n",
|
|
" <td>relation</td>\n",
|
|
" <td>422436</td>\n",
|
|
" <td>Jüterbog, Teltow-Fläming, Brandenburg, 14913, ...</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>boundary</td>\n",
|
|
" <td>administrative</td>\n",
|
|
" <td>0.685236</td>\n",
|
|
" <td>https://nominatim.openstreetmap.org/ui/mapicon...</td>\n",
|
|
" <td>POLYGON ((12.95605 52.03939, 12.96134 52.03944...</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" place_id osm_type osm_id \\\n",
|
|
"0 257891092 relation 422436 \n",
|
|
"\n",
|
|
" display_name place_rank category \\\n",
|
|
"0 Jüterbog, Teltow-Fläming, Brandenburg, 14913, ... 16 boundary \n",
|
|
"\n",
|
|
" type importance \\\n",
|
|
"0 administrative 0.685236 \n",
|
|
"\n",
|
|
" icon \\\n",
|
|
"0 https://nominatim.openstreetmap.org/ui/mapicon... \n",
|
|
"\n",
|
|
" geometry \n",
|
|
"0 POLYGON ((12.95605 52.03939, 12.96134 52.03944... "
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"jueterbog = search_osm('Jüterbog, Brandenburg')\n",
|
|
"jueterbog = jueterbog[(jueterbog['type'] == 'administrative') & (jueterbog['osm_type'] == 'relation')]\n",
|
|
"jueterbog"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=%3C%21DOCTYPE%20html%3E%0A%3Chead%3E%20%20%20%20%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22content-type%22%20content%3D%22text/html%3B%20charset%3DUTF-8%22%20/%3E%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%3Cscript%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20L_NO_TOUCH%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20L_DISABLE_3D%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%3C/script%3E%0A%20%20%20%20%0A%20%20%20%20%3Cscript%20src%3D%22https%3A//cdn.jsdelivr.net/npm/leaflet%401.6.0/dist/leaflet.js%22%3E%3C/script%3E%0A%20%20%20%20%3Cscript%20src%3D%22https%3A//code.jquery.com/jquery-1.12.4.min.js%22%3E%3C/script%3E%0A%20%20%20%20%3Cscript%20src%3D%22https%3A//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js%22%3E%3C/script%3E%0A%20%20%20%20%3Cscript%20src%3D%22https%3A//cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js%22%3E%3C/script%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//cdn.jsdelivr.net/npm/leaflet%401.6.0/dist/leaflet.css%22/%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css%22/%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css%22/%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css%22/%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css%22/%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//rawcdn.githack.com/python-visualization/folium/master/folium/templates/leaflet.awesome.rotate.css%22/%3E%0A%20%20%20%20%3Cstyle%3Ehtml%2C%20body%20%7Bwidth%3A%20100%25%3Bheight%3A%20100%25%3Bmargin%3A%200%3Bpadding%3A%200%3B%7D%3C/style%3E%0A%20%20%20%20%3Cstyle%3E%23map%20%7Bposition%3Aabsolute%3Btop%3A0%3Bbottom%3A0%3Bright%3A0%3Bleft%3A0%3B%7D%3C/style%3E%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmeta%20name%3D%22viewport%22%20content%3D%22width%3Ddevice-width%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20initial-scale%3D1.0%2C%20maximum-scale%3D1.0%2C%20user-scalable%3Dno%22%20/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cstyle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23map_9f0218e751a24cac8b31c3ef59a78239%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20100.0%25%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20height%3A%20100.0%25%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20left%3A%200.0%25%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20top%3A%200.0%25%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/style%3E%0A%20%20%20%20%20%20%20%20%0A%3C/head%3E%0A%3Cbody%3E%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22folium-map%22%20id%3D%22map_9f0218e751a24cac8b31c3ef59a78239%22%20%3E%3C/div%3E%0A%20%20%20%20%20%20%20%20%0A%3C/body%3E%0A%3Cscript%3E%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20map_9f0218e751a24cac8b31c3ef59a78239%20%3D%20L.map%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22map_9f0218e751a24cac8b31c3ef59a78239%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20center%3A%20%5B0.0%2C%200.0%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20crs%3A%20L.CRS.EPSG3857%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20zoom%3A%2010%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20zoomControl%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20preferCanvas%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scrollWheelZoom%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20tile_layer_fef9665fd52f4eb3b931599eb6d63654%20%3D%20L.tileLayer%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22https%3A//cartodb-basemaps-%7Bs%7D.global.ssl.fastly.net/light_all/%7Bz%7D/%7Bx%7D/%7By%7D.png%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%22attribution%22%3A%20%22%5Cu0026copy%3B%20%5Cu003ca%20href%3D%5C%22http%3A//www.openstreetmap.org/copyright%5C%22%5Cu003eOpenStreetMap%5Cu003c/a%5Cu003e%20contributors%20%5Cu0026copy%3B%20%5Cu003ca%20href%3D%5C%22http%3A//cartodb.com/attributions%5C%22%5Cu003eCartoDB%5Cu003c/a%5Cu003e%2C%20CartoDB%20%5Cu003ca%20href%20%3D%5C%22http%3A//cartodb.com/attributions%5C%22%5Cu003eattributions%5Cu003c/a%5Cu003e%22%2C%20%22detectRetina%22%3A%20false%2C%20%22maxNativeZoom%22%3A%2018%2C%20%22maxZoom%22%3A%2018%2C%20%22minZoom%22%3A%200%2C%20%22noWrap%22%3A%20false%2C%20%22opacity%22%3A%201%2C%20%22subdomains%22%3A%20%22abc%22%2C%20%22tms%22%3A%20false%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.addTo%28map_9f0218e751a24cac8b31c3ef59a78239%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20function%20geo_json_523739b3ab234d5085c10f42478e6a7f_onEachFeature%28feature%2C%20layer%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20layer.on%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20click%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20map_9f0218e751a24cac8b31c3ef59a78239.fitBounds%28e.target.getBounds%28%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20var%20geo_json_523739b3ab234d5085c10f42478e6a7f%20%3D%20L.geoJson%28null%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20onEachFeature%3A%20geo_json_523739b3ab234d5085c10f42478e6a7f_onEachFeature%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%29.addTo%28map_9f0218e751a24cac8b31c3ef59a78239%29%3B%0A%0A%20%20%20%20%20%20%20%20function%20geo_json_523739b3ab234d5085c10f42478e6a7f_add%20%28data%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20geo_json_523739b3ab234d5085c10f42478e6a7f.addData%28data%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20geo_json_523739b3ab234d5085c10f42478e6a7f_add%28%7B%22features%22%3A%20%5B%7B%22geometry%22%3A%20%7B%22coordinates%22%3A%20%5B%5B%5B12.9560532%2C%2052.0393856%5D%2C%20%5B12.9613366%2C%2052.0394406%5D%2C%20%5B12.9627969%2C%2052.0387489%5D%2C%20%5B12.9635331%2C%2052.0382458%5D%2C%20%5B12.9646476%2C%2052.0377489%5D%2C%20%5B12.9650159%2C%2052.0377109%5D%2C%20%5B12.966805%2C%2052.0368495%5D%2C%20%5B12.9672242%2C%2052.0365476%5D%2C%20%5B12.9679451%2C%2052.0363066%5D%2C%20%5B12.9669613%2C%2052.0355612%5D%2C%20%5B12.9639946%2C%2052.0340286%5D%2C%20%5B12.968133%2C%2052.0324607%5D%2C%20%5B12.9713351%2C%2052.0315192%5D%2C%20%5B12.9699779%2C%2052.0270175%5D%2C%20%5B12.9766274%2C%2052.0249226%5D%2C%20%5B12.9839353%2C%2052.0217203%5D%2C%20%5B12.9844181%2C%2052.0215008%5D%2C%20%5B12.99209%2C%2052.0178806%5D%2C%20%5B12.9925835%2C%2052.0183481%5D%2C%20%5B12.994195%2C%2052.0175881%5D%2C%20%5B12.994519%2C%2052.017909%5D%2C%20%5B12.9945812%2C%2052.0200746%5D%2C%20%5B12.9996016%2C%2052.0202362%5D%2C%20%5B13.0042532%2C%2052.0204114%5D%2C%20%5B13.0052907%2C%2052.0180285%5D%2C%20%5B13.0063487%2C%2052.0184629%5D%2C%20%5B13.0071608%2C%2052.0187964%5D%2C%20%5B13.0098955%2C%2052.0119718%5D%2C%20%5B13.0124512%2C%2052.0111807%5D%2C%20%5B13.0245715%2C%2052.0071262%5D%2C%20%5B13.0203658%2C%2052.0046053%5D%2C%20%5B13.0228925%2C%2052.0033632%5D%2C%20%5B13.0190006%2C%2052.0011089%5D%2C%20%5B13.0177533%2C%2052.0012523%5D%2C%20%5B13.0168539%2C%2051.9990807%5D%2C%20%5B13.0175824%2C%2051.9989829%5D%2C%20%5B13.0167445%2C%2051.9968394%5D%2C%20%5B13.019578%2C%2051.9965309%5D%2C%20%5B13.0193172%2C%2051.9957639%5D%2C%20%5B13.0191595%2C%2051.9950425%5D%2C%20%5B13.02872%2C%2051.9940668%5D%2C%20%5B13.0286588%2C%2051.9937041%5D%2C%20%5B13.0324955%2C%2051.993321%5D%2C%20%5B13.0329354%2C%2051.99408%5D%2C%20%5B13.0379425%2C%2051.9926385%5D%2C%20%5B13.0375724%2C%2051.9916951%5D%2C%20%5B13.0331489%2C%2051.9902985%5D%2C%20%5B13.0244188%2C%2051.9893808%5D%2C%20%5B13.0243866%2C%2051.9860759%5D%2C%20%5B13.0219705%2C%2051.97872%5D%2C%20%5B13.025526%2C%2051.9782838%5D%2C%20%5B13.0309956%2C%2051.9774551%5D%2C%20%5B13.0338362%2C%2051.9775613%5D%2C%20%5B13.0393147%2C%2051.9775013%5D%2C%20%5B13.0477365%2C%2051.9763528%5D%2C%20%5B13.0528874%2C%2051.9758446%5D%2C%20%5B13.0566586%2C%2051.9760706%5D%2C%20%5B13.051587%2C%2051.9714812%5D%2C%20%5B13.0537661%2C%2051.9704792%5D%2C%20%5B13.0569418%2C%2051.9702412%5D%2C%20%5B13.0579074%2C%2051.9718341%5D%2C%20%5B13.0673273%2C%2051.9713153%5D%2C%20%5B13.0650904%2C%2051.9665872%5D%2C%20%5B13.0630143%2C%2051.9630936%5D%2C%20%5B13.0640711%2C%2051.9629362%5D%2C%20%5B13.0656547%2C%2051.9629858%5D%2C%20%5B13.0684989%2C%2051.9636317%5D%2C%20%5B13.0697156%2C%2051.9636422%5D%2C%20%5B13.0720909%2C%2051.9631722%5D%2C%20%5B13.0738075%2C%2051.963352%5D%2C%20%5B13.0754136%2C%2051.963401%5D%2C%20%5B13.0773824%2C%2051.9639245%5D%2C%20%5B13.0798318%2C%2051.9649538%5D%2C%20%5B13.0824743%2C%2051.9655758%5D%2C%20%5B13.0840804%2C%2051.9657087%5D%2C%20%5B13.0855771%2C%2051.9661053%5D%2C%20%5B13.088579%2C%2051.9680018%5D%2C%20%5B13.0902903%2C%2051.9691916%5D%2C%20%5B13.0924103%2C%2051.9683058%5D%2C%20%5B13.0928984%2C%2051.9674948%5D%2C%20%5B13.0988572%2C%2051.9667545%5D%2C%20%5B13.1100496%2C%2051.964895%5D%2C%20%5B13.119786%2C%2051.9631174%5D%2C%20%5B13.120788%2C%2051.9632403%5D%2C%20%5B13.1235228%2C%2051.963635%5D%2C%20%5B13.1245796%2C%2051.963824%5D%2C%20%5B13.1249583%2C%2051.9642035%5D%2C%20%5B13.1286362%2C%2051.9632139%5D%2C%20%5B13.1298732%2C%2051.9631273%5D%2C%20%5B13.1344695%2C%2051.9633269%5D%2C%20%5B13.1397867%2C%2051.9655983%5D%2C%20%5B13.1446136%2C%2051.9679264%5D%2C%20%5B13.1451452%2C%2051.9675133%5D%2C%20%5B13.1465222%2C%2051.966891%5D%2C%20%5B13.148138%2C%2051.9658389%5D%2C%20%5B13.1525669%2C%2051.9634962%5D%2C%20%5B13.1586501%2C%2051.9616808%5D%2C%20%5B13.1616928%2C%2051.9607209%5D%2C%20%5B13.162446%2C%2051.9613265%5D%2C%20%5B13.1636903%2C%2051.9609436%5D%2C%20%5B13.1671945%2C%2051.9598654%5D%2C%20%5B13.1719539%2C%2051.9549054%5D%2C%20%5B13.17381%2C%2051.9554052%5D%2C%20%5B13.1747884%2C%2051.9559157%5D%2C%20%5B13.1770801%2C%2051.9562185%5D%2C%20%5B13.1782882%2C%2051.9560849%5D%2C%20%5B13.1802988%2C%2051.9564234%5D%2C%20%5B13.1843543%2C%2051.9569709%5D%2C%20%5B13.186927%2C%2051.9577683%5D%2C%20%5B13.1888971%2C%2051.9583783%5D%2C%20%5B13.1897734%2C%2051.9586493%5D%2C%20%5B13.1916934%2C%2051.9592801%5D%2C%20%5B13.1915072%2C%2051.959458%5D%2C%20%5B13.1904815%2C%2051.960648%5D%2C%20%5B13.1887327%2C%2051.9623206%5D%2C%20%5B13.1885933%2C%2051.9624396%5D%2C%20%5B13.1884967%2C%2051.9625652%5D%2C%20%5B13.1877564%2C%2051.9638873%5D%2C%20%5B13.1868981%2C%2051.9652954%5D%2C%20%5B13.1857608%2C%2051.9677346%5D%2C%20%5B13.1879817%2C%2051.9681114%5D%2C%20%5B13.1903957%2C%2051.9686269%5D%2C%20%5B13.1970878%2C%2051.9702649%5D%2C%20%5B13.2007158%2C%2051.9709288%5D%2C%20%5B13.2071155%2C%2051.9731851%5D%2C%20%5B13.211849%2C%2051.9744838%5D%2C%20%5B13.2121913%2C%2051.978196%5D%2C%20%5B13.2124992%2C%2051.9806457%5D%2C%20%5B13.2132588%2C%2051.9859035%5D%2C%20%5B13.2163137%2C%2051.9870971%5D%2C%20%5B13.2187083%2C%2051.9874724%5D%2C%20%5B13.2211166%2C%2051.987811%5D%2C%20%5B13.2286411%2C%2051.9892497%5D%2C%20%5B13.2287355%2C%2051.9901918%5D%2C%20%5B13.2330957%2C%2051.9903306%5D%2C%20%5B13.2316752%2C%2051.9926112%5D%2C%20%5B13.227815%2C%2051.9919915%5D%2C%20%5B13.2241049%2C%2051.9980955%5D%2C%20%5B13.2217103%2C%2052.0023612%5D%2C%20%5B13.217985%2C%2052.0033331%5D%2C%20%5B13.2110581%2C%2052.0031022%5D%2C%20%5B13.2113447%2C%2052.0043954%5D%2C%20%5B13.208214%2C%2052.0058893%5D%2C%20%5B13.2047443%2C%2052.0068681%5D%2C%20%5B13.2035748%2C%2052.0123163%5D%2C%20%5B13.2035877%2C%2052.0160815%5D%2C%20%5B13.2016951%2C%2052.0207905%5D%2C%20%5B13.2007939%2C%2052.022853%5D%2C%20%5B13.1996738%2C%2052.0235409%5D%2C%20%5B13.1963436%2C%2052.0250804%5D%2C%20%5B13.1939523%2C%2052.0257618%5D%2C%20%5B13.1929286%2C%2052.0260535%5D%2C%20%5B13.1919244%2C%2052.0261575%5D%2C%20%5B13.1906423%2C%2052.0261142%5D%2C%20%5B13.1900179%2C%2052.02641%5D%2C%20%5B13.1883109%2C%2052.0268417%5D%2C%20%5B13.1861716%2C%2052.0272985%5D%2C%20%5B13.1840414%2C%2052.0276312%5D%2C%20%5B13.181085%2C%2052.0282428%5D%2C%20%5B13.1795664%2C%2052.0286059%5D%2C%20%5B13.1791496%2C%2052.0286676%5D%2C%20%5B13.1779179%2C%2052.0286273%5D%2C%20%5B13.176786%2C%2052.0288703%5D%2C%20%5B13.1755531%2C%2052.0293621%5D%2C%20%5B13.1753313%2C%2052.0358878%5D%2C%20%5B13.1707361%2C%2052.0413447%5D%2C%20%5B13.170436%2C%2052.0417012%5D%2C%20%5B13.1701855%2C%2052.0419986%5D%2C%20%5B13.1686981%2C%2052.0422364%5D%2C%20%5B13.1670816%2C%2052.0424949%5D%2C%20%5B13.1651987%2C%2052.0429344%5D%2C%20%5B13.1639317%2C%2052.0434814%5D%2C%20%5B13.1631839%2C%2052.0445128%5D%2C%20%5B13.1618588%2C%2052.0452327%5D%2C%20%5B13.1588902%2C%2052.0455614%5D%2C%20%5B13.1571081%2C%2052.0455614%5D%2C%20%5B13.1566843%2C%2052.0453073%5D%2C%20%5B13.1550482%2C%2052.0463815%5D%2C%20%5B13.1583602%2C%2052.0489417%5D%2C%20%5B13.1559451%2C%2052.0507374%5D%2C%20%5B13.1549152%2C%2052.0517402%5D%2C%20%5B13.154486%2C%2052.0527958%5D%2C%20%5B13.153971%2C%2052.0536403%5D%2C%20%5B13.1470466%2C%2052.053983%5D%2C%20%5B13.1478824%2C%2052.0566687%5D%2C%20%5B13.1435748%2C%2052.0577189%5D%2C%20%5B13.1431228%2C%2052.0579604%5D%2C%20%5B13.1435016%2C%2052.0582869%5D%2C%20%5B13.1439159%2C%2052.0586577%5D%2C%20%5B13.1439342%2C%2052.0592876%5D%2C%20%5B13.1446144%2C%2052.0596366%5D%2C%20%5B13.1457128%2C%2052.0597362%5D%2C%20%5B13.1467408%2C%2052.0599044%5D%2C%20%5B13.1474122%2C%2052.0601247%5D%2C%20%5B13.1474489%2C%2052.0603747%5D%2C%20%5B13.1471003%2C%2052.060973%5D%2C%20%5B13.1470917%2C%2052.0616775%5D%2C%20%5B13.1480841%2C%2052.0619869%5D%2C%20%5B13.1485808%2C%2052.0615799%5D%2C%20%5B13.1493812%2C%2052.061512%5D%2C%20%5B13.1510367%2C%2052.0618761%5D%2C%20%5B13.1519036%2C%2052.0623635%5D%2C%20%5B13.1518059%2C%2052.0629473%5D%2C%20%5B13.1521106%2C%2052.0636121%5D%2C%20%5B13.1525795%2C%2052.0640349%5D%2C%20%5B13.1532028%2C%2052.0648931%5D%2C%20%5B13.1523499%2C%2052.0648917%5D%2C%20%5B13.1524722%2C%2052.0654695%5D%2C%20%5B13.1523638%2C%2052.0659306%5D%2C%20%5B13.1529474%2C%2052.0665114%5D%2C%20%5B13.1529839%2C%2052.0670706%5D%2C%20%5B13.1530161%2C%2052.0676646%5D%2C%20%5B13.1523096%2C%2052.0679778%5D%2C%20%5B13.1523091%2C%2052.0683534%5D%2C%20%5B13.1532098%2C%2052.068366%5D%2C%20%5B13.1535204%2C%2052.0680695%5D%2C%20%5B13.154525%2C%2052.0682068%5D%2C%20%5B13.1557681%2C%2052.0688187%5D%2C%20%5B13.1557906%2C%2052.0689793%5D%2C%20%5B13.1509154%2C%2052.0703527%5D%2C%20%5B13.150733%2C%2052.070388%5D%2C%20%5B13.1478302%2C%2052.0709504%5D%2C%20%5B13.1451265%2C%2052.0719264%5D%2C%20%5B13.1436888%2C%2052.0704887%5D%2C%20%5B13.1400196%2C%2052.0712669%5D%2C%20%5B13.1377665%2C%2052.0718868%5D%2C%20%5B13.1360439%2C%2052.0727967%5D%2C%20%5B13.1355375%2C%2052.0733243%5D%2C%20%5B13.1353991%2C%2052.0739738%5D%2C%20%5B13.13562%2C%2052.0754351%5D%2C%20%5B13.1352095%2C%2052.0758083%5D%2C%20%5B13.1323284%2C%2052.0784274%5D%2C%20%5B13.1263912%2C%2052.0841472%5D%2C%20%5B13.1253612%2C%2052.0851921%5D%2C%20%5B13.1200764%2C%2052.0848362%5D%2C%20%5B13.1159158%2C%2052.0843008%5D%2C%20%5B13.1144685%2C%2052.0842817%5D%2C%20%5B13.1122842%2C%2052.0839839%5D%2C%20%5B13.1088328%2C%2052.0835134%5D%2C%20%5B13.1076092%2C%2052.0832701%5D%2C%20%5B13.1039708%2C%2052.0828157%5D%2C%20%5B13.1041227%2C%2052.0846552%5D%2C%20%5B13.1039701%2C%2052.0857913%5D%2C%20%5B13.0990636%2C%2052.0850537%5D%2C%20%5B13.0984056%2C%2052.0848227%5D%2C%20%5B13.0973691%2C%2052.0847878%5D%2C%20%5B13.0957775%2C%2052.084728%5D%2C%20%5B13.0948344%2C%2052.0845871%5D%2C%20%5B13.0911909%2C%2052.0840543%5D%2C%20%5B13.087402%2C%2052.0833743%5D%2C%20%5B13.089814%2C%2052.0813175%5D%2C%20%5B13.0881543%2C%2052.081193%5D%2C%20%5B13.0775057%2C%2052.0809546%5D%2C%20%5B13.0729937%2C%2052.0809022%5D%2C%20%5B13.0702702%2C%2052.080824%5D%2C%20%5B13.0619841%2C%2052.0809689%5D%2C%20%5B13.055616%2C%2052.0812644%5D%2C%20%5B13.0546128%2C%2052.0827267%5D%2C%20%5B13.0545042%2C%2052.0843823%5D%2C%20%5B13.0545079%2C%2052.0847262%5D%2C%20%5B13.0547411%2C%2052.0850846%5D%2C%20%5B13.0552105%2C%2052.085926%5D%2C%20%5B13.055507%2C%2052.0862339%5D%2C%20%5B13.0556092%2C%2052.0865103%5D%2C%20%5B13.0556351%2C%2052.0868601%5D%2C%20%5B13.0550137%2C%2052.0891675%5D%2C%20%5B13.0539475%2C%2052.0923698%5D%2C%20%5B13.0521708%2C%2052.0924907%5D%2C%20%5B13.0473433%2C%2052.0931%5D%2C%20%5B13.0459916%2C%2052.0915307%5D%2C%20%5B13.0451385%2C%2052.0898893%5D%2C%20%5B13.044054%2C%2052.0879436%5D%2C%20%5B13.0434293%2C%2052.0869775%5D%2C%20%5B13.0427363%2C%2052.0862789%5D%2C%20%5B13.0403454%2C%2052.0843951%5D%2C%20%5B13.0351094%2C%2052.0853151%5D%2C%20%5B13.0333254%2C%2052.0863839%5D%2C%20%5B13.0315592%2C%2052.0874419%5D%2C%20%5B13.0299093%2C%2052.0883591%5D%2C%20%5B13.0296025%2C%2052.0878125%5D%2C%20%5B13.0266025%2C%2052.0884727%5D%2C%20%5B13.022157%2C%2052.0882424%5D%2C%20%5B13.0217021%2C%2052.0887989%5D%2C%20%5B13.0211276%2C%2052.0887685%5D%2C%20%5B13.0207902%2C%2052.0888522%5D%2C%20%5B13.0189335%2C%2052.0893126%5D%2C%20%5B13.011045%2C%2052.0912689%5D%2C%20%5B13.0122607%2C%2052.0927618%5D%2C%20%5B12.9990641%2C%2052.096028%5D%2C%20%5B12.9951743%2C%2052.094534%5D%2C%20%5B12.9956094%2C%2052.0942134%5D%2C%20%5B12.9959926%2C%2052.093787%5D%2C%20%5B12.9965849%2C%2052.0934956%5D%2C%20%5B12.9962969%2C%2052.0934485%5D%2C%20%5B12.9961969%2C%2052.0934321%5D%2C%20%5B12.9936795%2C%2052.0930205%5D%2C%20%5B12.9934214%2C%2052.092879%5D%2C%20%5B12.9925528%2C%2052.0930129%5D%2C%20%5B12.9888414%2C%2052.093585%5D%2C%20%5B12.9878487%2C%2052.0936971%5D%2C%20%5B12.9868334%2C%2052.0936872%5D%2C%20%5B12.984691%2C%2052.0935216%5D%2C%20%5B12.9847125%2C%2052.0926459%5D%2C%20%5B12.9846637%2C%2052.0923683%5D%2C%20%5B12.984419%2C%2052.0920736%5D%2C%20%5B12.9835931%2C%2052.0916516%5D%2C%20%5B12.9831051%2C%2052.0910974%5D%2C%20%5B12.9820768%2C%2052.0894693%5D%2C%20%5B12.9815012%2C%2052.0886641%5D%2C%20%5B12.9808979%2C%2052.0881804%5D%2C%20%5B12.9802943%2C%2052.0879775%5D%2C%20%5B12.9796446%2C%2052.0879149%5D%2C%20%5B12.9767395%2C%2052.0877937%5D%2C%20%5B12.9751747%2C%2052.0876349%5D%2C%20%5B12.9735274%2C%2052.0873968%5D%2C%20%5B12.9725753%2C%2052.0871514%5D%2C%20%5B12.9720815%2C%2052.0869214%5D%2C%20%5B12.9717344%2C%2052.0868859%5D%2C%20%5B12.9713657%2C%2052.0867126%5D%2C%20%5B12.970653%2C%2052.0858321%5D%2C%20%5B12.969497%2C%2052.0837378%5D%2C%20%5B12.9711819%2C%2052.0840434%5D%2C%20%5B12.9711674%2C%2052.0845543%5D%2C%20%5B12.9722519%2C%2052.0847498%5D%2C%20%5B12.9727869%2C%2052.0841856%5D%2C%20%5B12.9740618%2C%2052.0844507%5D%2C%20%5B12.9738029%2C%2052.0848849%5D%2C%20%5B12.9742801%2C%2052.0849693%5D%2C%20%5B12.9744175%2C%2052.085147%5D%2C%20%5B12.9748585%2C%2052.0853069%5D%2C%20%5B12.9751549%2C%2052.0853513%5D%2C%20%5B12.975596%2C%2052.0856757%5D%2C%20%5B12.9756032%2C%2052.0858889%5D%2C%20%5B12.9757903%2C%2052.0859739%5D%2C%20%5B12.9765638%2C%2052.085843%5D%2C%20%5B12.9771205%2C%2052.0857763%5D%2C%20%5B12.978584%2C%2052.0860141%5D%2C%20%5B12.9794838%2C%2052.08611%5D%2C%20%5B12.97981%2C%2052.0860029%5D%2C%20%5B12.9803565%2C%2052.0853019%5D%2C%20%5B12.9799805%2C%2052.0851064%5D%2C%20%5B12.9800094%2C%2052.0848176%5D%2C%20%5B12.9797275%2C%2052.0846755%5D%2C%20%5B12.9797456%2C%2052.0845144%5D%2C%20%5B12.9787008%2C%2052.0843689%5D%2C%20%5B12.9782292%2C%2052.0841812%5D%2C%20%5B12.9781449%2C%2052.0830332%5D%2C%20%5B12.9759474%2C%2052.0826036%5D%2C%20%5B12.9763934%2C%2052.0813442%5D%2C%20%5B12.9750934%2C%2052.081108%5D%2C%20%5B12.97547%2C%2052.0802721%5D%2C%20%5B12.9694891%2C%2052.0789015%5D%2C%20%5B12.9694309%2C%2052.0787083%5D%2C%20%5B12.9697447%2C%2052.0780092%5D%2C%20%5B12.9702601%2C%2052.0773881%5D%2C%20%5B12.9722379%2C%2052.0778653%5D%2C%20%5B12.9727547%2C%2052.0766836%5D%2C%20%5B12.9705349%2C%2052.0761253%5D%2C%20%5B12.9716905%2C%2052.0758603%5D%2C%20%5B12.9718835%2C%2052.0750224%5D%2C%20%5B12.9718611%2C%2052.0747159%5D%2C%20%5B12.9711424%2C%2052.0740605%5D%2C%20%5B12.9713111%2C%2052.0738846%5D%2C%20%5B12.9714229%2C%2052.073689%5D%2C%20%5B12.9713043%2C%2052.0734126%5D%2C%20%5B12.9713842%2C%2052.0732758%5D%2C%20%5B12.9714117%2C%2052.0730638%5D%2C%20%5B12.9713401%2C%2052.0728533%5D%2C%20%5B12.9711305%2C%2052.0725988%5D%2C%20%5B12.9710754%2C%2052.0723971%5D%2C%20%5B12.9710537%2C%2052.0717527%5D%2C%20%5B12.9708629%2C%2052.0715409%5D%2C%20%5B12.9700818%2C%2052.0710771%5D%2C%20%5B12.9698505%2C%2052.0707927%5D%2C%20%5B12.9697059%2C%2052.0703572%5D%2C%20%5B12.9692535%2C%2052.0698531%5D%2C%20%5B12.965051%2C%2052.0692699%5D%2C%20%5B12.9682903%2C%2052.0670014%5D%2C%20%5B12.9687491%2C%2052.0666674%5D%2C%20%5B12.9689079%2C%2052.0661892%5D%2C%20%5B12.9698452%2C%2052.065174%5D%2C%20%5B12.9638937%2C%2052.0646458%5D%2C%20%5B12.9615637%2C%2052.0645161%5D%2C%20%5B12.9603466%2C%2052.0646479%5D%2C%20%5B12.9592414%2C%2052.0626143%5D%2C%20%5B12.9595208%2C%2052.0621854%5D%2C%20%5B12.9582339%2C%2052.0603629%5D%2C%20%5B12.9577513%2C%2052.0595801%5D%2C%20%5B12.9567515%2C%2052.0569391%5D%2C%20%5B12.9564286%2C%2052.0552075%5D%2C%20%5B12.9564093%2C%2052.0543136%5D%2C%20%5B12.9566551%2C%2052.0526953%5D%2C%20%5B12.9569732%2C%2052.0521306%5D%2C%20%5B12.9569185%2C%2052.0515491%5D%2C%20%5B12.9571121%2C%2052.0511289%5D%2C%20%5B12.9571224%2C%2052.0503052%5D%2C%20%5B12.9573575%2C%2052.0491482%5D%2C%20%5B12.9573221%2C%2052.0487523%5D%2C%20%5B12.9572506%2C%2052.0482537%5D%2C%20%5B12.9570162%2C%2052.0465973%5D%2C%20%5B12.9570129%2C%2052.0448585%5D%2C%20%5B12.9568615%2C%2052.0445609%5D%2C%20%5B12.9568479%2C%2052.0442319%5D%2C%20%5B12.9576447%2C%2052.0422525%5D%2C%20%5B12.957054%2C%2052.0418779%5D%2C%20%5B12.9565576%2C%2052.0412958%5D%2C%20%5B12.9563529%2C%2052.0410146%5D%2C%20%5B12.9560532%2C%2052.0393856%5D%5D%5D%2C%20%22type%22%3A%20%22Polygon%22%7D%2C%20%22id%22%3A%20%220%22%2C%20%22properties%22%3A%20%7B%22category%22%3A%20%22boundary%22%2C%20%22display_name%22%3A%20%22J%5Cu00fcterbog%2C%20Teltow-Fl%5Cu00e4ming%2C%20Brandenburg%2C%2014913%2C%20Deutschland%22%2C%20%22icon%22%3A%20%22https%3A//nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png%22%2C%20%22importance%22%3A%200.6852356167937519%2C%20%22osm_id%22%3A%20422436%2C%20%22osm_type%22%3A%20%22relation%22%2C%20%22place_id%22%3A%20257891092%2C%20%22place_rank%22%3A%2016%2C%20%22type%22%3A%20%22administrative%22%7D%2C%20%22type%22%3A%20%22Feature%22%7D%5D%2C%20%22type%22%3A%20%22FeatureCollection%22%7D%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20map_9f0218e751a24cac8b31c3ef59a78239.fitBounds%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B51.9549054%2C%2012.9560532%5D%2C%20%5B52.096028%2C%2013.2330957%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%0A%3C/script%3E onload=\"this.contentDocument.open();this.contentDocument.write( decodeURIComponent(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
|
|
],
|
|
"text/plain": [
|
|
"<folium.folium.Map at 0x7f41c9630f70>"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"geodataframe_on_map(jueterbog)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The API query is initialized for a time span we are interested in and using an area that slightly extends the geometry fetched from OpenStreetMap. This is done to increase the likelihood that the phenomenon we are interested in is visible on the products we download - we don't know where exactly we will need to look, we only know proximity."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/opt/conda/lib/python3.8/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' 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": [
|
|
"start_date = date(2018, 7, 1)\n",
|
|
"end_date = date(2018, 8, 31)\n",
|
|
"\n",
|
|
"# we increase the geometry size by buffering it by 2.5km\n",
|
|
"buffered = jueterbog.to_crs('epsg:25833').buffer(2500).to_crs('epsg:4326')\n",
|
|
"footprint = buffered.iloc[0].convex_hull.wkt\n",
|
|
"\n",
|
|
"results = api.query(footprint,\n",
|
|
" platformname='Sentinel-2',\n",
|
|
" processinglevel='Level-2A',\n",
|
|
" date=(start_date, end_date),\n",
|
|
" cloudcoverpercentage=(0, 30))\n",
|
|
"\n",
|
|
"gdf = SentinelAPI.to_geodataframe(results)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Deciding which products we are interested in\n",
|
|
"\n",
|
|
"We are only interested in products that have a low cloud coverage value:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<AxesSubplot:xlabel='beginposition'>"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAGTCAYAAAAxyUkTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA2uElEQVR4nO2de5wkZXX3vytegqIu4gqIqMTbxpiIa0SMMQWuN7yAKH1Q5CpkESIa5FXJ6kYMQhDE9YKLCMgiiHISRfCCgroW8Y0ouiEK7CKJoFwWMHH3jRe8IPP+UTXS0zszPV3PdJ06POf3+fRnZrrnW+ec36l65pnq6qcWTExMEAqFQiF/up91AqFQKBRqphjAQ6FQyKliAA+FQiGnigE8FAqFnCoG8FAoFHKqGMBDoVDIqTo1gJdluSzY7seOmn2wlrE9spaxm7KdGsCBq4N1EduKtYztkbWM7ZG1jN2I7doAvlOwLmJHzT5Yy9geWcvYjdiuDeB3BesidtTsg7WM7ZG1jN2I7doAvilYF7GtWMvYHlnL2B5Zy9iN2K4N4IuDdRE7avbBWsb2yFrGbsR2bQBfE6yL2FGzD9YytkfWMnYjtmsD+H7BuogdNftgLWN7ZC1jN2K7NoCfGqyL2FGzD9YytkfWMnYjtmsD+CnBuogdNftgLWN7ZC1jN2IXxA0dQqFQqs5Yed2sA8nhRz91QVu55KROzcDLsjw/2O7Hjpp9sNaxLeJ69aspGzPwUCiUrJiB2yhm4E5Zy9hRsw/WOrZFXK9+xQw8FAqZKWbgNuraDHxlsN2PHTX7YK1jW8T16ldTtlMDOHBisC5iR80+WOvYFnG9+tWI7doAfkiwLmJHzT5Y69gWcb361Yjt2gB+abAuYkfNPljr2BZxvfrViO3aAL4kWBexo2YfrHVsi7he/WrEdm0A3xCsi9hRsw/WOrZFXK9+NWK7NoCHQqFQaI7q2gC+fbAuYkfNPljr2BZxvfrViO3aAL42WBexo2YfrHVsi7he/WrEdm0A3yNYF7GjZh+sdWyLuF79asR2bQA/J1gXsaNmH6x1bIu4Xv1qxHZtAF8erIvYUbMP1jq2RVyvfjViYzGrUCiUrFjMykadmoF7W8rRkrWMHTX7YK1jW8T16lcsJxsKhcwUM3AbxQzcKWsZO2r2wVrHtojr1a+YgYdCITPFDNxGQ2fgIrKjiKwRkXUicq2IvLl+/jgRuVVErq4fL01NpizL04Ptfuyo2QdrHdsirle/mrL3n8Pv3A0co6prReShwPdE5PL6tZWq+r4mgWfQW4N1ETtq9sFax7aI69WvRuzQGbiqblDVtfX3PwfWATs0CTYHHROsi9hRsw/WOrZFXK9+NWJHOgcuIo8HrgCeBrwFOBj4X+C7VLP0jdMwy4BlAIsXL163dOnSM4GFwJbAjcCuwEXAkcC5wLFFURxcluV5RVEcUJblauAw4HhgFbA3cCWwE3AXsAlYDPwIeC5wKnBKURRHlGV5flEU+/d9XUl166JDqBZQX0K1jOOjgQmq9Qj2oPpU1PKiKI4e3Mawc32Ll/z02QM1rQDOmqGm04ATZqlpDbDfTDUB765jTFcTVAvkTFtTzb6r3tbpVDOAY4ALgN2B9R3sE8DO9XOz9mmGmn5RP6arabY+HQ98CXiGsz6tAC4siuLVDfq0Bngj8I659Gn92kXvZRYtXvLTD3S9T/XXc4C3jdqnmr24KIq9xtGnoihuntbYiYmJOT16vd5WvV7ve71e71X1z9v2er0ter3e/Xq93gm9Xu/jc93WTI9vfOMby7rOfvT9107M9mgrZy9+Rc15+NWV48KLX/PFzuUcOCLyAOAzwCdV9bMAqnpH3+tnAl+Yy7aGaL1DNkWpcT36FTW3x1rHtojr1a9G7FyuQlkAnA2sU9X39z3fv37t3sA1TRIY0EKHbIpS46bwHlnL2B5Z69gWcVNYy9iN2LnMwJ8LHAD8QESurp9bDrxWRHamOnd8E3B4kwQGtKVDNkWpcT36FTW3x1rHtojr1a9G7NABXFW/CUx3Ef6XmgQcohsdsilKjevRr6i5PdY6tkVcr341Yjv1UXqqd2a9sSlKjevRr6i5PdY6tkVcr341Yrs2gF/kkE1RalyPfkXN7bHWsS3ievWrEdu1AfxIh2yKUuN69Ctqbo+1jm0R16tfjdiuDeArHLIpSo3r0a+ouT3WOrZFXK9+NWK7NoCf5ZBNUWpcj35Fze2x1rEt4nr1qxEby8mOqFg2MxTaXHFc2KhTM/CyLM9rgz1j5XUTsz2a5jCqUupN5T2ylrE9staxLeJ69aspm+UMPGW2kDrTmI2PWUrIq2IGbqOuzcBXW7BeZeWXZZ885p2jXynK0a+m7JwWs2pRhxmxXmXll2Wf5sxvPitcxPq11x00+dOIs8L7vF9jiD0ndahPqXzrbKdm4FRr31qwXmXll2WfrPqco18ejymvfjViuzaArzJivcrKL8s+WfU5R788HlNe/WrEdm0A39uI9Sorvyz71EqfB69MWr920U8SrlTy6pfHY8qrX43Yrg3gVxqxXmXll2WfPPbZq1+5eZ3Kt852bQDfyYj1Kiu/LPvksc9e/crN61S+dbZrA/hdRqxXWfll2SePffbqV25ep/Kts10bwDcZsV61KTN2PngLbTJirWNbaJMh3zrbtQF8sRHrVVZ+WfbJY5+9+pWb16l862zXBvA1RqxXWfll2SePffbqV25ep/Kts10bwPczYr3Kyi/LPnnss1e/cvM6lW+d7doAfqoR61VWfln2yWOfvfqVm9epfOts1wbwU4xYr7Lyy7JPHvvs1a/cvE7lW2djOdlpFMvJ3jdk2efcFF7bqFMz8LIsz7dgvcrKL8s+eeyzV79y8zqVt2BjBj6NYgZ+31DMCttTeG2jmIE7lrfZQio7H7yFvPqVm9epfMzAW1LMwPNQzArbU3hto6EzcBHZUUTWiMg6EblWRN5cP/8IEblcRG6ov26dmkxZlistWK+y8suyTx777NWv3LxO5S3YuZxCuRs4RlX/BNgV+FsReSpwLPA1VX0S8LX651SdaMR6lZVfln3y2GevfuXmdSrfOjt0AFfVDaq6tv7+58A6YAdgL+Dc+tfOBV7ZJIEBHWLEepWVX5Z98thnr37l5nUq3zo70puYIvJ44BnAt4FtVXUDVIM88KgmCQzoUiPWq6z8suyTxz579Ss3r1P51tk5v4kpIlsBJXCCqn5WRDap6sK+1zeq6mbnwUVkGbAMYPHixeuWLl16JrAQ2BK4keq0zEXAkcAPgaIoioPLsjyvKIoDyrJcTXXH5uOp7hu3N9XdK3aiWkN3E9VKXpPbPBU4pSiKI8qyPL8oiv37vq4ETly/dtGds9W6eMlPHwUsL4ri6MFtDHvDZfGSnz57oKYVwFmTNa1fu2j/WdjXDNS0hmqNhGlrAi4Hdqb69+sQqp1gCbCh3uT2wFpgD+Cc/ppq9oX1tk4H3gocA1wA7A6sx7hPM9S0D/Dh6Woa2Mbp69cuesOQXr25SZ9qdi8HfVoBrCmK4nkN+rQGeC9w4Fz6tH7tovcO8esD4+jTNDXdCfx+lppm7FP99cvAAaP2qWb/rSiKvxxHn4qiuHk6b+Y0gIvIA4AvAF9R1ffXz10P7KaqG0Rke+AbqvqUoRubRWVZvqgoisvGzd5XrkJpy6+usKPyXbkywotfKex9wetU3oKdy1UoC4CzgXWTg3etS4CD6u8PAi4eNXgoFAqFmuv+c/id51L9S/EDEbm6fm45cBKgInIo8BOgNw/5bG/EutDmM5VFrF97HdDoWlkrr1P75LHPXv3KzetUvnV26ACuqt8EZhocljYJOovWGrE5ysrr1D557LNXv3LzOpVvne3UR+mp3hywYHOUldepffLYZ69+5eZ1Kt8627UB/BwjNkdZeZ3aJ4999upXbl6n8q2zXRvAlxuxOcrK69Q+eeyzV79y8zqVb52NxaymUVcvI4yFsEZTVy5ty0HhtY06NQPPbelLS3lbNnO+eAt59Ss3r1N5C7ZTA3hRFLN++m1cbI6y8jq1Tx777NWv3LxO5S3YTg3guc0WLOVtpjFfvIW8+pWb16l8zMAzmy1YyttMY754C3n1KzevU/mYgVeLwLTO5igrr1P75LHPXv3KzetU3oLt1ABOtYKXBZujrLxO7ZPHPnv1KzevU/nW2a4N4McYsTnKyuvUPnnss1e/cvM6lW+d7doAfoERm6OsvE7tk8c+e/UrN69T+dbZrg3guxuxOcrK69Q+eeyzV79y8zqVb53t2gC+3ojNUVZep/bJY5+9+pWb16l862zXBvCFRmyOWuiQnQ/eQguNWOvYFlpoyLfOdm0A39KIzVFWXqf2yWOfvfqVm9epfOts1wbwG43YHGXldWqfPPbZq1+5eZ3Kt852bQDf1YjNUVZep/bJY5+9+pWb16l862zXBvCLjNgcZeV1ap889tmrX7l5ncq3znZtAD/SiM1RVl6n9sljn736lZvXqXzrbNcG8BVGbI6y8jq1Tx777NWv3LxO5VtnuzaAn2XE5igrr1P75LHPXv3KzetUvnW2UwN4URQHW7A5ysrr1D557LNXv3LzOpW3YDs1gJdleZ4Fm6OsvE7tk8c+e/UrN69TeQu2UwN4URQHWLA5ysrr1D557LNXv3LzOpW3YDs1gJdludqCzVFWXqf2yWOfvfqVm9epvAXbqQEcOMyIzVFWXqf2yWOfvfqVm9epfOvs0AFcRD4uIneKyDV9zx0nIreKyNX146VNgk+j443YHGXldWqfPPbZq1+5eZ3Kt87efw6/sxo4DfjEwPMrVfV9TYLOolVGbI6y8jq1Tx777NWv3LxO5Vtnh87AVfUK4GdNNt5AexuxOcrK69Q+eeyzV79y8zqVb52dywx8Jr1RRA4Evgsco6obE7Y1qSuN2Bxl5XVqnzz22atfuXmdyrfONh3AT6c6ZzNRfz0VeP10vygiy4BlAIsXL163dOnSM6kWL9+SagnFXakWcjkS+H5ZlkcWRXFwWZbnFUVxQP3u7GF1nFVUf6muBHYC7gI2AYuBLcuy3KPO5ZSiKI4oy/L8oij27/u6EjgRFs1aXFmWi4DlRVEcPbiNYcaUZbnLQE0rgLMma5otdlmW+w7UtAbYb7KmIezbgEuBJcCG+untgbXAHsA5/TUBny/L8k11badT3RX7GKp78+1OdYeQhZj2iUOmqWmvsizvmq6mgW2cPoc+v4kGfarZPZmhT4M11V6/dpaaxtWnFcDJwG4N+rQG+D9lWb5+bn0a6tfKcfRpmppuLsty11lqmrFP9fH9rrIsDx61TzV7KvC8cfSpKIqbp/NmwcTExKzmAYjI44EvqOrTRnltVJVluWdRFJeMmz1j5XWzFn340U9dMA52GD9OdlBteT2f7Ki8ZZ/75cWvFPa+4HUqb8E2uoxQRLbv+3Fv4JqZfndEbTJic9Qmh+x88BbaZMRax7bQJkO+dXYulxF+CvgW8BQRuUVEDgVOFpEfiMj3qf49OLpJ8Gm02IjNUVZep/bJY5+9+pWb16l86+zQc+Cq+tppnj67SbA5aI0Rm6OsvE7tk8c+e/UrN69T+dbZrn0Scz8jNkdZeZ3aJ4999upXbl6n8q2zXRvATzVic5SV16l98thnr37l5nUq3zrbtQH8FCM2R1l5ndonj3326lduXqfyrbOdGsCLojjCgs1RVl6n9sljn736lZvXqbwF26kBvP7gQutsjrLyOrVPHvvs1a/cvE7lLdhODeBz+aTjONgcZeV1ap889tmrX7l5ncpbsJ0awHObLVjK20xjvngLefUrN69T+ZiBZzZbsJS3mcZ88Rby6lduXqfyMQOvFsdpnc1RVl6n9sljn736lYPXZ6y8bmK2xzhjzwfbqQGcamUzCzZHWXmd2iePffbqV25eW8ZuxHZtAD/EiM1RVl6n9sljn736lZvXlrEbsV0bwC81YnOUldepffLYZ69+5ea1ZexGbNcG8CVGbI6y8jq1Tx777NWv3Ly2jN2I7doAvmH4r4yFzVFWXqf2yWOfvfqVm9eWsRuxXRvAQ6FQKDRHdW0A3374r4yFzVFWXqf2yWOfvfqVm9eWsRuxKXelH4fWGrE5ysrr1D557LMLvza/7nkR69det3ryp1Hvu2oky/2j9T53bQa+hxGbo6y8Tu2Txz6HX+3Jst7W+9y1AfwcIzZHWXmd2iePfQ6/2pNlva33uWsD+HIjNkdZeZ3aJ499Dr/ak2W9rfe5UwN4URSN726fwuYoK69T++Sxz+FXe7Ks16LPnRrAc1v60lLels2cL95Cbfo1XwszeZXl/hHLyWa29KWlvC2bOV+8hWK/bk+WfsVysjEDb00xA29PsV+3p5iBGypmKu0pZuDtKfbr9hQzcEOVZXm6BZujrLxO7ZPHPsd+3Z4s/bLoc6cGcOCtRmyOsvI6tU8e+xz7dXuy9Kv1PndtAD/GiM1RVl6n9sljn2O/bk+WfrXe56FroYjIx4GXA3eq6tPq5x4BXAg8HrgJEFXd2CSBAV1gxOYoK69T++Sxz7FftydLv1rv81xm4KuBlww8dyzwNVV9EvC1+uf50O5GbI6y8jq1Tx77HPt1e7L0q/U+Dx3AVfUK4GcDT+8FnFt/fy7wyibBp9F6IzZHWXmd2iePfY79uj1Z+tV6n5suJ7utqm4AUNUNIvKomX5RRJYBywAWL168bunSpWcCC4EtgRuBXYGLgCOBb5dlubooioPLsjyvKIoDyrJcDRwGHA+sAvYGrgR2Au4CNgGLgQVlWe4OnAqcUhTFEWVZnl8Uxf59X1cCJ8KiWYsry3IRsLwoiqMHtzHMmLIsdxmoaQVw1mRNs8Uuy3LfgZrWAPtN1jSEfRvVffWWcO/dPbanWqZyD6rFcv5QE6B9tZ1O9SbKMVT/yu1OtUMtxLRPHDJNTS8ty3LjdDUNbOP0OfT5TTToU83uyQx9Gqyp9nq2muaxT0PzXs2MfRrKztKnoezKcfRpmn3vhrIsd2b6fW+zPs0auIp9EHPoUz02/COwW4PjaQXwLmDpTMdTURQ3T5ffgomJ4Z+wFZHHA1/oOwe+SVUX9r2+UVW3HrqhISrLct+iKC4cNzvsY8WzrXucwg7jx8kOqi2v55Mdlbfsc7/a9Gtc+9cw3qvXXvs8qaZXodwhItsD1F/vbLidQd1oxOYoK69T++Sxz7FftydLv1rvc9MB/BLgoPr7g4CLG25nULsasTnKyuvUPnnsc+zX7cnSr9b7PJfLCD8F7AY8UkRuoTpXcxKgInIo8BOg1yT4NLrIiM1RVl6n9sljn2O/bk+WfrXe56EDuKq+doaXljYJOERHAn9vwOYoK69T++Sxz7FftydLv1rvc9c+ibnCiM1RVl6n9sljn2O/bk+WfrXe564N4GcZsTnKyuvUPnnsc+zX7cnSr9b73KkBvCiKgy3YHGXldWqfPPY59uv2ZOmXRZ87NYBXH6Bon81RVl6n9sljn2O/bk+Wfln0uVMDeFEUB1iwOcrK69Q+eexz7NftydIviz53agCvPz7aOpujrLxO7ZPHPsd+3Z4s/bLoc6cGcKrP/luwOcrK69Q+eexz7NftydKv1vvctQH8eCM2R1l5ndonj32O/bo9WfrVep+7NoCvMmJzlJXXqX3y2OfYr9uTpV+t97lrA/jeRmyOsvI6tU8e+xz7dXuy9Kv1PndtAL/SiM1RVl6n9sljn2O/bk+WfrXe564N4DsZsTnKyuvUPnnsc+zX7cnSr9b73LUB/C4jNkdZeZ3aJ499jv26PVn61XqfuzaAbzJic9Qmh+x88BbaZMTmqE1OYzdiuzaALzZic5SV16l98tjn2K/bk6Vfrfe5awP4GiM2R1l5ndonj32O/bo9WfrVep+7NoDvZ8TmKCuvU/vksc+xX7cnS79a73PXBvBTjdgcZeV1ap889jn26/Zk6Vfrfe7aAH6KEZujrLxO7ZPHPsd+3Z4s/Wq9z0PvidmmiqI4woLNUVZep/bJY59jvx6vzlh53cS9Py1i/drr3jD50+FHP3VBW3lY9LlTM/CyLM+3YHOUldepffLY59iv85BFnzs1gBdFsb8Fm6OsvE7tk8c+x36dhyz63KkBPGYq7Slm4O0p9us8FDPwmKm0ppiBt6fYr/NQzMDLcqUFm6OsvE7tk8c+x36dhyz63KkBHDjRiM1RVl6n9sljn2O/zkOt97lrA/ghRmyOsvI6tU8e+xz7dR5qvc9J14GLyE3Az4HfA3er6l+kbA+41IjNUVZep/bJY59jv85Drfd5Pmbgu6vqzvMweAMsMWJzlJXXqX3y2OfYr/NQ633u2imUDUZsjrLyOrVPHvsc+3Uear3PqQP4BHCZiHxPRJYlbisUCoVCIyh1LZTnquptIvIo4HIRWa+qV/T/Qj2wLwNYvHjxuqVLl54JLAS2BG4EdgUuAo4EfliW5eqiKA4uy/K8oigOKMtyNXAYcDywiuruzVdS3UPuLqo7WSwGFpZl+RyqVb1OKYriiLIszy+KYv++ryuBE2HRrEWVZbkIWF4UxdGD2xhmSFmWuwzUtAI4a7Km2WKXZbnvQE1rqJaZPBU4ZQj7NqrzaEu496/59sBaYA/gnP6agMv7ajsdeCtwDHABsDuwHvM+ccg0Ne1TluWG6Woa2Mbpc+jzm2jQp5rdkxn6NFhT7fVsNc1jn4bmvZoZ+zSUnaVPQ9mV4+hTURQHDGFn7dOsgSv+IObQp3psOA64rMHxtKJ+XDbT8VQUxc3T5bdgYmJiuudHlogcB/xCVd/XdBtlWf5ZURQ/GDc7dfGbzTXbAjgp7DB+nOyg2vJ6PtlRecs+96tNv8a1fw3j74vH1Fz4flkcF41PoYjIQ0TkoZPfAy8Crmm6vVp7GLE5ysrr1D557HPs13mo9T6nnELZFrhIRCa3c4Gqfjlhe1D9W2LB5igrr1P75LHPsV/nodb73HgAV9UfAU9vys+g5cDRBmyOsvI6tU8e+xz7dR5qvc+duoywKIrGO2oKm6OsvE7tk8c+x36dhyz63KkBPJbdbE+xnGx7iv06D8VysrHsZmuK5WTbU+zXeSiWk42ZSmuKGXh7iv06D1n0uWs3NY6ZSkuKGXh7GjXnaW7S+7rJn9q8SW9oNMUMvPoEU+tsjrLyOrVPHvvsMefQ6LI4Ljo1gFN9/NSCzVFWXqf2yWOfPeYcGl2tHxddG8CPMWJzlJXXqX3y2GePOYdGV+vHRdcG8AuM2Bxl5XVqnzz22WPOodHV+nHRqTcxqVbtusGAzVFWXqf2yWOfPeYcGl1z7vPmi2gtYv3a6/7w01zfrO7aDHy9EZujrLxO7ZPHPnvMOTS6Wu9z1wbwhUZsjlrokJ0P3kILrRMItaKFbQfs2imULY3YHGXldWqfPPbZY86hIZqv0yAp6toM/EYjNkdZeZ3aJ4999phzyIG6NgPfFfiOAZujrLxO7VPn+9yFmVkoD3VtBn6REZujrLxO7VP0ORSq1bUB/EgjNkdZeZ3ap+hzKFSrawP4CiM2R1l5ndqn6HMoVKtrA/hZRmyOsvI6tU/R51CoVqcG8KIoDrZgc5SV16l9ij6HQveqUwN4WZbnWbA5ysrr1D5Fn0Ohe9WpAbwoigMs2Bxl5XVqn6LPodC96tR14GVZrm76L3IKm6NG8Wvz65qnapTrmlP7FH0Ohe5Vp2bgwGFGbI6y8is1bvQ5FKrVtQH8eCM2R1n5lRo3+hwK1erUKRRglRF7n9cMH+8+dvKncX68e5qb9KbEjT6HQrW6NoDvDXzIgA11VLOtKxJrioRyV9cG8Cvn+oszHNgfnPwpDu5QKHRfV9IALiIvAT4IbAGcpaonJeazEx1faS4UCoW6osYDuIhsAXwEeCFwC3CViFyiqtfNTt6rGWbRn4aYQYdCodAwpVyFsgvwn6r6I1X9LfBpYK/5SSsUCoVCQzUxMdHo0ev19un1emf1/XxAr9c7bZrfW9br9b5bP5YN2easrwfbjdhRsw/Wa97h19wfKTPw6U5xbPaJPVX9mKr+Rf342JBtLkvIJzfWMnbU7IO1jO2RtYzdiE0ZwG8Bduz7+THAbQnbC4VCodAISrkK5SrgSSKyE3Ar8Bpgv3nJKhQKhUJD1XgGrqp3A28EvgKsq57SaxPzGXaKJdhuxI6afbCWsT2ylrEbsQsmJmZdaC4UCoVCHVXXFrMKhUKh0BwVA3goFAo5VQzgoVAo5FQmi1mJyP2BQ6lWEHw01fXjtwEXA2er6u+CtY8dNftgveYdfo2e96CsViM8D9gEHEd1PTlU15EfBJwP7BtsJ2JHzT5Yr3mHX6PnPVUpHztN+Njo9bO89sNguxE7avbBes07/Bo978GH1Qx8o4j0gM+o6j0AInI/oAdsDLYzsaNmH6zXvMOv0fOeIqsB/DXAe4FVIrKRal2VhwNr6teC7UbsqNkH6zXv8Gv0vKfI/IM8IrINsEBV/zvY7saOmn2wlrE9spaxU/MGwwFcRB4OvATYgXvfif2Kqm4Ktjuxo2YfrNe8w6/R8+6XyXXgInIgsBbYDXgw8BBgd+B79WvBdiB21OyD9Zp3+DV63oOyOgf+DuCZg39xRGRr4NvAJ4LtROyo2QfrNe/wa/S8p8jqk5gLmObmD8A9TH+jiJxZy9hRsw/WMrZH1jJ2at5TZDUDPwFYKyKXATfXzz2W6gbJxwfbmdhRsw/Wa97h1+h5T5Hlm5hbAy+mOpG/gOpTSV9R1Y3Bdid21OyD9Zp3+DV63v3qwmWEjwAmmiSfG2sZO2r2wVrG9shaxk7NG4wGcBF5LHAy8Hzg/1H9FXoY8HXgWFW9KVj72FGzD9Zr3uHX6HkPyupNzAuBi4DtVfVJqvpEYHvgc8Cng+1M7KjZB+s17/Br9LynatTFU+bj0ev1bmjyWo6s17yj5vCrq6znvAcfVlehfE9EVgHncu87sTtSLan478F2JnbU7IP1mnf4NXreU2Q1gB9Itaj5u5n6TuwlwNnBdiZ21OyD9Zp3+DV63lNkfhVKKBQKhZrJ6k3MzSQiXw92/nkReeTAz/uLyIdEZJmILBgXm5LzOPjcWMvYHtlR+C4dU1aXEX5/MA/gycD1AKr658HOW+y1qrqk/v6dwPOAC4CXA7eo6tFjYi1rzor1mrdjv0yOqelkdQ78JuB/gfcAd1GZ96/AK4Kdd77/r/qrgOep6i9F5AKqVdHGxabknMrnxnrN24pN5a2Oqc016mUr8/Xo9Xp793q9K3q93p71zz8Kdv75Xq+3vtfrPaPX6z2z1+v9x8BrV4+Ltaw5R9Zr3h79sjymBh9m58BV9SJgD2A3EbkEeGCwY+E3AO8H3gf8TES2B5DqbiB3j5G1rDk71mveTv0yO6Y206gj/jgevV7v6b1e7w3BtsPX29ii1+s9uC3WsubcWK95e/WrbxutHlMTExO2A3iv13vANM89MthuxY6afbBe8w6/Rs978mHyJqaI7A6cBzxIRP4dWNa3iMtlwJJg7WNHzT5Yr3mHX6PnPSirc+AnAy9W1UXAx4DLRWTX+rVh10LmxnrNO2oOv7rKes57iqwG8Aeq6rUAqvovwCuBc0Vkb6a/3VDOrNe8o+bwq6us57ynyGoA/52IbDf5Q13QUuBdwJOC7UzsqNkH6zXv8Gv0vKfIagA/Fti2/wlVvQXYDTgp2M7Ejpp9sJaxPbKWsVPznqJYzCoUCoWcyuoqlIcDf091/mdR/fSdwMXASaq6KVj72FGzD9Zr3uHX6HkPyuoUigIbgd1UdRtV3QbYvX7un4PtTOyo2QfrNe/wa/S8p2rUC8fn49Hr9a5v8lqOrNe8o+bwq6us57wHH1arEf5YRN4GnKuqdwCIyLbAwdx7m6Fg7WNHzT5Yr3mHX6PnPUVWA/i+VO/GliLyqPq5O6huKyTBdiZ21OyD9Zp3+DV63lMUV6GEQqGQU3XmlmqTEpGR1gLImbWMHTX7YC1je2QtYzdhOzeAA0cE6yJ21OyDtYztkbWMPTIbp1BCoVDIqazexARARP4C2JHqThQ3qOr6NtgZtre46Tbmyqbm7LHm+WYtY7fRZ8t9JDfWc96TsvokZgGcCmwCngn8X2BrEfkdcICqzng5TQo7RJcBjx0Hm5qzx5rHyFrGHlufLfeR3FjPeQ/Kagb+AeBFqvpTEdkJeL+qPldEXgicDbxoHKyIfGiGlxYAC2dLOIVNyTmVt6o50S+veX8Ag/3aOLZH1nPeU2T1JuYWqvrT+vufAI8DUNXLgR3GyB4CXAN8b+DxXeC3Y2RTck7lrWpOYb3mbbVfW8b2yHrOe4qsZuDfFZGzga8BewHfABCRBwNbjJG9CrhGVf9t8AUROW6MbErOqbxVzSmsZWyrPlvuI7mxnvOeIqsZ+OFUs5q/BL4KvLV+fgJ48RjZfYCrp3tBVXcaI5uScypvVXMKaxnbqs+W+0hurOe8pyguIwyFQiGnMr2McDqJyKWqusc4WBF5GNVavI8BLlXVC/peW6WqR46DTck5lbeqOdWvxNjbUd2i6h7gH4CjgFcD64A3q+qGcbBD6hnbft3V2F09llP5Lo0jVpcRzvSR0QXAzuNigXOAG4DPAK8XkVcD+6nqb4BdZyUT2MScXdacyKbyq4EvAg8B1gCfBF5Gdc7xo/XXeWcN92uz2E6P5VTe8riYIqsZ+FVASdWoQS0cI/sEVX11/f3nROQdwNdFZM8hXCqbknMqb1VzCpvKb6uqHwYQkSNV9b318x8WkUPHyFrt15axPR7LqbzlcTFFVgP4OuBwVb1h8AURGXYhewr7IBG5n6reA6CqJ4jILcAVwFZjZFNyTuWtak5hU/n+N+c/Mctr881a7deWsT0ey6m85XExRVZXoRw3S+yjxsh+Hnh+/xOqei5wDMOv8U1hj6N5zqm8Vc0pbCp/sYhsVTPvnHxSRJ4I/HCM7HHY7NeWsa1Yy/3L8riYorgKJRQKhZzKfDnZwTcyZnljI3vWMnbU7IO1jO2RtYydmjd0YABn8zVwR1kTNzfWMnbU7IO1jO2RtYydmnecQgmFQiGvMvsgj4gsAHahWsBlArgN+I6qDv2LkhvrNe+oOfzqKus5736ZzMBF5EXAKqoL2m+tn34M8ETgSFW9LFj72FGzD9Zr3uHX6HkPymoG/kHgBap6U/+TUq2P+yXgT4LtROyo2QfrNe/wa/S8p8jqTcz7A7dM8/ytwAOC7UzsqNkHaxnbI2sZOzXvzTZmoY8DV4nIp4HJT1ztCLyG6q4UwXYjdtTsg/Wad/g1et5TZHYVioj8CdXCQDtQrYVwC3CJql4XbHdiJ7JPBfZswqbyHmueB7+yqjnHY2pQcRlhKBQKOVUXPsgzRSJyabDdjz2MFZGHicg/ich5IvLagddWzWH7Sfws2+1kzeOqt+azqvm+ekxNp6zWA/fIWsZOzHtw3eN9SFuvec6805qT/Mqt5kyPqc2U23rgHlnL2F7Xa/ZYc6pfudWc4zG1mXJbD9wjaxnb63rNHmtO9Su3mnM8pjZTbuuBe2QtY6ewlus1H4e/mlP9Oo68aj6O/I6pzRRXoYRCoZBTmV+FMnhSf5aT/NmzlrGjZh+sZWyPrGXs1LyhAwM4PtfijbWLo+auspaxPbKWsWM98FAoFMpVsR64A9Zr3lFz+NVV1nPe/Yr1wDvOes07ag6/usp6zntQsR5491mveUfN7bFe8w6/Rs97imI98O6zlrGjZh+sZWyPrGXsWA88M9Zr3lFze6zXvMOv0fOeolgP3AHrNe+oOfzqKus5737FZYShUCjkVF34IM8UiaO1eK1Zy9hRsw/WMrZH1jJ2EzbWA+84axk7avbBWsb2yFrGTs17ULEeePdZy9hRsw/WMrZH1jJ2rAeeGWsZO2r2wVrG9shaxo71wDNjLWNbsZaxPbKWsT2ylrFT2M0UV6GEQqGQU3XuKpRQKBQKzU0xgIdCoZBTxQAeCoVCTmW5HvjDgEWq+l8Dz/+5qn5/HKyI7Alcpqq/bpBvY7bmG9ebwlvWPMt2X6iql4+TF5G/Bu5Q1etF5K+AXYF1qvrFOWy/ESsijwXuVNVfS7Xm88HAEuA64ExVvXscbN82tgNQ1dtFZBHwPOB6Vb12XKxlzSn1pvJW7KBMZuAiIsB64DMicq2IPKvv5dXjYoELgVtE5DwReamIbDFC2o3ZxJxd1jxEIy/aMwovIh8ATgLOE5HjgZOBLYGjReSUcbFUy4FOHlMnAS8Dvg08C/jYGFlE5HDgW8CVInIE8AXg5cBnReTQcbGJeTdmE3M28ys170FZzcCXA89U1Q0isgvVwbJcVT/L9Be4zxe7Hng+sA9wDHCOiFwEfEpVyzGyKTmn8iY1i8glM7y0ANhmSNxU/oXA06gG3luBHVT1VyJyEvDvwFvHxN5PVX9Vf/8C4Fmqeg9wvoj8x5CcU1iANwJ/Wuf9Y+CJ9Qxva2ANs//RS2Gtak7JOZW3YjeT1TnwLVR1A4CqfgfYHXiHiLyJ6hZD42InVHWjqp6pqkuBp1P9u3bSHC6iT2FTck7lrWp+HnAGcOo0j18MYVP5Ca1uT3XP5M/113sYvs+nsDeLyPPr72+iWiYUERn6ByuRBfidqv5KVf8H+C9VvR1AVTcyfB9JYa1qTsk5lbdiN5PVAP5zEXnC5A/14LQb1RKLfzpGdspsVVVvV9UPqepzgL8aI5uScypvVfOVwK9UtRx4fAO4fgibyn9RRP4V+FfgLEBF5B3ApcAVY2QPA1aIyBXAA4GrReTrwFeBt4yRBbhHRCZvCPCyySdF5I8YfpynsFY1p+Scyluxm8nqFMoRDCSrqj8XkZcAMkb26JleUNUfj5E9gs0Hw7nmnMqb1Kyqe8zy2l8PiZvEq+rbReQ5VLPpK+s/fntTDcj/Mkb2ZmB3qdZ7fjLV+xO3AFfVpwbGwtZ6Vd+2+u/4sg3V6a+xsIY1v4p6xtqg3lTexOvpFJ/EzEgi8gjq0yJtsqHQfVXWx5TVXel3BE6huiPFpcApqvq7+rXPqeorx8EOyekHqvpnnti58FJdqnUysBTYRDWTfxjwdeBYHbi56jyyi4GVVOeO3wSsAF4J/BA4SFXXDamrMW+1f1nu13FMzQ87F97qmJpOlvfE/AzVec5DgVJEXlGf2H/cuFgRedUMLy0AtusiOw/8hcAHgNep6u/r7W0B9IBPU13jPA72Y1SDwlZUO+fbgUOoLpk6jWoHnk0pvMn+ZciaxY5jqtVjajNZDeCLVPWj9fdHicj+wBVSfXBk2L8EKeyFwCdn+L0/6iibyj9SVS/sf6LecT4t1XXO42IfqqqfBxCR41X10/XznxeRdw9hU3mr/cuKtYwdxxStHVObyWoAf4CI/JHWn/BT1fNF5HbgK8BDxsh+H3ifql4z+IKIvKCjbCr/PRFZBZzL1LtgH0R1XfO42P4P/bx/4LUHDmFTeav9y4q1jB3HVKU2jqnNZHUZ4VnAs/ufUNWvUv0bsZmh88j+HfC/M7y2d0fZVP5A4AfAu6kOyMvq768BDhgj+xER2QpAVVdNPikiT6S6TGyYUnir/cuKtYz9d8Qx1dYxtZniKpRQKBRyqs6sRigia4Ptfuyo2QdrGdsjaxk7he3MAM7c1gQJ1j521OyDtYztkbWM3Zjt0gA+dJnPYDsRO2r2wVrG9shaxm7OTkxMdOLR6/UeGWz3Y6fmHY94xGP+HlafxNwDWEW1XOdRwPlU114+iOpTdl8L1j52Ivsz4LPAp4Cva7XC35yVwufGes07/Bo970FZnUL5J+ClVGsrfxU4VFWfQLUW87BF83Njveb9U+Bq4B+pbgrxQREZ5VNmKXxurNe8w6/R854iqwH8HlVdp6rfoloy9EqAen2LocsxZsZ6zfuXqnqaqj4XeA7VLH6ViPxIRE4cwqbyubFe8w6/Rs97iqw+iblJqlsLPQzYKCJHA0p1V45hi/XnxnrN+w/vrKvqT6gW8DlZRJ4CvGYIm8rnxnrNO/waPe8pshrADwLeSbUOwYuA11J9KunHwN8E25nYKeya6Z5U1eupPnk2TCl8bqxlbI+sZezUvKcoPokZCoVCTmU1A0dEXky1vvMOVDO824DPqepXgu1O7DGwF6vql4exqXxurNe8w6/R8+6X1WWEH6C6hdInqG6hBPAYqoVeblDVNwdrHztq9sF6zTv8Gj3vQVnNwF+qqk8efFJELqS648psReTGes07am6P9Zp3+DV63lNkdRnhr0Vkl2mefxbw62A7Eztq9sFaxvbIWsZOzXuKrGbgBwOni8hDufffiB2p1uc9ONjOxLZiveZtxXrN24r1nPcUmV6FIiLbUZ3IXwDcoqq3B9u92FGzD9Zr3uHX6Hn/QdaLsUw+er3eccF2P3bU7IP1mnf4NdqjS8vJ7hmsi9hRsw/WMrZH1jJ2Y7ZLA7i7xdQNWcvYUbMP1jK2R9Yy9n3ihg7PDNZF7KjZB2sZ2yNrGbsxa/VBnkcAb6T6BNLZwHKqlbnWASeq6sZg7WNHzT5Yr3mHX6PnPSirGfj5wEOo/vKsAbYD3gvcBawOtjOxo2YfrNe8w6/R856qlHdtE951vbr+uqDX69063WvB2seOmn2wXvMOv0bPe/BhNQO/n4hsTXUB+1Yi8ngAEdkGeGCwnYkdNftgveYdfo2e9xRZfRLzn4D19fevB84SkQngqQxfEzc31mveUXP41VXWc95TZPZJTBHZAligqneLyP2BnYFbVXVDsN2JHTX7YL3mHX6NnvcUjXrOZdyPXq+3ONjux46afbBe8w6/5vbo0nXgk7osWBexo2YfrGVsj6xl7JFZk3PgIvKhGV5aACwMthuxo2YfrGVsj6xl7NS8B2X1JuYhwDHAb6Z57bXBdiZ21OyDtYztkbWMnZr3FFkN4FcB16jqvw2+ICLHBduZ2FGzD9YytkfWMnZq3lNkNYDvwwx3n1DVnYLtTOyo2QdrGdsjaxk7Ne8pMr2hQygUCoWay+pNzIcDfw+8ElhUP30ncDFwkqpuCtY+dtTsg/Wad/g1et6DsrqMUIGNwG6quo2qbgPsXj/3z8F2JnbU7IP1mnf4NXreU5VywXvCBevXN3ktR9Zr3lFz+NVV1nPegw+rNzF/LCJvA85V1TsARGRbqrsy3xxsZ2JHzT5Yr3mHX6PnPUVWA/i+wLFAKSKPqp+7A7gEkGA7Eztq9sF6zTv8Gj3vKYqrUEKhUMipzNZCEZHFIrJURB4y8PxLgu1O7KjZB+s17/Br9Lz7ZTKAi8ibqC6bOQq4VkT26nv5xGC7ETtq9sF6zTv8Gj3vQVnNwP8GeKaqvhLYDVghIm+uX1sQbGdiR80+WK95h1+j5z1FVgP4Fqr6CwBVvYmqkD1E5P0MLyI31mveUXP41VXWc95TZDWA3y4iO0/+UBf0cuCRwJ8F25nYUbMP1mve4dfoeU+R1QB+IHB7/xOqereqHgj8dbCdiR01+2C95h1+jZ73FMVlhKFQKORUXbylWigUCoXmoBjAQ6FQyKliAA+1JhG5SUReMM/bfJ6IXD+f22yQwy9E5I9nef1aEdmtxZRCmSjOgYdak4jcBBymql+1zmVcEpHVwC2q+k7rXEL3fcUMPBQKhZwqZuCh1lTPwM8ADgC2Bz4HHKGqvxaRlwPvAR4PXAe8QVW/X3NLgLOBJwJfBu4BblDVd9anJs5X1cf0xTiN6nKtx9W/f1AdYzfgfGAV8BbgF8A7VPWTNftw4MPAHsCvgDOBE1X1HhF5Yp3DzsDvgK+p6r41NwE8CXg+8BFgAvgtsEZVX9H/n4eIPAh4L/euPKfA21X1N335rQTeDvweWK6q5yTYHroPK2bgobb1OuDFwBOAJwPvrAfojwOHA9tQDfKXiMiDROSBwEXAauARwKeAvYfEEOAlwE7An1OttTyp7ag+NLEDcBDwMRF5Sv3ah4GHA38MFFR/BA6pXzseuAzYGnhM/btTpKofAz4JnKyqW6nqK6bJ7R3ArlR/CJ4O7AL0n27Zrs5hB+BQ4CMisvWQekOZymo98FC+Ok1VbwYQkROoBsJtgDNU9dv175wrIsupBroJqv30Q6o6AXxWRL4zJMaHVPW2OsbnqQbLfq1Q1d9Qrcn8xerX5ESqtZqfoao/B34uIqdS/bdwNtWs+3HAo1X1FuCbDet/HXCUqt5Z5/duqj9YK+rXfwf8o6reDXxJRH4BPAW4smG80H1YMYCH2lb/XUd+DDyaamA8SESO6nvtgfVrE8Ct9eA93TamU/8n3X5Vb2dSG1X1l9Pk8Mg65o8HXtuh/v5tVLPw74jIRuBUVf34kDym06OnidGf3//Ug3d//ls1iBPKQDGAh9rWjn3fPxa4jWpAPkFVTxj8ZREpgB1EZEHfIL4j8F8N428tIg/pG8QfC1wD/Df3zrKv63vtVgBVvZ1qJTlE5K+Ar4rIFar6nwPbH/am0m11jGv7YtzWsJZQ5ooBPNS2/lZEvkA1s1wOXAh8FrhIRL4KfAd4MNUqbVcA36J6M++NInI68DKq88bfSMjh3fUpmmdTLST0LlX9vYgocIKIHEh1vv0twPsARKQHfKs+fbKRaqD+/TTbvoPqHPpM+hTVef+r6m38A9Ubl6HQyIo3MUNt6wKqNwN/VD/eo6rfpZrdnkY1OP4n9RuPqvpb4FVUb+htAvYHvgD8pmH82+sYt1G94fgGVV1fv3YU8Ms6r2/WuU6eJnkW8O36nPQlwJtV9cZptn828FQR2SQin5vm9fcA3wW+D/wAWFs/FwqNrLiMMOROIvJt4KOjXl43eMlhKORdcQol1HnV58GvpzpP/TqqSwO/bJpUKNQBxQAe8qCnUH3gZSuqNy/3UdUNtimFQvaKUyihUCjkVPEmZigUCjlVDOChUCjkVDGAh0KhkFPFAB4KhUJOFQN4KBQKOVUM4KFQKORU/x+VWnlEy4wUVQAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"gdf.set_index('beginposition')['cloudcoverpercentage'].plot(kind='bar')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We also want to avoid merging or reprojecting adjacent tiles if possible, so we prefer tiles that easily cover the entire area of interest:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "ImportError",
|
|
"evalue": "cannot import name 'plot_all' from 'sentinel_helpers' (/home/jovyan/sources/sentinel_helpers.py)",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)",
|
|
"\u001b[0;32m<ipython-input-6-e045195a1555>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0msentinel_helpers\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mplot_all\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m plot_all([\n\u001b[1;32m 4\u001b[0m \u001b[0mgdf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffered\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\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\u001b[0m\n",
|
|
"\u001b[0;31mImportError\u001b[0m: cannot import name 'plot_all' from 'sentinel_helpers' (/home/jovyan/sources/sentinel_helpers.py)"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from sentinel_helpers import plot_all\n",
|
|
"\n",
|
|
"plot_all([\n",
|
|
" gdf, buffered\n",
|
|
"], [\n",
|
|
" { 'facecolor': 'none', 'edgecolor': 'blue', 'alpha': 0.1 },\n",
|
|
" { 'facecolor': 'none', 'edgecolor': 'red' }\n",
|
|
"])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We can subset the result to only take products covering one tile because they all cover the area well.\n",
|
|
"We select one product before, one during and one after the fire:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"gdf['tile'] = gdf['title'].apply(lambda t: t.split('_')[5])\n",
|
|
"gdf = gdf[gdf['tile'] == 'T32UQC']\n",
|
|
"gdf = gdf.sort_values(by='beginposition')\n",
|
|
"\n",
|
|
"before = gdf.iloc[0]\n",
|
|
"during = gdf.loc['ad590142-a9f2-49a8-8be7-2a6c06454514']\n",
|
|
"after = gdf.iloc[-1]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Download process from LTA"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"downloads, initialized, failed = api.download_all([before['uuid'], during['uuid'], after['uuid']])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The dict containing information about succesful donwloads is empty:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"downloads"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The second dict contains information about one product.\n",
|
|
"Notice that the key `'Online'` is `False`: "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"initialized"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The `failed` downloads contains information about two products.\n",
|
|
"The individual dict entries have a similar shape and contain information comparable to the `initialized` product:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"failed"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"len(downloads), len(initialized), len(failed)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"`failed` means that a retrieval process could not yet be initialized.\n",
|
|
"Other instances of failure included an exception that was raised due to an unexpected response of the Copernicus Open Access Hub API with an HTTP response code of `200` - a code that normally indicates that the request was successful.\n",
|
|
"It is unclear why that response was unexpected.\n",
|
|
"\n",
|
|
"Through repeated execution of the cell containing the call to `api.download_all`, all products could be moved from the Long-Term Archive to hot storage and could be downloaded.\n",
|
|
"The first products could be downloaded after one day and the last product after approximately two days.\n",
|
|
"Note that the last product might have been available earlier than two days because the re-execution of this cell was a manual process with intermissions."
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|