{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "IoAyLXRyYV7e" }, "source": [ "# **Explorer for CTD Oceanographic Data (Temperature & Salinity)** #\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For an interactive version of this page please visit the Google Colab: \n", "[ Open in Google Colab ](https://colab.research.google.com/drive/1r90tlNG2K3MYs3aete4F8wmQw_eKTZbc)
\n", "(To open link in new tab press Ctrl + click)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively this notebook can be opened with Binder by following the link:\n", "[Explorer for CTD Oceanographic Data (Temperature & Salinity)](https://mybinder.org/v2/gh/s4oceanice/literacy.s4oceanice/main?urlpath=%2Fdoc%2Ftree%2Fnotebooks_binder%2Foceanice_iadc.ipynb)" ] }, { "cell_type": "markdown", "metadata": { "id": "K7RTxO2RpJ8D" }, "source": [ "**Purpose**" ] }, { "cell_type": "markdown", "metadata": { "id": "OW9-wGiIpLnF" }, "source": [ "This notebook provides an interactive tool for exploring in-situ oceanographic measurements using data served through the ERDDAP service hosted by OCEAN ICE.\n", "\n", "Users can:\n", "* Select a start and end date within the observation range (2014–2023).\n", "* Choose key measured parameters, such as **Temperature** and **Pratical Salinity**.\n", "* Generate time series scatter plots to visualize patterns, variability, or anomalies in the selected data.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "0jSyvrebzbB7" }, "source": [ "**Data sources**" ] }, { "cell_type": "markdown", "metadata": { "id": "on5rrRxBsDjO" }, "source": [ "This notebook uses data from the **IADC (International Antarctic Data Centre)** observational network. In particular, the dataset used here (https://er1.s4oceanice.eu/erddap/tabledap/IADC_s1_ctd.html) is a long-term record of Conductivity–Temperature–Depth (CTD) measurements collected by the **S1 mooring**, a fixed oceanographic monitoring station in the Southern Ocean at approximately 1000 meters depth.\n", "\n", "**Dataset characteristics**: \n", "* **Sensors**: CTD package mounted on a deep mooring frame,continuously logging temperature and salinity at fixed depth.\n", "* **Time span**: June 9, 2014 – June 22, 2023, providing nearly a decade of uninterrupted measurements.\n", "* **Measured variables**: Sea water temperature and Practical salinity (PSU).\n", "* **Sampling location**: S1 mooring site is strategically placed to monitor deep inflow and outflow pathways near ice shelf regions, capturing water mass transformation signals.\n", " \n", "This mooring is a fixed sentinel station that plays a pivotal role in:\n", "\n", "* Climate change monitoring, detecting long-term shifts in deep ocean temperature and salinity.\n", "* Ice–ocean interaction studies, observing changes under varying ice shelf conditions.\n", "* Model validation, providing high-quality reference data for numerical simulations.\n", "* Event detection, identifying anomalies such as warm water intrusions that could accelerate basal ice melting." ] }, { "cell_type": "markdown", "metadata": { "id": "SfOdolccv70M" }, "source": [ "**Instructions to use this Notebook**" ] }, { "cell_type": "markdown", "metadata": { "id": "wQMWyycDwI92" }, "source": [ "Run each code cell by clicking the **Play button** (▶️) on the left side of each grey code block. This will execute the code in order and allow all features to work properly." ] }, { "cell_type": "markdown", "metadata": { "id": "xXlrMEfav7LC" }, "source": [ "**Explaining the code**" ] }, { "cell_type": "markdown", "metadata": { "id": "ApYxDCyFv3ej" }, "source": [ "**1.** **Import required libraries**" ] }, { "cell_type": "markdown", "metadata": { "id": "grHGMe-Nv2dz" }, "source": [ "This section sets up the for data fetching, visualization and interactivity. It also defines the ERDDAP data access parameters and the focus variables for the notebook.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "alSRrWz8VDzv" }, "source": [ "**Libraries includes: **\n", "* Data handling and time manipulation: [pandas](https://pandas.pydata.org/docs/), [datetime](https://docs.python.org/3/library/datetime.html)\n", "* Plotting: [matplotlib](https://matplotlib.org/stable/contents.html), [seaborn](https://seaborn.pydata.org/api.html)\n", "* Interactive controls (dropdowns, date pickers): [ipywidgets](https://ipywidgets.readthedocs.io/en/latest/)\n", "* Fetching data from ERDDAP: [requests](https://docs.python-requests.org/en/latest/)\n", "* Notebook display utilities: [IPython.display](https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "sC5BcNfpkHQq" }, "outputs": [], "source": [ "# @title\n", "!pip install seaborn\n", "import requests\n", "import pandas as pd\n", "from datetime import datetime\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from io import BytesIO\n", "from ipywidgets import (\n", " Text,\n", " HBox,\n", " Layout,\n", " Output,\n", " VBox,\n", " HTML,\n", " Label,\n", " Dropdown,\n", " DatePicker\n", ")\n", "from IPython.display import display, clear_output\n", "\n", "time_url = f'https://er1.s4oceanice.eu/erddap/tabledap/IADC_s1_ctd.csv?time&time%3E=2014-06-09T06%3A30%3A00Z&time%3C=2023-06-22T07%3A00%3A00Z&distinct()'\n", "variables = ['Temperature', 'sea_water_practical_salinity']\n" ] }, { "cell_type": "markdown", "metadata": { "id": "F9ND0XKj4uoQ" }, "source": [ "**2**. **Retrieve available measurement dates**" ] }, { "cell_type": "markdown", "metadata": { "id": "YKQrOzks4qIi" }, "source": [ "This section fetches the available dates from the dataset and prepares them for use in interactive widgets." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "Zm48a0J0sW9v" }, "outputs": [], "source": [ "# @title\n", "time_url = f'https://er1.s4oceanice.eu/erddap/tabledap/IADC_s1_ctd.csv?time&time%3E=2014-06-09T06%3A30%3A00Z&time%3C=2023-06-22T07%3A00%3A00Z&distinct()'\n", "time_df = pd.read_csv(time_url)\n", "\n", "# Convert the 'time' column to datetime objects, skipping the first row\n", "time_df['time'] = pd.to_datetime(time_df['time'].iloc[1:])\n", "\n", "# Extract the date part and store it in a new column\n", "time_df['date_only'] = time_df['time'].dt.date\n", "\n", "# Drop duplicate dates, keeping the first occurrence\n", "time_df_unique_dates = time_df.drop_duplicates(subset=['date_only'])\n", "\n", "# Set the time to midnight for each unique date and select only the 'time_midnight' column\n", "time_df_unique_dates = time_df_unique_dates.assign(time_midnight=time_df_unique_dates['date_only'].apply(lambda x: pd.to_datetime(x).replace(hour=0, minute=0, second=0)))[['time_midnight']]\n" ] }, { "cell_type": "markdown", "metadata": { "id": "XcPojG2qsZ85" }, "source": [ "**3. Create interactive date & variable slection controls**" ] }, { "cell_type": "markdown", "metadata": { "id": "v-g_OYJAWT8U" }, "source": [ "This section sets up:\n", "* Two **DatePicker** widgets for start and end date selection.\n", "* A **Dropdown** widget to choose a variable (Temperature or Pratical Salinity).\n", "* An **Output** widget to display the scatter plot.\n", "\n", "The widgets allow **runtime updates** without rerunning the code.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 241, "referenced_widgets": [ "662c76c9b0104f7caf8e7c279fdbda8e", "9470e4ca1e284de99db1356919c349ce", "5f6ffbbbdb164597ac33b175e0c4a86f", "f9c696f5a2a34555bcf7e14b9f23e839", "7cef40c756594bf9a9c4e5b623e51522", "d2cab586b1664fffb31f18519937def9", "086cdb66818d40e785a08500030b117d", "3cf4365967244373a25656c4ef9182e6", "239f56f49aea4f36a5bd85cbbc6fbe0d", "8e6d0df422aa43e0b8f280a7bf2ce01b", "86543689c2c149d88265b53832370b2d", "8b8a639a0f0e42f284e1461b053e56b6", "ff2ad6ee5ef4441381519108e25424fa", "8920cb316a71460d8c4e1d4bd82ad687", "58054e7621294b9aa410912034e41490", "a339ae0ea62d41aea6be5244c559c34f", "563533917c4748619dbffcde2581dd31", "dc38293d12454b57ad29ac852fc195cf", "147d323a6f4445ffa547277a52dcac4a", "16424f1b3db24c11be1a81f4f54d249a", "d23a0d82e5c04c5cb4e01350112a62ef", "b1f246c3381c40859a6eb32308b5984c", "05bb37c05ec240a3964748560e3a16b8", "8e013fa3d6aa48dab92130d18b7c2180", "d54b50b70f544245aa8a69129b40ca92" ] }, "id": "953829f4", "outputId": "952df026-e0e7-42be-a6b0-f2e5bc89baee" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "662c76c9b0104f7caf8e7c279fdbda8e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(Label(value='Select starting date (09/06/2014 to 22/06/2023): '), DatePicker(value=datetime.dat…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "# Convert the 'time_midnight' column to a list of datetime objects\n", "valid_dates = time_df_unique_dates['time_midnight'].tolist()\n", "# Create a DatePicker widget\n", "date_picker = DatePicker(\n", " disabled=False\n", ")\n", "\n", "# Create another DatePicker widget\n", "second_date_picker = DatePicker(\n", " disabled=False\n", ")\n", "\n", "\n", "# You can optionally set a default date if desired\n", "if valid_dates and pd.notna(valid_dates[1]):\n", " date_picker.value = valid_dates[1].date()\n", " if len(valid_dates) > 2: # Set a different default for the second picker if possible\n", " second_date_picker.value = valid_dates[-1].date()\n", "\n", "\n", "# Create a Dropdown widget using the 'variables' list\n", "variable_dropdown = Dropdown(\n", " options=variables,\n", " disabled=False,\n", ")\n", "\n", "# Create an Output widget\n", "output_widget = Output()\n", "\n", "# Add a line break widget\n", "space_widget = HTML(\"
\")\n", "\n", "\n", "# Arrange the widgets using VBox and display them\n", "display(VBox([Label('Select starting date (09/06/2014 to 22/06/2023): '), date_picker, Label('Select ending date (09/06/2014 to 22/06/2023): '), second_date_picker, Label('Select a variable: '), variable_dropdown, space_widget, output_widget]))" ] }, { "cell_type": "markdown", "metadata": { "id": "__8MnGZNuCQI" }, "source": [ "**4. Generate and display scatter plot of selected variable**" ] }, { "cell_type": "markdown", "metadata": { "id": "-mDtoWH0XbS5" }, "source": [ "This section fetches the selected varibale and date range, then creates a scatter plot.\n", "\n", "**Note**: the bigger the gap between starting date and ending date the longer it may take to load the data. As a result, updates on the graph might take a few seconds to appear." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "a905fec3" }, "outputs": [], "source": [ "# @title\n", "# Assuming date_picker, variable_dropdown, and output_widget are already defined and populated\n", "\n", "def generate_scatterplot():\n", " selected_start_date = date_picker.value\n", " selected_end_date = second_date_picker.value\n", " selected_variable = variable_dropdown.value\n", "\n", " # Check if both dates and a variable are selected\n", " if selected_start_date is None or selected_end_date is None or selected_variable is None:\n", " with output_widget:\n", " clear_output(wait=True)\n", " print(\"Please select both a start date, an end date, and a variable.\")\n", " return\n", "\n", " # Validate start date\n", " if selected_start_date not in [date.date() for date in valid_dates if pd.notna(date)]:\n", " with output_widget:\n", " clear_output(wait=True)\n", " print(f\"Invalid start date selected: {selected_start_date}, please select a date between {valid_dates[1].date()} and {valid_dates[-1].date()}\")\n", "\n", "\n", " # Validate end date\n", " if selected_end_date not in [date.date() for date in valid_dates if pd.notna(date)]:\n", " with output_widget:\n", " clear_output(wait=True)\n", " print(f\"Invalid end date selected: {selected_end_date}, please select a date between {valid_dates[1].date()} and {valid_dates[-1].date()}\")\n", "\n", "\n", " if selected_start_date > selected_end_date:\n", " with output_widget:\n", " clear_output(wait=True)\n", " print(\"End date cannot be before start date\")\n", "\n", " # Format the dates for the URL (YYYY-MM-DDTHH:MM:SSZ) and replace : with %3A\n", " formatted_start_date = selected_start_date.strftime('%Y-%m-%dT%H:%M:%SZ').replace(':', '%3A')\n", " formatted_end_date = selected_end_date.strftime('%Y-%m-%dT%H:%M:%SZ').replace(':', '%3A')\n", "\n", "\n", " # Construct the graph URL to include both selected_variable and Temperature for coloring\n", " graph_url = f'https://er1.s4oceanice.eu/erddap/tabledap/IADC_s1_ctd.csv?time%2C{selected_variable}&time%3E={formatted_start_date}&time%3C={formatted_end_date}&distinct()'\n", "\n", "\n", " try:\n", " # Fetch the data from the URL\n", " graph_df = pd.read_csv(graph_url, skiprows=[1]) # Skip the units row\n", "\n", " # Convert the 'time' column to datetime\n", " graph_df['time'] = pd.to_datetime(graph_df['time'])\n", "\n", " # Clear previous output and use the output widget\n", " with output_widget:\n", " clear_output(wait=True)\n", " # Create the scatterplot, coloring by Temperature\n", " plt.figure(figsize=(12, 6))\n", "\n", " sns.scatterplot(data=graph_df, x='time', y=selected_variable, hue=selected_variable, palette='coolwarm', marker=\"x\", legend=False)\n", "\n", " plt.title(f'{selected_variable} over time between {selected_start_date} and {selected_end_date}')\n", "\n", " # Add units to the y-axis label\n", " if selected_variable == 'Temperature':\n", " plt.ylabel(f'{selected_variable} (degree_C)')\n", " elif selected_variable == 'sea_water_practical_salinity':\n", " plt.ylabel(f'{selected_variable} (PSS-78)')\n", " else:\n", " plt.ylabel(selected_variable)\n", "\n", " plt.xlabel('Time')\n", " plt.xticks(rotation=45)\n", " plt.tight_layout()\n", " plt.show()\n", " plt.close() # Close the figure to prevent the extra output\n", "\n", " except Exception as e:\n", " with output_widget:\n", " clear_output(wait=True)\n", " print(f\"Error fetching data or generating plot: {e}\")\n", " print(f\"Attempted URL: {graph_url}\")\n", "\n", "# Link this function to the observe events of the widgets\n", "date_picker.observe(lambda change: generate_scatterplot(), names='value')\n", "second_date_picker.observe(lambda change: generate_scatterplot(), names='value')\n", "variable_dropdown.observe(lambda change: generate_scatterplot(), names='value')\n", "\n", "# Generate the initial plot when the cell is executed\n", "generate_scatterplot()" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "05bb37c05ec240a3964748560e3a16b8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "086cdb66818d40e785a08500030b117d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DropdownModel", "_options_labels": [ "Temperature", "sea_water_practical_salinity" ], "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "DropdownView", "description": "", "description_tooltip": null, "disabled": false, "index": 0, "layout": "IPY_MODEL_d23a0d82e5c04c5cb4e01350112a62ef", "style": "IPY_MODEL_b1f246c3381c40859a6eb32308b5984c" } }, "147d323a6f4445ffa547277a52dcac4a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "16424f1b3db24c11be1a81f4f54d249a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "239f56f49aea4f36a5bd85cbbc6fbe0d": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_d54b50b70f544245aa8a69129b40ca92", "msg_id": "", "outputs": [] } }, "3cf4365967244373a25656c4ef9182e6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_05bb37c05ec240a3964748560e3a16b8", "placeholder": "​", "style": "IPY_MODEL_8e013fa3d6aa48dab92130d18b7c2180", "value": "
" } }, "563533917c4748619dbffcde2581dd31": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "58054e7621294b9aa410912034e41490": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5f6ffbbbdb164597ac33b175e0c4a86f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DatePickerModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "DatePickerView", "description": "", "description_tooltip": null, "disabled": false, "layout": "IPY_MODEL_ff2ad6ee5ef4441381519108e25424fa", "style": "IPY_MODEL_8920cb316a71460d8c4e1d4bd82ad687", "value": { "date": 9, "month": 5, "year": 2014 } } }, "662c76c9b0104f7caf8e7c279fdbda8e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "VBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "VBoxView", "box_style": "", "children": [ "IPY_MODEL_9470e4ca1e284de99db1356919c349ce", "IPY_MODEL_5f6ffbbbdb164597ac33b175e0c4a86f", "IPY_MODEL_f9c696f5a2a34555bcf7e14b9f23e839", "IPY_MODEL_7cef40c756594bf9a9c4e5b623e51522", "IPY_MODEL_d2cab586b1664fffb31f18519937def9", "IPY_MODEL_086cdb66818d40e785a08500030b117d", "IPY_MODEL_3cf4365967244373a25656c4ef9182e6", "IPY_MODEL_239f56f49aea4f36a5bd85cbbc6fbe0d" ], "layout": "IPY_MODEL_8e6d0df422aa43e0b8f280a7bf2ce01b" } }, "7cef40c756594bf9a9c4e5b623e51522": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DatePickerModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "DatePickerView", "description": "", "description_tooltip": null, "disabled": false, "layout": "IPY_MODEL_563533917c4748619dbffcde2581dd31", "style": "IPY_MODEL_dc38293d12454b57ad29ac852fc195cf", "value": { "date": 22, "month": 5, "year": 2023 } } }, "86543689c2c149d88265b53832370b2d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8920cb316a71460d8c4e1d4bd82ad687": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "8b8a639a0f0e42f284e1461b053e56b6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "8e013fa3d6aa48dab92130d18b7c2180": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "8e6d0df422aa43e0b8f280a7bf2ce01b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9470e4ca1e284de99db1356919c349ce": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "LabelModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "LabelView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_86543689c2c149d88265b53832370b2d", "placeholder": "​", "style": "IPY_MODEL_8b8a639a0f0e42f284e1461b053e56b6", "value": "Select starting date (09/06/2014 to 22/06/2023): " } }, "a339ae0ea62d41aea6be5244c559c34f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "b1f246c3381c40859a6eb32308b5984c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "d23a0d82e5c04c5cb4e01350112a62ef": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d2cab586b1664fffb31f18519937def9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "LabelModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "LabelView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_147d323a6f4445ffa547277a52dcac4a", "placeholder": "​", "style": "IPY_MODEL_16424f1b3db24c11be1a81f4f54d249a", "value": "Select a variable: " } }, "d54b50b70f544245aa8a69129b40ca92": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "dc38293d12454b57ad29ac852fc195cf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f9c696f5a2a34555bcf7e14b9f23e839": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "LabelModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "LabelView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_58054e7621294b9aa410912034e41490", "placeholder": "​", "style": "IPY_MODEL_a339ae0ea62d41aea6be5244c559c34f", "value": "Select ending date (09/06/2014 to 22/06/2023): " } }, "ff2ad6ee5ef4441381519108e25424fa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } } } }, "nbformat": 4, "nbformat_minor": 0 }