{ "cells": [ { "cell_type": "markdown", "id": "0", "metadata": {}, "source": [ "# Working with the ECCC GeoAPI to access weather station data\n", "\n", "Environment and Climate Change Canada (ECCC) hosts a data server compatible with the [GeoAPI](https://www.geoapi.org/) standard. This notebook shows how to send requests for daily climate station data and display the results.\n", "\n", "## Climate stations\n", "\n", "The server holds different [*collections*](https://api.weather.gc.ca/collections?f=html), and requests are made to a particular collection. Here we'll start with the `climate-station` collection, which holds metadata about available stations, but no actual meteorological data. Useful [queryables fields](https://api.weather.gc.ca/collections/climate-stations/queryables) in this collection include `DLY_FIRST_DATE` and `DLY_LAST_DATE`, `ENG_PROV_NAME`, `LATITUDE`, `LONGITUDE` and `ELEVATION` and `STATION_NAME`, among many others.\n", "\n", "### Creating a request to the server for data\n", "\n", "Let's start by showing a map of all available stations locations in New-Brunswick. To do so, we first need to compose a URL request. The request includes the address of the server, the collection, then a query to filter results." ] }, { "cell_type": "code", "execution_count": 1, "id": "1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://api.weather.gc.ca/collections/climate-stations/items?ENG_PROV_NAME=NOVA-SCOTIA\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "\n", "os.environ[\"USE_PYGEOS\"] = \"0\" # force use Shapely with GeoPandas\n", "\n", "import urllib\n", "\n", "import geopandas as gpd\n", "from urlpath import URL\n", "\n", "# Compose the request\n", "host = URL(\"https://api.weather.gc.ca\")\n", "climate_stations = host / \"collections\" / \"climate-stations\" / \"items\"\n", "url = climate_stations.with_query({\"ENG_PROV_NAME\": \"NOVA-SCOTIA\"})\n", "print(url)\n", "\n", "# Send the request to the server\n", "resp = url.get()\n", "resp" ] }, { "cell_type": "markdown", "id": "2", "metadata": {}, "source": [ "The response from the server is a `Response` class instance. What we're interested in is the content of this response, which in this case is a geoJSON file." ] }, { "cell_type": "code", "execution_count": 2, "id": "3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "b'{\"type\": \"FeatureCollection\", \"features\": [{\"type\": \"Feature\", \"properties\": {\"STN_ID\": 6390, \"STATI'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "resp.content[:100]" ] }, { "cell_type": "markdown", "id": "4", "metadata": {}, "source": [ "We'll open the geoJSON using geopandas. We have a few options to do this:\n", "- Load the response' content using `json.load`, then create GeoDataFrame using the `from_features` class method;\n", "- Save the response content to a file on disk, then open using `geopandas.read_file`;\n", "- Save the response in an in-memory file using `StringIO`;\n", "- Call `geopandas.read_file(url)` to let geopandas handle the data download.\n", "\n", "Here we'll use the last option, as it's the simplest. Note that the first method ignores the feature `id`, which seems to create problems with visualization with folium below." ] }, { "cell_type": "code", "execution_count": 3, "id": "5", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ERROR 1: PROJ: proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj failed\n" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idSTN_IDSTATION_NAMEPROV_STATE_TERR_CODEENG_PROV_NAMEFRE_PROV_NAMECOUNTRYLATITUDELONGITUDETIMEZONE...HLY_FIRST_DATEHLY_LAST_DATEDLY_FIRST_DATEDLY_LAST_DATEMLY_FIRST_DATEMLY_LAST_DATEHAS_MONTHLY_SUMMARYHAS_NORMALS_DATAHAS_HOURLY_DATAgeometry
082031656390LOWER MEAGHERS GRANTNSNOVA SCOTIANOUVELLE-ÉCOSSECAN445500000-631400000AST...NaTNaT1967-07-011993-06-301967-01-011993-12-01YNNPOINT (-63.23333 44.91667)
182033966398MALAGASH POINTNSNOVA SCOTIANOUVELLE-ÉCOSSECAN454700000-631700000AST...NaTNaT1989-07-012000-04-301989-01-012000-04-01YNNPOINT (-63.28333 45.78333)
282034006399MALAY FALLSNSNOVA SCOTIANOUVELLE-ÉCOSSECAN445900000-622900000AST...1999-01-19 15:00:002000-08-31 23:00:001950-02-012000-08-311950-01-012000-08-01YNNPOINT (-62.48333 44.98333)
382034226400MARGAREE FORKSNSNOVA SCOTIANOUVELLE-ÉCOSSECAN462200000-610500000AST...NaTNaT1960-10-011975-11-301960-01-011975-12-01YNNPOINT (-61.08333 46.36667)
482034236401MARGAREE FORKSNSNOVA SCOTIANOUVELLE-ÉCOSSECAN462000000-610600000AST...NaTNaT1976-05-012004-03-311976-01-012004-03-01YNNPOINT (-61.10000 46.33333)
\n", "

5 rows × 34 columns

\n", "
" ], "text/plain": [ " id STN_ID STATION_NAME PROV_STATE_TERR_CODE ENG_PROV_NAME \\\n", "0 8203165 6390 LOWER MEAGHERS GRANT NS NOVA SCOTIA \n", "1 8203396 6398 MALAGASH POINT NS NOVA SCOTIA \n", "2 8203400 6399 MALAY FALLS NS NOVA SCOTIA \n", "3 8203422 6400 MARGAREE FORKS NS NOVA SCOTIA \n", "4 8203423 6401 MARGAREE FORKS NS NOVA SCOTIA \n", "\n", " FRE_PROV_NAME COUNTRY LATITUDE LONGITUDE TIMEZONE ... \\\n", "0 NOUVELLE-ÉCOSSE CAN 445500000 -631400000 AST ... \n", "1 NOUVELLE-ÉCOSSE CAN 454700000 -631700000 AST ... \n", "2 NOUVELLE-ÉCOSSE CAN 445900000 -622900000 AST ... \n", "3 NOUVELLE-ÉCOSSE CAN 462200000 -610500000 AST ... \n", "4 NOUVELLE-ÉCOSSE CAN 462000000 -610600000 AST ... \n", "\n", " HLY_FIRST_DATE HLY_LAST_DATE DLY_FIRST_DATE DLY_LAST_DATE \\\n", "0 NaT NaT 1967-07-01 1993-06-30 \n", "1 NaT NaT 1989-07-01 2000-04-30 \n", "2 1999-01-19 15:00:00 2000-08-31 23:00:00 1950-02-01 2000-08-31 \n", "3 NaT NaT 1960-10-01 1975-11-30 \n", "4 NaT NaT 1976-05-01 2004-03-31 \n", "\n", " MLY_FIRST_DATE MLY_LAST_DATE HAS_MONTHLY_SUMMARY HAS_NORMALS_DATA \\\n", "0 1967-01-01 1993-12-01 Y N \n", "1 1989-01-01 2000-04-01 Y N \n", "2 1950-01-01 2000-08-01 Y N \n", "3 1960-01-01 1975-12-01 Y N \n", "4 1976-01-01 2004-03-01 Y N \n", "\n", " HAS_HOURLY_DATA geometry \n", "0 N POINT (-63.23333 44.91667) \n", "1 N POINT (-63.28333 45.78333) \n", "2 N POINT (-62.48333 44.98333) \n", "3 N POINT (-61.08333 46.36667) \n", "4 N POINT (-61.10000 46.33333) \n", "\n", "[5 rows x 34 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "# The first approach would look like this:\n", "# import json\n", "# stations = gpd.GeoDataFrame.from_features(json.loads(resp.content))\n", "\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " stations = gpd.read_file(filename=req, engine=\"pyogrio\")\n", "stations.head()" ] }, { "cell_type": "markdown", "id": "6", "metadata": {}, "source": [ "### Filter stations\n", "\n", "Now let's say we want to filter the stations that were in operations for at least 50 years. What we'll do is create a new column `n_days` and filter on it." ] }, { "cell_type": "code", "execution_count": 4, "id": "7", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idSTN_IDSTATION_NAMEPROV_STATE_TERR_CODEENG_PROV_NAMEFRE_PROV_NAMECOUNTRYLATITUDELONGITUDETIMEZONE...HLY_LAST_DATEDLY_FIRST_DATEDLY_LAST_DATEMLY_FIRST_DATEMLY_LAST_DATEHAS_MONTHLY_SUMMARYHAS_NORMALS_DATAHAS_HOURLY_DATAgeometryn_days
282034006399MALAY FALLSNSNOVA SCOTIANOUVELLE-ÉCOSSECAN445900000-622900000AST...2000-08-31 23:00:001950-02-012000-08-311950-01-012000-08-01YNNPOINT (-62.48333 44.98333)18474
1882050906465SHEARWATER ANSNOVA SCOTIANOUVELLE-ÉCOSSECAN443800000-633000000AST...2023-01-20 08:00:001944-02-012007-12-121944-01-012007-03-01YYYPOINT (-63.50000 44.63333)23325
1982056986485SYDNEYNSNOVA SCOTIANOUVELLE-ÉCOSSECAN460900000-601200000AST...NaT1870-01-011941-03-311870-01-011941-12-01YNNPOINT (-60.20000 46.15000)26021
2382063006506WHITEHEADNSNOVA SCOTIANOUVELLE-ÉCOSSECAN451300000-611100000AST...NaT1883-12-011960-06-301883-01-011960-12-01YNNPOINT (-61.18333 45.21667)27970
2482064406513WOLFVILLENSNOVA SCOTIANOUVELLE-ÉCOSSECAN450600000-642200000AST...NaT1870-09-011949-09-301870-01-011949-12-01YNNPOINT (-64.36667 45.10000)28883
\n", "

5 rows × 35 columns

\n", "
" ], "text/plain": [ " id STN_ID STATION_NAME PROV_STATE_TERR_CODE ENG_PROV_NAME \\\n", "2 8203400 6399 MALAY FALLS NS NOVA SCOTIA \n", "18 8205090 6465 SHEARWATER A NS NOVA SCOTIA \n", "19 8205698 6485 SYDNEY NS NOVA SCOTIA \n", "23 8206300 6506 WHITEHEAD NS NOVA SCOTIA \n", "24 8206440 6513 WOLFVILLE NS NOVA SCOTIA \n", "\n", " FRE_PROV_NAME COUNTRY LATITUDE LONGITUDE TIMEZONE ... \\\n", "2 NOUVELLE-ÉCOSSE CAN 445900000 -622900000 AST ... \n", "18 NOUVELLE-ÉCOSSE CAN 443800000 -633000000 AST ... \n", "19 NOUVELLE-ÉCOSSE CAN 460900000 -601200000 AST ... \n", "23 NOUVELLE-ÉCOSSE CAN 451300000 -611100000 AST ... \n", "24 NOUVELLE-ÉCOSSE CAN 450600000 -642200000 AST ... \n", "\n", " HLY_LAST_DATE DLY_FIRST_DATE DLY_LAST_DATE MLY_FIRST_DATE \\\n", "2 2000-08-31 23:00:00 1950-02-01 2000-08-31 1950-01-01 \n", "18 2023-01-20 08:00:00 1944-02-01 2007-12-12 1944-01-01 \n", "19 NaT 1870-01-01 1941-03-31 1870-01-01 \n", "23 NaT 1883-12-01 1960-06-30 1883-01-01 \n", "24 NaT 1870-09-01 1949-09-30 1870-01-01 \n", "\n", " MLY_LAST_DATE HAS_MONTHLY_SUMMARY HAS_NORMALS_DATA HAS_HOURLY_DATA \\\n", "2 2000-08-01 Y N N \n", "18 2007-03-01 Y Y Y \n", "19 1941-12-01 Y N N \n", "23 1960-12-01 Y N N \n", "24 1949-12-01 Y N N \n", "\n", " geometry n_days \n", "2 POINT (-62.48333 44.98333) 18474 \n", "18 POINT (-63.50000 44.63333) 23325 \n", "19 POINT (-60.20000 46.15000) 26021 \n", "23 POINT (-61.18333 45.21667) 27970 \n", "24 POINT (-64.36667 45.10000) 28883 \n", "\n", "[5 rows x 35 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "import pandas as pd\n", "\n", "# Create a datetime.Timedelta object from the subtraction of two dates.\n", "delta = pd.to_datetime(stations[\"DLY_LAST_DATE\"]) - pd.to_datetime(\n", " stations[\"DLY_FIRST_DATE\"]\n", ")\n", "\n", "# Get the number of days in the time delta\n", "stations[\"n_days\"] = delta.apply(lambda x: x.days)\n", "\n", "# Compute condition\n", "over_50 = stations[\"n_days\"] > 50 * 365.25\n", "\n", "# Index the data frame using the condition\n", "select = stations[over_50]\n", "select.head()" ] }, { "cell_type": "markdown", "id": "8", "metadata": {}, "source": [ "### Map the data\n", "\n", "We can then simply map the locations of station with at least 50 years of data using the `explore` method. This will display an interactive base map and overlay the station locations, where on a station marker will display this station's information.\n", "\n", "On top of this map, we'll add controls to draw a rectangle. To use the drawing tool, click on the square on the left hand side menu, and the click and drag to draw a rectangle over the area of interest. Once that's done, click on the Export button on the right of the map. This will download a file called `data.geojson`" ] }, { "cell_type": "code", "execution_count": 5, "id": "9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from folium.plugins import Draw\n", "\n", "# Add control to draw a rectangle, and an export button.\n", "draw_control = Draw(\n", " draw_options={\n", " \"polyline\": False,\n", " \"poly\": False,\n", " \"circle\": False,\n", " \"polygon\": False,\n", " \"marker\": False,\n", " \"circlemarker\": False,\n", " \"rectangle\": True,\n", " },\n", " export=True,\n", ")\n", "\n", "# The map library Folium chokes on columns including time stamps, so we first select the data to plot.\n", "m = select[[\"geometry\", \"n_days\"]].explore(\"n_days\")\n", "draw_control.add_to(m)\n", "m" ] }, { "cell_type": "markdown", "id": "10", "metadata": {}, "source": [ "### Filter stations using bounding box\n", "\n", "Next, we'll use the bounding box drawn on the map to select a subset of stations. We first open the `data.geojson` file downloaded to disk, create a shapely object and use it filter stations." ] }, { "cell_type": "code", "execution_count": 6, "id": "11", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of stations within subregion: 9\n" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idSTN_IDSTATION_NAMEPROV_STATE_TERR_CODEENG_PROV_NAMEFRE_PROV_NAMECOUNTRYLATITUDELONGITUDETIMEZONE...HLY_LAST_DATEDLY_FIRST_DATEDLY_LAST_DATEMLY_FIRST_DATEMLY_LAST_DATEHAS_MONTHLY_SUMMARYHAS_NORMALS_DATAHAS_HOURLY_DATAgeometryn_days
1982056986485SYDNEYNSNOVA SCOTIANOUVELLE-ÉCOSSECAN460900000-601200000AST...NaT1870-01-011941-03-311870-01-011941-12-01YNNPOINT (-60.20000 46.15000)26021
2382063006506WHITEHEADNSNOVA SCOTIANOUVELLE-ÉCOSSECAN451300000-611100000AST...NaT1883-12-011960-06-301883-01-011960-12-01YNNPOINT (-61.18333 45.21667)27970
4582014106336DEMINGNSNOVA SCOTIANOUVELLE-ÉCOSSECAN451259007-611040090AST...NaT1956-10-012011-12-311956-01-012006-02-01YYNPOINT (-61.17780 45.21639)20179
13482056006481STILLWATERNSNOVA SCOTIANOUVELLE-ÉCOSSECAN451100000-620000000AST...NaT1915-12-011979-10-311915-01-011979-12-01YNNPOINT (-62.00000 45.18333)23345
14682010006329COLLEGEVILLENSNOVA SCOTIANOUVELLE-ÉCOSSECAN452900000-620100000AST...NaT1916-06-012016-09-301916-01-012006-02-01YYNPOINT (-62.01667 45.48333)36646
\n", "

5 rows × 35 columns

\n", "
" ], "text/plain": [ " id STN_ID STATION_NAME PROV_STATE_TERR_CODE ENG_PROV_NAME \\\n", "19 8205698 6485 SYDNEY NS NOVA SCOTIA \n", "23 8206300 6506 WHITEHEAD NS NOVA SCOTIA \n", "45 8201410 6336 DEMING NS NOVA SCOTIA \n", "134 8205600 6481 STILLWATER NS NOVA SCOTIA \n", "146 8201000 6329 COLLEGEVILLE NS NOVA SCOTIA \n", "\n", " FRE_PROV_NAME COUNTRY LATITUDE LONGITUDE TIMEZONE ... \\\n", "19 NOUVELLE-ÉCOSSE CAN 460900000 -601200000 AST ... \n", "23 NOUVELLE-ÉCOSSE CAN 451300000 -611100000 AST ... \n", "45 NOUVELLE-ÉCOSSE CAN 451259007 -611040090 AST ... \n", "134 NOUVELLE-ÉCOSSE CAN 451100000 -620000000 AST ... \n", "146 NOUVELLE-ÉCOSSE CAN 452900000 -620100000 AST ... \n", "\n", " HLY_LAST_DATE DLY_FIRST_DATE DLY_LAST_DATE MLY_FIRST_DATE MLY_LAST_DATE \\\n", "19 NaT 1870-01-01 1941-03-31 1870-01-01 1941-12-01 \n", "23 NaT 1883-12-01 1960-06-30 1883-01-01 1960-12-01 \n", "45 NaT 1956-10-01 2011-12-31 1956-01-01 2006-02-01 \n", "134 NaT 1915-12-01 1979-10-31 1915-01-01 1979-12-01 \n", "146 NaT 1916-06-01 2016-09-30 1916-01-01 2006-02-01 \n", "\n", " HAS_MONTHLY_SUMMARY HAS_NORMALS_DATA HAS_HOURLY_DATA \\\n", "19 Y N N \n", "23 Y N N \n", "45 Y Y N \n", "134 Y N N \n", "146 Y Y N \n", "\n", " geometry n_days \n", "19 POINT (-60.20000 46.15000) 26021 \n", "23 POINT (-61.18333 45.21667) 27970 \n", "45 POINT (-61.17780 45.21639) 20179 \n", "134 POINT (-62.00000 45.18333) 23345 \n", "146 POINT (-62.01667 45.48333) 36646 \n", "\n", "[5 rows x 35 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "# Adjust directory if running this locally.\n", "# rect = gpd.read_file(\"~/Downloads/data.geojson\")\n", "\n", "# Here we're using an existing file so the notebook runs without user interaction.\n", "rect = gpd.read_file(filename=\"./data.geojson\", engine=\"pyogrio\")\n", "\n", "# Filter stations DataFrame using bbox\n", "inbox = select.within(rect.loc[0].geometry)\n", "\n", "print(\"Number of stations within subregion: \", sum(inbox))\n", "sub_select = select[inbox]\n", "sub_select.head()" ] }, { "cell_type": "markdown", "id": "12", "metadata": {}, "source": [ "### Request meteorological data\n", "\n", "Now we'll make a request for actual meteorological data from the stations filtered above. For this, we'll use the\n", "Daily Climate Observations collection (`climate-daily`). Here, we're picking just one station but we could easily loop on each station." ] }, { "cell_type": "code", "execution_count": 7, "id": "13", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Request: https://api.weather.gc.ca/collections/climate-daily/items?CLIMATE_IDENTIFIER=8201410&limit=365\n" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idSTATION_NAMECLIMATE_IDENTIFIERIDLOCAL_DATEPROVINCE_CODELOCAL_YEARLOCAL_MONTHLOCAL_DAYMEAN_TEMPERATURE...SPEED_MAX_GUST_FLAGCOOLING_DEGREE_DAYSCOOLING_DEGREE_DAYS_FLAGHEATING_DEGREE_DAYSHEATING_DEGREE_DAYS_FLAGMIN_REL_HUMIDITYMIN_REL_HUMIDITY_FLAGMAX_REL_HUMIDITYMAX_REL_HUMIDITY_FLAGgeometry
08201410.1970.5.12DEMING82014108201410.1970.5.121970-05-12NS19705125.0...None0.0None13.0NoneNoneNoneNoneNonePOINT (-61.17780 45.21639)
18201410.1970.5.13DEMING82014108201410.1970.5.131970-05-13NS19705135.8...None0.0None12.2NoneNoneNoneNoneNonePOINT (-61.17780 45.21639)
28201410.1970.5.14DEMING82014108201410.1970.5.141970-05-14NS19705146.1...None0.0None11.9NoneNoneNoneNoneNonePOINT (-61.17780 45.21639)
38201410.1970.5.15DEMING82014108201410.1970.5.151970-05-15NS19705157.8...None0.0None10.2NoneNoneNoneNoneNonePOINT (-61.17780 45.21639)
48201410.1970.5.16DEMING82014108201410.1970.5.161970-05-16NS19705163.9...None0.0None14.1NoneNoneNoneNoneNonePOINT (-61.17780 45.21639)
\n", "

5 rows × 36 columns

\n", "
" ], "text/plain": [ " id STATION_NAME CLIMATE_IDENTIFIER ID \\\n", "0 8201410.1970.5.12 DEMING 8201410 8201410.1970.5.12 \n", "1 8201410.1970.5.13 DEMING 8201410 8201410.1970.5.13 \n", "2 8201410.1970.5.14 DEMING 8201410 8201410.1970.5.14 \n", "3 8201410.1970.5.15 DEMING 8201410 8201410.1970.5.15 \n", "4 8201410.1970.5.16 DEMING 8201410 8201410.1970.5.16 \n", "\n", " LOCAL_DATE PROVINCE_CODE LOCAL_YEAR LOCAL_MONTH LOCAL_DAY \\\n", "0 1970-05-12 NS 1970 5 12 \n", "1 1970-05-13 NS 1970 5 13 \n", "2 1970-05-14 NS 1970 5 14 \n", "3 1970-05-15 NS 1970 5 15 \n", "4 1970-05-16 NS 1970 5 16 \n", "\n", " MEAN_TEMPERATURE ... SPEED_MAX_GUST_FLAG COOLING_DEGREE_DAYS \\\n", "0 5.0 ... None 0.0 \n", "1 5.8 ... None 0.0 \n", "2 6.1 ... None 0.0 \n", "3 7.8 ... None 0.0 \n", "4 3.9 ... None 0.0 \n", "\n", " COOLING_DEGREE_DAYS_FLAG HEATING_DEGREE_DAYS HEATING_DEGREE_DAYS_FLAG \\\n", "0 None 13.0 None \n", "1 None 12.2 None \n", "2 None 11.9 None \n", "3 None 10.2 None \n", "4 None 14.1 None \n", "\n", " MIN_REL_HUMIDITY MIN_REL_HUMIDITY_FLAG MAX_REL_HUMIDITY \\\n", "0 None None None \n", "1 None None None \n", "2 None None None \n", "3 None None None \n", "4 None None None \n", "\n", " MAX_REL_HUMIDITY_FLAG geometry \n", "0 None POINT (-61.17780 45.21639) \n", "1 None POINT (-61.17780 45.21639) \n", "2 None POINT (-61.17780 45.21639) \n", "3 None POINT (-61.17780 45.21639) \n", "4 None POINT (-61.17780 45.21639) \n", "\n", "[5 rows x 36 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "coll = host / \"collections\" / \"climate-daily\" / \"items\"\n", "station_id = \"8201410\"\n", "\n", "# Restricting the number of entries returned to keep things fast.\n", "url = str(coll.with_query({\"CLIMATE_IDENTIFIER\": station_id, \"limit\": 365}))\n", "print(\"Request: \", url)\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " data = gpd.read_file(filename=req, engine=\"pyogrio\")\n", "data.head()" ] }, { "cell_type": "markdown", "id": "14", "metadata": {}, "source": [ "We can also send a request for data inside a bounding box at a specific date." ] }, { "cell_type": "code", "execution_count": 8, "id": "15", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bounding box: (-62.186675, 44.78125, -59.123882, 47.53125)\n" ] } ], "source": [ "bbox = rect.iloc[0].geometry.bounds\n", "print(\"Bounding box: \", bbox)\n", "url = str(\n", " coll.with_query(\n", " {\n", " \"bbox\": str(bbox).strip(\"()\"),\n", " \"LOCAL_DATE\": \"2000-01-01 00:00:00\",\n", " \"limit\": 100,\n", " }\n", " )\n", ")\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " snapshot = gpd.read_file(filename=req, engine=\"pyogrio\")" ] }, { "cell_type": "code", "execution_count": 9, "id": "16", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(448.07777777777784, 0.5, 'Mean temperature [°C]')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAR8AAAD7CAYAAABT9ZBtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeJUlEQVR4nO2dd1hUVxOH37t0kCpWRBDsXayJsWvs3aBG7FGJJepnLxFrVOwmYu8mir3XiAVr7F1UEEEBG73D7v3+IGxEQBfYpd43z33C3j07ZxbZ354yZ0YQRVFEQkJCIpuR5bQDEhISBRNJfCQkJHIESXwkJCRyBEl8JCQkcgRJfCQkJHIESXwkJCRyBEl8JCQkcgRJfCQkJHIEbVUbxsbGEh8fr0lfJCQ0jq6uLvr6+mqxldHPhDr7zg+oJD6xsbGUKVOGoKAgTfsjIaFRihcvzsuXL7MsArGxsZSxKUTQO3m2951fUEl84uPjCQoKwt/fHxMTE4054+7uztChQ1PcmzhxItOmTdNYnxIFh/DwcKytrYmPj8+yAMTHxxP0Ts7LWzaYGH999SI8QkGZ2q/U0nd+QeVpF4CJiYnGxGfHjh2phKdDhw7Mnz8fmUxampLInRgVSrq+hlw6QZmKDImPpti+fTv9+vVLca98+fLs2LFDEh6JXI0CEQVfVxZV2hQ0cvST7Rd5hRELmqQSHoCdO3diamqaA15JSKiOIgP/SaQkx0Y+HgEzWLNyO3sW+qZ6rl23xjg4OGS/UxISGSRBVJCgwqAmQZTE53NyZORz+8N61vy+Qyk8HUZYA2BZSg+ZFnwzNIrw+ICccE1CIkMoEJGrcEnTrtRkq/iIoojPyxeMG+nCngUvARi6rAIe2wOo/J0ZcdEKvu1ajOJlDHgSdjA7XZOQyBTJaz6qXBIpyRbxCQoKYvLkydja2mJvV47z7oEAtOhbgq3TnmNaRBfrCkbERCQqR0GB0bezwzUJiSwhF0WVL4mUaFx81q9fj729PWvXrqVDhw5836m+8rmz2wMBgW7/s+Xi7iCa9CpO4ZL6gIiI6sFbEhI5hSIDl0RKNCo+Bw8eZOjQoTg5OeHj48OqVatYvd2Fqe7VlG3iouWsGvEE48I6tPvZWnm/hEFNTbomIaEWVFnvSb4kUqLR3S53d3dq167NmjVrEAQBgFJG33FqQwAl7A2Ytq8GiXEiwUFxFLczREdXBogIyKhhkXr7XUIityEXVQsglIIMU6PRkc/Nmzdp3LixUngAQj/GcOdsMC37FEPPQAsjM22sKxZCR1eAf78d6hQehIG2uSZdk5BQC9K0K/NoVHxiY2MxNjZOce/QoUOAwMAfR6EHaCEi/HvpCtp8V3QMNQoP0KRbEhJqQ4GAXIVLgfB1YwUMjU67EhMT0dbWxt3dHTc3N96+fYu/vz+tW7emWYX/EScfjF/kOWLlYRTSLo51oSZoy6RDdxJ5hwRRIEH8urCo0qagoVHxkcvlLF26lNDQUFq3bk2HDh0wNzdn0KBBAOhpmVLOtIsmXZCQ0CjJIxtV2kmkRGPiExERwfv37wGYNGkSCxYs0FRXEhI5hkIUUKgwqlGlTUFDY+KzZ88e5c8zZ87UVDcSEjmKNPLJPBoRn7i4OKZPnw7A2LFjpeRJEvkWOTLkKuzbSCGzqdGI+Li7uxMYmHSEok+fPproQkIiVyCqOO0SpWlXKtS+1S6KIkuXLgWgbt26ODg44OXlxaZNm9TdlUQmEUUFYtwFFCGjUHzohiJkGGLsSUQxIaddy3Ooss2u6tSsoKH2kc+hQ4e4d+8epUuXxtvbm1u3btGrVy+8vb2pWbNmqjw9UVFRXL58me+//17drkikgSjGI4aOgrhzgBYgh0QZYtw50KkJ5hsRZMZfsSKRjFyUIRdVmHZJEc6pUOvI5+PHjzg7O9OhQwdu375N2bJlqVu3Lt7e3gA4Ojpy+3bK0+qmpqa0bt0ahUKKAc0OxIjFEHf+30fJKxH//u4THiCGTc0Br/IuCgQUyFS4pJHP56h15DN+/Hji4+NZt24dhQsX5ty5cxw/fpyPHz/SsmVLOnXqRO3atSlXrhxNmzYlNjYWuTzpAyDlatY8oiISondBuocc5RB3GlEegKBVMjtdy7PEi1roiFoqtMsGZ/IYahUfHx8fmjdvTokSJQAwNDSkR48eBAUF4erqip+fHzKZjFatWrFr1y6Cg4MBmDpV+rbNFhLuAbFfaSRC3DUw7JYdHuV5FCoenZBGPqlRq/jUq1ePdevWsXLlSooUKUJcXBwPHz7Ezc0NXV1dIiMjgaQcPwkJSYubI0eOZMaMGep0QyJdVN3wTdSoF/kJhYpb7VImw9Sofdrl7+/PmDFjEP/N3GZsbMz//vc/xo0bR3x8PAcOHEAul2NlZUX16tWxs7NTpwsSX0K7CspF5i+hKyXvVxXVF5wl8fkctYpPsWLF2LVrFxs3bgRAT08Pbe2UXTg7O6uzS4kMIGgVRtRvB7HHSVuAtEDHAUG7bHa7lmdJXlD+ejtJfD5HI0GGRkZGmjAroQYEkxmIic8g8dm/d5I/FDKQFUMwW5xTruVJ5KKAXIUAQlXaFDRyRcVSiexDkJmChTvE7EWM2Q3yQJAVRjDoDoa9kp6XUBnVj1dII5/PkcSnACLIDMGoH4KRlKo2qyhEGQoV1nwU0ppPKiTxkZDIAtLIJ/NIkX0SElkgERkJotZXr8Rs+KjFxcVRs2ZNBEHg7t27Gu8vq0jiIyGRBZK32lW5NM3EiRMpWTLvRKZL4iMhkQWSI5xVuTTJiRMnOH36NIsX553dSmnNR0IiC6geZKi57/m3b98yZMgQDh48iKGhocb6UTeS+EhIZAHVF5yT2oSHh6e4r6enh56eXqb7F0WRAQMG4OzsTJ06dfD19c20rU/p1i3jZ/vWrFlD0aJFVW4vTbskJLJAcgJ5VS4Aa2trTE1Nldf8+fPTtDtz5kwEQfjidfPmTX7//XfCw8OZMmWKWt/XwYMH0dXVTeHrl65jx44pz26qijTykZDIAqofLE1q4+/vj4mJifJ+eqOekSNH0qtXry/atLW1Ze7cuVy7di2VnTp16tCnTx+2bt36Vd/SY+XKlSqPZPbu3Zth+5L4SEhkAdWDDJPamJiYpBCf9LC0tMTS0vKr7VauXMncuXOVjwMCAmjdujXu7u7Ur1//q69Pj3PnzmFhYaFy+xMnTmBlZZWhPiTxkZDIAjldOqd06dIpHhcqVAgAe3t7SpUqlWm7TZo0yVD77777LsN9SGs+uYzExER69eqFubk5kydP5tGjR8THx6fbXi6Xc+/ePUJDQ7PPSQklySMfVa68RkBAAOPHj0+1SA4QFhbGhAkTePv2babt573fSD5GFEUmTJjA3r17ad++PStXrqRq1aoYGRnRokULXrx4kaLtxo0bKVasGDVr1qRWrVq8e/cuB70vmCSIqkU4J2ST+Nja2iKKIjVr1syyraVLlxIeHp7mNNHU1JSIiAhlpZrMIIlPLmLy5MksX76cFStWsGPHDgIDA7lw4QLLly/Hz8+P9u3bExAQwLVr12jTpg0//fQT7du3Z9asWfj6+nLv3r2cfgsFjtwU4axuTp48Sb9+6R8+7tevH0ePHs20fWnNJ5fg5+eHq6sr8+fPZ8SIEUDSt0vjxo1p3LgxTZs25ZtvvlEu6llbW3PixAm+//57WrZsSdWqVWnRokVOvoUCiahi9LKYB3M4v3z5MtWa0qeUKlUqS3FFkvjkEo4dO4a2tna6mR6rVKnC48ePuXTpEjY2NtSpUwcdHR3mzZunrBIiVQDJfnJDhLOmMDAwwNfXN10B8vX1xcDAINP2JfHJBSSv37Ro0QIzM7N025UqVSpF7MeJEyf49ddfmTFjBm3bts0GTyU+R6FiuWRV2uQ26tevz/bt22ncuHGaz2/bto169epl2r4kPrkAT09Pbt26xfHjx1V+zcePH3FycqJdu3a4uLho0DuJL5HR4xV5ifHjx9OqVStMTU2ZMGECxYoVA5LOkrm6urJlyxZOnz6dafuS+OQClixZQuXKlWnTpo3Kr5k9ezYJCQls2rRJmm7lIPl55NOsWTNWrVrF6NGjWbZsGSYmJgiCQFhYGDo6Ovz+++80b9480/Yl8clhnj17xpEjR1i/fj2CoNofqJeXF25ubsydOzdDB/kk1I/q1Svy5hfEsGHD6NChA7t37+bFixeIokj58uXp0aNHloIYQRKfHGf58uUUKVKEPn36qNReLpczYsQISpUqxejRozXsncTXKAjVK6ysrBg7dqza7Urik4N8/PiRLVu2MHnyZPT19VV6zeTJkzl//jynTp1S+TUSmkOu0CJR8fVa7XKFIhu8UT+vX78mMjKSihUrqt123hwL5hNmz56NKIr8/PPPKrW/fPkyixcvplKlStja2mrWOQmVSD7bpcqV19i4cSPNmjWjf//+jBkzRu32JfHJIfbs2cPKlStZuHAhRYoUUek1Dx8+VP6/bNmyuLq6atJFCRVQiKrm9MlpTzPO3Llz2b59Ox4eHri5uREWFqZW+5L45ABPnz5l0KBB9OrVi1GjRqn8umHDhhEWFkZwcDAAGzZsSNXG09MTFxeXDCd2ksgc+flgqZmZGUFBQXz48AEtLS10dXXVal9a88lmIiMj6d69O9bW1oyZP5eJl05yPcgfLZmMFtb29KtYi9ImZum+3sTERHnA9Pnz5zg5OVGoUCFiY2Px8fHB09MTgL///hsPD48speiU+DqqJofXdAJ5TbB69WoGDRpETEwMq1atylI0c1pI4pONiKLI0KFD8fPzY9Jfm3H02IeWICD/t5rlq/AQtjy+zdrmnWlRumy6duzs7Ni0aRMeHh74+fkRGRmJjo4OdnZ2uLm5UbNmTZo0acKKFSuYOHFidr29Akl+3u1q0KABjx8/1ph9QRS/Xsc1PDwcU1NTwsLCVMrCJpGa6OhoJkyYgJubG/PWrmKtdtrTIgHQkWlxyXEoxQyNM91fx44dSUhI4OTJk5m2kd9Q599xsq1eZ53QLfT16Uh8ZDy7WuyQPkOfkPcmonmM9+/fM2vWLGxsbNi4cSOrVq3Cz74kWukEFIpAoqhgp9f9LPVbqVIlnj17liUbEl9HgYoJ5PPYtOvw4cMkJCSo3P748ePExMRkqA9JfDTIgQMHsLOzY+HChfTs2ZPHjx8zfPhwrgS+Uk610kIhilwJeJWlvuPi4jAyMsqSDYmvI36hSOCnV15LqdG1a9cMZcfs1asXgYGBGepDWvPRAKIoMnv2bGbOnEmPHj1YvXq1SsnA1cmHDx+yvc+CSKJCC0GFIENVAhFzE8n1wFTdsIiNjc1wH5L4aIC1a9cyc+ZM5syZw7Rp01Kd2fqmRGnO+L1Id/QjEwS+KZF+EidVePnyJfb29lmyIfF18uvB0v79+2eofZ8+fTK8liWJj5rx9fVlwoQJDB06lOnTp6fZZnCVOpx89TzN5wRAW5DxY8UamfZBoVBw//59unbtmmkbEqqRX7faN2/erPE+pDUfNZK8lW5hYcGiRYvSbVevuDUz6ielIvh04VlLENCWabGmeecs7XT5+PgQFRVFjRqZFzAJ1choxVKJ/5BGPmrE09OTM2fOcOjQoa8OQQdXqUO9YqXY+uQ2/wS9Rlsmo1kpO/pVqoWNiXmW/EhOJC+Jj+bJr9Ou7EASHzWyYMECqlWrRseOHVVqX82yOIsbtVO7H/fu3aNYsWLKzHMSmkMSn8wjiY+auHfvHidOnODPP/9UOSmYpjh58iQNGzbMUR8KCpL4ZB5pzUdNLFy4EFtbWxwdHXPUDx8fH27cuJHjfhQURFAxzid/kJkt9fSQxEcN+Pj44O7uzoQJE9DWztnB5J49ezAwMKB9+/Y56kdBoSAsOCsUCubMmYOVlRWFChXCx8cHgF9//ZWNGzdm2q4kPlnkdXQA/5s7DhMLE9r37pBt/YqiyOWgl4y4tJ9Wx9bS7fQWNnn9w6Url/nuu+8oVKhQtvlSkElUyFS+8ipz585ly5YtuLq6pkirUa1atTTTuqiKtOaTSULiQ3F7sYEHHx9zfM9xyveozNRnc6htXpNhdgMw0tbc0QZRFJl24wTuPneVp+JFhYIrJ8/w4e8zDBw8WGN9S6SkIKz5bNu2jXXr1tGiRYsURS2rV6/O06dPM20378pxDhKdGM3sxwt5GvGcwOuvSYiMx+b7pGjiOyH3+e3JMhIViRrr/88Xt3H3uQuAXBSJvvecN1NW8XbZX+jal+LJNzZ5NmdwXkMUBZWvvMqbN28oWzZ1iheFQpGhw6efI4lPJjj3/hLv4z6iQMGrMz6Y2pljZpcUm6NAgW/0K/4JvqWRvhWiyPqn11LEy37cdpR4vyCK/tKTYmN/JFBI4GKQj0b6l0iJKovNqkZB51aqVKmiTFL3KXv27KFWrVqZtitNuzLBhfeXEREJvP4av7M+1BqZsmSsgMDFD1f41rK+2vt+GxPB66iUuXQterfh7ZIdvFvpjp59KWzmjeDq21c0K5l+QjIJ9VAQpl0uLi707duXN2/eoFAo2L9/P15eXmzbto2jR49m2q4kPhnk7t27LKo1G6MShYh+F0WJ+qUo171yijYiIqHx6k22rbSdxp6tQeUyyp/1ylorvZDQPKpOqfLytKtjx464u7vz22+/IQgCM2bMwMHBgSNHjtCqVatM25XEJwO8efOG+vWTRjNRgZGU61aJ2v/7Bpl2ytmrDBlF9DSTzqK4oTHFDYwJiolQ3hP0ddEpVZSE1+8o1KAqiaKCOkWsv2BFQl3k95FPYmIi8+bNY9CgQVy4cEGttqU1nwwwadIk4uPjlY/TEh5IWvdpVrSRRnyQCQKDKnw2zZPJKDF5AHoVbAicvwXziASalyynkf4lUpLfF5y1tbVZtGgRcrlc7bYl8VGR6Oho3N3dlY+LVy6ZZkChgEA10yrUNKumMV8GlK9Lh9JJU73kU/HahU0pNqQrYnwCv5SojrZM+qfNDkQVAwzzqvgAtGzZkvPnz6vdrjTtUhFRFDEwMCAiImm6M8RxMFaWZbj88RpyMWlbW0fQoUWxxvS07o5M0NyHX0smw7V+B9qXrsRfL27zPOwDhoIWIR7nCdLVpaWD+he6JdJGJO11uLTaaZJjx44xe/Zs7t+/j5GREY0bN2b//v1qsd22bVumTJnCw4cPqV27dqr0vJ06dcqUXUl8VMTIyIhly5bx008/0aNHD6ZNnoaenh4/lu7By6hXCIIMeyNbDLUNNeZDokLBn0/vsvnRbV6GhaAlCDS3tmNFg24sHj2OC2fOs3XrVkqWLKkxHyRSIhdloEJBQLkGiwbu27ePIUOG8Ntvv9G8eXNEUeTBgwdqs59cznvp0qWpnhMEIdNTMkl8MsDgwYPZsmULsbGxyty2xjrGVDerqvG+ExUKhp45gIf/f/E7clHEw9+HY+c9CHJ3Z9u2bfTu3Vvjvkj8h0IUEHJwwTkxMZHRo0ezaNEiBn8S2V6hQgW19aHQUMCqtDCQAURR5O3bt5ibZy3ZV2bY8eQuHv4+ScP8T+7LRZGQg6fQLVWC1t26ZLtfBR1RVP2CpHpfn15xcXFZ6v/27du8efMGmUxGrVq1KFGiBG3btuXRo0dqeHeaRRr5ZIDVq1fz/PlzNm3alO19b350O837sV7exD15QZGf+7HvxWN+riGt92QnGY3zsbZOGQLh4uLCzJkzM91/8gnzmTNnsnTpUmxtbVmyZAlNmjTh2bNnWFhYZNp2MrNnz/7i8zNmzMiUXUl8VOSff/5hzJgx/PLLL3z33XfZ2ne8XI5veEiq+6IoEnb4NDqlS2LoUJVHH99lq18SGRcff3//FCl20ytNM3PmTGbNmvVFmzdu3FBOiaZNm0b37t2BpOTvpUqVYs+ePQwbNkyl9/ElDhw4kOJxQkICL1++RFtbG3t7e0l8NIkoiowYMYIaNWp8MTG8ptASBGSCgOKzbZX4V6+Je/YSyxH9kQkCelp5qzZUfiCjaz4mJiYqlZgZOXIkvXr1+mIbW1tb5e5r5cr/Rdnr6elhZ2eHn5/fV/tRhTt37qS6Fx4ezoABA7JUIUVt4hMnT+DYm/vs97vF25hwiuob07V0bTqUqoG+lo66uskRnjx5ws2bNzl8+HCKfCbZhZZMRpNStlx87Zui1lfsg6cIBvoYVKuIXBRpUVqq05XdfLqe87V2GcHS0lKloo+1a9dGT08PLy8v5Yg8ISEBX19fbGxsMtZpBjAxMWH27Nl06NCBvn37ZsqGWsQnPCGGIVe28CQ8EAEBEZF3seE8CH3DzpfX2fTtQEx1NbcFrWlevnwJgIODQ4758HP1+pz3f5niXuzj5+hXKou2tjalCpnSykY6SJrdJImPKtMuzfRvYmKCs7MzLi4uWFtbY2Njoxyd//DDD5rp9F9CQ0MJC8v8GcYMiU8JG1tMTEwoYWmJhbkZdnZ2tG/fnvOFw3kWEQQkHapM+n8SPpHvmHnvEMvq5t0tYH9/f7S0tChevHiO+VC/hDVLmrRl4sVTKBCRR8UQ5+OH+Y9dKFXIlD/bOaIjk6Zd2U1uOFi6aNEitLW16du3LzExMdSvXx8PDw+17cquXLkyxWNRFAkMDGT79u20adMm03YzJD76NWoTl5iIb3w8Jrp6XLx4kfXr1yPoaGFUvQwmdcthXLccukVMla+RiyIeQU8IjA6lhKFZph3NSR48eICdnR1aObym0r1cVRpZ2eLu9YBjhw/jr1CwaMhw+n3XVBKeHCKn43wAdHR0WLx4MYsXL9aI/WXLlqV4LJPJKFKkCP3792fKlCmZtpsh8TH7rjla+voIwFtBYO/GTdzyuc2UzcsIv/GcgPWnEDaexrh2WYr1aYq+TVEgaRR0J8QvT4pPXFwcBw8ezDWlh4saFmJUrW94tHYr5cqVY3DjFjntUsHm88CrL7XLoyQvO6ibTAUZigACbLx6E2s7Wyw7N8Bubl8q7xhHicHfE37NCz/XfSleI+TRTG4zZswgKCiIkSNH5rQrSkRR5NSpU7Ru3TqnXZFQ9UR7Hj5YOmjQIOWu2qdERUUxaNCgTNvNdISzXCFyxsub6ual0Pr3EKVMX5dorzcAmDX+78iBDAEHC82tvGuK5Iz9ixYtomLFijntjpIXL17g6+vL999/n9OuFHgyGuGcF9m6dSsxMTGp7sfExLBt27ZM283Sble8XI6FXiHaWlXjmO8d/JYdIOzyE6zHd1WKj0wQaFWiCsUMvh7bkJvw9PRk6NCh/PTTT4wdOzan3UnBqVOn0NHRoVmzZjntSoEnNyw4a4rw8HBEUUQURSIiItDX11c+J5fLOX78OEWLFs20/UyLjwDYFjZHJgg46lVg05xphD94ju2kHzD+pgIyBBSIVDQpwa/VVatdnlvw9vama9euNGzYkFWrVuV4+eNPEUWRdevW0apVK6k2V25A1SlVHhQfMzMzBEFAEATKly+f6nlBEL4ahf0lsjTycaxakV9//RVXV1dKlSrF3B1r8LbW5m1sGEX1Tehi7UCbklXR1co7gdRhYWF07NgRc3Nz9u7dmyNBhV9i27ZtPHjwgD/++COnXZFAc0GGuYFz584hiiLNmzdn3759Kc6J6erqYmNjk6X0LZlSBUGA0qEfmNf/R968ecPkyZOZPHkyBgYGmXYkNyCXy+nZsycBAQFcu3YNYzMzHrx9i0JUUNaiMEY5LEQBAQGMGTMGJycnGjdunKO+SPxLPt7tatKkCZC022VtbY1MzdkxMyw+5olxJJw7xd8Xz9OqVStOnTpFuXL5I1/wrl27OHXqFMeOH+dseBh91q8lJDYWAANtbXpWrcb4ht9hqJP9x0VEUcTZ2Rk9PT1WrFiR7f1LpE1+XvNJJvmYRnR0NH5+finymENS5dLMkCHxcSSKlYuWYWZmxu7du+nRo0euWg/JCgqFgtmzZ9OxY0c8ZAL7r1xO8XxMYiLb7t3l3tsg/ur+A3pp5G/WJMeOHePIkSMcOHAgzTQJcoWCv196s/PxffzDwihsYEj3SlXoXL4i+tp5+2xdbkYUBURF/haf9+/fM3DgQE6cOJHm85nNZJihcZTr/Pk4Ozvz9OlTfvjhh3wjPABnz57l2bNndBw4kP1PHqfZRiGK3AkMZE8OJGpav349derUoUuXLqmei5MnMvjoAZxPHOaS3yt8QkO4GfiGyR6n6ei+g/fRUdnub4FBzMCVRxkzZgwhISFcu3YNAwMDTp48ydatSUGuhw8fzrTdDInPzZs3WbJkCcbGxpnuMLeydu1aqlSpwmN9PWVFiLQQgJ0P7mefYyQNd0+fPp0qxUJkZCSiKLL46iU8/V4BKE+9J/+tvwwNYezp49npbgFDyMCVN/Hw8GDZsmXUrVsXmUyGjY0NTk5OuLq6Mn/+/EzbzZD42Nvnz5QNfn5+HDp0iKFDh/IqLDRF2orPEQG/cM1UI02Ps2fPEhsbS4cOHQDw8vKiS5cuGBsbU65cOTZ7/I3is69WMSGR6IeP+Xj8FJde+vA8+GO2+lxgKAAjn6ioKGU8j4WFBe/fvwegWrVq3L6ddoZNVZByOAPjxo3D0tKSAQMGYG5ggOwr00nTdLLPaYqNGzdSoUIFKlSowK5du6hSpQr37t1j2bJleHt7E3znHpC0KB396Anvt/2F39SZvFu7idDjp4l56sW1N/7Z6nOBoQCIT4UKFfDy8gKgZs2arF27ljdv3rBmzRpKlCiRabt5JwBHQ/z999/s3buX7du3Y2JiQucKlTj3hYN0MkGge+XK6T6vbjw9PTl06BA7duzg5s2bDBw4kF69erFx40ZCQkIYO3Ys2paWiAoFwQeOEHHeE53ixTBp1gijWjV4v3EbUXfuIebFQJO8QD4OMkxmzJgxBAYGAkk5p1u3bs2ff/6Jrq4uW7ZsybTdAi0+8fHxjBo1ikaNGtGnTx8A2pQrR4Wblrz4+DHV9EtLEDDV18epes1s8U8URSZMmICDgwPNmjWjXr161KhRgw0bNqCnp8fDhw8BMCpWhPfbdxJ16y4Wjt0wafSt0oZRXQfCTp+lsolZtvhc0MjPQYbJJH82AGrVqoWvry9Pnz6ldOnSKmVbTI8CPe1asWIFz58/548//lDu3OlqabGjWw/qlSoFJI10kqdhZcwt2P1DT4p8VrFRU+zZs4fr168zZcoUevTogUKhYP/+/cozNgcPHkRPTw+t0+eIunOfIgOdUggPgEnd2ojxCTw4dz5bfC5w5PNpV0JCAnZ2djx+/N8OsKGhIQ4ODlkSHijAI583b94we/ZsRowYkSpIqrChIX92/4En799z2d8PuUJBreIlqGtllW3hBXFxcUyZMoXSpUszdOhQEhMTOXPmjDKcfcuWLaxatQqAt0+e0njaJPyKWCgTzSd7aWNrS6X27fnll18oW7YsjRo1yhb/Cwz5fNqlo6NDXFycRv7uC5z4iKJIgkLBxIkTMTQ0/OLBuEpFilCpSJFs9O4/du3apazJVLNmTU6dOkXRokWRy+VMmjSJJUuWAFC4cGFOnjxJ9Vq1OPrci52P7vE6PBwLAwN6VKpKj0pVkHXvTadOnWjTpg1Hjx5NcRo+JCQEX19fChcujLW1db6K3coOBEXSpUq7vMqoUaNYuHAhGzZsQFuNwbUFRnwCo8JZ++gf9jx/QPALH4L++ot2Y4eToJc7o38/zZOyfv165Vbnp8JjY2PD6dOnlSeOu1WsTLeKaSyG6+px5MgRunTpQvv27Tl27BjNmjVj69atjBo1SpkoytLSkvbt2zN16tQ0TzFLpEE+H/kAXL9+nbNnz3L69GmqVauG0WfLDvv378+U3QKx5uMTFkz7I1vY9uQWgcc9CJq7Gh2rYjwsY0HHo1t4Exme0y6mwN/fHw8PDwDatWtHnTp1gKR/5GThqVq1KpcvX04lEnK5HC8vLyZOnIggCEo7hoaGHD58mBIlSrB27VrWr1+vrLt07do1jh49irOzM3///TeVK1dmw4YN2fiO8zD5fM0HklJrdO/endatW1OyZElMTU1TXJmlQIx8xl06RvDHj7xbv5uYe08x/r4h5j+0RdDR5n1MFFOvnmRrK8ecdlPJn3/+qfz5119/BeD58+fKipQODg78/fffyuoEO3bsYNmyZbx8+ZLQ0NAU2+qJiYnKnz9+/EhAQACCIPDzzz8zfPjwFIvt7du3p1fvH2nTpg1DhgzBonBRunXtpPH3m6fJx6fak9m8ebNG7OZ78XkS/I6rnp58WOuOmJhIkTEDMKz5X0pUuShyMeAlfhGhlDY2yzlHP2HXrl0AfP/99zRo0ICYmBh69OgBJOVROXLkSArh6du3Lx07dqRLly54eXmhq6vL48ePefDgATVr1gSSFrC7d++OhYUFf//9N7Vq1WL58uVK4VEoFBS2LEpoyH+R0MN++ZVVG9xp06w2XTp3zDfZC9RKARAfSPoSO3/+PN7e3vz4448YGxsTEBCAiYlJppPa5WvxUSgUuLi48HbVBvQqlMFyWE+0zVMPE0XgSci7XCM+vr6+AMoa2CNGjOD+/aTzZEOGDFHueN2/f5+hQ4fSv39/hg4dSp8+fZSvTT70V7RoUWW557t37+Lq6sro0aPZu3cvOp+kBlm55Tz65uUh5CrGhcsACqLC33L5nB/nT+1m4oRxVK9enTFjxjBw4MBs+13kegrAms+rV69o06YNfn5+xMXF0apVK4yNjXF1dSU2NpY1a9Zkym6+FR+5XM6QIUPYu2ULpl1aYtqxGcIXkiHp5aJsi3v27OHvv/+mYcOGbNq0STnsLVmyJBMnTgSSqkV2796d8uXLs2jRIurUqUPx4sXZs2cPtra2KWIw1q1bx8aNG9m8eTNRUVHIZDIaNmyofP657zv2HL+NXa1u2NXqlsofhTyBuuUFPE+7s3DhQkl8PkEQky5V2uVVRo8eTZ06dbh37x6FCxdW3u/atSs//fRTpu3mnk+cGklMTKR///7s2rWLNRs34qr9gURF+nudhto61CtaKhs9/DKtWrWiVatW3L17l8GDBwNJB/pOnz5N6dKliYqKwtHRkffv33Py5Enmz5/P+/fvOXfuHHZ2dilsXb58GWdnZwAePnxI27ZtUSgU3L17V7mQfeTsA7RkAnJF2p8QmZYOr8NMcHBw4PHjx4SFhbFo0SIOHDiAlpYW9vb2yqtTp05YWVlp8LeTyygA065Lly5x+fLlVCmFbWxsePPmTabt5jvxCQkJYeDAgRw7doxdu3bxww8/8PraGbZ73VGWcv4UARhUqQ6GOrkrV3NoaCidO3cGQEtLi+PHj1OlShU+fPhAhw4dePToEYcOHcLHx4cVK1Ywf/78VMLj5+fHd999B0CHDh1YtmwZCoUCPT09Ll26pBSfgLdh6QpPMu8+hiMmBhMQEEDFihWJiIigV69e6Orq4u3tzYoVK0hMTCQwMJDZs2dr4DcikVMoFIo0E4a9fv06S+l18tVWe1hYGM2bN+f8+fPs37+fH374AYDpdZvT1iZpS1pLkCH8+3+AHmWrMbbmd9ni38OPQcy74cH4S8dYfvcSryPTTs0hiiIDBw7Ez88PgBMnTlC/fn1evXrFd999h4+PD+fOnePmzZu0bduW1q1bp1neJ3m6NnToUI4cOcKvv/7KsmXLiIuLo8gnwZOmhfTRkn15TcLIQI8uXbogl8v59ttvefr0KRs2bMDNzY0GDRqQmJjIqFGjmD59emZ/PXkSgf+mXl+8ctrRLNCqVSuWL1+ufCwIApGRkbi4uNCuXbtM2xVEFY47h4eHY2pqSlhYGCYmubf+1oIFC5gzZw7Xrl2jWrVqKZ4TRZF7HwLZ7/2I97GRFDM0pod9NaoWLqZxv2LliYz1PMKJV8/QFmQkp/tSiCKjanzL2BrfpYgsXrx4MRMmTABg+/btODk58fDhQ9q0aYOOjg6nT5/G09OTwYMHM3HiRObOnZti8TiZmJgYIiIilAGKb968oVSpUpiYmBAUFKRM+H/1tg/jf0s/UExLJtC1dU3GDk5dmnnp0qWMGzeOhQsXKtejcivq/DtOtmUzfx6yT+pZpYciNpZXU6bl+s9QWgQEBNCsWTO0tLR4/vw5derU4fnz51haWnLx4sVM1+7KV9OuGzdu0KBBg1TCA0lqXbNISWoWyXypj8wy/eppTr16DkCimHLtaeW9KxTRL0TfirWApBifZOHp0KEDffr04dKlS3Ts2JHSpUtz8uRJnj17hrOzM0OHDmXBggXpHokwMDBIUVHEysqKJ0+eIJPJUtyvX7MMVSuU5PHzQBSfTb9kMgF9fR16dayTyv6rV6+YMmUK//vf/3K98GiMArDmU7JkSe7evcvOnTu5ffs2CoWCwYMH06dPnyxVrMlXI5+yZcvSuXNnFi1ezLmXL9n14D4vQ0Mw1zegS6VKdKlYKdvL3wRGhdNw75pUmQYhKdugoKNNMYNCbKnegmlTp3LgwAEgKZ7n2bNn3L9/H0dHR+rXr8+hQ4f48OED9evXp0aNGpw8eTLNEU9miIyKY/bKY1y+5fNvoThQKESsipkxd3wnypdJ/e02ePBgjh49yrNnzzhz5gwHDx6ka9euymDI3IYmRj6281Qf+fhOy5sjH02Rb0Y+oijy+vVrSllbM+LoEU55v0BLEJCLIgIh3AoMYP2tm+zs4UiJbMxBffa1d6qFbjEhkXcrtxH7xIcSM4bz5NItqnuMQV9fn+LFixMUFMSqVas4e/YsQ4cOpXPnzvz555+Eh4fTsWNHLCws2LNnj9qEB6CQkR6uU7rx6s1Hrt5+SWKinAr2xaldtTSydNaD9uzZQ4MGDahTpw4vXrwAwMjIKNeKj0YoACMfSErd+/vvv/PkyRMEQaBixYqMHDmSihUrfv3F6ZBvFpxDQkKIi4vjXlQkp72TPgifJ1N/Ex7OiGNHstWv2MSEVNOi4D+PEPvwOSQmEjhjJRFnr1KnUUNiY2MJDg5m0aJFvH//nsGDB/PTTz+xe/dubt68SYMGDQgODubIkSNpls9RBzZWhenVsQ5OXetTt7pNusITHx9PREQEZ86cUQpP/fr1cXFx0YhfuZYCcLZr7969VK1alVu3blGjRg2qV6/O7du3qVatGnv27Mm03XwjPk+ePAHgWnR0uv/OclHkblAQ94KCNOrLoUOH6NChAzt37qSCeREU/4pgYmg4H9bvJvL8dSwGdMNy+I/olCpGsV/6UUhXnypVqvDkyRN8fX2ZOnUqLi4uzJs3j2HDhtGoUSOKFi3K9evXqVChgkb9V4XQ0NAUjwcNGsSFCxeyVD43L6LSTpeKgYi5lYkTJzJlyhSuXr3K0qVLWbp0KVeuXGHq1KlMmjQp03bzxbQrODiYX3/9lULGxsSZm31xW1MmCFx77U+N4sU14suhQ4eUtbWOHTvG8xcvMHj4Ej8PT6LvPAFRRGZkgGGNimiZGWNSvwatS5cn/N1erl2+TL169YiIiMDNzQ1bW1sqVKhAYmIiq1evZsiQIWhpaWnE74xSpEgRDAwMiImJ4Y8//mD48OEFMxdQATheERQURL9+/VLdd3JyYtGiRZm2m6fFRxRFVq9ezfTp01EoFKzcto05vj5ffI3w7+s0walTp3B0/O90vL6+PuXKlv23Y0GZyFcRG8eHTXspOW4QRQ0K4VKvBULlb7GwsEBLS4uxY8fy7NkzOnToQIsWLdi0aRPFimk+JCAjeHp6Ehsby2+//caIESNy2p2cowCs+TRt2hRPT0/KJv8t/8ulS5eylBkzz4pPXFwcTk5O7N27lyFDhjBnzhxMC1uwbN1aIj+rJf0pclGkrpX6j1L4+vri6OhIq1at6NevHz179qRIkSLUqVMHXV1d9u3bh5lNKXR7tSP01EXEsEj6V6zN8GoNsDQwAkNjVq5cCSQdiejcuTPNmjVj//796GVzqZ70CAkJ4caNG9y8eZNFixbRqFGjgrvF/i+54WzXs2fPmDBhApcvXyY+Pp5q1aoxd+7cFBkrs0KnTp2YNGkSt27dokGDBgBcu3aNPXv2MGvWrBRVSzt1Uj0FS57dat+8eTODBw9m7969dOv232FI10uerLt1U7nO8ilagkD5wpYc7eOk1ilCYmIijRs3JiAggJMnT9K8eXNlqREAbW1tpk6dyrRp0/B68YJv6tXjf+PGMTuNFK63bt2iefPm1KpVi+PHj2NoaKg2P7NCYGAglStXJjQ0FGNjY9q0acP69eu/mEwqPj6effv2cfDgQfbs2cPOnTvp2bNnNnqdEk1stdv9+htaKmy1y2Nj8ZkzVSOfoXLlylG+fHnmz5+PgYEBy5cvZ8uWLXh7e1NcDcsLsi8cyP4UQRAyVLc9z458du7cSdOmTVMID8DoBt/w6P07PF+9UiZTh6S1niJGRqzu2FHtaxOzZs3in3/+4eLFi/z+++/ExsZy5coVypQpg7a2NkZGRhgYGPD27Vt+6NYNa2trJowfr3x9SEgIe/fu5cKFC+zdu5eaNWty5MiRXCM8kDSyCw0NZdmyZfzyyy9f/IP8+PEja9euZdWqVQQEBCjvZ+UQYq4lh6ddHz584MWLF2zatElZCGHBggW4ubnx6NEjtYiP4guHsrNCnhUfCwsLbt++TXR0dIoPqZ62Nhs7d+X4s2fsfHifV6GhmOrr061SZRyrVMVUhW+pjHD+/HnmzZvHtGnTuHLlCuvWrWPevHl88803KdqFh4fTvHlzwsPDuXjxovJA3vnz5+nduzfv37+natWqzJo1i+HDh2fpwJ4mSA5s3LlzJ6NGjQKSdryOHz/OkydPKFasGAMHDsTQ0JBvv/2WZ8+e0blzZ0aMGMG6det4+/Yt//vf/3L4XWiADIpPeHjKlL16enpZmlYXLlyYSpUqsW3bNhwcHNDT02Pt2rUUK1aM2rVrZ9pudpBnp10PHz6kXr16NGvWjMOHD+fILtCHDx+oUaMGAQEBWFtbExAQgLOzM0uWLEn1BzVgwAD27dvHjRs3lIFZly5donXr1jRo0IBt27ZlOBXFu3fvWLJkCUuWLOH06dM0b95cbe8tLS5fvkyjRo1wcHBAV1eXGzdukJiYiJWVFW/evKFy5co8fPgQOzs7ZVKzZOrVq8f169c16t/X0MS0y36q6tMu79+mprrv4uLCzJkzs+TLmzdv6Ny5M7dv30Ymk1GsWDGOHTumzGKpDv755x/Onz/Pu3fvUo2Eli5dmimbeXbkU7VqVXbs2EH37t25efMm9evXz7a+RVHk7Nmz9OvXT7m24+DgwJkzZ9KMwXnz5g1bt27Fzc1NKTz79+9nwIAB1K9fn6NHj2bojEx4eDiLFy9m6dKlREVFAWTLbljDhg3x8PDA1dUVCwsLnJyc6NSpE6VKlVJGvQqCwPPnz7l+/TrBwcFA0sHEli1baty/vIC/v38K4Utv1DNz5swvlnWCpLOMtWvXZvjw4RQtWhRPT08MDAzYsGEDHTp04MaNG1mqpZ7Mb7/9xvTp06lQoQLFihVLsWyRlSWMPCs+AE2aNAGS8opoWnyio6Px9PTk9OnTnDx5MkUFx7///psWLVKf+E7m2rVrQFLmt/fv3zNq1Cjc3d3p0qUL27dvz5Dw+Pj40KZNG/z9/WnXrh0HDhygf//+VKlSJfNvLgM0bdqUpk2bprpfunRpZd4XbW3tFJkS8zUZnHaZmJioNOoaOXIkvXr1+mIbW1tbPDw8OHr0KCEhIUq7bm5unDlzhq1btzJ58mQVnPsyK1asYNOmTQwYMCDLtj4lT4tP8qKnphbEICmZ+8aNG/H09CQuLg4rKytat27NiBEjGD16NLNmzfqi8EBS5QkzMzMuX77Mzz//jEKhUO78qPrNERkZyZkzZ3B2dsbU1BQPDw+cnJwoX748ixcvVsdbzRKLFi2id+/eDBw4MEXNsfyOprbaLS0tVSpHHB0dDaTekZLJZGr7XHyedldd5OnjFaamphQrVoybN29qxP7s2bPp3bs3oiiyYMECHj16hL+/P2vWrOHgwYNYWloyZsyYr9p59OgRoaGh9OjRg0aNGvHo0SN69er1VeF58+YNCxYsoFmzZlhYWNCtWzfKly/PqlWr6NOnDzExMZw6dSpFXl118SzkPdOvnabVwQ20ObyJ+bfO459O8jMAR0dHXF1d2b59u3K6VWDIwXNd33zzDebm5vTv35979+4pY35evnxJ+/bt1dLH2LFjlaW51UmeHvkkJiYSHh6eIiufuhBFkXXr1tG4cWOcnJx48+YNf/zxB/7+/ly5coWwsDBOnTr1xe3wuLg4zp49y6FDhwAoVKgQY8eOVa7TpEdCQgIrVqxQLkQ2b96cpUuXUrlyZc6ePUvHjh2pUqUKe/fuxcbGRm3vOZmdz+4y9eopZP9mBQB4HvqBTY9vsrZZV5qXsgeSRmNLly7F19eXEiVK8PDhQ0D1uJB8QQ5vtVtaWnLy5EmmTZtG8+bNSUhIoEqVKhw6dIgaNWqopY/x48fTvn177O3tqVy5cqpsCpmtWJqnxScyMpK4uDiNxMOEh4fz5s0b3rx5w8WLF7G0tMTKygorKyucnZ1xdHRM9Y8riiKCICCKIsuXL2fmzJmEh4fz7bff8t133+Hq6qoMR9+5c2eqOX3yQvaYMWN48uQJI0eOZPbs2RgZGTFgwABGjx6NkZERo0aNYs6cOeirOWwA4N6HQKZePYXIf1kB+PdnhSjH+dwBzncdwoUjx5kwYYJyx+/s2bP4+/vTqVMnzMzM1O5XbiU31GqvU6cOp06d0pj9UaNGce7cOZo1a0bhwoXVFieXp8XHwsKCLl268Ntvv+Ho6KjSHFlVTE1NefbsGVpaWpQsWTLND/rZs2dxcXHhzp07xMbGIpPJ6Ny5M0ZGRmzbto0RI0bQr18/6tati1wup3PnzhgaGjJjxgzmzJmTQnySp2IPHz6kQYMG3Lx5k1q1krIbrlq1ir/++ouVK1fSv39/jcYAbX5yE5kgQ/5JxkVRFIm5/QhRIaJjbsJ3jRvz8s59unXrxuLFiylTpgwAERERmS4gl1fJDccrNM22bdvYt2+f2qZxyeRp8QFYuXIlNWrUYMqUKaxfv16ttj+t0Hn//n0OHTqEnp4eOjo6CILAr7/+SsWKFZkzZw6GhoaEh4fz119/4e3tzbJly1KsB2lra/Ptt98CSYX/OnXqxLlz56hfvz4nTpzgl19+wcLCgrNnz9KsWTPlt8uZM2eYPn06P/30EyNHjlTr+0sLzwDfFMIDEHH2KiE7/ju/U8i6JKdPn6ZVq1Yp2uW2wMhsoQAcLLWwsMDe3l7tdjUqPoGBgaxevZqLFy/Srl07JkyYoPajDVZWVowfP56ZM2eyYMECjSy+AnTv3l2ZNMvQ0FC5y1C0aFE6d+6s/MeZOHGicvqVHu3ataNx48a0bNkSXV1dYmNjqV+/PgcPHlSGw8vlcvr168dff/1Fo0aNmD9/vkbe1+d8HnIqJiYStv80BjUrYeHUiYTA99Rv1DCV8BRYCoD4zJw5ExcXFzZv3qzWJQ6NiE/yYu24ceMAaNy4MZMmTaJq1apZKrWRHvXr1ycuLo4PHz5oRHxCQkKoW7cuL168wNTUFGdnZ169esWuXbs4fvw4165dY//+/cq4o68JrJaWFidOnGDDhg0oFAo6dOiQIl2BKIr88ssvuLu7s337dvr06aPRXDnBwcG8e/eO8PBwSr0JIeDVCxJjYlHExKKIikERHUu8fyDaluboFbHg21J2XzdaQCgI066VK1fi7e1NsWLFsLW1TbXgfPv27UzZVbv4hIaG0qtXL06dOsWQIUNwdXXFw8ODEydOpDhkqE6SDyyWKqX+VBkxMTE4ODjw8eNH2rRpg4+PD25ubpQvX55GjRrRtm1bfvvtN1q2bMm6detULiVsaGjIL7/8kup+XFwcM2fOxM3NjXXr1uHk5KTut5SCkydP0qlTJxISElI9J+hoI+gnReDq2iYd/RAQ6FO+pkZ9ylMUgJFPcnI8daNW8YmNjaVz5848ePCAEydO0KZNGwICAujZsyc9evRIMxuaOnj9+jXm5uYYGRmp3ba7u7vynNLJkyexsbHh4sWLynMzNWvWJDIyEkhKJaqjo5NpwYiIiKBu3bo8f/4cV1dXhgwZoo63kC4vXrygd+/etGzZkqlTp2JiYoKxsTGHA1+w9Mk/aOvoKtd/tP4dea1o3BFrYzON+pWnKADio6m83GoTH7lcTt++ffnnn384e/ascnH1/v37JCYmsmjRolS1ntXF69evNTLqgaTzTCNGjMDc3Jxvv/2WVq1aoa3936/NycmJe/fuKR9Xrlw5033NmjULf39/7ty5o0yPoEmmT59OaGgoS5cuTVGFYHSZMjQpV4WtT29z/a0/WoJAUys7+lV0oJyZ+nYU8wMFYdoFSTOavXv34u3tzYQJE5RZJYoVK5bhA9HJqEV8RFFk7Nix7N+/n/379yuFB1BuvcbExKijqzQJDw9Xxteoe22kXLly/PHHHynuxcbG8uDBA0xMTJgzZ47yvq+vb6aD/oKCgli9ejXjxo3LFuEBlBUwateujaurK0OHDlXO53OqwGKeowCMfO7fv0/Lli0xNTXF19eXIUOGYGFhwYEDB3j16lWmj9OoJRTV1dWV33//HTc3Nzp37pziueQRycuXL9XRVZr06tWL+/fvs3r1ao31kUxERAQtWrSgXr16VKxYkfDwcIoVK4a2tjZhYekfP/iaTScnJwwNDVU6rqEu3NzcCA4Opl+/fowcORIjIyO6deumnEZKfJ3kIENVrrzK//73PwYMGMDz589TxLu1bduWixcvZtpulsQnMTGRWbNmMXnyZH799VeGDRuWqo2NjQ3GxsY8ePAgK119kXbt2vHzzz8zbtw44uLiNNbP8ePHqVKlCnfv3mX16tW4ubnx6tUrgoKCSEhIyPCIJTY2lmXLllG+fHlu3LiBu7u7xupxpYe5uTmrV6/m3r17zJ8/n4MHD2Y6XL5AUgDqdt24cSPNz7aVlRVBWShDlWnxefXqFU2bNmX27NlfzD0iCAJVq1bl/v37mXZSFQYMGEBsbKxG+nn//j0//vgj7du3p1KlSjx8+BBnZ2d+/vlnSpcunSmb/v7+NGjQgAkTJtC2bVvu3r2r8WRgX8LQ0BA/Pz9EUUyxpiXxZYQMXHkVfX39VBkYIamKaVbOVWZKfHbt2kWNGjV4/fo1Fy5cwMXF5YtrLTVq1NDYyfNkqlevjra2ttr72bdvH5UqVeLUqVNs27aNkydPKo8TZJbIyEhat25NaGgot27dYtOmTVm2mRnkcjlHjhyhTZs2lCtXjm3btuHi4kLXrl2z3Zc8SwEY+XTu3JnZs2crwzEEQcDPz4/JkydnqTR2hsQnIiKCAQMG0Lt3b+W39XfffffV133//fc8e/YMb2/vTDv6NfT19alcuXKKnaessn//fhwdHWnatClPnjyhb9++alnQnjFjBn5+fpw8eVJtJ48zQkJCAosWLcLe3p5OnToRHBzMli1bCAgIYObMmRlKblbQKQgVSxcvXsz79+8pWrQoMTExNGnShLJly2JsbMy8efMybTdD4+tGjRrx/v17tm7dmqEPYvIxgmPHjqUZWKcuSpcurbZAxrCwMPr06UPDhg3ZvXv3F9NEvH//nosXL3L37l0UCgX29vbUqlVLeTD0U6Kioli7di3jx49Psb2dXXz8+JH27dtz69YtnJycGD58OHXr1s12P/INBWC3y8TEhEuXLuHh4cHt27dRKBQ4ODhkOTVuhsTH3Nyc06dPp6pc+DWMjY1p2rQpR48e1aj4lCxZklu3bqnF1oYNG4iNjcXT05OIiIh061MdPnyY/v37ExoaSvHixdHR0eH169eIokjDhg2ZMmVKitPA3t7eREdH06ZNG7X4mVFWrFjBo0ePuPxvaWYJNZCHhUUVtm3bRs+ePWnevHmKdcn4+Hh27dqV6eDhDE27MiM8ybRr147z589rdDeqZMmSahv5lC9fXpncOzQ0NNXzCQkJjB8/ns6dO9OkSRP8/f0JDAzEz8+P6OhoDh06hCAIdOjQgd9++035OnNzcwRByPR5mKyyY8cOfvzxR0l41ERBmHYNHDgwzTCSiIgIlY8TpUWGxOfzA2UZwd7enoSEBEJCQjJt42uULFmSt2/fkpiYmGVbDg4O1KxZE21t7VR5gvz9/WnSpAkrVqxg6dKlHDhwIEWEtb6+Pp06dcLT05PZs2czbdo0li9fDoC1tTX9+vVjxowZGg28TAtvb29evnxJ27Zts7XffE0BWHBOL3j39evXX6xY+zWybU/V29sbXV1djSabKlmyJAqFgqCgoCwdt3j79i2NGjUiPj4ed3f3FGfGjh8/Tt++fSlUqBCenp7K2tXp8euvv/L69Wvmzp3LyJEj0dbWpl27dmzdupXnz59nWzTz3bt3cXJyokiRImqr4S2ROzIZaopatWohCAKCINCiRYsUIRhyuZyXL19mafkg28Tnn3/+wcjICD8/vyydf/ocURSJjo5GEATlB/nixYv8+OOPmbb58uVLXr58SdGiRXn8+DHm5uYoFAq2b9/O1q1b6dChA1u3blU5ILB9+/asW7cOLy8vgoODmTFjBlZWVmr9PaTFP//8w5o1a7h69SpPnz6lTJkyXLx4MUvfVhIpyc9nu5JPs9+9e5fWrVunGDjo6upia2ubpa32bKtY+urVK9q0aYOXlxcdOnRg9OjRXy05kx4RERHMmTOH3bt38/r1a+RyOXp6egwbNowrV65QunRp9u3blynbyRw8eJB169Ypk8UDlClThtGjRzNq1CiVk6THxMTQsmVLZXXRT4+fPHr0SCMC9ODBA8aPH69co2vRogVt27alffv2BTqAUBMVS6sP/A0tXRUqlsbHcn/z1FxV9VdVtm7dSs+ePdWeMzzb/hJLlizFzZs32blzJ6tWraJly5ZMnz49xcFMVYiOjqZly5Y8fvxYWSzP1NSUFy9esGDBAmrWrMmRI0d4/Phxlj7YXbp0oUuXLigUCh49ekR8fDwODg4ZjvMZOXIkV65cYc6cOcydO5dSpUpRv359Pnz4kOno6C+xf/9++vXrh7W1Ne7u7nTv3j1HSkkXGArAVnv//v01Ylej4hMVHceeQ7c4dOIuwSFR6Opo0bJJJQ4e/pudf65nypQplC5dOkN5a/766y9u3rzJtWvXUsWnFClShOHDh2NlZcXQoUO5ePFilsu4yGQyqlWrlqnXenh4sGnTJiBp7UdLS4vDhw9rJJujQqFg7ty5uLi48MMPP7B582aN5DeSSEl+nnZpGo0VWIqIjGX4hD/ZuusKwSFJdariE+Sc8njE0LHb6NilH87OzgwdOpSffvqJ169ff9WmXC5n79691KtXL83AOGdnZ9q0aUNMTAyXL19W1r3KbuLj47ly5UqKbchNmzbx9u3bLAuPt7c3K1as4NPZclRUFD179sTFxYU5c+akWiSX0CAFYLdLU2hs5LN2ywX8XgejUKT8rcsVImKCHJeFh9m1/g+qVKnCrFmz+PPPPxk1ahSTJ09OsZC7evVqhg8fjpmZGYULF8bb25u1a9em2acgCGzatInWrVsTHBzMnDlzsLe319iwMS0SExPp2LEjp0+fVt5LLiOcVby8vJRR0cn5pK9fv87169dRKBTs379fOpeVzQiiiPD1ZVOV2hQ0NDLyiYqO45THo1TCk4xCIfL+QwQ37vgycuRIvL29mTRpEqtXr8bOzo7Ro0ezfft2Jk6cyPDhw4GkQD9vb28uX77M0KFD0+27RIkS3LlzB1dXVwAGDx6cpZwjqjB37lyqVavGxIkTcXV15cyZM8q8PIMHD85yGsqgoCAWLlxIgwYNqFy5Mm3btuWvv/5i48aN6OvrM2XKFG7fvi0JT04gjXwyjUZGPq8DQohPkH+xjZaWjBc+7/imrj0mJibMnDmT4cOHs3jxYnbu3MnKlSspVKgQ3bt35/jx48TExNCpU6cUWRLTt63FhAkT8PLyYuvWrXTp0oV//vnni9HZERERGBoafnVxNiYmhs6dO6Orq8uPP/6Ivb097u7uPHz4UFkuePjw4bi4uLB8+XK+//57KlSo8FWfPycxMZHjx4+zceNGjh07hra2Nn369GHx4sWYm5tn2J6EZigIaz5yuZwtW7Zw9uxZ3r17h0KRMmjJw8MjU3Y1Ij46Ol/fXREVIrq6KbsvWrQorq6uuLq6EhMTgyAI6Ovr4+vry8qVK/n+++8z5MeMGTPYuHEjWlpaTJo0Kd3t9w8fPlCkSBHmzJnD9OnTv2hTLpdz5swZAI4dOwYkLUrPmDGDVq1asXfvXhYuXIiuri7FihVj6dKl+Pv7U6ZMGcqUKYOtre0XxePZs2ds2rSJrVu3EhQURK1atVixYgU//vijJDq5kQKw2zV69Gi2bNlC+/btqVq1au4ul2xrbUlRS2PefYhIt41CFGlQJ/36T5+mdbC1tWXp0qUZ9qN06dI0adKE9+/fc/DgQfz8/FJtbwcEBLBo0SIgSaz8/f358ccflTW4kvH29qZ///68ePECPT09mjRpwq5du/D29qZcuXLKwL1PU4xs2rRJuQMVFRWlvF+mTBmOHTtGpUqVlPcSEhKYNGkSy5Ytw9zcnD59+jBo0KA0T8ZL5B7yc4RzMrt27WL37t1q36XVyJqPTCbQ1zH9YwcymcC39eyxsdZMddFP6dGjB48fP0ZfXz9VjueNGzdiZ2fH8uXLKVSoEI0aNeL8+fM0b96cgwcPKts9ePCARo0aERQURJ06dbCyssLLy4uaNWvSqVMnHBwc6NevH7t37+ann37i6NGjQNJh2itXrhAREcG7d++4fv06O3fuJCAgAHd3d96+fYunpycnT56kefPm/P777yxevJiAgAB+//13SXjyAAXhYKmurm6mD5R/CY1FOIuiyMYdl9i++xpaMgGFKCKTCcjlIjWqlGL+jG4YGepl+Q18jaioKH788UeOHDmCiYkJT58+pXjx4kycOJFFixYxePBgWrZsScOGDbG2tiY4OJgyZcpQr149Jk+ezO+//86RI0coXrw4UVFRhIeH07hxY2rXro2hoSE6OjqEhIRw4sQJvLy8lP0m1y1Li/r16+Pt7U1ERATx8fFAUq7rv/76S6U1LYnMoYkI59qO81SOcL61e1qejHBesmQJPj4+/PHHH2qtDqPx4xX+b4I5duYBAUGhFDLSp2XjitSqXlqj5X8/Jy4ujjJlyhASEoKBgQHOzs6sWrWKokWL8uzZsxS+lClTRlkkEJJEwdTUlPv37zNkyBCmT5+eZmRyXFwcQ4YMwcjIiDVr1rBs2bJ0K1GcP3+eGTNm0LRpU3r37o2uri7W1tYaq2smkYSmxEdb5+vik5iQd8Wna9eunDt3DgsLC6pUqZIqu0VmCw5o/HiFtZUFzgOafL2hBtHT08PV1ZW+fftSvXp1/vjjDyIiIihdOrUIbtu2jR07dlChQgVMTEwYMmQIgiBw8ODBVGWBkomNjWX48OFs374dmUxG69atGTRoULr+NG3aVOPb/xLZhCgmXaq0y6OYmZlpJIxDLeLz/LYPh91O8fiqFzp6OnzTsQ7th7bE0krzazqq4uTkRGBgIJMmTaJhw4YMHTo0zfzTjRo1olGjRkDS9vuQIUOYNWtWusITHx9P8+bNuX37Nlu2bMnWgEaJnKcgbLVv3rxZI3azvOC8e9EhhteZxJlt5/F78gbvu7789dt+BlQYzb0Lj9Tho9qYMGECHh4evHz5ktGjR3Pnzp0vtjc2NsbBwYEZM2awbNmyNNvs3r2bq1evcvbsWUl4CiJSkGGmyZL43Dpzj/WTdgAgT/xvL1EhVxAfG8+vHRcQEZK7ql82bdqU+/fv06xZM7p3766chqWHp6cnY8aMYfz48axbt065QJxMUFAQurq62NmlHzYgkX/JDRVL582bx7fffouhoSFmZmZptvHz86Njx44YGRlhaWnJL7/8kupv+Uvs3bsXR0dHGjRogIODQ4ors2RJfPYtO4pMK20TokIkNiqO01vOZ6ULjWBhYcHevXvZv38/vr6+rFixIt22hoaGLF68mIEDBzJs2DAMDQ0xNTWlbt26PH78mM6dOxMfH4+bm1s2vgOJXEMuGPnEx8fzww8/8PPPP6f5vFwup3379kRFRXHp0iV27drFvn37GDdunEr2V65cycCBAylatCh37tyhXr16FC5cGB8fnyyl5M2S+Nw99xCFPH1JFxG5e+5hVrrQGIIg0LVrV6ZMmUJwcPAX22ppabFhwwbu37/PqlWrGDFiBDdv3uTw4cO0bduWokWLKrO+SRQsBIWo8qUpZs2axdixY9NN/XL69GkeP37Mjh07qFWrFi1btmTJkiWsX78+zUqkn+Pm5sa6dev4448/0NXVZeLEiZw5c4ZffvklzcTyqpIl8fnqAr4IKuzk5yjR0dEqp5+oVq0aAwYM4MiRI0DSFmNwcDBXr16ldu3amnRTIpeSF4IMr169StWqVSlZsqTyXuvWrYmLi1Op1JSfn58y/szAwICIiKSTC3379mXnzp2Z9itL4lP1u4rpTrsABJlAtUaazVOcFURR5MKFC9jY2Kj8mvj4eN6+fQvAvXv32LZtm7TeU5DJ4LQrPDw8xaXJUlLJBAUFUaxYsRT3zM3N0dXVJSgo6KuvL168OB8/fgSS4t6uXbsGJOU6z8rgIkvi02Nsh3SnXYIgoKOnQ+uBTbPShcaIjIzk559/xtPTk6lTp6r8OmNjY54/f8706dO5cuUKHTp00KCXErmdjI58rK2tMTU1VV7z589P0+7MmTOVlSPSu27evKm6n2kE9aZXEudzmjdvrhztDx48mLFjx9KqVSt69uyZpfifLMX51G9fG6dfe7Bjzl60tGXKHS+ZlgwtbRkz943HrIhpVrpQO1FRUbi5ueHq6kpkZCRr167N8KKZqalphnNPS+RTMhhk6O/vnyLCObkw5eeMHDmSXr16fdGkra2tSi4WL16c69evp7gXEhJCQkJCqhFRWqxbt06ZRsPZ2RkLCwsuXbpEx44dcXZ2VsmHtMhykGH/WT2p1aIah1ed5PHVZ2jrafNtp7p0Gt6akvbFs2o+SygUCjw8PNDV1aVu3bqsWbOGBQsWEBwczODBg5k6dapGkrhLFBwyGmRoYmKi0vEKS0vLVMUqM8s333zDvHnzCAwMpESJEkDSIrSenp5Ka5UymSxFLnRHR0ccHR2z7JdaIpyrN65M9ca5a20nNjaWfv36sWfPHiApw+G7d+8YMGAA06dPV/lbQ0Lii+SCfD5+fn4EBwfj5+eHXC7n7t27AJQtW5ZChQrx/fffU7lyZfr27cuiRYsIDg5m/PjxDBkyROVzZp6enqxduxZvb2/27t2LlZUV27dvp0yZMmmeFFAFjSWQz0liYmJwdHTkyJEjODk5YWlpSefOnfHy8mLDhg1ZFp54eSReoXu58nYe198txD/SE4X45cyNEvmT3LDbNWPGDGrVqoWLiwuRkZHUqlWLWrVqKdeEtLS0OHbsGPr6+jRs2BBHR0e6dOnC4sWLVbK/b98+WrdujYGBAXfu3FEukkdERPDbb79l2u9sKxqYHcTFxbF161YWLlxIYGAge/fuVXsCpNeRl7gYNB25GIfwr3aLyDHRsaGF1XIK6ZRQa38S6kMTp9q/bTVL5VPtV8645PrPUFrUqlWLsWPH0q9fP4yNjbl37x52dnbcvXuXNm3aqLRjlhb5ZuSzc+dOypQpg7OzMw4ODty8eVPtwhMc94zzgZOQi3EkhVDKEUka8UQkvObMm5HIxQS19imRuxFEFY9X5O5wty/i5eVF48aNU903MTEhNDQ003bzTe3cw4cPExgYyIULF9L8RamDxyF//vtT6r8kETmRCW/wizxPGeNWGulfIhdSAFJqlChRghcvXqRarrh06VKWYtzyjfgsW7YMDw8PJk+ejKOjI/Hx8SQkJBAfH5/q5689Tv7Z0tKSJk2a0KdPH+zt7fGLPK8c6aSFgAz/yAuS+BQgCkJKjWHDhjF69Gg2bdqEIAgEBARw9epVxo8fz4wZMzJtN9+IT/HixTl48CB9+vRh+vTp6OjooKurq7y+9FhHRwcjI6MUj3V0dJTJ5V1cXKhWrRqFbAOwKmuQdJUzpGhpPWSy/4K0RBQkKmJz8Lcgke3kgt0uTTNx4kTCwsJo1qwZsbGxNG7cGD09PcaPH8/IkSMzbTffiA8kxTP4+Pio1WZ0dDSHDh3i3LlzeN4+wL3zgURHJI1+rMoZMMzVHtsqSWfDBGSY69mrtX+J3E1BqVg6b948pk2bxuPHj1EoFFSuXJlChQplyWa+Eh9NYGhoSO/evenduzfPQttw7d1CQt8l4Pc0mj1L/Fk56jnzj1VDz0ALEZFypmlnPJTIpyj+vVRpl8cxNDSkTp06arMniU8GKGvaidvPj1PI/AE1mphhaqnDjK4P8b4bTeVvjKlbZCyFdEp+3ZBEviE/j3y+lIf8UzZt2pQp+5L4ZACZoE3vehsBqFyvMGVqJFWbMNEuQ/OSU7EyksreFDjy8ZrPli1bsLGxoVatWhpJjSOJTwb59ttvuXLlCiaychxbn5RaoJnddKyM0i+SKJGPycdb7c7OzuzatQsfHx8GDRqEk5MTFhYWarOfb4IMs4ooJhISc57XITtwPzCXcePHYmZmxu+//56i3bZt2wBSlFN+9epVtvoqkXvIDZkMNYWbm5uy4suRI0ewtrbG0dGRU6dOqWUkVCBHPrGxsRw/fpySJUtSv359gmNOcfryeErZRzFl2Dsu/x2tbKut/d+v6PHjx8r8JfXr12ffvn08fPiQZs2aZft7kMgd5Pda7Xp6esoNl1evXrFlyxaGDx9OQkICjx8/ztKOV4ETn+PHjzNo0CBlNsIJU/rywOsAJ/dH0qKDEZf/jmbEVAv+PhxJdJSCdo7/5VsZO3Yscrmc06dP06pVUiBht27dcuR9SOQS8vG063OSk5iJoqjM75MVCsy0S6FQMGXKFNq3b0+dOnW4ceMGAIvmb+fm5Ri0deDs0SgATu6P4OWzBGb/XpSgqOVcuHgWQRA4ffo048ePVwqPhERuqF6hSeLi4ti5cyetWrWiQoUKPHjwgD/++AM/Pz8pzkcVRFFkxIgRrF27loULFzJ+/HhkMhm3Hxzh7qth2FfUJTpSQXsHPxSKpC+p+HiR8DAFD+585OLBRUBS8uw+ffrk8LuRyE3k56324cOHs2vXLkqXLs3AgQPZtWsXhQurrwpxgRCf7du3s2bNGjZs2MDgwYOV923tjYkxTppWmZhp4fCNPjcvx2JXXhdBgNF9klIFmFuE079/f+bOnYuxsXGOvAeJXEo+nnatWbOG0qVLU6ZMGS5cuMCFCxfSbLd///5M2Ve7+ISGROHr/Q4dHS3KVSqJrm7O69vEiRPp2bNnqqApXa2UaV679jXh5uVYylXWZfqSIty5HouODvzQditFTb7PTpcl8goiqkUv5z3toV+/fiolmM8salOGsNBoVi8+wYW/HysrWhQy0ecHp29x7P9digOY2U1YWBju7u74+flx5coV5X0j3QoY6lQmOuEpoKBpGyPcz5eiuJU22joC9RoZoi0zx9JY2s2SSJv8PO3asmWLRu2rZcE5MiKWsYM3ceHvRylK6USGx7LZzYPfFxzLkL2PHz8yYMAAxo4dS2xsLCNGjODw4cOZ8i0mJoayZcsC0LFjx1TP21m4/JuRMOlXUcpWB20dARAAETsLF2SCTqb6ligAiPw39frildOO5j7UMvI5uOs6ga+DUaQTSHX8wC3adatNuYqqpRjdvn07W7duBeDkyZM8ffqUzZs3c+XKFWrWrJnmayIjI/Hx8Ul1Xb9+nfDwcP744w9GjBiR6nUm+nWpUmwHPsGziE54oryvp10KW/OpFDZsrZLPEgWUfLzmo2nUIj7HD9xKV3gAtLRknDp8R2XxGTFiBOHh4bi4uPD06VNMTU0pU6YM7dq1o3379tjY2BAXF6cUGG9vb96/f698vaGhIXZ2dtjZ2TFs2DAGDRqkHP2khYl+PWqUOEp0wlPiEgPQ0SpMId3qCEKBiUSQyCSCXERQYVgjyCXx+Zwsi48oinx8H/HFNnK5gneBoSrb1NHRYcaMGVhZWfHTTz8xbtw4BgwYwMSJE7lz5w4HDx5EV1cXe3t7KlSoQNu2bbG3t1cKTtGiRTO8UCYIAka6lTDSrZSh10kUcKSRT6bJsvgIgkAhY30iI9LP4KelJcPEzCjDtgcPHszhw4eZMWMGQ4YMyVJRegkJjSCJT6ZRy7yiZfsayLTSH2nI5QpatK2msr34+HgUCkWKhWZPT88s+ykhoXZUWmxWUaAKGGpZ8+ne5xvOHr9HVFQcis/mtjKZQPXattSsWybFfS8vL/bs2UO5cuXo1q0bly5d4ujRoyQkJLBhwwZ69+6tLE42bdo0evTooQ5XJSTUi4KkjVFV2kmkQC3iU7S4KUvWD+K3qXvx9X6HICQJvSBA45aVGTOtU6o1mEWLFrFxY1JirlKlShEWFkZERASVKlUiJiaGTZs2MWrUKCApf2z9+vXT3CqXkMhJ8nOcj6ZRW5ChjV0R1ux05vH917x4GoCOjja1v7GnWAmzFO3WrFmDm5sbr1+/BmDOnDlcvXqV48eP4+DgwK1btwgNDWXs2LEcO3YMc3NzQkJCSExMVJerEhLqQ1rzyTRqPfsgCAJValhTpYZ1um0uXrzIgwcPEASBNm3a4OjoyLRp09i+fTs2NjYAmJmZsXnzZnW6JiGhGRQqFu7Kg8nENI1GD14pFArc3Nzo3bs3hQsXZuvWrbRq1YoPHz7w8OFDjh8/rpyO9evXT5OuSEhoBmnkk2k0Ij6iKBIYGIiPjw+jRo1i7dq17Ny5kwEDBijbmJmZaaJrCYnsRVSAKom1RGnF+XPUKj7u7u7cunWLN2/e8NdffynvP3z4kHr16gHg6upKXFwc9erV0+iJWQmJbEGhYqYwadqVCrWIj0KhYP369Tg7OyvvrVq1itGjR5OYmMiFCxfYuHEjRYoUYejQoZiamqqjWwmJnEdUqDaqkUY+qVCL+Dg5ObFz5050dHRISEigd+/eDB8+nMGDBxMYGIitrS2NGzdWR1cSErkLac0n06glwvnnn38GICEhQXnv9u3b6OnpYWtrq44uJCRyJwpR9UsiBVka+YSFhaGvr4+ZmRlmZmaEhoYCsHPnTl69esXly5fV4aOERO5FGvlkmgyJT69evQgICKBDhw7cv3+fkydPYmhoSEREBHZ2djg5OfHs2TPKli3LtGnTNOWzhETuITmZmCrtJFKQIfE5ffo0RYoUYfPmzVSoUIFp06YRFxdH2bJl6dOnD3p6el83IiGRn8gFI5958+Zx7Ngx7t69i66urnIGksy9e/dYsGABly5d4sOHD9ja2uLs7Mzo0aM15pMqZEh8Tp48ScuWLTXli4RE3kOhQKVTo2oospce8fHx/PDDD3zzzTfK85KfcuvWLYoUKcKOHTuwtrbmypUrDB06FC0tLUaOHKkxv75GhsQnOVZHQkLiX3KB+MyaNQtIP+H751Vb7OzsuHr1Kvv378874iMhIfEZeTTIMCwsDAsLixz1QRIfCYksIIoKRBUCCJPbhIeHp7ivp6eX7WulV69eZffu3Rw7lrGqMupGypAuIZEVRBVjfP5dcLa2tsbU1FR5zZ8/P02zM2fORBCEL143b97MsLuPHj2ic+fOzJgxg1atWmXprWcVaeQjIZEVRBWnXf+Kj7+/PyYmJsrb6Y16Ro4cSa9evb5oMqMBvI8fP6Z58+YMGTKE6dOnZ+i1mkASHwmJrKBQgKD62S4TE5MU4pMelpaWWFpaZtU7JY8ePaJ58+b079+fefPmqc1uVpDER0IiK2Rw5KMJ/Pz8CA4Oxs/PD7lczt27dwEoW7YshQoV4tGjRzRr1ozvv/+e//3vfwQFBQGgpaVFkSJFNObX15DER0IiC4gKBaIKIx9VFqUzy4wZM5QVfgFq1aoFwLlz52jatCl79uzh/fv3/Pnnn/z555/KdjY2Nvj6+mrMr68hiOLXJTk8PBxTU1PCwsJUGjJKSORG1Pl3nGyruUFPtAXdr7ZPFOPxiHGXPkOfII18JCSyglwBgvzr7aR8PqmQxEdCIguIChFRhQTyKkwwChyS+EhIZAVRxeMV0sgnFZL4SEhkAWnkk3kyJD6fh4ZLSOQlNPH3myjGqTSqSSThq20KGiqJT3IUprV1+sUAJSTyAsWLF0dX9+u7U19DV1eX4sWLcynoeLb3nV9QaasdIC4ujri4OE37IyGhUXR1ddHX11eLrdjYWOLj43Ok7/yAyuIjISEhoU6kU+0SEhI5giQ+EhISOYIkPhISEjmCJD4SEhI5giQ+EhISOYIkPhISEjmCJD4SEhI5wv8Bcemjw7g6+qoAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import cartopy\n", "from cartopy import crs as ccrs\n", "from matplotlib import pyplot as plt\n", "\n", "# Create map projection\n", "proj = ccrs.PlateCarree()\n", "\n", "# If using another projection, remember you'll need to reproject the snapshot's coordinates.\n", "# snapshot.to_crs(proj, inplace=True)\n", "\n", "# Create figure and axes\n", "fig = plt.figure(figsize=(5, 3))\n", "ax = fig.add_subplot(projection=proj)\n", "\n", "# Set the map extent to the bounding box and draw the coastlines\n", "ax.set_extent([bbox[0], bbox[2], bbox[1], bbox[3]])\n", "ax.coastlines()\n", "\n", "# Plot markers color-coded according to the temperature recorded.\n", "ax = snapshot.plot(column=\"MEAN_TEMPERATURE\", ax=ax, cmap=plt.cm.viridis, legend=True)\n", "\n", "# Add a label to the colorbar\n", "cax = ax.figure.axes[-1]\n", "cax.set_ylabel(\"Mean temperature [°C]\")" ] }, { "cell_type": "markdown", "id": "17", "metadata": {}, "source": [ "Another useful filter is on dates and times. Let's say we only want data in a given period, we simply create a request with the `datetime` argument and a `/` separating the start and end dates. You may leave the start or end date open-ended using `..` instead of a date time string." ] }, { "cell_type": "code", "execution_count": 10, "id": "18", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://api.weather.gc.ca/collections/climate-daily/items?CLIMATE_IDENTIFIER=8201410&datetime=1990-01-01+00%3A00%3A00%2F1991-01-01+00%3A00%3A00\n" ] } ], "source": [ "url = str(\n", " coll.with_query(\n", " {\n", " \"CLIMATE_IDENTIFIER\": station_id,\n", " \"datetime\": \"1990-01-01 00:00:00/1991-01-01 00:00:00\",\n", " }\n", " )\n", ")\n", "print(url)\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " gdf = gpd.read_file(filename=req, engine=\"pyogrio\")" ] }, { "cell_type": "code", "execution_count": 11, "id": "19", "metadata": {}, "outputs": [], "source": [ "# Convert the datetime string to a datetime object\n", "gdf[\"LOCAL_DATE\"] = pd.to_datetime(gdf[\"LOCAL_DATE\"])\n", "\n", "# Create a time series out of the column for mean temperature\n", "ts = gdf.set_index(\"LOCAL_DATE\")[\"MEAN_TEMPERATURE\"]" ] }, { "cell_type": "code", "execution_count": 12, "id": "20", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the time series\n", "ax = ts.plot()\n", "ax.set_xlabel(\"Time\")\n", "ax.set_ylabel(\"Mean temperature [°C]\")\n", "ax.set_title(gdf.iloc[0][\"STATION_NAME\"])\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "21", "metadata": {}, "source": [ "## Adjusted and Homogenized Canadian Climate Data (AHCCD)\n", "\n", "The Adjusted and Homogenized Canadian Climate Data (AHCCD) datasets from ECCC are climate station data adjusted to account for discontinuities in the record, such as instrument relocation. The collections related to these datasets are `ahccd-stations` for station metadata, `ahccd-annual`, `ahccd-monthly` and `ahccd-seasonal` for temporally aggregated time series, and `ahccd-trends` for trends computed on the data.\n", "\n", "Now, unfortunately, the fields for these datasets are different from those of the climate stations... One strategy to find out what keywords are accepted is to make a query with no filter except for `limit=1`. Another is to go to the collection search page (click on the link printed below), and inspect the column names." ] }, { "cell_type": "code", "execution_count": 13, "id": "22", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://api.weather.gc.ca//collections/ahccd-stations/items\n" ] }, { "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", "
ididentifier__identifiantstation_id__id_stationstation_name__nom_stationmeasurement_type__type_mesureperiod__periodetrend_value__valeur_tendanceelevation__elevationprovince__provincejoined__rejointyear_range__anneesstart_date__date_debutend_date__date_fingeometry
0240305324030532403053PANGNIRTUNG Apressure_sea_levelAnnNone22.6NU1None2014-12-012014-12-01POINT (-65.70000 66.13000)
\n", "
" ], "text/plain": [ " id identifier__identifiant station_id__id_station \\\n", "0 2403053 2403053 2403053 \n", "\n", " station_name__nom_station measurement_type__type_mesure period__periode \\\n", "0 PANGNIRTUNG A pressure_sea_level Ann \n", "\n", " trend_value__valeur_tendance elevation__elevation province__province \\\n", "0 None 22.6 NU \n", "\n", " joined__rejoint year_range__annees start_date__date_debut \\\n", "0 1 None 2014-12-01 \n", "\n", " end_date__date_fin geometry \n", "0 2014-12-01 POINT (-65.70000 66.13000) " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "# The url to query station metadata - this should behave similarly as `climate-stations`\n", "ahccd_stations = host / \"collections\" / \"ahccd-stations\" / \"items\"\n", "url = ahccd_stations.with_query({\"limit\": 1})\n", "print(ahccd_stations)\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " gpd.read_file(filename=req, engine=\"pyogrio\")" ] }, { "cell_type": "markdown", "id": "23", "metadata": {}, "source": [ "So if we want to see the stations in Yukon, we'd have to query with the `province__province` keyword... Now how do you know what code to use for provinces? One solution is to go again to the [collection search page](https://api.weather.gc.ca/collections/ahccd-monthly/items), zoom on the area of interest and click on the check box to \"Only show items by map view\", then inspect the results." ] }, { "cell_type": "code", "execution_count": 14, "id": "24", "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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ididentifier__identifiantstation_id__id_stationstation_name__nom_stationmeasurement_type__type_mesureperiod__periodetrend_value__valeur_tendanceelevation__elevationprovince__provincejoined__rejointyear_range__anneesstart_date__date_debutend_date__date_fingeometry
0210030021003002100300CARMACKSsnowAnnNaN525.00YT0None2008-02-012008-02-01POINT (-136.30000 62.10000)
1210046021004602100460DRURY CREEKsnowAnnNaN609.00YT0None2009-04-012009-04-01POINT (-134.39000 62.20190)
2210063121006312100631HAINES JUNCTIONsnowAnnNaN596.00YT1None2008-09-012008-09-01POINT (-137.50530 60.74950)
3210108121010812101081SWIFT RIVERsnowAnnNaN891.00YT0None2008-02-012008-02-01POINT (-131.18330 60.00000)
4210018421001842100184BURWASHtemp_meanAnnNaN80.00YT1None2019-12-012019-12-01POINT (-139.00000 61.30000)
5210030121003012100301CARMACKStemp_meanAnnNaN54.00YT1None2019-12-012019-12-01POINT (-136.20000 62.10000)
62100LRP2100LRP2100LRPDAWSONtemp_meanAnn2.3437.00YT11901-20192019-12-012019-12-01POINT (-139.10000 64.00000)
7210051821005182100518FARO_(AUT)temp_meanAnnNaN71.00YT1None2019-12-012019-12-01POINT (-133.30000 62.20000)
8210063021006302100630HAINES_JUNCTIONtemp_meanAnnNaN59.00YT0None2019-12-012019-12-01POINT (-137.50000 60.70000)
9210066021006602100660IVVAVIK_NAT_PARKtemp_meanAnnNaN24.00YT0None2019-12-012019-12-01POINT (-140.10000 69.10000)
10210068221006822100682KOMAKUK_BEACHtemp_meanAnnNaN1.00YT1None2018-06-012018-06-01POINT (-140.20000 69.60000)
11210069321006932100693MACMILLAN_PASStemp_meanAnnNaN137.00YT0None2019-12-012019-12-01POINT (-130.00000 63.20000)
12210070121007012100701MAYOtemp_meanAnnNaN50.00YT1None2019-12-012019-12-01POINT (-135.80000 63.60000)
13210080521008052100805OLD_CROWtemp_meanAnnNaN25.00YT1None2019-12-012019-12-01POINT (-139.80000 67.50000)
14210088021008802100880PELLY_RANCHtemp_meanAnnNaN44.00YT0None2017-08-012017-08-01POINT (-137.30000 62.80000)
15210094121009412100941ROSS_RIVERtemp_meanAnnNaN69.00YT1None2008-08-012008-08-01POINT (-132.40000 61.90000)
16210095021009502100950SHINGLE_POINTtemp_meanAnnNaN4.00YT0None2019-12-012019-12-01POINT (-137.20000 68.90000)
17210110221011022101102TESLINtemp_meanAnnNaN70.00YT1None2019-12-012019-12-01POINT (-132.70000 60.10000)
18210113521011352101135TUCHITUAtemp_meanAnnNaN72.00YT0None2014-09-012014-09-01POINT (-129.20000 60.90000)
19210120421012042101204WATSON_LAKEtemp_meanAnn1.5368.00YT11939-20192019-12-012019-12-01POINT (-128.80000 60.10000)
20210131021013102101310WHITEHORSEtemp_meanAnnNaN70.00YT1None2019-12-012019-12-01POINT (-135.10000 60.70000)
21210130321013032101303WHITEHORSE_Atemp_meanAnn1.8070.00YT11943-20192019-12-012019-12-01POINT (-135.00000 60.70000)
22210010021001002100100AISHIHIK Apressure_sea_levelAnnNaN966.20YT0None1966-09-011966-09-01POINT (-137.48000 61.65000)
23210016021001602100160BEAVER CREEK Apressure_sea_levelAnnNaN649.00YT1None2014-12-012014-12-01POINT (-140.87000 62.41000)
24210040021004002100400DAWSONpressure_sea_levelAnnNaN320.00YT0None1976-01-011976-01-01POINT (-139.43000 64.05000)
25210040221004022100402DAWSON Apressure_sea_levelAnnNaN370.30YT1None2014-12-012014-12-01POINT (-139.13000 64.04000)
26210051721005172100517FARO Apressure_sea_levelAnnNaN716.60YT1None2014-12-012014-12-01POINT (-133.38000 62.21000)
27210063621006362100636HERSCHEL ISLANDpressure_sea_levelAnnNaN1.20YT0None2014-12-012014-12-01POINT (-138.91000 69.57000)
28210068521006852100685KOMAKUK BEACH Apressure_sea_levelAnnNaN7.30YT0None1993-06-011993-06-01POINT (-140.18000 69.58000)
29210080021008002100800OLD CROW Apressure_sea_levelAnnNaN251.20YT1None2014-12-012014-12-01POINT (-139.84000 67.57000)
30210093521009352100935ROCK RIVERpressure_sea_levelAnnNaN731.00YT0None2014-12-012014-12-01POINT (-136.22000 66.98000)
31210100021010002101000SNAG Apressure_sea_levelAnnNaN586.70YT0None1966-08-011966-08-01POINT (-140.40000 62.37000)
32210018221001822100182BURWASH Awind_speedAnnNaN806.20YT1None2014-12-012014-12-01POINT (-139.05000 61.36670)
33210070021007002100700MAYO Awind_speedAnn0.00503.80YT11953-20142014-12-012014-12-01POINT (-135.86670 63.61670)
34210110021011002101100TESLIN Awind_speedAnnNaN705.00YT1None2014-12-012014-12-01POINT (-132.73590 60.17410)
35210120021012002101200WATSON LAKE Awind_speedAnn-0.72687.35YT01953-20142014-11-012014-11-01POINT (-128.82230 60.11650)
36210130021013002101300WHITEHORSE Awind_speedAnn-0.25706.20YT11953-20142014-12-012014-12-01POINT (-135.06880 60.70950)
\n", "
" ], "text/plain": [ " id identifier__identifiant station_id__id_station \\\n", "0 2100300 2100300 2100300 \n", "1 2100460 2100460 2100460 \n", "2 2100631 2100631 2100631 \n", "3 2101081 2101081 2101081 \n", "4 2100184 2100184 2100184 \n", "5 2100301 2100301 2100301 \n", "6 2100LRP 2100LRP 2100LRP \n", "7 2100518 2100518 2100518 \n", "8 2100630 2100630 2100630 \n", "9 2100660 2100660 2100660 \n", "10 2100682 2100682 2100682 \n", "11 2100693 2100693 2100693 \n", "12 2100701 2100701 2100701 \n", "13 2100805 2100805 2100805 \n", "14 2100880 2100880 2100880 \n", "15 2100941 2100941 2100941 \n", "16 2100950 2100950 2100950 \n", "17 2101102 2101102 2101102 \n", "18 2101135 2101135 2101135 \n", "19 2101204 2101204 2101204 \n", "20 2101310 2101310 2101310 \n", "21 2101303 2101303 2101303 \n", "22 2100100 2100100 2100100 \n", "23 2100160 2100160 2100160 \n", "24 2100400 2100400 2100400 \n", "25 2100402 2100402 2100402 \n", "26 2100517 2100517 2100517 \n", "27 2100636 2100636 2100636 \n", "28 2100685 2100685 2100685 \n", "29 2100800 2100800 2100800 \n", "30 2100935 2100935 2100935 \n", "31 2101000 2101000 2101000 \n", "32 2100182 2100182 2100182 \n", "33 2100700 2100700 2100700 \n", "34 2101100 2101100 2101100 \n", "35 2101200 2101200 2101200 \n", "36 2101300 2101300 2101300 \n", "\n", " station_name__nom_station measurement_type__type_mesure period__periode \\\n", "0 CARMACKS snow Ann \n", "1 DRURY CREEK snow Ann \n", "2 HAINES JUNCTION snow Ann \n", "3 SWIFT RIVER snow Ann \n", "4 BURWASH temp_mean Ann \n", "5 CARMACKS temp_mean Ann \n", "6 DAWSON temp_mean Ann \n", "7 FARO_(AUT) temp_mean Ann \n", "8 HAINES_JUNCTION temp_mean Ann \n", "9 IVVAVIK_NAT_PARK temp_mean Ann \n", "10 KOMAKUK_BEACH temp_mean Ann \n", "11 MACMILLAN_PASS temp_mean Ann \n", "12 MAYO temp_mean Ann \n", "13 OLD_CROW temp_mean Ann \n", "14 PELLY_RANCH temp_mean Ann \n", "15 ROSS_RIVER temp_mean Ann \n", "16 SHINGLE_POINT temp_mean Ann \n", "17 TESLIN temp_mean Ann \n", "18 TUCHITUA temp_mean Ann \n", "19 WATSON_LAKE temp_mean Ann \n", "20 WHITEHORSE temp_mean Ann \n", "21 WHITEHORSE_A temp_mean Ann \n", "22 AISHIHIK A pressure_sea_level Ann \n", "23 BEAVER CREEK A pressure_sea_level Ann \n", "24 DAWSON pressure_sea_level Ann \n", "25 DAWSON A pressure_sea_level Ann \n", "26 FARO A pressure_sea_level Ann \n", "27 HERSCHEL ISLAND pressure_sea_level Ann \n", "28 KOMAKUK BEACH A pressure_sea_level Ann \n", "29 OLD CROW A pressure_sea_level Ann \n", "30 ROCK RIVER pressure_sea_level Ann \n", "31 SNAG A pressure_sea_level Ann \n", "32 BURWASH A wind_speed Ann \n", "33 MAYO A wind_speed Ann \n", "34 TESLIN A wind_speed Ann \n", "35 WATSON LAKE A wind_speed Ann \n", "36 WHITEHORSE A wind_speed Ann \n", "\n", " trend_value__valeur_tendance elevation__elevation province__province \\\n", "0 NaN 525.00 YT \n", "1 NaN 609.00 YT \n", "2 NaN 596.00 YT \n", "3 NaN 891.00 YT \n", "4 NaN 80.00 YT \n", "5 NaN 54.00 YT \n", "6 2.34 37.00 YT \n", "7 NaN 71.00 YT \n", "8 NaN 59.00 YT \n", "9 NaN 24.00 YT \n", "10 NaN 1.00 YT \n", "11 NaN 137.00 YT \n", "12 NaN 50.00 YT \n", "13 NaN 25.00 YT \n", "14 NaN 44.00 YT \n", "15 NaN 69.00 YT \n", "16 NaN 4.00 YT \n", "17 NaN 70.00 YT \n", "18 NaN 72.00 YT \n", "19 1.53 68.00 YT \n", "20 NaN 70.00 YT \n", "21 1.80 70.00 YT \n", "22 NaN 966.20 YT \n", "23 NaN 649.00 YT \n", "24 NaN 320.00 YT \n", "25 NaN 370.30 YT \n", "26 NaN 716.60 YT \n", "27 NaN 1.20 YT \n", "28 NaN 7.30 YT \n", "29 NaN 251.20 YT \n", "30 NaN 731.00 YT \n", "31 NaN 586.70 YT \n", "32 NaN 806.20 YT \n", "33 0.00 503.80 YT \n", "34 NaN 705.00 YT \n", "35 -0.72 687.35 YT \n", "36 -0.25 706.20 YT \n", "\n", " joined__rejoint year_range__annees start_date__date_debut \\\n", "0 0 None 2008-02-01 \n", "1 0 None 2009-04-01 \n", "2 1 None 2008-09-01 \n", "3 0 None 2008-02-01 \n", "4 1 None 2019-12-01 \n", "5 1 None 2019-12-01 \n", "6 1 1901-2019 2019-12-01 \n", "7 1 None 2019-12-01 \n", "8 0 None 2019-12-01 \n", "9 0 None 2019-12-01 \n", "10 1 None 2018-06-01 \n", "11 0 None 2019-12-01 \n", "12 1 None 2019-12-01 \n", "13 1 None 2019-12-01 \n", "14 0 None 2017-08-01 \n", "15 1 None 2008-08-01 \n", "16 0 None 2019-12-01 \n", "17 1 None 2019-12-01 \n", "18 0 None 2014-09-01 \n", "19 1 1939-2019 2019-12-01 \n", "20 1 None 2019-12-01 \n", "21 1 1943-2019 2019-12-01 \n", "22 0 None 1966-09-01 \n", "23 1 None 2014-12-01 \n", "24 0 None 1976-01-01 \n", "25 1 None 2014-12-01 \n", "26 1 None 2014-12-01 \n", "27 0 None 2014-12-01 \n", "28 0 None 1993-06-01 \n", "29 1 None 2014-12-01 \n", "30 0 None 2014-12-01 \n", "31 0 None 1966-08-01 \n", "32 1 None 2014-12-01 \n", "33 1 1953-2014 2014-12-01 \n", "34 1 None 2014-12-01 \n", "35 0 1953-2014 2014-11-01 \n", "36 1 1953-2014 2014-12-01 \n", "\n", " end_date__date_fin geometry \n", "0 2008-02-01 POINT (-136.30000 62.10000) \n", "1 2009-04-01 POINT (-134.39000 62.20190) \n", "2 2008-09-01 POINT (-137.50530 60.74950) \n", "3 2008-02-01 POINT (-131.18330 60.00000) \n", "4 2019-12-01 POINT (-139.00000 61.30000) \n", "5 2019-12-01 POINT (-136.20000 62.10000) \n", "6 2019-12-01 POINT (-139.10000 64.00000) \n", "7 2019-12-01 POINT (-133.30000 62.20000) \n", "8 2019-12-01 POINT (-137.50000 60.70000) \n", "9 2019-12-01 POINT (-140.10000 69.10000) \n", "10 2018-06-01 POINT (-140.20000 69.60000) \n", "11 2019-12-01 POINT (-130.00000 63.20000) \n", "12 2019-12-01 POINT (-135.80000 63.60000) \n", "13 2019-12-01 POINT (-139.80000 67.50000) \n", "14 2017-08-01 POINT (-137.30000 62.80000) \n", "15 2008-08-01 POINT (-132.40000 61.90000) \n", "16 2019-12-01 POINT (-137.20000 68.90000) \n", "17 2019-12-01 POINT (-132.70000 60.10000) \n", "18 2014-09-01 POINT (-129.20000 60.90000) \n", "19 2019-12-01 POINT (-128.80000 60.10000) \n", "20 2019-12-01 POINT (-135.10000 60.70000) \n", "21 2019-12-01 POINT (-135.00000 60.70000) \n", "22 1966-09-01 POINT (-137.48000 61.65000) \n", "23 2014-12-01 POINT (-140.87000 62.41000) \n", "24 1976-01-01 POINT (-139.43000 64.05000) \n", "25 2014-12-01 POINT (-139.13000 64.04000) \n", "26 2014-12-01 POINT (-133.38000 62.21000) \n", "27 2014-12-01 POINT (-138.91000 69.57000) \n", "28 1993-06-01 POINT (-140.18000 69.58000) \n", "29 2014-12-01 POINT (-139.84000 67.57000) \n", "30 2014-12-01 POINT (-136.22000 66.98000) \n", "31 1966-08-01 POINT (-140.40000 62.37000) \n", "32 2014-12-01 POINT (-139.05000 61.36670) \n", "33 2014-12-01 POINT (-135.86670 63.61670) \n", "34 2014-12-01 POINT (-132.73590 60.17410) \n", "35 2014-11-01 POINT (-128.82230 60.11650) \n", "36 2014-12-01 POINT (-135.06880 60.70950) " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "url = ahccd_stations.with_query({\"province__province\": \"YT\"})\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " gpd.read_file(filename=req, engine=\"pyogrio\")" ] }, { "cell_type": "markdown", "id": "25", "metadata": {}, "source": [ "Let's pick the Dawson station (`2100LRP`), which seems to have a long record. Again, use the trick above to see which fields are accepted." ] }, { "cell_type": "code", "execution_count": 15, "id": "26", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idlat__latlon__longidentifier__identifiantstation_id__id_stationperiod_value__valeur_periodeperiod_group__groupe_periodeprovince__provincedatetemp_mean__temp_moyenne...rain_units__pluie_unitessnow__neigesnow_units__neige_unitespressure_sea_level__pression_niveau_merpressure_sea_level_units__pression_niveau_mer_unitepressure_station__pression_stationpressure_station_units__pression_station_uniteswind_speed__vitesse_ventwind_speed_units__vitesse_vent_unitesgeometry
02100LRP.1983.0364-139.12100LRP.1983.032100LRPMarMonthlyYT1983-03-15.7...mmNonemmNonehPaNonehPaNonekphPOINT (-139.10000 64.00000)
12100LRP.1921.0364-139.12100LRP.1921.032100LRPMarMonthlyYT1921-03-16.8...mmNonemmNonehPaNonehPaNonekphPOINT (-139.10000 64.00000)
22100LRP.1992.0664-139.12100LRP.1992.062100LRPJunMonthlyYT1992-0614.2...mmNonemmNonehPaNonehPaNonekphPOINT (-139.10000 64.00000)
32100LRP.1938.0364-139.12100LRP.1938.032100LRPMarMonthlyYT1938-03-13.7...mmNonemmNonehPaNonehPaNonekphPOINT (-139.10000 64.00000)
42100LRP.1963.0964-139.12100LRP.1963.092100LRPSepMonthlyYT1963-096.5...mmNonemmNonehPaNonehPaNonekphPOINT (-139.10000 64.00000)
\n", "

5 rows × 28 columns

\n", "
" ], "text/plain": [ " id lat__lat lon__long identifier__identifiant \\\n", "0 2100LRP.1983.03 64 -139.1 2100LRP.1983.03 \n", "1 2100LRP.1921.03 64 -139.1 2100LRP.1921.03 \n", "2 2100LRP.1992.06 64 -139.1 2100LRP.1992.06 \n", "3 2100LRP.1938.03 64 -139.1 2100LRP.1938.03 \n", "4 2100LRP.1963.09 64 -139.1 2100LRP.1963.09 \n", "\n", " station_id__id_station period_value__valeur_periode \\\n", "0 2100LRP Mar \n", "1 2100LRP Mar \n", "2 2100LRP Jun \n", "3 2100LRP Mar \n", "4 2100LRP Sep \n", "\n", " period_group__groupe_periode province__province date \\\n", "0 Monthly YT 1983-03 \n", "1 Monthly YT 1921-03 \n", "2 Monthly YT 1992-06 \n", "3 Monthly YT 1938-03 \n", "4 Monthly YT 1963-09 \n", "\n", " temp_mean__temp_moyenne ... rain_units__pluie_unites snow__neige \\\n", "0 -15.7 ... mm None \n", "1 -16.8 ... mm None \n", "2 14.2 ... mm None \n", "3 -13.7 ... mm None \n", "4 6.5 ... mm None \n", "\n", " snow_units__neige_unites pressure_sea_level__pression_niveau_mer \\\n", "0 mm None \n", "1 mm None \n", "2 mm None \n", "3 mm None \n", "4 mm None \n", "\n", " pressure_sea_level_units__pression_niveau_mer_unite \\\n", "0 hPa \n", "1 hPa \n", "2 hPa \n", "3 hPa \n", "4 hPa \n", "\n", " pressure_station__pression_station \\\n", "0 None \n", "1 None \n", "2 None \n", "3 None \n", "4 None \n", "\n", " pressure_station_units__pression_station_unites wind_speed__vitesse_vent \\\n", "0 hPa None \n", "1 hPa None \n", "2 hPa None \n", "3 hPa None \n", "4 hPa None \n", "\n", " wind_speed_units__vitesse_vent_unites geometry \n", "0 kph POINT (-139.10000 64.00000) \n", "1 kph POINT (-139.10000 64.00000) \n", "2 kph POINT (-139.10000 64.00000) \n", "3 kph POINT (-139.10000 64.00000) \n", "4 kph POINT (-139.10000 64.00000) \n", "\n", "[5 rows x 28 columns]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "\n", "ahccd_mon = host / \"collections\" / \"ahccd-monthly\" / \"items\"\n", "url = ahccd_mon.with_query({\"station_id__id_station\": \"2100LRP\"})\n", "with urllib.request.urlopen(url=str(url)) as req:\n", " mts = gpd.read_file(filename=req, engine=\"pyogrio\")\n", "mts.head()" ] }, { "cell_type": "markdown", "id": "27", "metadata": {}, "source": [ "Now let's plot the mean temperature time series. Note that the server does not necessarily return a continuous time series, and when plotting time series with gaps, matplotlib just draws a continuous line between values. To convey the presence of missing values, here we'll use the `asfreq(\"MS\")` method to fill-in gaps in the time series with explicit missing values." ] }, { "cell_type": "code", "execution_count": 16, "id": "28", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Mean monthly temperature [°C]')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the DataFrame index to a datetime object and sort it\n", "mts.set_index(pd.to_datetime(mts[\"date\"]), inplace=True)\n", "mts.sort_index(inplace=True)\n", "\n", "# Convert the temperature to a continuous monthly time series (so missing values are visible in the graphic)\n", "tas = mts[\"temp_mean__temp_moyenne\"].asfreq(\"MS\")\n", "\n", "# Mask missing values\n", "tas.mask(tas < -300, inplace=True)\n", "\n", "tas.plot(figsize=(12, 3))\n", "plt.ylabel(\"Mean monthly temperature [°C]\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" } }, "nbformat": 4, "nbformat_minor": 5 }