From a27c5b095e2e499223b82a0245a8eeaca2da774d Mon Sep 17 00:00:00 2001 From: Amy Defnet Date: Wed, 25 Mar 2026 14:37:34 -0400 Subject: [PATCH 1/5] add initial draft streamflow notebook --- ...ow_streamflow_point_scale_evaluation.ipynb | 1915 +++++++++++++++++ pyproject.toml | 1 + 2 files changed, 1916 insertions(+) create mode 100644 examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb diff --git a/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb b/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb new file mode 100644 index 0000000..ea67dae --- /dev/null +++ b/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb @@ -0,0 +1,1915 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Use HydroData to Retrieve Modeled and Observed Streamflow Data for a Watershed of Interest with ParFlow-CONUS Outputs vs USGS Observed Streamflow - Full Evaluation Workflow\n", + "Authors: Irene Garousi-Nejad (igarousi@cuahsi.org), Danielle Tijerina-Kreuzer (dtijerina@cuahsi.org) \n", + "Last updated: March 2026" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Introduction: \n", + "This notebook demonstrates how to perform a point-scale analysis comparing modeled and observed streamflow at selected USGS stream gages. We focus on analyzing model performance for **site-by-site streamflow comparisons**. " + ] + }, + { + "cell_type": "markdown", + "id": "e86aae63", + "metadata": {}, + "source": [ + "## 1. Setup" + ] + }, + { + "cell_type": "markdown", + "id": "e88ed1ef", + "metadata": {}, + "source": [ + "### 1a. Python Environment \n", + "\n", + "Ensure that the `cssi_evaluation` conda environment is selected as your Jupyter kernel. This environment should already be created if you followed the instructions under section \"Set up the recommended local environment\" in the [GettingStarted.md](https://github.com/hydroframe/cssi_evaluation/blob/main/GettingStarted.md) file." + ] + }, + { + "cell_type": "markdown", + "id": "c0f30927", + "metadata": {}, + "source": [ + "Import the libraries needed to run this notebook:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0dfc3fb3", + "metadata": {}, + "outputs": [], + "source": [ + "# import os\n", + "# import sys\n", + "\n", + "# prefix = os.environ['CONDA_PREFIX']\n", + "# os.environ['PROJ_LIB'] = os.path.join(prefix, 'share', 'proj')\n", + "\n", + "import datetime\n", + "# import sys\n", + "# import pyproj\n", + "import pandas as pd\n", + "import numpy as np\n", + "# import xarray as xr\n", + "# import geopandas as gpd\n", + "# from dask.distributed import Client\n", + "# import matplotlib.pyplot as plt\n", + "# import matplotlib.dates as mdates\n", + "import hf_hydrodata as hf\n", + "# import subsettools\n", + "# import hvplot.xarray\n", + "import parflow as pf\n", + "import plotly.express as px\n", + "import plotly.io as pio\n", + "\n", + "from cssi_evaluation.utils import plot_utils\n", + "from cssi_evaluation.utils import evaluation_utils\n", + "\n", + "%load_ext autoreload\n", + "%autoreload 2\n" + ] + }, + { + "cell_type": "markdown", + "id": "8e058228", + "metadata": {}, + "source": [ + "### 1b. Register Pin and Access HydroData\n", + "\n", + "To access the HydroData catalog you will need to sign up for a [HydroFrame account](https://hydrogen.princeton.edu/signup) (do this only once), [create a 4-digit PIN](https://hydrogen.princeton.edu/pin), and register your PIN in order to have access to the HydroData datasets (you will do this in the next code cell below). To note, you PIN will expire after 7 days and will need to recreate it after that time. The [Getting Started page](https://hf-hydrodata.readthedocs.io/en/latest/getting_started.html) has full details on how to sign up for an account and set up a PIN." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a365996d", + "metadata": {}, + "outputs": [], + "source": [ + "# Once you create a PIN, you'll need to register your PIN.\n", + "hf.register_api_pin(\"your_email\", \"your_api_pin\")" + ] + }, + { + "cell_type": "markdown", + "id": "b8620cfc", + "metadata": {}, + "source": [ + "## 2. Define geographic domain and date range\n", + "\n", + "### 2a. Define date range and (optional) file directories" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e50dc99d", + "metadata": {}, + "outputs": [], + "source": [ + "# Start and end times of a water year (to note, these dates were chosen to align with the PFCONUS1 early 2000s runs)\n", + "StartDate = '2002-10-01'\n", + "EndDate = '2003-09-30'\n", + "\n", + "domain_data_path = 'examples/parflow/domain_data/' # path to the model domain data\n", + "\n", + "# # Path to save results (obs and mod stands for observation and modeled, respectively)\n", + "# OBS_OutputFolder = './obs_outputs_PF' \n", + "# MOD_OutputFolder = './mod_outputs_PF'" + ] + }, + { + "cell_type": "markdown", + "id": "31d78679", + "metadata": {}, + "source": [ + "### 2b. Define the watershed of interest\n", + "\n", + "One of the simplest ways to gather data and model output from HydroData is by specifying a [Hydrologic Unit Code](https://www.usgs.gov/national-hydrography/watershed-boundary-dataset). Before we retrieve any hydrologic information, we need to indicate a HUC8 code and use it to gather streamflow observations from USGS stream gages. \n", + "\n", + "✏️ If you have a specific HUC8 in mind, you can change the variable `huc_8_code` below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53c003cb", + "metadata": {}, + "outputs": [], + "source": [ + "# ✏️ Specify HUC8 ID and Name for watershed of interest\n", + "huc_8_code = '08010201'\n", + "print(f'HUC-8 ID: {huc_8_code}')\n", + "\n", + "huc_8_name = 'Bayou De Chien-Mayfield'\n", + "print(f'HUC-8 name: {huc_8_name}')" + ] + }, + { + "cell_type": "markdown", + "id": "feb58871", + "metadata": {}, + "source": [ + "## 3. Retrieve Observed USGS Streamflow Data via `hf_hydrodata`" + ] + }, + { + "cell_type": "markdown", + "id": "0f6cdb0a", + "metadata": {}, + "source": [ + "Here we are providing the code needed to access streamflow observations data from the `hf_hydrodata` Python package for our HUC. If you'd like more detail on this code and the `hf_hydrodata` package, please see the notebook `examples/collect_observations/hydrodata_collect_observations.ipynb`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10ae5690", + "metadata": {}, + "outputs": [], + "source": [ + "point_options = {\n", + " \"dataset\": \"usgs_nwis\",\n", + " \"variable\": \"streamflow\",\n", + " \"temporal_resolution\": \"daily\",\n", + " \"aggregation\": \"mean\",\n", + " \"huc_id\": [huc_8_code], \n", + " \"grid\": \"conus1\",\n", + " \"date_start\": StartDate,\n", + " \"date_end\": EndDate\n", + "}\n", + "\n", + "# Let's request site-level metadata first. \n", + "streamflow_metadata_df = hf.get_point_metadata(point_options)\n", + "\n", + "print(f\"Number of streamflow sites: {len(streamflow_metadata_df)}\")\n", + "streamflow_metadata_df.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9fca907a", + "metadata": {}, + "outputs": [], + "source": [ + "# Let's define a helper plotting function to use throughout the notebook\n", + "def plot_sites_on_map(metadata_df, color_by_site_type=False):\n", + " \"\"\"\n", + " Plots site locations on an interactive map using Plotly.\n", + " \n", + " Parameters:\n", + " - metadata_df: DataFrame containing site metadata with 'latitude', 'longitude', 'site_name', and 'site_id' columns.\n", + " - color_by_site_type: Boolean indicating whether to color points by site type.\n", + " \"\"\"\n", + " pio.renderers.default = \"notebook\"\n", + "\n", + " center = {\n", + " \"lat\": metadata_df[\"latitude\"].mean(),\n", + " \"lon\": metadata_df[\"longitude\"].mean()\n", + " }\n", + "\n", + " fig = px.scatter_map(\n", + " metadata_df,\n", + " lat=\"latitude\",\n", + " lon=\"longitude\",\n", + " color=\"site_type\" if color_by_site_type else None,\n", + " hover_name=\"site_name\", # appears on hover\n", + " hover_data=[\"site_id\"], # additional info\n", + " center=center,\n", + " zoom=8,\n", + " height=600\n", + " )\n", + "\n", + " fig.update_layout(mapbox_style=\"carto-voyager\")\n", + " return fig\n", + "\n", + "plot_sites_on_map(streamflow_metadata_df, color_by_site_type=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fccadf5e", + "metadata": {}, + "outputs": [], + "source": [ + "# Now let's request data.\n", + "streamflow_data_df = hf.get_point_data(point_options)\n", + "\n", + "streamflow_data_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "c7cea09a", + "metadata": {}, + "source": [ + "## 4. Retrieve ParFlow-CONUS1 Modeled Streamflow Data" + ] + }, + { + "cell_type": "markdown", + "id": "4dd99610", + "metadata": {}, + "source": [ + "
\n", + "

📖 Note

\n", + "

\n", + "As a project, we have pre-computed the ParFlow grid cell mappings for every stream gage, groundwater well, SNOTEL station, SCAN station, and AmeriFlux site. Those are stored in the variables conus1_i and conus1_j for the ParFlow-CONUS1 grid and conus2_i and conus2_j for the ParFlow-CONUS2 grid. In this example, we will use those grid indices directly. Please see the `parflow_grid_mapping.ipynb` notebook in this same directory for more details on how we constructed those mappings.\n", + "

\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "998994b5", + "metadata": {}, + "source": [ + "Now that we know where our sites are located, we're going to extract only those grid cells. The ParFlow-CONUS1 simulation results are a gridded dataset, so we'll use the `get_gridded_data` function. This function takes inputs similar to the `get_point_data` function; sometimes fewer parameters are needed. We'll request from the [ParFlow-CONUS1 modern simulations](https://hf-hydrodata.readthedocs.io/en/latest/gen_conus1_baseline_mod.html) dataset.\n", + "- `dataset=\"conus1_baseline_mod\"`\n", + "- `variable=\"streamflow\"`\n", + "- `temporal_resolution=\"daily\"`\n", + "\n", + "**Note**: The `get_gridded_data` function follows NumPy indexing convention. The end date will be exclusive of the request. We are working on updating the point module to be consistent with this convention. For now, set the start and end dates separately within each query.\n", + "\n", + "Because there are only specific locations we want to extract, we'll use the `grid_point` parameter to extract the grid cell associated with each site. As a reminder, the [Python API reference](https://hf-hydrodata.readthedocs.io/en/latest/api_reference.html) has complete information on available parameter options." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b0df123a", + "metadata": {}, + "outputs": [], + "source": [ + "date_start = datetime.datetime.strptime(StartDate, '%Y-%m-%d')\n", + "date_end = datetime.datetime.strptime(EndDate, '%Y-%m-%d')\n", + "\n", + "# Create DataFrame for storing ParFlow results\n", + "timesteps = np.arange(\n", + " date_start,\n", + " date_end + datetime.timedelta(days=1),\n", + " datetime.timedelta(days=1)).astype(\"datetime64[D]\")\n", + "\n", + "model_df = pd.DataFrame(columns=[\"date\"], data=timesteps)\n", + "model_df.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "310c8fc1", + "metadata": {}, + "outputs": [], + "source": [ + "# Gather static fields needed for streamflow calculation\n", + "mannings = 5.0e-5\n", + "dx, dy = 1000, 1000\n", + "\n", + "slope_x = hf.get_gridded_data({\n", + " \"dataset\": \"conus1_domain\",\n", + " \"variable\": \"slope_x\",\n", + " })\n", + "slope_y = hf.get_gridded_data({\n", + " \"dataset\": \"conus1_domain\",\n", + " \"variable\": \"slope_y\",\n", + " })" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ebe3c48", + "metadata": {}, + "outputs": [], + "source": [ + "# Loop over each station in obs_metadata_df\n", + "for idx, row in streamflow_metadata_df.iterrows():\n", + " site_id = row[\"site_id\"] # original USGS site_id\n", + " conus_i = int(row[\"conus1_i\"])\n", + " conus_j = int(row[\"conus1_j\"])\n", + " print(f\"Processing site {site_id} at CONUS grid point ({conus_i}, {conus_j})\")\n", + " \n", + " # Build options dict for this station\n", + " parflow_options = {\n", + " \"dataset\": \"conus1_baseline_mod\",\n", + " \"variable\": \"pressure_head\",\n", + " \"temporal_resolution\": \"daily\",\n", + " \"start_time\": date_start,\n", + " \"end_time\": date_end + datetime.timedelta(days=1), ### NOTE: the gridded function has exclusive end date\n", + " \"grid_point\": [conus_i, conus_j]\n", + " }\n", + " print(f\"Requesting pressure data for site {site_id}\")\n", + " pressure = hf.get_gridded_data(parflow_options)\n", + " \n", + " # Loop through timesteps to calculate streamflow at each timestep\n", + " print(f\"Calculating streamflow for site {site_id}\")\n", + " streamflow = np.empty(len(pressure))\n", + " for t in range(len(pressure)):\n", + " streamflow[t] = pf.tools.hydrology.calculate_overland_flow(pressure[t].reshape(5, 1, 1), \n", + " slope_x[conus_j, conus_i].reshape(1, 1),\n", + " slope_y[conus_j, conus_i].reshape(1, 1),\n", + " mannings, dx, dy, mask=np.ones((5, 1, 1)), \n", + " flow_method=\"OverlandFlow\") / 3600 # convert from m^3/h to cms\n", + " \n", + " # Fill column in model_df\n", + " model_df[site_id] = np.squeeze(np.array(streamflow))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7551a523", + "metadata": {}, + "outputs": [], + "source": [ + "model_df.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "263a9ca5", + "metadata": {}, + "outputs": [], + "source": [ + "streamflow_data_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "c8af8c51", + "metadata": {}, + "source": [ + "Great! Now we have our ParFlow results in the same format as our observations data.\n", + "\n", + "*Optional*: Save observations data and matching ParFlow outputs to .csv files" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6d957d2", + "metadata": {}, + "outputs": [], + "source": [ + "streamflow_data_df.to_csv('streamflow_obs_data.csv', index=False)\n", + "streamflow_metadata_df.to_csv('streamflow_obs_metadata.csv', index=False)\n", + "\n", + "model_df.to_csv('streamflow_parflow_model_data.csv', index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "a59c41c2", + "metadata": {}, + "source": [ + "## 5. Evaluate ParFlow-CONUS1 outputs against observations" + ] + }, + { + "cell_type": "markdown", + "id": "933fd0a9", + "metadata": {}, + "source": [ + "### 5a. Create hydrograph plots for each stream gage\n", + "Plots the observed and modeled values together over time. This helps identify:\n", + " - Periods of systematic bias\n", + " - Timing differences in peaks and lows\n", + " - General agreement in trends" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1929bd27", + "metadata": {}, + "outputs": [], + "source": [ + "# The resulting plots will be saved to the current working directory.\n", + "plot_utils.plot_time_series(\n", + " streamflow_data_df,\n", + " model_df,\n", + " streamflow_metadata_df,\n", + " variable=\"streamflow\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1f44982d", + "metadata": {}, + "outputs": [], + "source": [ + "# Optional: view saved plots in the notebook\n", + "from IPython.display import display, Image\n", + "\n", + "for site_id in list(streamflow_metadata_df[\"site_id\"]):\n", + " img = f\"streamflow_{site_id}.png\"\n", + " display(Image(filename=img))" + ] + }, + { + "cell_type": "markdown", + "id": "dcb98bc1", + "metadata": {}, + "source": [ + "### 5b. Scatter Plot with 1:1 Line:\n", + "Plots each modeled value against its corresponding observed value. This highlights:\n", + " - Accuracy across the full range of values\n", + " - Over- or under-prediction patterns\n", + " - Outliers or extreme events" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48a4c1bc", + "metadata": {}, + "outputs": [], + "source": [ + "# Scatter plot for all sites comparing values\n", + "plot_utils.plot_compare_scatter(streamflow_data_df, model_df, variable=\"streamflow\", log_scale=False)\n" + ] + }, + { + "cell_type": "markdown", + "id": "ea4971e5", + "metadata": {}, + "source": [ + "### 5c. Calculate site-level statistical metrics of comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfac2e30", + "metadata": {}, + "outputs": [], + "source": [ + "metrics_df = evaluation_utils.calculate_metrics(streamflow_data_df, model_df, streamflow_metadata_df)\n", + "metrics_df.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "674a3a28", + "metadata": {}, + "outputs": [], + "source": [ + "# Map Condon diagram\n", + "plot_utils.plot_condon_diagram(metrics_df, variable=\"streamflow\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "af38fe19", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f684df6a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9bc99bf0", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "3249fd08", + "metadata": {}, + "source": [ + "# Hide" + ] + }, + { + "cell_type": "markdown", + "id": "d48fcf12", + "metadata": {}, + "source": [ + "### 1c. Dask \n", + "\n", + "We'll use dask to parallelize our code. To manage parallel computation and visualize progress of long-running tasks, we initialize a Dask “cluster,” which defines how many workers are used and how much computing power each worker has. \n", + "\n", + "In this setup, we create a Dask client with `Client(n_workers=6, threads_per_worker=1, memory_limit='2GB')`, which launches a cluster with 6 workers. Each worker uses a single thread, typically mapped to one CPU core, allowing for efficient parallel processing across 6 cores. Each worker also has a memory limit of 2 GB, for a total of up to 12 GB across the cluster.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bff1b8a4", + "metadata": {}, + "outputs": [], + "source": [ + "# use a try accept loop so we only instantiate the client\n", + "# if it doesn't already exist.\n", + "try:\n", + " print('Dashboard link:', client.dashboard_link)\n", + "except: \n", + " # The client should be customized to your workstation resources.\n", + " client = Client(n_workers=6, threads_per_worker=1, memory_limit='2GB') \n", + " print('Dashboard link:', client.dashboard_link)\n", + "print(client)" + ] + }, + { + "cell_type": "markdown", + "id": "5de02c3b", + "metadata": {}, + "source": [ + "Use the Subsettools function `define_huc_domain()` to get the actual CONUS1 indices associated with the East-Taylor HUC-O8. It returns a tuple `(imin, jmin, imax, jmax)` of grid indices that define a bounding box containing our region (or point) of interest (Note: (imin, jmin, imax, jmax) are the west, south, east and north boundaries of the box respectively) and a mask for that domain." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "965bd6ea", + "metadata": {}, + "outputs": [], + "source": [ + "ij_bounds, mask = subsettools.define_huc_domain([huc_8_code], 'conus1')\n", + "\n", + "np.save(f'{domain_data_path}domainMask_{huc_8_name}_conus1.npy', mask)\n", + "\n", + "plt.imshow(mask, origin='lower')\n", + "print(ij_bounds)\n", + "print(mask.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "61745fb2", + "metadata": {}, + "source": [ + "Using the domain mask and the i,j PF-CONUS1 indices, we use a hf_hydrodata function to find and save the associated grid cell center lat/lon pair for each grid cell in the domain. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ff5c1d4", + "metadata": {}, + "outputs": [], + "source": [ + "# Extract bounds\n", + "i_min, j_min, i_max, j_max = ij_bounds\n", + "mask_shape = mask.shape #shape of the subset rectangular domain\n", + "\n", + "# Create i/j index ranges\n", + "i_vals = np.arange(i_min, i_max)\n", + "j_vals = np.arange(j_min, j_max)\n", + "\n", + "# Create full 2D grid (note indexing order carefully)\n", + "jj, ii = np.meshgrid(j_vals, i_vals, indexing=\"ij\")" + ] + }, + { + "cell_type": "markdown", + "id": "c6ae90bf", + "metadata": {}, + "source": [ + "Because the function `hf.to_latlon()` finds the coordinates at the lower left corner of a grid cell, we add 0.5 to each i,j index pair to find the **lat/lon at the grid cell center**." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13fbc81f", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute grid cell centers\n", + "ii_center = ii + 0.5\n", + "jj_center = jj + 0.5\n", + "\n", + "# Convert to lat/lon (vectorized loop)\n", + "lat = np.zeros(mask_shape)\n", + "lon = np.zeros(mask_shape)\n", + "\n", + "for r in range(mask_shape[0]):\n", + " for c in range(mask_shape[1]):\n", + " lat[r, c], lon[r, c] = hf.to_latlon(\"conus1\",\n", + " ii_center[r, c],\n", + " jj_center[r, c])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa20e59f", + "metadata": {}, + "outputs": [], + "source": [ + "# Save 2D arrays of Lat & Lon\n", + "np.save(f\"{domain_data_path}{huc_8_name}_{huc_8_code}_lat_2d.npy\", lat)\n", + "np.save(f\"{domain_data_path}{huc_8_name}_{huc_8_code}_lon_2d.npy\", lon)\n", + "\n", + "# Save the Lat & Lon in a df (as CSV) matched with the ParFlow-CONUS i,j indices \n", + "grid_df = pd.DataFrame({\n", + " \"i\": ii.ravel(),\n", + " \"j\": jj.ravel(),\n", + " \"lat\": lat.ravel(),\n", + " \"lon\": lon.ravel(),\n", + "})\n", + "grid_df.to_csv(f\"{domain_data_path}df_{huc_8_name}_{huc_8_code}_conus1_gridPoints_LatLon.csv\", index=False)\n", + "\n", + "# Save a shapefile of the watershed Lat & Lon\n", + "grid_gdf = gpd.GeoDataFrame(\n", + " grid_df,\n", + " geometry=gpd.points_from_xy(grid_df.lon, grid_df.lat),\n", + " crs=\"EPSG:4326\"\n", + ")\n", + "# Save the grid points / GeoDataFrame to a shapefile for later use\n", + "grid_gdf.to_file(f\"{domain_data_path}{huc_8_name}_{huc_8_code}_conus1_gridPoints_LatLon.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41e8d63a", + "metadata": {}, + "outputs": [], + "source": [ + "grid_df" + ] + }, + { + "cell_type": "markdown", + "id": "84549c32", + "metadata": {}, + "source": [ + "### 3b. Explore the available SWE data in a watershed " + ] + }, + { + "cell_type": "markdown", + "id": "e088705e", + "metadata": {}, + "source": [ + "
\n", + "

📖 Did you know?

\n", + "

The Snow Telemetry (SNOTEL) network, managed by the USDA Natural Resources Conservation Service (NRCS), monitors snowpack conditions across key watersheds in the western United States to support water supply forecasting and climate monitoring. SNOTEL sites are fully automated stations that continuously measure snow water equivalent (SWE), snow depth, precipitation, temperature, and other meteorological variables throughout the year. Unlike manual snow survey programs, SNOTEL provides high-temporal-resolution observations that enable near–real-time assessment of snowpack evolution and interannual variability. These data are widely used for operational forecasting, drought assessment, and long-term climate analysis.

\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "de83d6b6", + "metadata": {}, + "source": [ + "Explore what SWE data is available at sites within the HUC ID you specified that operated during WY2004 and WY2005. If you want to check other variables besides SWE, you can change the `variable` argument name. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3aa8210e", + "metadata": {}, + "outputs": [], + "source": [ + "avail_df = hf.get_site_variables(variable = \"swe\",\n", + " huc_id = [huc_8_code], grid = 'conus1',\n", + " date_start = StartDate, date_end = EndDate)\n", + "\n", + "# View first five records\n", + "avail_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "268915dc", + "metadata": {}, + "source": [ + "### 3c. Map the SNOTEL stations inside the HUC-08 watershed that have available data in the selected time range \n", + "To note here, we are using pre-loaded shape files for the East-Taylor HUC8, which are located in the `/domain_data/` directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5c95f67", + "metadata": {}, + "outputs": [], + "source": [ + "### Select station locations that fall within the HUC8 watershed\n", + "\n", + "# Path to the watershed shapefile that was just created\n", + "watershed = f'{domain_data_path}East-Taylor_14020001.shp'\n", + "watershed_gdf = gpd.read_file(watershed).to_crs(epsg=4326)\n", + "\n", + "# Create GeoDataFrame of all available stations\n", + "filtered_all_stations_gdf = gpd.GeoDataFrame(\n", + " avail_df,\n", + " geometry=gpd.points_from_xy(\n", + " avail_df.longitude,\n", + " avail_df.latitude\n", + " ),\n", + " crs=\"EPSG:4326\"\n", + ")\n", + "print(\"Sites CRS:\", filtered_all_stations_gdf.crs)\n", + "\n", + "# Combine watershed polygons into one geometry\n", + "watershed_union = watershed_gdf.geometry.unary_union\n", + "\n", + "# Filter stations that fall within the watershed\n", + "sites_in_watershed = filtered_all_stations_gdf[\n", + " filtered_all_stations_gdf.geometry.within(watershed_union)\n", + "].copy()\n", + "\n", + "sites_in_watershed.reset_index(drop=True, inplace=True)\n", + "\n", + "print(f\"Total sites in watershed: {len(sites_in_watershed)}\")\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "06a6b39b", + "metadata": {}, + "source": [ + "Plot these sites on a map. Then, hover over the pins to see the site names." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1e3bc39", + "metadata": {}, + "outputs": [], + "source": [ + "## TODO: REPLACE WITH CSSI_EVALUATION.PLOTS FUNCTIONS\n", + "\n", + "# this may take a moment to load, but it should pop up in a new window\n", + "m = plot_utils.plot_sites_within_domain(sites_in_watershed, watershed_gdf, zoom_start=9)\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "354fc021", + "metadata": {}, + "source": [ + "## 4. Retrieve SNOTEL point observations and metadata from HydroData \n", + "Use the `hf.get_point_data()` function to retrieve daily, start-of-day SWE from SNOTEL sites:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d74eeccb", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a folder to save observations\n", + "isExist = os.path.exists(OBS_OutputFolder)\n", + "if isExist == True:\n", + " exit\n", + "else:\n", + " os.mkdir(OBS_OutputFolder)" + ] + }, + { + "cell_type": "markdown", + "id": "b1805ac2", + "metadata": {}, + "source": [ + "### 4a. Get HydroData Observed SWE\n", + "Gather the SNOTEL data for all stations within the watershed and save CSV:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f0f2beb6", + "metadata": {}, + "outputs": [], + "source": [ + "# Request point observations data\n", + "data_df = hf.get_point_data(dataset=\"snotel\", variable=\"swe\", temporal_resolution=\"daily\", aggregation=\"sod\",\n", + " date_start=StartDate, date_end=EndDate,\n", + " huc_id=[huc_8_code], grid='conus1')\n", + " #polygon=watershed_bbox, polygon_crs=watershed_crs)\n", + "\n", + "# save\n", + "data_df.to_csv(f'./{OBS_OutputFolder}/df_{huc_8_name}_{huc_8_code}_SNOTEL.csv', index=False)\n", + "\n", + "# Ensure date column is datetime\n", + "data_df[\"date\"] = pd.to_datetime(data_df[\"date\"])\n", + "\n", + "# View first five records\n", + "data_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "fb365fbf", + "metadata": {}, + "source": [ + "### 4b. Get Metadata for HydroData Observed SWE\n", + "Also, retrieve the metadata for the same stations we retrieved SWE observations for:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1cb40a7c", + "metadata": {}, + "outputs": [], + "source": [ + "# Request site-level attributes for these sites\n", + "metadata_df = hf.get_point_metadata(dataset=\"snotel\", variable=\"swe\", temporal_resolution=\"daily\", aggregation=\"sod\",\n", + " date_start=StartDate, date_end=EndDate,\n", + " huc_id=['14020001'], grid='conus1')\n", + "\n", + "# save\n", + "metadata_df.to_csv(f'./{OBS_OutputFolder}/df_{huc_8_name}_{huc_8_code}_SNOTEL_metadata.csv', index=False)\n", + "\n", + "# View first five records\n", + "metadata_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "d17b371a", + "metadata": {}, + "source": [ + "The metadata file is an important addition to the observations and it is recommended to always gather and save this for the observations you are using (particularly to support reproducibility within an open-science workflow). The saved file has useful attributes like site names, first and last date of available data, lat/lon, and the query URL. \n", + "\n", + "Additionally, the metadata contains **ParFlow-CONUS1 and ParFlow-CONUS2 `i,j` indices, which indicate the exact model domain grid cell the observation aligns with**. This is a useful HydroData feature that removes the need for users to manually match station latitude/longitude coordinates to the appropriate model grid cell, as this spatial mapping is handled directly within HydroData. We will use these indices below to extract PF-CONUS1 modeled SWE for each SNOTEL station in the section below. " + ] + }, + { + "cell_type": "markdown", + "id": "0e50455e", + "metadata": {}, + "source": [ + "## 5. Retrieve ParFlow-CONUS1 Modeled Snow Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "545a9d22", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a folder to save results\n", + "isExist = os.path.exists(MOD_OutputFolder)\n", + "if isExist == True:\n", + " exit\n", + "else:\n", + " os.mkdir(MOD_OutputFolder)" + ] + }, + { + "cell_type": "markdown", + "id": "56eb4bb4", + "metadata": {}, + "source": [ + "The following section retrieves ParFlow-CONUS1 data for each SNOTEL site within our HUC-08 watershed. The code identifies the CONUS1 `i,j` indices associated with each SNOTEL site, indicated in the `metadata_df`. It then extracts the CONUS1 modeled SWE output for the site and the period of interest, returning the result as a DataFrame. To fairly compare with SNOTEL, which reports SWE once daily at the start of the local day, model output is aggregated by day, using the argment `\"temporal_resolution\": \"daily\"`. Finally, the processed data is saved as a CSV file for each site. \n", + "\n", + "### 5a. ParFlow CONUS1 Model Dataset Information\n", + "We can print some information about the model output dataset by using the `hf.get_catalog_entry()` to get the CONUS1 model dataset metadata. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10647da1", + "metadata": {}, + "outputs": [], + "source": [ + "conus1_options = {\n", + " \"dataset\": \"conus1_baseline_mod\",\n", + " \"variable\": \"swe\"\n", + "}\n", + "hf.get_catalog_entry(conus1_options)" + ] + }, + { + "cell_type": "markdown", + "id": "c6fd1306", + "metadata": {}, + "source": [ + "Before we gather model outputs at the specific SNOTEL sites, we can visualize SWE across our HUC-08. This is plotted for one day at 1km lateral resolution." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba48a33a", + "metadata": {}, + "outputs": [], + "source": [ + "# retrieve gridded PF-CONUS1 SWE for the entire HUC8 watershed\n", + "grid_swe_options = {\n", + " \"dataset\": \"conus1_baseline_mod\",\n", + " \"variable\": \"swe\",\n", + " \"temporal_resolution\": \"daily\",\n", + " \"start_time\": '2004-04-01', ### TO NOTE: the gridded function has exclusive end date, so this is hardcoded for now \n", + " \"end_time\": '2004-04-02',\n", + " \"huc_id\": huc_8_code\n", + " }\n", + " \n", + " # Get gridded data\n", + "grid_swe = hf.get_gridded_data(grid_swe_options)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b82b9574", + "metadata": {}, + "outputs": [], + "source": [ + "grid_swe_map = xr.DataArray(grid_swe[0], dims=(\"y\", \"x\"), name=\"SWE\")\n", + "grid_swe_map.hvplot.image(cmap=\"YlGnBu\", colorbar=True, aspect=\"equal\", title=f\"{huc_8_name} Gridded SWE on 2004-04-01\")\n" + ] + }, + { + "cell_type": "markdown", + "id": "73a13787", + "metadata": {}, + "source": [ + "Now, grab the PF-CONUS1 modeled SWE from the SNOTEL site locations. Here we use the CONUS1 i and j indices from the `metadata_df` and grab the SWE from those grid cells. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17143151", + "metadata": {}, + "outputs": [], + "source": [ + "# Copy data_df to model_df so we have the same timestamps and site_id structure\n", + "model_df = data_df.copy()\n", + "\n", + "# Set all non-date columns to NaN to prepare for filling in model data\n", + "non_date_cols = model_df.columns.difference([\"date\"])\n", + "model_df[non_date_cols] = np.nan\n", + "\n", + "# Rename site_id columns for PF outputs \n", + "model_df.columns = [\n", + " col if col == \"date\" else col.replace(\":SNTL\", \"\") + \":PFCONUS1\"\n", + " for col in model_df.columns\n", + "]" + ] + }, + { + "cell_type": "markdown", + "id": "523bd35c", + "metadata": {}, + "source": [ + "Use the function `hf.get_gridded_data()` and PF-CONUS1 `i,j` indices to select the SWE output for the correct location and time period: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a814204c", + "metadata": {}, + "outputs": [], + "source": [ + "# Loop over each station in metadata_df\n", + "for idx, row in metadata_df.iterrows():\n", + " site_id = row[\"site_id\"] # original SNTL site_id\n", + " col_name = site_id.replace(\":SNTL\", \"\") + \":PFCONUS1\" # corresponding column in model_df\n", + " conus_i = int(row[\"conus1_i\"])\n", + " conus_j = int(row[\"conus1_j\"])\n", + " \n", + " # Build options dict for this station\n", + " options = {\n", + " \"dataset\": \"conus1_baseline_mod\",\n", + " \"variable\": \"swe\",\n", + " \"temporal_resolution\": \"daily\",\n", + " \"start_time\": '2003-10-01', ### TO NOTE: the gridded function has exclusive end date, so this is hardcoded for now \n", + " \"end_time\": '2005-10-01',\n", + " \"grid_point\": [conus_i, conus_j]\n", + " }\n", + " \n", + " # Get gridded data\n", + " data = hf.get_gridded_data(options)\n", + " \n", + " # Fill column in model_df\n", + " # Convert to numeric in case hf returns lists or other types\n", + " model_df[col_name] = np.squeeze(np.array(data))\n", + "\n", + "# Ensure date column is datetime\n", + "model_df[\"date\"] = pd.to_datetime(model_df[\"date\"])\n", + "\n", + "# Save\n", + "model_df.to_csv(f'./{MOD_OutputFolder}/df_{huc_8_name}_{huc_8_code}_PFCONUS1.csv', index=False)\n", + " \n", + "model_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "7464828b", + "metadata": {}, + "source": [ + "## 6. Quick plot sanity check \n", + "Plot a simple timeseries of modeled and observed SWE to make sure our data retrieval was successful. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbe43f6a", + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 4))\n", + "\n", + "ax.plot(data_df[\"date\"], model_df[\"380:CO:PFCONUS1\"], label=\"Modeled\", linewidth=2)\n", + "\n", + "ax.plot(data_df[\"date\"], data_df[\"380:CO:SNTL\"], label=\"Observed\", linewidth=2)\n", + "\n", + "ax.set_xlabel(\"Date\")\n", + "ax.set_ylabel(\"SWE (mm)\")\n", + "\n", + "# Date formatting for x-axis\n", + "ax.xaxis.set_major_locator(mdates.MonthLocator(interval=3))\n", + "ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%Y'))\n", + "\n", + "ax.legend(loc='upper left')\n", + "ax.grid(True, alpha=0.3)\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "da3df109", + "metadata": {}, + "source": [ + "# Start of comparison from old notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Spatial Mapping of the SNOTEL sites \n", + "Before evaluating model performance, we plot the GIS data associated with the records in the combined DataFrame. The map below shows the SNOTEL stations included in the evaluation dataset, along with the watershed boundary used for the model simulations. Hover over the pins to see the site names. \n", + "\n", + "We also print a table of the SNOTEL site metadata to help with the single site selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Path to the watershed shapefile\n", + "watershed = \"./domain_data/East-Taylor_14020001.shp\"\n", + "watershed_gdf = gpd.read_file(watershed).to_crs(epsg=4326)\n", + "\n", + "# Create GeoDataFrame of all available stations\n", + "filtered_all_stations_gdf = gpd.GeoDataFrame(\n", + " metadata_df,\n", + " geometry=gpd.points_from_xy(\n", + " metadata_df.longitude,\n", + " metadata_df.latitude\n", + " ),\n", + " crs=\"EPSG:4326\"\n", + ")\n", + "print(\"Sites CRS:\", filtered_all_stations_gdf.crs)\n", + "\n", + "# Combine watershed polygons into one geometry\n", + "watershed_union = watershed_gdf.geometry.unary_union\n", + "\n", + "# Filter stations that fall within the watershed\n", + "sites_in_watershed = filtered_all_stations_gdf[\n", + " filtered_all_stations_gdf.geometry.within(watershed_union)\n", + "].copy()\n", + "\n", + "sites_in_watershed.reset_index(drop=True, inplace=True)\n", + "\n", + "print(f\"Total sites in watershed: {len(sites_in_watershed)}\")\n", + "\n", + "m = nwm_utils.plot_sites_within_domain(sites_in_watershed, watershed_gdf, zoom_start=9)\n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sites_in_watershed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Compare Modeled and Observed SWE Timeseries at a Single Site\n", + "\n", + "Once we have both observation data and modeling outpus, it's important to evaluate how well the model reproduces observed data. The following plots are simple timeseries comparisons of **modeled vs. observed** SWE. These types of plots provide a straight-forward visual of how well the observations and simulations agree and are a great start for assessing general model performance. \n", + "\n", + "📊 We include two figures:\n", + "\n", + "1. **Time Series Overlay:** Plots the observed and modeled values together over time. This helps identify:\n", + " - Periods of systematic bias\n", + " - Timing differences in peaks and lows\n", + " - General agreement in trends\n", + "\n", + "2. **Scatter Plot with 1:1 Line:** Plots each modeled value against its corresponding observed value. This highlights:\n", + " - Accuracy across the full range of values\n", + " - Over- or under-prediction patterns\n", + " - Outliers or extreme events" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Review the sites within the watershed from the interactive map above and click on the markers to view the site name and code. Recall, we also printed out the site metadata for all sites within the watershed, which contains the 3-letter site codes.\n", + "\n", + "✏️ Once you’ve identified the site of interest, **enter its site code in the next code cell for `my_site_code`**: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# choose a site of interest within the watershed\n", + "my_site_code = '380:CO:'\n", + "\n", + "############################ THIS BELOW DOESNT WORK BECAUSE CODE IS NOT COMPLETE\n", + "# filter to only that site\n", + "sites_in_watershed[sites_in_watershed['site_id']==my_site_code]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "nwm_utils.comparison_plots(combined_df, f'{my_site_code}SNTL', f'{my_site_code}PFCONUS1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To move beyond an overall summary of daily performance, we replot the modeled vs. observed SWE scatter while highlighting specific months with a distinct color. This gives us more information about the **seasonal model performance**. \n", + "\n", + "Let's customize the scatter plot by allowing you to highlight specific months with a distinct color. The selected months will appear in one color, while all other months will appear in a different color. This customization reveals whether there are **seasonal patterns** in the relationship between observed and modeled SWE, allowing us to distinguish model behavior during the key snowpack phases of accumulation and ablation (melt). Identifying these patterns is important for diagnosing the model’s strengths and limitations during different parts of the snow season.\n", + "\n", + "You can change the list of highlighted months (for example, October–December for early accumulation or March–May for spring melt) to explore in the scatter plot how model performance varies across different parts of the snow season. This seasonal perspective motivates the _peak SWE analysis_ that follows." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 📊 For this example, let's highlight the _early snow accumulation period_ of October - January:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "combined_df['month'] = combined_df.index.month\n", + "\n", + "plot = nwm_utils.plot_custom_scatter_SWE(combined_df, f'{my_site_code}SNTL', f'{my_site_code}PFCONUS1',\n", + " highlight_months=[10, 11, 12, 1])\n", + "plot " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

🧠 Reflect

\n", + "

What does this plot tell us about how well the model performs during the early snow accumulation period at this site?
\n", + "HINT: How close are the green points to the 1:1 line?

\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Peak SWE Evaluation at the Watershed Scale \n", + "As we saw in the previous section, how well a model matches observations can differ greatly throughout the year. The following section focuses on **peak SWE** (or maximum SWE) analysis. \n", + "\n", + "**Peak SWE is a key diagnostic for snow-dominated hydrologic systems** because it represents the maximum amount of liquid water stored in the snowpack before the spring melt. Evaluating both the magnitude (quantity) and timing (date) of peak SWE provides insight into whether the model is accurately representing snow accumulation and seasonal energy balance. \n", + "\n", + "Errors in peak SWE can have important hydrologic consequences, as peak accumulation strongly influences:\n", + "- The volume of water available for spring runoff\n", + "- The timing of streamflow peaks\n", + "- Soil moisture recharge and groundwater contributions\n", + "\n", + "
\n", + " \n", + "
\n", + "\n", + "_Example daily SWE at a single site, showing two important periods in snow processes: accumulation (before peak) and ablation (after peak). The vertical line marks peak SWE._" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5.1 Comparing Modeled and Observed Peak SWE at All Sites in the Watershed\n", + "In this section, we evaluate observed and modeled peak SWE for all stations within our watershed and for all years selected in the `StartDate` and `EndDate` above. \n", + "\n", + "#### 📋 Modeled SWE on the Date of Observed Peak SWE (magnitude) \n", + "This comparison evaluates the modeled SWE on the **specific day when observed SWE reaches its maximum.** By fixing the timing to the observed peak, this comparison isolates errors in SWE magnitude. \n", + "It answers the question: *How much SWE does the model simulate on the day the observed snowpack reaches its maximum?*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# isolate the columns associated with observations and model predictions.\n", + "# these will be inputs to our same-day comparison function.\n", + "obs_cols = sorted([col for col in combined_df.columns if col.endswith('SNTL')])\n", + "mod_cols = sorted([col for col in combined_df.columns if col.endswith('PFCONUS1')])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# compute the same-day SWE comparison during the observed peak SWE for each of the observation and modeled sites.\n", + "df_observed_peak = utils.modeled_swe_at_observed_peak(combined_df, obs_cols, mod_cols)\n", + "df_observed_peak" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 📊 Visualize the amount of SWE on **the day of observed peak SWE occurs** for both the model and observations at each station" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Rearrange the dataframe to long format for easier plotting\n", + "df_long = (\n", + " df_observed_peak\n", + " .reset_index() \n", + " .melt(\n", + " id_vars=['Station', 'Water_Year', 'date'],\n", + " value_vars=['Observed', 'Modeled'],\n", + " var_name='Source',\n", + " value_name='SWE'\n", + " )\n", + ")\n", + "# Create scatter plot of observed and modeled SWE on the day of observed peak SWE\n", + "scatter_obs_peak = df_long.hvplot.scatter(\n", + " x='Station',\n", + " y='SWE',\n", + " by='Source', # Observed vs Modeled\n", + " ylabel='SWE on Observed Peak Day (mm)',\n", + " title='Observed and Modeled SWE on the Day of Observed Peak SWE',\n", + " size=70,\n", + " width=700,\n", + " height=450,\n", + " alpha=0.8,\n", + " hover_cols=['Water_Year'],\n", + " rot=45\n", + ")\n", + "\n", + "# Customize the scatter plot appearance\n", + "scatter_by_station = (\n", + " scatter_obs_peak \n", + " .opts(legend_position='top_right')\n", + ")\n", + "\n", + "scatter_by_station" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 📋 Modeled vs Observed Peak SWE Comparison (timing & magnitude) \n", + "This comparison evaluates the modeled and observed peak SWE values and their corresponding dates independently. Unlike the previous comparison that fixed the timing to the observed peak swe, this analysis shows the actual days of modeled and observed peak SWE, which may occur on different dates. As a result, it captures errors in both **peak SWE magnitude** and **peak timing**." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# compute the different-day SWE comparison for each of the observed and modeled sites.\n", + "df_both_peak = utils.modeled_vs_observed_peak_swe(combined_df, obs_cols, mod_cols)\n", + "df_both_peak" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 📊 Visualize the quantity of peak SWE for both the model and observations at each station" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "### NEED TO DECIDE HOW TO FORMAT THIS PLOT AND IF WE WANT TO HAVE THE \"SAME_DAY\" PLOT\n", + "\n", + "# Create the scatter plot\n", + "scatter_plot_both_peak = df_both_peak.hvplot.scatter(\n", + " x='Observed',\n", + " y='Modeled',\n", + " xlabel='Observed SWE (mm)',\n", + " ylabel='Modeled SWE (mm)',\n", + " title='Modeled vs. Observed Peak SWE',\n", + " size=35,\n", + " width=500,\n", + " height=400,\n", + " color='#E69F00',\n", + " hover_cols=['Station', 'Water_Year']\n", + ")#.relabel('Peak SWE')\n", + "\n", + "# Add 1:1 line (perfect match line)\n", + "swe_max = df_both_peak[['Observed', 'Modeled']].max().max()\n", + "\n", + "one_to_one_line = hv.Curve(([0, swe_max], [0, swe_max])).opts(\n", + " color='gray',\n", + " line_dash='dashed',\n", + " line_width=1,\n", + ").relabel('1:1 Line')\n", + "\n", + "# Combine scatter plot and 1:1 line into an Overlay\n", + "scatter_with_line = (scatter_plot_both_peak * one_to_one_line).opts( #scatter_plot_obs_peak * \n", + " legend_position='bottom_right'\n", + ")\n", + "\n", + "scatter_with_line" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5.2 Visualizing Model Error for Peak SWE\n", + "\n", + "The previous scatter plots indicate that the modeled and observed peak SWE magnitude and timing don't always align. Next, we plot the degree to which \n", + "\n", + "The previous scatter plots highlight differences between modeled and observed peak SWE timing and magnitude, but interpreting these variations can be challenging when comparing modeled and observed values directly. To make these differences more explicit, we compute errors in both peak timing and peak SWE magnitude and visualize them directly. This approach clarifies both the direction and magnitude of model bias and facilitates comparison across stations and water years.\n", + "\n", + "First, add columns `Peak_Date_Diff_Days` and `Peak_SWE_Diff` to the DataFrame `df_both_peak` for computed difference in peak SWE date difference and peak SWE quantity between modeled and observed:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the difference in peak SWE days and peak SWE amounts between modeled and observed\n", + "df_both_peak['Peak_Date_Diff_Days'] = (df_both_peak['Modeled_Date'] - \n", + " df_both_peak['Observed_Date']).dt.days\n", + "df_both_peak['Peak_SWE_Diff'] = (df_both_peak['Modeled'] - \n", + " df_both_peak['Observed'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "df02795e", + "metadata": {}, + "outputs": [], + "source": [ + "df_both_peak" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 📊 Visualize the error between the modeled and observed peak SWE " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Filter to separate each water year\n", + "year1 = df_both_peak[df_both_peak['Water_Year'] == df_both_peak['Water_Year'].min()]\n", + "year2 = df_both_peak[df_both_peak['Water_Year'] == df_both_peak['Water_Year'].max()]\n", + "\n", + "bar1 = year1.hvplot.bar(\n", + " x='Station',\n", + " y='Peak_Date_Diff_Days',\n", + " rot=45,\n", + " ylabel='Date Difference (days)',\n", + " title=f'Peak SWE Date Difference {year1[\"Water_Year\"].iloc[0]} (model - obs)',\n", + " width=400,\n", + " height=400,\n", + " color='Peak_Date_Diff_Days',\n", + " hover_cols=['Modeled', 'Observed']\n", + ")\n", + "bar2 = year1.hvplot.bar(\n", + " x='Station',\n", + " y='Peak_SWE_Diff',\n", + " rot=45,\n", + " ylabel='SWE Difference (m)',\n", + " title=f'Peak SWE Difference {year1[\"Water_Year\"].iloc[0]} (model - obs)',\n", + " width=400,\n", + " height=400,\n", + " color='Peak_SWE_Diff',\n", + " hover_cols=['Modeled', 'Observed']\n", + ")\n", + "\n", + "# Combine side by side\n", + "layout = (bar1 + bar2)\n", + "layout.opts(shared_axes=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The left panel shows the timing error (date difference) and the right panel the magnitude error (SWE difference). When we computed the difference in date and SWE quantity above, we took `modeled - observed` so: \n", + "\n", + "| | DATE OF PEAK SWE | PEAK SWE QUANTITY |\n", + "|---|---|---|\n", + "| + Positive Values | modeled AFTER observed | modeled GREATER THAN observed |\n", + "| - Negative Values | modeled BEFORE observed | modeled LESS THAN observed | " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

🧠 Reflect

\n", + "

Looking at the two plots, what could be some reasons for the model having simulated peak SWE both earlier and less than the observed peak SWE? Perhaps try changing the my_site_code from earlier in the notebook to rerun nwm_utils.comparison_plots() to see the timeseries for a different station to look at the peak magnitude and timing. \n", + "\n", + "
What happens if you change the year that is plotted?
✏️ Try modifying the bar plot code from bar1 = year1.hvplot.bar to bar1 = year2.hvplot.bar. Don't forget to change the title!

\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 📊 Next, we combine the timing and magnitude errors and plot them together for each station." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "\n", + "scatter = df_both_peak.hvplot.scatter(\n", + " x='Peak_Date_Diff_Days',\n", + " y='Peak_SWE_Diff',\n", + " by='Station', # Water_Year\n", + " xlabel='Peak SWE Timing Error (days)',\n", + " ylabel='Peak SWE Magnitude Error (mm)',\n", + " title='Peak SWE Timing vs Magnitude Error',\n", + " size=80,\n", + " width=600,\n", + " height=400,\n", + " hover_cols=['Water_Year']\n", + ")\n", + "\n", + "# Add reference lines\n", + "vline = hv.VLine(0).opts(color='gray', line_dash='dashed')\n", + "hline = hv.HLine(0).opts(color='gray', line_dash='dashed')\n", + "\n", + "(scatter * vline * hline).opts(legend_position='top_left', show_grid=True)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "✏️ **Try changing how we view this plot.** \n", + "We can modify a line in the section of code from `by='Station'` to `by='Water_Year'` to better visualize the errors in the different Water Years. \n", + "Are there any patterns that jump out? Which year was modeled peak SWE consistently less than observed peak SWE? " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Compute and Statistics and Error Metrics \n", + "The previous section visualized when and where modeled SWE differs from observations, both in terms of peak SWE timing and magnitude. However, visual inspection alone makes it difficult to compare performance across sites or to summarize model behavior in a consistent or quantifiable way. In this section, we compute commonly used statistical error metrics to quantify model performance, allowing us to objectively assess bias, error magnitude, and variability for sites within the watershed. \n", + "\n", + "Proposed outline (DTK, Jan 2026):\n", + "- Summary metrics at a station\n", + "- Summary metrics at all stations within the watershed\n", + "- Combined timing and magnitude for all stations within the watershed (Condon metric)\n", + "- Focus on timing: summary statistics for single station for accumulation & ablation periods (using the new wrapper: `nwm_utils.compute_stats_period()`)\n", + "- Melt period statistics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "nwm_utils.compute_stats(combined_df, f'CCSS_{my_site_code}_swe_m', f'NWM_{my_site_code}_swe_m')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pearson and Spearman correlations are both close to 1, suggesting a strong relationship between observed and modeled SWE. As shown on the timeseries plot, this strong correlation alone does not indicate a \"good\" model. For example, it does not guarantee accurate timing of key events, such as peak SWE or melt onset. Let's compare these as well. The following code uses `report_max_dates_and_values` function to identify the peak SWE value and the date it occurs for both the observed (CCSS) and modeled (NWM) datasets. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

🧠 Reflect

\n", + "

You now have several performance metrics: Bias, Pearson Correlation, Spearman Correlation, NSE, and KGE. If you had to pick just one metric to summarize model performance, which would you choose—and why? As you review the results, compare the peak flow amounts and the timing of snowmelt onset. Do you see any significant differences? Which dataset indicates an earlier melt?

\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "summary_table = nwm_utils.report_max_dates_and_values(combined_df, f'CCSS_{my_site_code}_swe_m', f'NWM_{my_site_code}_swe_m')\n", + "summary_table" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Summary Metrics at Multiple Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "site_codes = ['DAN', 'HRS', 'KIB', 'PDS', 'SLI', 'TUM', 'WHW']\n", + "\n", + "rows = []\n", + "\n", + "for site in site_codes:\n", + " obs_col = f'CCSS_{site}_swe_m'\n", + " mod_col = f'NWM_{site}_swe_m'\n", + "\n", + " stats_table = nwm_utils.compute_stats(combined_df, obs_col, mod_col)\n", + "\n", + " rows.append({\n", + " 'Station': site,\n", + " 'Mean_Obs': stats_table.loc['observed', 'Mean'],\n", + " 'Mean_Mod': stats_table.loc['modeled', 'Mean'],\n", + " 'Bias_m': stats_table.loc['Bias (Modeled - Observed)', 'Mean'],\n", + " 'Pearson_r': stats_table.loc['Pearson Correlation', 'Mean'],\n", + " 'Spearman_r': stats_table.loc['Spearman Correlation', 'Mean'],\n", + " 'NSE': stats_table.loc['Nash-Sutcliffe Efficiency (NSE)', 'Mean'],\n", + " 'KGE': stats_table.loc['Kling-Gupta Efficiency (KGE)', 'Mean']\n", + " })\n", + "\n", + "stats_AllStations = pd.DataFrame(rows)\n", + "\n", + "print('All Stations Statistics Summary:')\n", + "stats_AllStations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "stats_AllStations.hvplot.bar(\n", + " x='Station',\n", + " y='NSE',\n", + " rot=45,\n", + " ylabel='Nash–Sutcliffe Efficiency',\n", + " title='NSE by Station',\n", + " height=400,\n", + " width=600,\n", + " bar_width=0.5\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "stats_summary.hvplot.scatter(\n", + " x='Station',\n", + " y='Bias_m',\n", + " size=100,\n", + " rot=45,\n", + " ylabel='Bias (m)',\n", + " title='Mean SWE Bias by Station'\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combine Magnitude (absolute relative bias) and Timing (Spearman's rho) metrics using the Condon metric (and with all stations, a Condon diagram)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bias1 = evaluation_metrics.bias(combined_df.CCSS_TUM_swe_m, combined_df.NWM_TUM_swe_m)\n", + "bias1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "abs_bias = evaluation_metrics.absolute_relative_bias(combined_df.CCSS_TUM_swe_m, combined_df.NWM_TUM_swe_m)\n", + "abs_bias" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "srho = evaluation_metrics.spearman_rank(combined_df.CCSS_TUM_swe_m, combined_df.NWM_TUM_swe_m)\n", + "srho" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "evaluation_metrics.condon(abs_bias, srho)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

🧠 Reflect

\n", + "

\n", + " What is the modeled SWE on the date when the observed SWE reaches its peak?
\n", + " ✏️ Use the code snippet below to find the answer.\n", + "

\n", + "
\n",
+    "  \n",
+    "    # Find date of the peak SWE from observed data\n",
+    "    date_obs_max = combined_df['CCSS_HRS_swe_m'].idxmax()\n",
+    "\n",
+    "    # Get corresponding value of modeled data on that date\n",
+    "    value_mod_at_max_obs = combined_df.loc[date_obs_max, 'NWM_HRS_swe_m']\n",
+    "  
\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Focus on Timing: Melt Period Metrics\n", + "Compare the average melt rate over the full melt period. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function computes the melt period length by identifying the first date after the peak SWE when SWE drops to zero and remains at zero for at least (`min_zero_days`) consecutive days. This is used to define the end of the melt period. Finally, the function calculates the average melt rate, which represents the rate at which snow disappeared, expressed in meters per day, over the full melt period." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "melt_stats_df = utils.compute_melt_period_statistics(combined_df)\n", + "melt_stats_df.head()\n", + "melt_stats_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "observed_melt_period = nwm_utils.compute_melt_period(combined_df[f'CCSS_{my_site_code}_swe_m'])\n", + "observed_melt_period" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "modeled_melt_period = nwm_utils.compute_melt_period(combined_df[f'NWM_{my_site_code}_swe_m'])\n", + "modeled_melt_period" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "accum_months = [10, 11, 12, 1, 2, 3]\n", + "ablation_months = [4, 5, 6]\n", + "\n", + "accum_stats = nwm_utils.compute_stats_period(\n", + " combined_df,\n", + " f'CCSS_{my_site_code}_swe_m',\n", + " f'NWM_{my_site_code}_swe_m',\n", + " accum_months\n", + ")\n", + "\n", + "accum_stats" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "ablation_stats = nwm_utils.compute_stats_period(\n", + " combined_df,\n", + " f'CCSS_{my_site_code}_swe_m',\n", + " f'NWM_{my_site_code}_swe_m',\n", + " ablation_months\n", + ")\n", + "\n", + "ablation_stats" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

🧠 Reflect

\n", + "

\n", + " If you recall from earlier, we plotted the timeseries of out selected station. Replot it below. Do the metrics make sense given the visual comparison between modeled and observed? For example, when you look at the timeseries, is the model consistently predicting SWE to be higher or lower than observations? Does this align with the Bias sign (+ or -)?\n", + "

\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "nwm_utils.comparison_plots(combined_df, f'CCSS_{my_site_code}_swe_m', f'NWM_{my_site_code}_swe_m')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "cssi_evaluation", + "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.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pyproject.toml b/pyproject.toml index 98b4310..40aaa1b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ notebooks = [ "plotly", "pyproj", "subsettools>=2.0.0", + "nbformat>=4.2.0", ] [dependency-groups] From 5c4d42c1015af74a9297c564795b3c81fa5321e5 Mon Sep 17 00:00:00 2001 From: danielletijerina Date: Sat, 28 Mar 2026 07:31:33 -0600 Subject: [PATCH 2/5] reordered analysis and added single- and multi-site figures --- ...ow_streamflow_point_scale_evaluation.ipynb | 10883 ++++++++++++++-- src/cssi_evaluation/utils/plot_utils.py | 12 +- 2 files changed, 9537 insertions(+), 1358 deletions(-) diff --git a/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb b/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb index ea67dae..3d931e1 100644 --- a/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb +++ b/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb @@ -45,10 +45,210 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "0dfc3fb3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.4'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = false;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.4.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.4.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.4.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.4.min.js\", \"https://cdn.holoviz.org/panel/1.3.1/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", + "application/vnd.holoviews_load.v0+json": "" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n let retries = 0;\n const open = () => {\n if (comm.active) {\n comm.open();\n } else if (retries > 3) {\n console.warn('Comm target never activated')\n } else {\n retries += 1\n setTimeout(open, 500)\n }\n }\n if (comm.active) {\n comm.open();\n } else {\n setTimeout(open, 500)\n }\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n })\n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", + "application/vnd.holoviews_load.v0+json": "" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
\n", + "
\n", + "
\n", + "" + ] + }, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "p1002" + } + }, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.4'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = true;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", + "application/vnd.holoviews_load.v0+json": "" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n let retries = 0;\n const open = () => {\n if (comm.active) {\n comm.open();\n } else if (retries > 3) {\n console.warn('Comm target never activated')\n } else {\n retries += 1\n setTimeout(open, 500)\n }\n }\n if (comm.active) {\n comm.open();\n } else {\n setTimeout(open, 500)\n }\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n })\n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", + "application/vnd.holoviews_load.v0+json": "" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.4'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = true;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.11.0/dist/geoviews.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", + "application/vnd.holoviews_load.v0+json": "" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n let retries = 0;\n const open = () => {\n if (comm.active) {\n comm.open();\n } else if (retries > 3) {\n console.warn('Comm target never activated')\n } else {\n retries += 1\n setTimeout(open, 500)\n }\n }\n if (comm.active) {\n comm.open();\n } else {\n setTimeout(open, 500)\n }\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n })\n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", + "application/vnd.holoviews_load.v0+json": "" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# import os\n", "# import sys\n", @@ -57,6 +257,7 @@ "# os.environ['PROJ_LIB'] = os.path.join(prefix, 'share', 'proj')\n", "\n", "import datetime\n", + "from pathlib import Path\n", "# import sys\n", "# import pyproj\n", "import pandas as pd\n", @@ -92,13 +293,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "a365996d", "metadata": {}, "outputs": [], "source": [ "# Once you create a PIN, you'll need to register your PIN.\n", - "hf.register_api_pin(\"your_email\", \"your_api_pin\")" + "#hf.register_api_pin(\"your_email\", \"your_api_pin\")\n", + "hf.register_api_pin(\"dtt2@princeton.edu\", \"7837\")\n" ] }, { @@ -113,7 +315,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "e50dc99d", "metadata": {}, "outputs": [], @@ -124,9 +326,12 @@ "\n", "domain_data_path = 'examples/parflow/domain_data/' # path to the model domain data\n", "\n", - "# # Path to save results (obs and mod stands for observation and modeled, respectively)\n", - "# OBS_OutputFolder = './obs_outputs_PF' \n", - "# MOD_OutputFolder = './mod_outputs_PF'" + "# Output folders for modeled and observed data\n", + "OBS_OutputFolder = Path(\"./obs_outputs\")\n", + "MOD_OutputFolder = Path(\"./mod_outputs\")\n", + "\n", + "OBS_OutputFolder.mkdir(parents=True, exist_ok=True)\n", + "MOD_OutputFolder.mkdir(parents=True, exist_ok=True)" ] }, { @@ -138,22 +343,31 @@ "\n", "One of the simplest ways to gather data and model output from HydroData is by specifying a [Hydrologic Unit Code](https://www.usgs.gov/national-hydrography/watershed-boundary-dataset). Before we retrieve any hydrologic information, we need to indicate a HUC8 code and use it to gather streamflow observations from USGS stream gages. \n", "\n", - "✏️ If you have a specific HUC8 in mind, you can change the variable `huc_8_code` below." + "✏️ If you have a specific HUC in mind, you can change the variable `huc_code` below." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "53c003cb", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HUC-8 ID: 051202\n", + "HUC-8 name: Bayou De Chien-Mayfield\n" + ] + } + ], "source": [ "# ✏️ Specify HUC8 ID and Name for watershed of interest\n", - "huc_8_code = '08010201'\n", - "print(f'HUC-8 ID: {huc_8_code}')\n", + "huc_code = '051202'#'08010201'\n", + "print(f'HUC-8 ID: {huc_code}')\n", "\n", - "huc_8_name = 'Bayou De Chien-Mayfield'\n", - "print(f'HUC-8 name: {huc_8_name}')" + "huc_name = 'Bayou De Chien-Mayfield'\n", + "print(f'HUC-8 name: {huc_name}')" ] }, { @@ -174,17 +388,238 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "10ae5690", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of streamflow sites: 49\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", + "
site_idsite_namesite_typeagencystatelatitudelongitudefirst_date_data_availablelast_date_data_availablerecord_count...conus1_jconus2_iconus2_jconus2_i_nwmconus2_j_nwmgagesii_drainage_areagagesii_classgagesii_site_elevationusgs_drainage_areausgs_reliability_cd
003347000WHITE RIVER AT MUNCIE, INstream gaugeUSGSIN40.203904-85.3860541931-04-012026-03-2034688...791.03158.01758.03154.01758.0627.13890Non-ref281.0241.0nan
103347500BUCK CREEK NEAR MUNCIE, INstream gaugeUSGSIN40.134767-85.3735821954-10-012003-09-2917896...785.03160.01755.0NaNNaN88.62209Non-ref281.035.5nan
203348000WHITE RIVER AT ANDERSON, INstream gaugeUSGSIN40.105278-85.6713891925-10-012026-03-2029992...779.03136.01746.03139.01746.01052.08700Non-ref253.0406.0C
303348350PIPE CREEK AT FRANKTON, INstream gaugeUSGSIN40.227333-85.7663611968-05-012026-03-2016438...790.03127.01756.03127.01756.0292.83660Non-ref257.0113.0C
403349000WHITE RIVER AT NOBLESVILLE, INstream gaugeUSGSIN40.046981-86.0172071946-10-012026-03-2029005...767.03112.01736.03112.01736.02211.12500Non-ref231.0858.0nan
\n", + "

5 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " site_id site_name site_type agency state \\\n", + "0 03347000 WHITE RIVER AT MUNCIE, IN stream gauge USGS IN \n", + "1 03347500 BUCK CREEK NEAR MUNCIE, IN stream gauge USGS IN \n", + "2 03348000 WHITE RIVER AT ANDERSON, IN stream gauge USGS IN \n", + "3 03348350 PIPE CREEK AT FRANKTON, IN stream gauge USGS IN \n", + "4 03349000 WHITE RIVER AT NOBLESVILLE, IN stream gauge USGS IN \n", + "\n", + " latitude longitude first_date_data_available last_date_data_available \\\n", + "0 40.203904 -85.386054 1931-04-01 2026-03-20 \n", + "1 40.134767 -85.373582 1954-10-01 2003-09-29 \n", + "2 40.105278 -85.671389 1925-10-01 2026-03-20 \n", + "3 40.227333 -85.766361 1968-05-01 2026-03-20 \n", + "4 40.046981 -86.017207 1946-10-01 2026-03-20 \n", + "\n", + " record_count ... conus1_j conus2_i conus2_j conus2_i_nwm conus2_j_nwm \\\n", + "0 34688 ... 791.0 3158.0 1758.0 3154.0 1758.0 \n", + "1 17896 ... 785.0 3160.0 1755.0 NaN NaN \n", + "2 29992 ... 779.0 3136.0 1746.0 3139.0 1746.0 \n", + "3 16438 ... 790.0 3127.0 1756.0 3127.0 1756.0 \n", + "4 29005 ... 767.0 3112.0 1736.0 3112.0 1736.0 \n", + "\n", + " gagesii_drainage_area gagesii_class gagesii_site_elevation \\\n", + "0 627.13890 Non-ref 281.0 \n", + "1 88.62209 Non-ref 281.0 \n", + "2 1052.08700 Non-ref 253.0 \n", + "3 292.83660 Non-ref 257.0 \n", + "4 2211.12500 Non-ref 231.0 \n", + "\n", + " usgs_drainage_area usgs_reliability_cd \n", + "0 241.0 nan \n", + "1 35.5 nan \n", + "2 406.0 C \n", + "3 113.0 C \n", + "4 858.0 nan \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "point_options = {\n", " \"dataset\": \"usgs_nwis\",\n", " \"variable\": \"streamflow\",\n", " \"temporal_resolution\": \"daily\",\n", " \"aggregation\": \"mean\",\n", - " \"huc_id\": [huc_8_code], \n", + " \"huc_id\": [huc_code], \n", " \"grid\": \"conus1\",\n", " \"date_start\": StartDate,\n", " \"date_end\": EndDate\n", @@ -198,20 +633,3957 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "9fca907a", + "cell_type": "markdown", + "id": "068c31ab", "metadata": {}, - "outputs": [], + "source": [ + "Plot the locations of the streamflow gages onto a map:" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "a16038bd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Let's define a helper plotting function to use throughout the notebook\n", - "def plot_sites_on_map(metadata_df, color_by_site_type=False):\n", + "def plot_sites_on_map(metadata_df, color_by=None):\n", " \"\"\"\n", " Plots site locations on an interactive map using Plotly.\n", - " \n", + "\n", " Parameters:\n", - " - metadata_df: DataFrame containing site metadata with 'latitude', 'longitude', 'site_name', and 'site_id' columns.\n", - " - color_by_site_type: Boolean indicating whether to color points by site type.\n", + " - metadata_df: DataFrame with 'latitude', 'longitude', 'site_name', 'site_id'\n", + " - color_by: column name to color by (e.g., 'nse', 'kge', 'site_type')\n", " \"\"\"\n", " pio.renderers.default = \"notebook\"\n", "\n", @@ -224,18 +4596,29 @@ " metadata_df,\n", " lat=\"latitude\",\n", " lon=\"longitude\",\n", - " color=\"site_type\" if color_by_site_type else None,\n", - " hover_name=\"site_name\", # appears on hover\n", - " hover_data=[\"site_id\"], # additional info\n", + " color=color_by, \n", + " hover_name=\"site_name\",\n", + " hover_data=[\"site_id\"],\n", " center=center,\n", " zoom=8,\n", - " height=600\n", + " height=600,\n", + " color_continuous_scale=\"RdYlGn\", # good default for performance metrics\n", " )\n", "\n", " fig.update_layout(mapbox_style=\"carto-voyager\")\n", + " fig.update_traces(marker=dict(size=12))\n", + "\n", " return fig\n", "\n", - "plot_sites_on_map(streamflow_metadata_df, color_by_site_type=False)" + "plot_sites_on_map(streamflow_metadata_df)" + ] + }, + { + "cell_type": "markdown", + "id": "6e2b894b", + "metadata": {}, + "source": [ + "##### Request USGS Streamflow data at each of the gages located in the given HUC and time period. This is based on out `point_options` dictionary above. " ] }, { @@ -243,11 +4626,255 @@ "execution_count": null, "id": "fccadf5e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Streamflow data shape: (365, 50)\n" + ] + } + ], "source": [ "# Now let's request data.\n", "streamflow_data_df = hf.get_point_data(point_options)\n", + "print(f\"Streamflow data shape: {streamflow_data_df.shape}\")" + ] + }, + { + "cell_type": "markdown", + "id": "c89b9f6e", + "metadata": {}, + "source": [ + "Clean up any sites that have no data for both `streamflow_data_df` and `streamflow_metadata_df`:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "32cee48a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of valid streamflow sites: 45\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", + "
date033470000334835003349000033507000335100003351310033515000335250003353000...03368000033695000337150003371520033735000337400003374455033755000337635003376500
02002-10-010.333940.294324.92420.2464936.39580.0973521.081061.553677.5844...0.0028300.33677088.29600.01867895.937133.5760.0181121.797050.2162124.8676
12002-10-020.311300.288664.18840.2524365.77320.0973521.064081.474437.3580...0.0022640.24762565.37300.01698088.013143.4810.0189611.788560.2099863.3960
22002-10-030.331110.283003.84880.2456445.32040.0721651.018801.403686.5939...0.0016980.19357241.03500.01726365.090136.6890.0198101.780070.1986662.9432
32002-10-040.580150.305644.07520.2787556.22600.3282801.146151.7659210.7823...0.0022640.21168429.71500.02179145.846120.8410.0260361.805540.3622402.9998
42002-10-050.472610.373565.06570.3169606.93350.3509201.381042.2583412.7916...0.0042450.25356824.93230.02886635.941103.0120.0350921.864970.3565803.5658
\n", + "

5 rows × 45 columns

\n", + "
" + ], + "text/plain": [ + " date 03347000 03348350 03349000 03350700 03351000 03351310 \\\n", + "0 2002-10-01 0.33394 0.29432 4.9242 0.246493 6.3958 0.097352 \n", + "1 2002-10-02 0.31130 0.28866 4.1884 0.252436 5.7732 0.097352 \n", + "2 2002-10-03 0.33111 0.28300 3.8488 0.245644 5.3204 0.072165 \n", + "3 2002-10-04 0.58015 0.30564 4.0752 0.278755 6.2260 0.328280 \n", + "4 2002-10-05 0.47261 0.37356 5.0657 0.316960 6.9335 0.350920 \n", + "\n", + " 03351500 03352500 03353000 ... 03368000 03369500 03371500 03371520 \\\n", + "0 1.08106 1.55367 7.5844 ... 0.002830 0.336770 88.2960 0.018678 \n", + "1 1.06408 1.47443 7.3580 ... 0.002264 0.247625 65.3730 0.016980 \n", + "2 1.01880 1.40368 6.5939 ... 0.001698 0.193572 41.0350 0.017263 \n", + "3 1.14615 1.76592 10.7823 ... 0.002264 0.211684 29.7150 0.021791 \n", + "4 1.38104 2.25834 12.7916 ... 0.004245 0.253568 24.9323 0.028866 \n", + "\n", + " 03373500 03374000 03374455 03375500 03376350 03376500 \n", + "0 95.937 133.576 0.018112 1.79705 0.216212 4.8676 \n", + "1 88.013 143.481 0.018961 1.78856 0.209986 3.3960 \n", + "2 65.090 136.689 0.019810 1.78007 0.198666 2.9432 \n", + "3 45.846 120.841 0.026036 1.80554 0.362240 2.9998 \n", + "4 35.941 103.012 0.035092 1.86497 0.356580 3.5658 \n", + "\n", + "[5 rows x 45 columns]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Identify columns with NO NaNs\n", + "valid_sites = streamflow_data_df.columns[streamflow_data_df.notna().all()]\n", + "\n", + "# Subset the data dataframe\n", + "streamflow_data_df = streamflow_data_df[valid_sites]\n", + "\n", + "# Subset the metadata dataframe\n", + "streamflow_metadata_df = streamflow_metadata_df[\n", + " streamflow_metadata_df[\"site_id\"].isin(valid_sites)\n", + "]\n", "\n", + "print(f\"Number of valid streamflow sites: {len(valid_sites)}\")\n", "streamflow_data_df.head(5)" ] }, @@ -267,7 +4894,7 @@ "
\n", "

📖 Note

\n", "

\n", - "As a project, we have pre-computed the ParFlow grid cell mappings for every stream gage, groundwater well, SNOTEL station, SCAN station, and AmeriFlux site. Those are stored in the variables conus1_i and conus1_j for the ParFlow-CONUS1 grid and conus2_i and conus2_j for the ParFlow-CONUS2 grid. In this example, we will use those grid indices directly. Please see the `parflow_grid_mapping.ipynb` notebook in this same directory for more details on how we constructed those mappings.\n", + "As a project, we have pre-computed the ParFlow grid cell mappings for every stream gage, groundwater well, SNOTEL station, SCAN station, and AmeriFlux site. Those are stored in the variables conus1_i and conus1_j for the ParFlow-CONUS1 grid and conus2_i and conus2_j for the ParFlow-CONUS2 grid. In this example, we will use those grid indices directly. Please see the parflow_grid_mapping.ipynb notebook in this same directory for more details on how we constructed those mappings.\n", "

\n", "
" ] @@ -289,10 +4916,73 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "id": "b0df123a", "metadata": {}, - "outputs": [], + "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", + "
date
02002-10-01
12002-10-02
22002-10-03
32002-10-04
42002-10-05
\n", + "
" + ], + "text/plain": [ + " date\n", + "0 2002-10-01\n", + "1 2002-10-02\n", + "2 2002-10-03\n", + "3 2002-10-04\n", + "4 2002-10-05" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "date_start = datetime.datetime.strptime(StartDate, '%Y-%m-%d')\n", "date_end = datetime.datetime.strptime(EndDate, '%Y-%m-%d')\n", @@ -309,7 +4999,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "id": "310c8fc1", "metadata": {}, "outputs": [], @@ -330,17 +5020,156 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "9ebe3c48", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing site 03347000 at PF-CONUS1 grid point (2782, 791)\n", + "Requesting pressure data for site 03347000\n", + "Calculating streamflow for site 03347000\n", + "Processing site 03348350 at PF-CONUS1 grid point (2749, 790)\n", + "Requesting pressure data for site 03348350\n", + "Calculating streamflow for site 03348350\n", + "Processing site 03349000 at PF-CONUS1 grid point (2731, 767)\n", + "Requesting pressure data for site 03349000\n", + "Calculating streamflow for site 03349000\n", + "Processing site 03350700 at PF-CONUS1 grid point (2732, 767)\n", + "Requesting pressure data for site 03350700\n", + "Calculating streamflow for site 03350700\n", + "Processing site 03351000 at PF-CONUS1 grid point (2726, 753)\n", + "Requesting pressure data for site 03351000\n", + "Calculating streamflow for site 03351000\n", + "Processing site 03351310 at PF-CONUS1 grid point (2719, 739)\n", + "Requesting pressure data for site 03351310\n", + "Calculating streamflow for site 03351310\n", + "Processing site 03351500 at PF-CONUS1 grid point (2745, 759)\n", + "Requesting pressure data for site 03351500\n", + "Calculating streamflow for site 03351500\n", + "Processing site 03352500 at PF-CONUS1 grid point (2726, 746)\n", + "Requesting pressure data for site 03352500\n", + "Calculating streamflow for site 03352500\n", + "Processing site 03353000 at PF-CONUS1 grid point (2721, 732)\n", + "Requesting pressure data for site 03353000\n", + "Calculating streamflow for site 03353000\n", + "Processing site 03353120 at PF-CONUS1 grid point (2729, 738)\n", + "Requesting pressure data for site 03353120\n", + "Calculating streamflow for site 03353120\n", + "Processing site 03353200 at PF-CONUS1 grid point (2711, 754)\n", + "Requesting pressure data for site 03353200\n", + "Calculating streamflow for site 03353200\n", + "Processing site 03353500 at PF-CONUS1 grid point (2715, 736)\n", + "Requesting pressure data for site 03353500\n", + "Calculating streamflow for site 03353500\n", + "Processing site 03353600 at PF-CONUS1 grid point (2716, 737)\n", + "Requesting pressure data for site 03353600\n", + "Calculating streamflow for site 03353600\n", + "Processing site 03353620 at PF-CONUS1 grid point (2723, 730)\n", + "Requesting pressure data for site 03353620\n", + "Calculating streamflow for site 03353620\n", + "Processing site 03353700 at PF-CONUS1 grid point (2693, 731)\n", + "Requesting pressure data for site 03353700\n", + "Calculating streamflow for site 03353700\n", + "Processing site 03353800 at PF-CONUS1 grid point (2704, 718)\n", + "Requesting pressure data for site 03353800\n", + "Calculating streamflow for site 03353800\n", + "Processing site 03354000 at PF-CONUS1 grid point (2704, 705)\n", + "Requesting pressure data for site 03354000\n", + "Calculating streamflow for site 03354000\n", + "Processing site 03357350 at PF-CONUS1 grid point (2675, 731)\n", + "Requesting pressure data for site 03357350\n", + "Calculating streamflow for site 03357350\n", + "Processing site 03358000 at PF-CONUS1 grid point (2675, 695)\n", + "Requesting pressure data for site 03358000\n", + "Calculating streamflow for site 03358000\n", + "Processing site 03360000 at PF-CONUS1 grid point (2652, 685)\n", + "Requesting pressure data for site 03360000\n", + "Calculating streamflow for site 03360000\n", + "Processing site 03360500 at PF-CONUS1 grid point (2657, 641)\n", + "Requesting pressure data for site 03360500\n", + "Calculating streamflow for site 03360500\n", + "Processing site 03361000 at PF-CONUS1 grid point (2772, 738)\n", + "Requesting pressure data for site 03361000\n", + "Calculating streamflow for site 03361000\n", + "Processing site 03361500 at PF-CONUS1 grid point (2756, 713)\n", + "Requesting pressure data for site 03361500\n", + "Calculating streamflow for site 03361500\n", + "Processing site 03361650 at PF-CONUS1 grid point (2745, 733)\n", + "Requesting pressure data for site 03361650\n", + "Calculating streamflow for site 03361650\n", + "Processing site 03361850 at PF-CONUS1 grid point (2742, 725)\n", + "Requesting pressure data for site 03361850\n", + "Calculating streamflow for site 03361850\n", + "Processing site 03362000 at PF-CONUS1 grid point (2740, 699)\n", + "Requesting pressure data for site 03362000\n", + "Calculating streamflow for site 03362000\n", + "Processing site 03362500 at PF-CONUS1 grid point (2742, 692)\n", + "Requesting pressure data for site 03362500\n", + "Calculating streamflow for site 03362500\n", + "Processing site 03363500 at PF-CONUS1 grid point (2771, 705)\n", + "Requesting pressure data for site 03363500\n", + "Calculating streamflow for site 03363500\n", + "Processing site 03363900 at PF-CONUS1 grid point (2747, 681)\n", + "Requesting pressure data for site 03363900\n", + "Calculating streamflow for site 03363900\n", + "Processing site 03364000 at PF-CONUS1 grid point (2748, 675)\n", + "Requesting pressure data for site 03364000\n", + "Calculating streamflow for site 03364000\n", + "Processing site 03364500 at PF-CONUS1 grid point (2767, 686)\n", + "Requesting pressure data for site 03364500\n", + "Calculating streamflow for site 03364500\n", + "Processing site 03365500 at PF-CONUS1 grid point (2753, 654)\n", + "Requesting pressure data for site 03365500\n", + "Calculating streamflow for site 03365500\n", + "Processing site 03366200 at PF-CONUS1 grid point (2789, 637)\n", + "Requesting pressure data for site 03366200\n", + "Calculating streamflow for site 03366200\n", + "Processing site 03366500 at PF-CONUS1 grid point (2774, 635)\n", + "Requesting pressure data for site 03366500\n", + "Calculating streamflow for site 03366500\n", + "Processing site 03368000 at PF-CONUS1 grid point (2787, 664)\n", + "Requesting pressure data for site 03368000\n", + "Calculating streamflow for site 03368000\n", + "Processing site 03369500 at PF-CONUS1 grid point (2778, 654)\n", + "Requesting pressure data for site 03369500\n", + "Calculating streamflow for site 03369500\n", + "Processing site 03371500 at PF-CONUS1 grid point (2711, 626)\n", + "Requesting pressure data for site 03371500\n", + "Calculating streamflow for site 03371500\n", + "Processing site 03371520 at PF-CONUS1 grid point (2721, 633)\n", + "Requesting pressure data for site 03371520\n", + "Calculating streamflow for site 03371520\n", + "Processing site 03373500 at PF-CONUS1 grid point (2680, 610)\n", + "Requesting pressure data for site 03373500\n", + "Calculating streamflow for site 03373500\n", + "Processing site 03374000 at PF-CONUS1 grid point (2639, 588)\n", + "Requesting pressure data for site 03374000\n", + "Calculating streamflow for site 03374000\n", + "Processing site 03374455 at PF-CONUS1 grid point (2717, 588)\n", + "Requesting pressure data for site 03374455\n", + "Calculating streamflow for site 03374455\n", + "Processing site 03375500 at PF-CONUS1 grid point (2675, 581)\n", + "Requesting pressure data for site 03375500\n", + "Calculating streamflow for site 03375500\n", + "Processing site 03376350 at PF-CONUS1 grid point (2643, 566)\n", + "Requesting pressure data for site 03376350\n", + "Calculating streamflow for site 03376350\n", + "Processing site 03376500 at PF-CONUS1 grid point (2617, 574)\n", + "Requesting pressure data for site 03376500\n", + "Calculating streamflow for site 03376500\n" + ] + } + ], "source": [ "# Loop over each station in obs_metadata_df\n", "for idx, row in streamflow_metadata_df.iterrows():\n", " site_id = row[\"site_id\"] # original USGS site_id\n", " conus_i = int(row[\"conus1_i\"])\n", " conus_j = int(row[\"conus1_j\"])\n", - " print(f\"Processing site {site_id} at CONUS grid point ({conus_i}, {conus_j})\")\n", + " print(f\"Processing site {site_id} at PF-CONUS1 grid point ({conus_i}, {conus_j})\")\n", " \n", " # Build options dict for this station\n", " parflow_options = {\n", @@ -370,20 +5199,420 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "id": "7551a523", "metadata": {}, - "outputs": [], + "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", + "
date033470000334835003349000033507000335100003351310033515000335250003353000...03368000033695000337150003371520033735000337400003374455033755000337635003376500
02002-10-010.00.0790040.0645110.0601380.00.00.3829360.0959360.0...0.00.00.00.04.8806129.9964240.0000000.00.00.0
12002-10-020.00.0266440.0000000.0000000.00.00.2378100.0269890.0...0.00.00.00.04.4965728.9629150.0000000.00.00.0
22002-10-030.00.0000000.0000000.0000000.00.00.1423270.0000000.0...0.00.00.00.03.9487798.0476130.0000000.00.00.0
32002-10-040.00.0000000.0000000.0000000.00.00.1537060.0000000.0...0.00.00.00.04.1438928.5107230.0000000.00.00.0
42002-10-050.00.0705510.1050650.1081920.00.00.4392010.1686020.0...0.00.00.00.05.64083711.4242600.0268020.00.00.0
\n", + "

5 rows × 45 columns

\n", + "
" + ], + "text/plain": [ + " date 03347000 03348350 03349000 03350700 03351000 03351310 \\\n", + "0 2002-10-01 0.0 0.079004 0.064511 0.060138 0.0 0.0 \n", + "1 2002-10-02 0.0 0.026644 0.000000 0.000000 0.0 0.0 \n", + "2 2002-10-03 0.0 0.000000 0.000000 0.000000 0.0 0.0 \n", + "3 2002-10-04 0.0 0.000000 0.000000 0.000000 0.0 0.0 \n", + "4 2002-10-05 0.0 0.070551 0.105065 0.108192 0.0 0.0 \n", + "\n", + " 03351500 03352500 03353000 ... 03368000 03369500 03371500 03371520 \\\n", + "0 0.382936 0.095936 0.0 ... 0.0 0.0 0.0 0.0 \n", + "1 0.237810 0.026989 0.0 ... 0.0 0.0 0.0 0.0 \n", + "2 0.142327 0.000000 0.0 ... 0.0 0.0 0.0 0.0 \n", + "3 0.153706 0.000000 0.0 ... 0.0 0.0 0.0 0.0 \n", + "4 0.439201 0.168602 0.0 ... 0.0 0.0 0.0 0.0 \n", + "\n", + " 03373500 03374000 03374455 03375500 03376350 03376500 \n", + "0 4.880612 9.996424 0.000000 0.0 0.0 0.0 \n", + "1 4.496572 8.962915 0.000000 0.0 0.0 0.0 \n", + "2 3.948779 8.047613 0.000000 0.0 0.0 0.0 \n", + "3 4.143892 8.510723 0.000000 0.0 0.0 0.0 \n", + "4 5.640837 11.424260 0.026802 0.0 0.0 0.0 \n", + "\n", + "[5 rows x 45 columns]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "model_df.head(5)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 67, "id": "263a9ca5", "metadata": {}, - "outputs": [], + "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", + "
date033470000334835003349000033507000335100003351310033515000335250003353000...03368000033695000337150003371520033735000337400003374455033755000337635003376500
02002-10-010.333940.294324.92420.2464936.39580.0973521.081061.553677.5844...0.0028300.33677088.29600.01867895.937133.5760.0181121.797050.2162124.8676
12002-10-020.311300.288664.18840.2524365.77320.0973521.064081.474437.3580...0.0022640.24762565.37300.01698088.013143.4810.0189611.788560.2099863.3960
22002-10-030.331110.283003.84880.2456445.32040.0721651.018801.403686.5939...0.0016980.19357241.03500.01726365.090136.6890.0198101.780070.1986662.9432
32002-10-040.580150.305644.07520.2787556.22600.3282801.146151.7659210.7823...0.0022640.21168429.71500.02179145.846120.8410.0260361.805540.3622402.9998
42002-10-050.472610.373565.06570.3169606.93350.3509201.381042.2583412.7916...0.0042450.25356824.93230.02886635.941103.0120.0350921.864970.3565803.5658
\n", + "

5 rows × 45 columns

\n", + "
" + ], + "text/plain": [ + " date 03347000 03348350 03349000 03350700 03351000 03351310 \\\n", + "0 2002-10-01 0.33394 0.29432 4.9242 0.246493 6.3958 0.097352 \n", + "1 2002-10-02 0.31130 0.28866 4.1884 0.252436 5.7732 0.097352 \n", + "2 2002-10-03 0.33111 0.28300 3.8488 0.245644 5.3204 0.072165 \n", + "3 2002-10-04 0.58015 0.30564 4.0752 0.278755 6.2260 0.328280 \n", + "4 2002-10-05 0.47261 0.37356 5.0657 0.316960 6.9335 0.350920 \n", + "\n", + " 03351500 03352500 03353000 ... 03368000 03369500 03371500 03371520 \\\n", + "0 1.08106 1.55367 7.5844 ... 0.002830 0.336770 88.2960 0.018678 \n", + "1 1.06408 1.47443 7.3580 ... 0.002264 0.247625 65.3730 0.016980 \n", + "2 1.01880 1.40368 6.5939 ... 0.001698 0.193572 41.0350 0.017263 \n", + "3 1.14615 1.76592 10.7823 ... 0.002264 0.211684 29.7150 0.021791 \n", + "4 1.38104 2.25834 12.7916 ... 0.004245 0.253568 24.9323 0.028866 \n", + "\n", + " 03373500 03374000 03374455 03375500 03376350 03376500 \n", + "0 95.937 133.576 0.018112 1.79705 0.216212 4.8676 \n", + "1 88.013 143.481 0.018961 1.78856 0.209986 3.3960 \n", + "2 65.090 136.689 0.019810 1.78007 0.198666 2.9432 \n", + "3 45.846 120.841 0.026036 1.80554 0.362240 2.9998 \n", + "4 35.941 103.012 0.035092 1.86497 0.356580 3.5658 \n", + "\n", + "[5 rows x 45 columns]" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "streamflow_data_df.head(5)" ] @@ -405,10 +5634,11 @@ "metadata": {}, "outputs": [], "source": [ - "streamflow_data_df.to_csv('streamflow_obs_data.csv', index=False)\n", - "streamflow_metadata_df.to_csv('streamflow_obs_metadata.csv', index=False)\n", + "# Save CSVs to the output folders\n", + "streamflow_data_df.to_csv(f'{OBS_OutputFolder}/streamflow_obs_data.csv', index=False)\n", + "streamflow_metadata_df.to_csv(f'{OBS_OutputFolder}/streamflow_obs_metadata.csv', index=False)\n", "\n", - "model_df.to_csv('streamflow_parflow_model_data.csv', index=False)" + "model_df.to_csv(f'{MOD_OutputFolder}/streamflow_parflow_model_data.csv', index=False)" ] }, { @@ -424,7 +5654,7 @@ "id": "933fd0a9", "metadata": {}, "source": [ - "### 5a. Create hydrograph plots for each stream gage\n", + "### Create hydrograph plots for each stream gage\n", "Plots the observed and modeled values together over time. This helps identify:\n", " - Periods of systematic bias\n", " - Timing differences in peaks and lows\n", @@ -433,7 +5663,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "id": "1929bd27", "metadata": {}, "outputs": [], @@ -447,26 +5677,52 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "1f44982d", + "cell_type": "markdown", + "id": "a68b9667", "metadata": {}, - "outputs": [], "source": [ - "# Optional: view saved plots in the notebook\n", - "from IPython.display import display, Image\n", + ">Optional: Copy the following code to a Python code block to view saved plots in the notebook. \n", + "To note, this will display all of the saved plots, so be mindful if you have many sites. \n", + "```from IPython.display import display, Image\n", "\n", "for site_id in list(streamflow_metadata_df[\"site_id\"]):\n", " img = f\"streamflow_{site_id}.png\"\n", " display(Image(filename=img))" ] }, + { + "cell_type": "code", + "execution_count": 68, + "id": "1f44982d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnMAAAHBCAYAAAACWj3tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAvkdJREFUeJzs3Xl8U2XWwPHfzda9gRZoKZRVUNkURAFRkRHBBdFxRh1RFGXcUBFFUUadYcYRBh2Ecd8QHFFxxVHfGRQQUEQUQRQQ2WSHUpbSvVnv+8ddkjRpm5aWpuR8P5/a9uYmeRJDc3Ke55xHUVVVRQghhBBCNEmWxh6AEEIIIYSoOwnmhBBCCCGaMAnmhBBCCCGaMAnmhBBCCCGaMAnmhBBCCCGaMAnmhBBCCCGaMAnmhBBCCCGaMAnmhBBCCCGaMAnmhBBCCCGaMAnmhIjg/fffR1EU3nnnnbDLTjvtNBRF4bPPPgu7rHPnzvTp08f8vUOHDgwfPjzifXz//fcoisKcOXPMY3PmzEFRFL7//nt27NiBoihRfe3YsYOlS5dWe07w/UQyefLkkPPtdjvt2rXjlltuIS8vL+z84Mf2n//8B0VRePHFF6u8/YULF6IoCk899RQAo0ePrna8hsrPg8VioXnz5lxwwQV8/vnn1T4mQ/Bz880334RdPnr0aFJTU0OOnX/++VWOrUOHDhHv5+OPP0ZRFDIzM3G5XBHP6dChQ8htpaSk0KdPH5599llqsyFPUVERjz/+OH379iU9PZ2EhAQ6dOjAzTffzJo1a8zzjNdUVV9Lly4NG9vtt98edn/Gc/j+++8DRP3aXLp0aY2v5cmTJ5v3U/l14XA46Ny5M/fffz9FRUURn8NoXvOHDx9m0qRJdOvWjeTkZNLT0+nfvz/PPfccHo8n7PEat/GPf/wj7LLgf6d1EenvQkPenzjx2Rp7AELEIuONfMmSJVxzzTXm8SNHjrBu3TpSUlJYsmQJw4YNMy/bs2cPv/76K/fdd1+9jKF169ZhgcfYsWMpLCzkzTffDDt3x44dAEyZMoXBgweH3V7nzp2jut8FCxbgdDopKSnh888/Z/r06axYsYK1a9dit9sjXufSSy8lOzub1157LWIgADB79mzsdjujRo0yjyUlJfHFF19ENa67776bkSNH4vP5+OWXX/jrX//KJZdcwhdffMF5550X1W0ATJw4ka+++iqqczt16hT2XAMkJCREPH/WrFmA9jr56KOPQl47wQYOHMg///lPAPbt28dTTz3F3XffTVFREX/6059qHNe2bdsYOnQo+fn53H777fz1r38lNTWVHTt28O6773LGGWdw9OhRnE6neZ3Zs2dzyimnhN1Wt27dIj6Oe++9l5NPPrnKMVR+bT722GMsWbIk7P9nt27dOHLkCBD4f1hZ27ZtQ34Pfl0cPXqU999/n+nTp/PTTz/x+eefM3/+/JBg+dVXX2XWrFnma9dgvOZ/+eUXhg4dSklJCRMmTODss8+mvLycTz/9lHvuuYf33nuP//73vyQnJ4eN7R//+Ae33norGRkZVT4X9el43584QahCiIh69uypnnzyySHHPvzwQ9Vut6vjxo1TzzrrrJDL/v3vf6uA+sknn5jH2rdvr1566aURb3/VqlUqoM6ePds8Nnv2bBVQV61aFfE6gwYNUrt37x7xsiVLlqiA+t5770Xz8ML85S9/UQH14MGDIcdvuukmFVC/+OKLkOOVH9vEiRNVQF23bl3YbRcUFKiJiYnq7373O/PYjTfeqKakpNQ4ru3bt6uA+uSTT4YcX7ZsmQqoN9xwQ423YTw3F110kQqoH3/8ccjlkcZS3XMdyf79+1Wbzab+5je/URMTE9ULL7ww4nmRXhOFhYWq0+lU27VrV+P9eL1etWfPnmp6enrE51pVVfW///2vWlpaqqpqza+pymMbMGCA6nQ61SuvvDLksppeX9X9/6zq/2Ftbmfw4MEqoP76669hl1X12lVV7fnq1q2b6nQ61U2bNoVdPm/ePBVQb7vttpDjgDpkyBDVZrOp9913X8hltXlOI4n0GmjI+xMnPplmFaIKgwcPZtOmTezfv988tnTpUs4880wuueQSVq9eTXFxcchlVquVc889tzGG22D69u0LwIEDB6o9b8yYMYCWAars7bffpqKigptvvvm4jyvY6NGj6datG5MmTcLn89XbWABef/11vF4v9957L1deeSWLFy9m586dUV03PT2drl27RvVYPvroI9atW8ekSZPo0aNHxHMuvvjiiFmmaGRkZPDQQw/x4YcfsnLlyjrdRkOoy/9vgPnz5/Pzzz/z0EMP0bVr17DLr7nmGoYOHcqsWbPClhOcfPLJjBkzhueeey7q/5fH4njfnzhxSDAnRBWMqcrgNUVLlixh0KBBDBw4EEVRQqbrlixZQp8+fUKmeQBUVcXr9YZ91XcwYfD7/RHvr662b98OEPGNMFjXrl0555xzmDt3btgapNmzZ9OmTZuQaWlDpLH6/f56G1cwq9XK1KlT2bBhA6+//npU14l2fK+99hqtW7fm4osv5uabb8bv99e4TjH4Pnbv3h3VYzHWCV5xxRVR3bbB5/NF/Rq85557aNOmDRMnTqzVfdTkWF6b27dvx2az0alTp1rd58KFC4Hqn68rrrgCr9cb8m/dMHnyZKxWK48++mit7reujvf9iRODBHNCVGHQoEFYLBbzD/zhw4dZv349gwYNIjU1lT59+rBkyRIAdu/ezfbt2yOuVfvvf/+L3W4P++rfv3+DjPuaa66JeH979uyJ6vrGm/7Ro0d57733eOGFF7j22mtDCjuqMmbMGPLz8/n000/NYxs2bGDVqlWMHj0aq9Uacn5paWnEsQ4dOjTsto1AwOVy8eOPP3LLLbfQunXrWq9RHDFiBOeccw5/+ctfqKioqPbcDRs2RBzfrbfeGnLeV199xebNm7nxxhuxWq385je/oWPHjsyePTtiUUNwgL9r1y7Gjh3L4cOHmTp1ao3j37VrFwAdO3asxaOG/v37hz2Oqtb+JSUlMXnyZL766quQ/5fH6sEHH4z4fC5fvjzsXOP5OXz4MC+++CIffvghEydOpFWrVrW6z2ieL+My49xg2dnZ3Hvvvbz55pv89NNPtbrvujje9ydODFIAIUQVmjdvzmmnnWYGc8uWLcNqtTJw4EBAC/aMRdpGUBcpmDvnnHOYMWNG2PGNGzdyww031Pu4p02bxm9+85uw41lZWVFdPzs7O+T38847L+os1tVXX824ceN47bXX+O1vfwtoGStFUbjpppvCzk9KSuLLL78MO56enh527MEHH+TBBx80f09LS2PJkiVVVpZWZ9q0aQwcOJB//etfIbdZWefOnZk3b17Y8ZYtW4b8bhQ+GNPIiqIwevRo/vKXv7B48WKGDBkScr4R4Ad78cUXufTSS2v9WKL173//m1NPPTXkWHDVcGU33XQTM2bM4KGHHuKSSy6plzHcc889XH/99WHHKxdmGEF+sGuvvZbHH3+8XsZRmRFwV/V8TJw4kZdeeokHH3yQ//3vfw0yhsa8P9H0STAnRDUGDx7MU089xb59+1iyZAlnnHGG2cJi0KBBTJ8+ncLCQpYsWYLNZuOcc84Juw2n02mu9zkeOnXqdEz3t2jRIpxOJ0eOHOHll1/mgw8+4O6776627YghOTmZP/zhD8yePZu8vDxatGjB3LlzGTRoUMRqWovFEvVYjUDA5XKxcuVKHnnkES6//HJ+/PFHMjMza/UYzz77bK644gqzcrAqiYmJNY6vuLiY9957j7POOouWLVty9OhRAH77298yefJkZs2aFRbMGQG+z+djy5YtPProo9x1111079494msoWLt27QBt2jFSdWpVTj311Fq9LqxWK1OmTOGKK67g9ddfr3UmMJK2bdtGNYbgID8vL4/p06fz9ttv06tXLx566KFa3Wc0z5dRCZ6bmxvx8vT0dB555BHGjx9vfnBrSMf7/kTTJ9OsQlQjeN3c0qVLGTRokHmZ8ab75ZdfmoURlXuVNUWnnXYaffv2ZejQobz33ntceOGFvPzyy6xatSqq648ZMwav18u///1vPv30U/Lz883iiGNhBAIDBw5kwoQJvPrqq+zdu5e//OUvdbq9qVOnUlxczJQpU45pXG+//TZlZWV89913NG/e3Pzq1asXqqoyf/58CgoKQq5jBPj9+vXj+uuv5/PPP8dutzN27Nga1wsa6w4/+uijYxp3NC6//HIGDhwY1ZR0fTKC/L59+zJ8+HAWLFhA9+7d+etf/8ru3btrdVsXXnghUP3z9dFHH2Gz2Tj//POrPOeOO+6gY8eOPPjgg7XqB1hXx/v+RNMmwZwQ1TjvvPOwWq28//77bNiwIeSPvdPp5PTTT+f1119nx44dEadYmzpFUXjuueewWq088sgjUV2nX79+9OjRg9mzZzN79mycTie/+93v6n1s1113Heeffz6vvPJKnSr/TjnlFG6++WaeeeaZiGulojVr1izS0tJYvHgxS5YsCfl68skncblcEXvVBevSpQsTJ05k3bp1ERtVB7v88svp2bMnU6dOZf369RHP+eyzzygrK6vzYwo2bdo0du/ezdNPP10vt1cXCQkJPPfcc1RUVPD3v/+9Vtf97W9/S7du3fjHP/7B5s2bwy5/5513+Pzzz/njH/8YtsQgmMPh4O9//zurVq3ivffeq/VjqK3jfX+iaZNpViGqkZ6eTp8+ffjoo4+wWCzmejnDoEGDmDlzJhB5vVxj2LJlS8SWEm3btg1rzhqNLl26cOutt/L888+zfPny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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# look at one of the saved hydrographs in the notebook\n", + "from IPython.display import display, Image\n", + "\n", + "site_id = \"03354000\" # pick your site\n", + "\n", + "img = f\"streamflow_{site_id}.png\"\n", + "display(Image(filename=img))" + ] + }, { "cell_type": "markdown", "id": "dcb98bc1", "metadata": {}, "source": [ - "### 5b. Scatter Plot with 1:1 Line:\n", + "#### Scatter Plot with 1:1 Line:\n", "Plots each modeled value against its corresponding observed value. This highlights:\n", " - Accuracy across the full range of values\n", " - Over- or under-prediction patterns\n", @@ -475,10 +5731,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "id": "48a4c1bc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAucAAALYCAYAAADfK1ywAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAApgNJREFUeJzs3XecVNX9//H3bJstwO5K7yss1UJTULGgKCpIBxGQomhiyc8YoyYmJpqYxERTTPRrEo0oIqDSFAREQVCa1BWp0kQ6AsIubJ+Z8/vjOuMOOzvbZvfO7L6ej8c+xLnn3vuZduc9Z84912GMMQIAAABguyi7CwAAAABgIZwDAAAAYYJwDgAAAIQJwjkAAAAQJgjnAAAAQJggnAMAAABhgnAOAAAAhAnCOQAAABAmCOcAAABAmCCc1yJPP/20HA6HHA5Hle2jT58+cjgc6tOnT5XtozaYOHGiHA6H0tLS7C4FJXjjjTd876f9+/fbXQ5QIl6riFRTp07Vtddeq9TUVEVFRcnhcKhr166SpP379/te12+88YatdYYa4bwUy5cv9z35DodDdevWVU5OTqnr5ebmKjk52W/d5cuXV33BAAAAEe7xxx/X+PHjtWLFCp05c0bGGLtLqjaE83I6d+6c3nvvvVLbvf/++8rKyqr6ggCETNEv43yZBlAeaWlpcjgcmjhxot2lRLyDBw/q73//uyTpiiuu0AcffKDNmzdry5Ytmj17ts3VVT3CeTnEx8dLsn5mKY23jXcdADXLxIkTZYyRMYbhRwhrvFYRaZYtWya32y1J+t///qcBAwbo0ksv1cUXX6y2bdvaXF3VI5yXw6BBgyRJH3/8sY4dO1Ziu2+//VYfffSRJGnw4MHVUhsAAEBNcPjwYd+/27dvb2Ml9iCcl0O/fv3UpEkTud1uzZgxo8R2M2bMkMvlUuPGjXXTTTdVY4UAAACRLT8/3/fv2NhYGyuxB+G8HKKjozV69GhJwYe2vPnmm5KkMWPGKDo6ukzbLigo0Msvv6zrr79eDRs2VFxcnJo0aaL+/fvrrbfeksfjKXUbhw4d0oMPPqg2bdooPj5ezZo106BBg7RkyZIy1eCVk5OjF154Qddff70aN26suLg4NWrUSP369dPrr7/u+6kp1K6//no5HA61atWq1BM/CgoKdMEFF8jhcGj48OHFlm/cuFGTJk1S+/btlZSUpPj4eLVs2VI9evTQgw8+qHnz5lX5ySWheE69Dh8+rEceeUTt27dXYmKiGjZsqP79+2vRokWlrjt37lwNGTJELVq0kNPpVN26ddWmTRtdc801+s1vfqN169YFXX/dunW699571b59e9WpU0dJSUnq2LGjHnzwQe3evbvE9c6fISI/P18vvPCCrrjiCjVo0EAOh0NPP/20pkyZ4mtXltfqAw88IIfDobi4OJ06dcpv2b59+/S3v/1NAwcOVFpamhISEpSQkKDWrVtr1KhR+vDDDwNu03vW//XXX++7zft6LPpXdEaAss6AceLECT355JPq1q2bUlJSFB8fr7S0NI0bN04rV64Mel/PH8O6c+dO3XvvvUpLS5PT6VTjxo01dOhQff7550G3k5eXp3/961/q06ePGjRooNjYWF1wwQXq2LGj+vfvr3/84x+VnsWjoKBAr7zyigYMGKDmzZvL6XSqUaNG6tGjh37yk59oxYoVJb7nzp07pz//+c+68sordcEFF8jpdKpFixYaMWKEPvjgg6D7PX+GqD179ui+++5TmzZtlJCQoLS0NE2aNEnffPON33pbt27VXXfd5TtetmzZUvfff7++/fbbEvd1/ixKFX1fZmdn65133tE999yjrl27Kjk5WbGxsWrYsKGuu+46/fWvf9W5c+eCbsP72nv66aclSZ988olGjhypli1bKjY21m/4Slleq5U9Zs6fP18jRozwHWfq16+vK6+8Un/+85+D3pfza/N4PHrllVd01VVXKTU1VUlJSbr00kv1xz/+sUyTMYTCkSNH9Mtf/lLdu3dXcnKy79h9ySWXaPTo0XrjjTf8zinzvga9r7GixzTvX9EZzALNMjJnzhz1799fzZo1U0xMTMAZzw4dOqQnnnhC3bt3V2pqquLj49WqVSuNGjVKy5YtC3qfTp8+rddff1133nmnOnfurDp16vju180336xXXnlFBQUFJa5fUs39+vVTo0aNlJSUpC5duujFF19UYWGhbz1jjKZPn64+ffqoUaNGSkxMVPfu3fWf//wn4OvJe8z73e9+57vt/MeyvMeqin4WX3TRRXI4HL7cd7633nrLV9Mll1wSsM0XX3zha7NgwYKyF20Q1LJly4wkI8m8/vrrZtOmTb7/37p1a7H227Zt8y3ftGmTef31133/v2zZsoD72L9/v+nUqZOvXaC/q6++2pw6darEOpcvX27q1atX4vq/+93vzFNPPeX7/5KsW7fONG/ePGgtPXv2NMeOHQu4/nXXXWckmeuuuy7o4xrI//73P98+li9fHrTt3LlzfW1nz57tt+zvf/+7iYqKCnofJJmzZ8+Wu8ayquxzOmHCBCPJtG7d2qxfv940atSoxO389Kc/DbgNl8tlRo4cWerj0KNHj4DrFxYWmvvvvz/ourGxseaVV14JuH7R1/769etN165di63/1FNPmaysLJOQkGAkmYkTJwZ9XAsLC02DBg2MJDNw4EC/Zfv27Sv1vkoyd955pyksLPRb9+uvvy7Tuq+//nrA+/f1118HrHfx4sVB35eSzIMPPmjcbnfA9Vu3bm0kmQkTJpjZs2ebxMTEgNuIjo42b7/9dsBtHDlyxHTu3LnU+/bzn/886GMfTEZGhrnwwgtL3Uegx2nTpk2mWbNmQdcbNmyYyc3NDbjvosecjz/+2NStWzfgNho1amR27NhhjDFm+vTpxul0BmzXunVrc/jw4YD7CsX7smjNwf4uvPBCX72BFH0P/epXvwp4P7xKe61W5piZm5trhg4dGnS9Zs2amYyMjID3o2htW7duNTfccEOJ2+nZs6c5d+5cqY9J0fteXp999lmp71lJZv78+b51yvJ8Fv1MLHq8mTx5shk3blzQ9sZYn4/e42RJf5MmTSp2bPPyHkuC/XXr1s0cPXo04PpFa3799deDfjYMGzbMuFwuk5eXZ0aMGFFiu3vvvbdCdXpfw+fXFEhlPosfeOABI8k0adIk4LYnTZrk24bD4TDffvttsTb/+Mc/jCQTFRVlzpw5E3A7gRDOS3F+ODfGmIsvvthIMr/4xS+Ktf/lL39pJJmLLrrIGGNKDednz541bdq08bUZMmSImTdvntmwYYOZOXOm35v+yiuvNC6Xq9g2vv76a98HUlRUlLnvvvvMkiVLzPr1681rr71m2rVrZySZyy67zLetQL788kuTlJRkJOuD7KmnnjJLliwxGRkZZvHixebBBx80MTExRpLp1auXKSgoKLaNyoTzM2fO+D4wA71pi/K+4ZOTk01eXp7v9s2bN/s+ZC688ELzt7/9zSxdutRkZGSYFStW+A6EderUqbJwHorn1BsCGjZsaNLS0ozT6TS//OUvzWeffWbWrl1r/vWvf5mmTZv6tvO3v/2t2DZefPFFv4PPG2+8YVasWGEyMjLM0qVLzT//+U9zyy23mJ49ewa8H+PHj/etf+utt5q33nrLrFu3zqxfv968+uqr5qKLLvItnzdvXrH1i772L730UuNwOMz48ePNggULzMaNG83cuXPNwoULjTHGjBo1ykgy9erVKzGEGWPMBx984Nvm+WF09+7dJi4uzgwcOND861//MkuWLDGbNm0yS5YsMS+//LJfvb/97W/91i0oKDBbtmwxkydP9vvQ3LJli9/f6dOnA96/QIEnIyPDxMXFGcn6EvPwww+bZcuWmXXr1pn//ve/fmH28ccfD3h/vR9U3bp1M/Hx8ebCCy80L730kvn888/NmjVrzNNPP23i4+N9j12gD4fhw4f79nPnnXeaOXPmmM8//9ysX7/efPDBB+Z3v/ud6datW4XD+bZt20ydOnV8+xg6dKh55513zPr1683nn39upkyZYu68806TlJRU7HE6dOiQSU1N9X243XXXXWbx4sVmw4YN5s033zRdunTxbff2228PuH/v+6ldu3YmNTXVtGzZ0rz44otm7dq1ZsWKFebhhx82DofDSDK9e/c269atMzExMaZTp07mf//7n1m3bp1ZtmyZX0AaNWpUwH2F4n1pjDG9e/c2l1xyifn1r39t5s6da9auXWs+//xz884775g77rjDdwzr0KFDie+Hou8tSeaSSy4xkydPNuvWrTOffvqp+ec//+lrG+y1Wtlj5u233+7bdpcuXcybb75p1q9fbxYvXmzuuusu32N/wQUXmEOHDhVbv2htV111lYmKijITJkzwO05ceeWVvja//OUvAz4eRR+TiobzvLw83xfFunXrmscff9wsWrTIbNy40ff8PPzww6Zly5Z+4Xzfvn1my5YtvnUHDx5c7Nixb98+X/uiodL7/F1zzTVm+vTpZsOGDWbJkiXmf//7n6/9a6+95mt/8cUXmxdffNGsXLnSbNq0ycyePdv079/ft/yRRx4JeN9atGhhevXqZZ555hnzwQcfmPXr15tVq1aZt956y9xyyy2+9Uv67C5ac69evYwk079/fzNnzhyzceNG89577/lul2ReffVV8//+3/8zksyYMWPMBx98YDZu3Gjefvtt07FjR1+7RYsW+e3nq6++Mlu2bPEL/+c/lt7sUVo4r+xn8TvvvONbHuiLctu2bf1C/syZM4u1GTx4sJFK7gQrCeG8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2NhY3312uVzFZhnxHj8qc+w4n/ezed++fQFPlC+Lsrzm5s2bV6FfwMJVKD+Li75mZ8yYod27d/uNNz+/3bJly/TZZ59Jqth4c4lwXml/+ctflJeXp7y8PP31r38t17pOp1P33HOPJOubrXccYlHGGP3kJz/xHRS9M6V4NW3aVIMHD5ZkvbkC9QafO3fO91NlSYYPH+47Cebf//530A9LyTqjef78+UHbVJY3pK1bt04zZszQrl27/G4P5L333gs6LdPBgwd9Z1wHCvh9+vTxnflekem4QvGcnu/f//53wB7NY8eO+YZ9JCYm+mZn8XrrrbeCTp1XtFf8/MfiySeflCTl5eVp2LBhftNDnS8/P18vv/yy8vLygt6Psio6C8+0adN8X8p69uypdu3aBVwnPT3d12v15ptvBmzzwQcf6MUXXwy676IH5r1795a7dq+ePXv6ht/873//84XLojIzM/XjH/9YknVy1P3331/h/ZVk3759xaYAO1+w10FpbrzxRt8Udy+++KLefvvtEtt+9913fj2NzZo18523s3jxYk2ePLnYOgUFBbr77rt9v4qU9l6pThV9X3pfwytXrgx4QvaJEydKHbYXSpU5Zj744IOSrFmS7r777oAnYU+ePNn3Ghs+fHiFTh4uK++xu6JTS65YscI3O0ogBQUFvvdTnTp1fOONvbz3rTLHjvM99thjcjqdkqT77ruv1F9UFi5cqC+//NLvNu9rbv78+QGHruzdu1cPPPBAiCoOD6H8LG7WrJnS09MlSf/85z8l+Y839/KG82nTplVqvLm3OAQR6CJE5VHaFUKzsrL8Li87dOhQM3/+fLNx40Yza9Ys06dPH9+yki71/vXXX/uuthUdHW0eeOAB88knn5gNGzaYyZMnm/bt2xtJ5rLLLgs6qf+XX37pdxnum2++2UyZMsV8/vnnZuPGjWbRokXmT3/6k7nqqquMFPiKg5W9CFFRBw4c8F362XsxgdjY2BKvXurdf2Jiohk5cqT597//bZYvX24yMjLMJ598Yp577jnfFVxVwkWOil7QpLQLe5QkFM9p0cuEt27d2sTHx5snnnjCrFixwqxbt8689NJLvgvPSIEvEy7JNG7c2Nx///1m6tSpZvXq1WbTpk1m0aJF5pFHHjEJCQlGsq626b1oVqAaJOtqb7/+9a/NRx99ZDIyMszKlSvNlClTzD333OO7Atr5l/Yu7QqawfTt29fveZfkdznyQAYMGOD32p0zZ47ZsGGDWbhwoZk0aZKJjo427dq1Mw0bNgx6oRDv1R0vvPBC895775kdO3aY3bt3m927d/tdLKS0+5eRkWHi4uJ8r9tHHnnELFu2zKxfv9688sorfq+Rxx9/PGAtZb2oife5Ov/iK97jV+fOnX2Xil+3bp1Zt26dmT17tt+l17t161biVQqD2b59u99xY9iwYebdd981GzZsMGvXrjXTpk0zEydONHXq1Cn2OB08eNCkpqYafX9xoLvvvtt89NFHZsOGDeatt94yXbt29W030NUljSn7Maesj6V3f0899VSxZaF4X86cOdO3vEWLFubFF180q1evNqtWrTLPP/+8adq0qXE4HH6XrC9vnecL9lqt7DHTe1VVSaZr165m6tSpZsOGDebjjz82kyZN8h3DL7jgAnPo0KFy1VZUaVeDLPqYVPQiRE899ZSJiooy1113nXnuuefMhx9+aDZu3GhWrlxpJk+ebHr27OnbR6ArZP7617/2LX/22WfNF1984Tt2FL3vZbkvRRV9jOLi4sykSZPM3LlzzcaNG83atWvN7NmzzS9+8Qvf5eTPv7rp888/71u/Y8eOZvLkyWbt2rXm008/NU899ZRJTk428fHxpnv37iU+fmWtuawXcivteQ/FFUJD8Vnsdc899/jaSsWvBmqMdTwr2sbhcJiTJ0+WuM1gCOelqOpwboz1AvNehaqkv969ewe9vPayZct8AT3Q31NPPVWmF/vmzZt9V5Ys7e93v/tdsfVDGc6NMebaa6/122ewq6AW3X+wv+joaPOnP/2p1PUrGs6NqfxzWjRsrV+/3jRo0KDE7Tz00EMBt1GW5zAlJSXgpeWNMcblcpnHH3/cdxXHYH9JSUnFLs1emXBe9FLS3ucs2KXFjbG+zLVq1arEGlu1amW2bdtWakh7+eWXS9xG0WNAWe7f4sWLTb169YI+dg8++GCxy6J7hSqcl/bXqVOnSr3eN2zY4BfiSvoLtI9Nmzb5BdpAf8OGDSvx6oh2hPPKvC+NMeauu+4Kenx64YUXSj1eB6vzfKWF88ocM3Nzc83QoUODrt+sWTOTkZFR7tqKqq5wXpb3S0mvx0OHDvk6K87/K/r6LG84N8aYt99+u9RjiWRdMfb8K2cXFBSYfv36lbhOQkKCeffdd0s8jpSn5nAK5942lc1XxhgzdepUv3VmzpwZsF3RLwOXXHJJ0G0Gw7CWMJCWlqbNmzfrpZde0nXXXaf69esrNjZWjRs31i233KKpU6fqs88+C3pSQZ8+fbRt2zbdf//9at26teLi4tS4cWMNGDBAH374oZ5++uky1XLppZdq+/btmjJlioYMGaKWLVsqPj5ecXFxatq0qfr06aMnn3xSGzdu1G9/+9sQPQIlO38IS0ljjr3effddTZs2TRMnTlTXrl3VpEkTxcTEqE6dOrr44ov1wAMPKCMjQ0888URVlh2S59Trsssu06ZNm/TQQw+pbdu2io+PV/369XXLLbdo4cKFvp/Zzrdz5069+OKLGjJkiDp37qz69esrJiZGqampuuKKK/T000/rq6++KvEk5ujoaP3lL3/R9u3b9fOf/1zdunVTamqqoqOjVbduXV100UUaO3aspkyZoqNHj5Zrlo/SDB8+3G/8d9++fUudq7Zly5batGmTHnvsMbVv315Op1PJycnq0qWLnnrqKX3xxRe+sfTB3H///Zo9e7b69eunRo0aVWqMc79+/bRnzx796le/UteuXVWvXj05nU61atVKY8eO1YoVK/TSSy8Vu5hWqFxzzTVas2aNfv/73+uGG25Qenq66tat63st9uvXT//973/1xRdfVOoqkz169NBXX32lf/3rX74THWNjY9WkSRP16NFDP/3pT7VmzZqA++jWrZu++uorPfvss+rVq5dSUlIUFxenZs2aadiwYZo3b55mz54d9OqIdqjo+1KyhnpMnTpV11xzjerWrSun06nWrVtr3LhxWr16dchnkQqmssfM+Ph4zZkzR/PmzdOwYcPUrFkzxcXFKTU1Vb169dKzzz6rr776qsSpb8OJ9wJdP/vZz3TFFVeoVatWio+PV3x8vNLS0jRq1CgtWLCgxNdj8+bNtW7dOk2aNEnp6ekhfc2OGjVK+/fv15///Gf16dPH9x5LTExUmzZtNHDgQP3973/X/v37fTOHeMXGxmrBggX617/+pcsuu0yJiYlKSEhQenq67rvvPm3atEkjR44MWa3hJFSfxUWHpwQab+5V9LGv6HhzSXIYU8MmtAQAoApMnDhRU6ZMUevWrSt8iXgAKA095wAAAECYIJwDAAAAYYJwDgAAAIQJwjkAAAAQJgjnAAAAQJhgthYAAAAgTFR8Al+U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v7933nlHkvSXv/xFTZo00eWXXy5JateunSSrl/vIkSMBt7tv3z6/tpKUlpbmmwXGu7ws6wEAAPt5zp61eswJ5ohQERHOJcntduv48ePF/rxjxM+dO6fjx4/rxIkTkqz5yJt8fxneVatWBdym9/ZevXr5bouJiVH37t3LvR4AALCXJytL2W+8Ic+pU3IkJ6vOxIkEc0SciAjn3qEpgf4mTJggSXrmmWdkjNH+/fslSQ6HQ0OHDpVkXVH0fKtXr9bOnTsVGxurQYMG+S0bNmyYJOmNN96Q2+32W3bgwAEtWbJEkjR8+PCQ3k8AAFAxnqwsq8f8u++sYD5hgqJKGX4KhKOICOcV9dhjjykuLk4fffSRnn/+eRljJEnffPON7r77bknSPffc4+th97rvvvvUoEED7dixQ4888ohv3vNTp05pzJgxcrlcuvXWW9WjR4/qvUMAAKAYT2am1WP+3XdypKSozsSJBHNErBodzi+88EK9+uqrioqK0uOPP66WLVuqe/fuateunb766iv16NFDzz//fLH16tWrp7ffflvx8fH617/+pebNm+uyyy5Tq1attGrVKqWlpWny5Mk23CMAAFCUJzPT6jE/fdoK5hMmKColxe6ygAqr0eFcksaPH68VK1botttuU25urrZv3642bdro6aef1sqVK5WUlBRwvb59+2rDhg2644475HA4tGXLFjVu3FiPPPKINm3aVKy3HQAAVC/PmTM698Yb8pw+rajUVKvHnGCOCOcw3rEeqHJZWVlKTk5WZmam6tWrZ3c5AABELM+ZMzo3ZYrMmTOKSk1V0oQJikpOtrss1AB257WImOccAADAy9tjbjIzFXXBBVYwp9MLNQThHAAARAzP6dNWjznBHDUU4RwAAEQEz+nTVo95Vpai6te3gnndunaXBYQU4RwAAIQ993ffKXvKFII5ajzCOQAACGvu775T9htvyJw9q6gGDaxgXqeO3WUBVYJwDgAAwpb71Cmrx/zsWUU1bKik8eMJ5qjRCOcAACAsuU+etIL5uXMEc9QahHMAABB2/IJ5o0ZWMC/hwoFATUI4BwAAYcV94oSy33yTYI5aiXAOAADChvvECavHPDtbUY0bW8E8MdHusoBqQzgHAABhwf3tt1aPeXa2opo0UdK4cQRz1DqEcwAAYDv3t99aPeY5OQRz1GqEcwAAYCv38eNWj3lO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41Hue++p8MsvpagoJY4YodiLLrK7LABAmIr4qRSNMZo5c6Yk/zC9e/duSZLT6VSzZs0CrtumTRu/tpI1Tr2wsNBveVnWCyQ/P1/5+fm+/8/KygraHkDNYjwe5c6dq8KtW38I5p062V0WACCMRXzP+auvvqqMjAzFxcXp4Ycf9t1++vRpSVJKSoocDkfAdVNTU/3anv9v7/KyrBfIs88+q+TkZN9fy5YtS79DAGoE4/Eod86cH4L5yJEEcwBAqSI6nG/atEk//elPJVmztbRt29a3zDvUJS4ursT1nU6nJCk3N7fYesHWDbReIE888YQyMzN9fwcPHgzaHkDNYNxu5c6ercJt234I5h072l0WACACROywlq+//lq33Xab8vLyNGbMGD366KN+y+Pj4yVJBQUFJW7DO+Sk6Fh173redYv+f7D1AnE6nb4gD6B2MG63cubMkWv7diuY3367Yjt0sLssAECEiMie82PHjummm27S0aNHNWDAAL3xxhvFhq54h56cOXNGJc0W6R2WUnT4StF/lzRsJdB6AGDcbuXMnm0F8+hoJY4aRTAHAJRLxIXz7777TjfddJP27t2r6667TjNnzlRsbGyxdu3atZNk9XIfOXIk4Lb27dvn11aS0tLSfNvzLi/LegBqN+N2K2fWLLl27PghmLdvb3dZAIAIE1Hh/Ny5c+rfv7+2bt2qyy+/XPPnzy9xaEmrVq3UpEkTSdKqVasCtvHe3qtXL99tMTExvgsLlWc9ALWXcbuVM3OmXDt3WsH8jjsUy5d3AEAFREw4z8/P1+DBg7V27VpddNFF+vDDD1W3bt0S2zscDg0dOlSS9NprrxVbvnr1au3cuVOxsbEaNGiQ37Jhw4ZJkt544w253W6/ZQcOHNCSJUskScOHD6/UfQIQ+YzLpZx335Xrq6+kmBgljh6t2PR0u8sCAESoiAjnbrdbd9xxhz755BO1bdtWH3/8sS644IJS13vssccUFxenjz76SM8//7xv7Pk333yju+++W5J0zz33+HrYve677z41aNBAO3bs0COPPOKb9/zUqVMaM2aMXC6Xbr31VvXo0SPE9xRAJDEul9VjvmuXFczvuEOxRWaNAgCgvBympLMlw8iMGTM0ZswYSdY470aNGgVs17RpU98FibzefPNN3XXXXfJ4PGrevLkaNWqkrVu3qrCwUD169NCnn36q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t2+vyy+/vExXKa3MkJiK9taj/CrzPEXifgEACAXmOQ8gKytLDRo0UGFhYcTNcy5J//nPf/Tll1+GfLvhNkd0ea5Gej4uTlN9KvM8ReJ+AQCRze55zgnnJejfv78WLVpU6hVCjxw5EvTE0aKq88kuKCjQjBkztGnTpv/f3r2HRVXnfwB/zzAXQK4iIldNvJcoIOpG/kzTvOCarbqllZqu13ZNK7XSTQqrVXvWrGfdixbuU5qmZepjbonSunh7VAQhNaNEZRU0kJtxG+bz+4PfnB/TXMAbHJj363nmaTzf7/ec75m3jZ85c+YcmM1mBAQEIC4uDpcvX4bRaERoaCgqKipw48YNeHt749q1a6iurkZQUBDGjRuHS5cuobi4GGVlZfDy8lJOA1BbAcsiu2XgHUKJiKilYHGuUocOHcKgQYOg0Wjw8ccfY9KkSQCAzMxMjBgxAgUFBVi5ciUWL17c6HU2d9hERERE5Fxz12sszp148803sWzZMgB1Nx3y8vJCdnY2zGYzEhISsHPnTri5uTV6fc0dNhERERE519z1Gr/fdWLp0qXYvXs3hg4disLCQuTk5KB379549913b7kwJyIiIiJqCI+cN6Hm/iRGRERERM41d73GI+dERERERCrB4pyIiIiISCVYnBMRERERqQSLcyIiIiIilWBxTkRERESkEizOiYiIiIhUgsU5EREREZFKsDgnIiIiIlIJFudERERERCrB4pyIiIiISCVYnBMRERERqQSLcyIiIiIilWBxTkRERESkEizOiYiIiIhUgsU5EREREZFKsDgnIiIiIlIJFudERERERCqha+4JuBIRAQCUlpY280yIiIiIyB5LnWap25oai/MmVFZWBgAIDw9v5pkQERERkTNlZWXw9fVt8u1qpLk+Frggs9mMK1euwNvbGxqN5p5vr7S0FOHh4bh8+TJ8fHzu+fbo7mOGLR8zbPmYYevAHFu+pspQRFBWVoaQkBBotU1/BjiPnDchrVaLsLCwJt+uj48P34haOGbY8jHDlo8Ztg7MseVrigyb44i5BX8QSkRERESkEizOiYiIiIhUgsV5K2Y0GrF8+XIYjcbmngrdJmbY8jHDlo8Ztg7MseVzlQz5g1AiIiIiIpXgkXMiIiIiIpVgcU5EREREpBIszomIiIiIVILFORERERGRSrA4b4W+/PJLDBs2DG3btkWb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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Scatter plot for all sites comparing values\n", "plot_utils.plot_compare_scatter(streamflow_data_df, model_df, variable=\"streamflow\", log_scale=False)\n" @@ -494,1398 +5761,4310 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "id": "cfac2e30", "metadata": {}, - "outputs": [], + "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", + "
site_idsite_namelatitudelongitudermsemsepearson_rspearman_rhonsekger_squaredbias_from_rbiaspercent_biasabs_rel_biastotal_differencecondon
003347000WHITE RIVER AT MUNCIE, IN40.203904-85.38605427.295427745.0403120.7386400.576406-0.159142-0.435832-0.1591420.003552-0.998713-99.8712990.998713-3726.677068Low bias, good shape
303348350PIPE CREEK AT FRANKTON, IN40.227333-85.7663617.74209559.9400380.7844390.6394840.5091240.3155160.5091240.792033-0.430347-43.0347340.430347-729.549410Low bias, good shape
403349000WHITE RIVER AT NOBLESVILLE, IN40.046981-86.01720776.2117635808.2328750.8327380.644399-0.108431-0.313990-0.1084310.133206-0.926159-92.6159340.926159-12939.348273Low bias, good shape
503350700STONY CREEK NEAR NOBLESVILLE, IN40.028925-85.9955393.56753312.7272890.8186180.6503910.3471720.4346040.3471720.9441820.39894739.8946630.398947292.132190Low bias, good shape
603351000WHITE RIVER NEAR NORA, IN39.910595-86.105542106.44458311330.4493360.4269710.315568-0.299076-0.524832-0.2990760.001709-0.999485-99.9485100.999485-18671.381045Low bias, poor shape
\n", + "
" + ], + "text/plain": [ + " site_id site_name latitude longitude \\\n", + "0 03347000 WHITE RIVER AT MUNCIE, IN 40.203904 -85.386054 \n", + "3 03348350 PIPE CREEK AT FRANKTON, IN 40.227333 -85.766361 \n", + "4 03349000 WHITE RIVER AT NOBLESVILLE, IN 40.046981 -86.017207 \n", + "5 03350700 STONY CREEK NEAR NOBLESVILLE, IN 40.028925 -85.995539 \n", + "6 03351000 WHITE RIVER NEAR NORA, IN 39.910595 -86.105542 \n", + "\n", + " rmse mse pearson_r spearman_rho nse kge \\\n", + "0 27.295427 745.040312 0.738640 0.576406 -0.159142 -0.435832 \n", + "3 7.742095 59.940038 0.784439 0.639484 0.509124 0.315516 \n", + "4 76.211763 5808.232875 0.832738 0.644399 -0.108431 -0.313990 \n", + "5 3.567533 12.727289 0.818618 0.650391 0.347172 0.434604 \n", + "6 106.444583 11330.449336 0.426971 0.315568 -0.299076 -0.524832 \n", + "\n", + " r_squared bias_from_r bias percent_bias abs_rel_bias \\\n", + "0 -0.159142 0.003552 -0.998713 -99.871299 0.998713 \n", + "3 0.509124 0.792033 -0.430347 -43.034734 0.430347 \n", + "4 -0.108431 0.133206 -0.926159 -92.615934 0.926159 \n", + "5 0.347172 0.944182 0.398947 39.894663 0.398947 \n", + "6 -0.299076 0.001709 -0.999485 -99.948510 0.999485 \n", + "\n", + " total_difference condon \n", + "0 -3726.677068 Low bias, good shape \n", + "3 -729.549410 Low bias, good shape \n", + "4 -12939.348273 Low bias, good shape \n", + "5 292.132190 Low bias, good shape \n", + "6 -18671.381045 Low bias, poor shape " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "metrics_df = evaluation_utils.calculate_metrics(streamflow_data_df, model_df, streamflow_metadata_df)\n", "metrics_df.head(5)" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "674a3a28", - "metadata": {}, - "outputs": [], - "source": [ - "# Map Condon diagram\n", - "plot_utils.plot_condon_diagram(metrics_df, variable=\"streamflow\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "af38fe19", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f684df6a", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9bc99bf0", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "3249fd08", - "metadata": {}, - "source": [ - "# Hide" - ] - }, - { - "cell_type": "markdown", - "id": "d48fcf12", - "metadata": {}, - "source": [ - "### 1c. Dask \n", - "\n", - "We'll use dask to parallelize our code. To manage parallel computation and visualize progress of long-running tasks, we initialize a Dask “cluster,” which defines how many workers are used and how much computing power each worker has. \n", - "\n", - "In this setup, we create a Dask client with `Client(n_workers=6, threads_per_worker=1, memory_limit='2GB')`, which launches a cluster with 6 workers. Each worker uses a single thread, typically mapped to one CPU core, allowing for efficient parallel processing across 6 cores. Each worker also has a memory limit of 2 GB, for a total of up to 12 GB across the cluster.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bff1b8a4", - "metadata": {}, - "outputs": [], - "source": [ - "# use a try accept loop so we only instantiate the client\n", - "# if it doesn't already exist.\n", - "try:\n", - " print('Dashboard link:', client.dashboard_link)\n", - "except: \n", - " # The client should be customized to your workstation resources.\n", - " client = Client(n_workers=6, threads_per_worker=1, memory_limit='2GB') \n", - " print('Dashboard link:', client.dashboard_link)\n", - "print(client)" - ] - }, - { - "cell_type": "markdown", - "id": "5de02c3b", - "metadata": {}, - "source": [ - "Use the Subsettools function `define_huc_domain()` to get the actual CONUS1 indices associated with the East-Taylor HUC-O8. It returns a tuple `(imin, jmin, imax, jmax)` of grid indices that define a bounding box containing our region (or point) of interest (Note: (imin, jmin, imax, jmax) are the west, south, east and north boundaries of the box respectively) and a mask for that domain." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "965bd6ea", - "metadata": {}, - "outputs": [], - "source": [ - "ij_bounds, mask = subsettools.define_huc_domain([huc_8_code], 'conus1')\n", - "\n", - "np.save(f'{domain_data_path}domainMask_{huc_8_name}_conus1.npy', mask)\n", - "\n", - "plt.imshow(mask, origin='lower')\n", - "print(ij_bounds)\n", - "print(mask.shape)" - ] - }, { "cell_type": "markdown", - "id": "61745fb2", + "id": "fa36a124", "metadata": {}, "source": [ - "Using the domain mask and the i,j PF-CONUS1 indices, we use a hf_hydrodata function to find and save the associated grid cell center lat/lon pair for each grid cell in the domain. " + "### Multi-Site Evaluation\n", + "#### Visualize Metric Distribution" ] }, { "cell_type": "code", - "execution_count": null, - "id": "1ff5c1d4", + "execution_count": 65, + "id": "db73f69a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Extract bounds\n", - "i_min, j_min, i_max, j_max = ij_bounds\n", - "mask_shape = mask.shape #shape of the subset rectangular domain\n", - "\n", - "# Create i/j index ranges\n", - "i_vals = np.arange(i_min, i_max)\n", - "j_vals = np.arange(j_min, j_max)\n", - "\n", - "# Create full 2D grid (note indexing order carefully)\n", - "jj, ii = np.meshgrid(j_vals, i_vals, indexing=\"ij\")" + "metrics_df[[\"nse\", \"kge\", \"spearman_rho\", \"bias\"]].hist(bins=20)\n", + "plt.suptitle(f'Distribution of Selected Performance Metrics, n={len(metrics_df)}')\n", + "plt.show()" ] }, { "cell_type": "markdown", - "id": "c6ae90bf", - "metadata": {}, - "source": [ - "Because the function `hf.to_latlon()` finds the coordinates at the lower left corner of a grid cell, we add 0.5 to each i,j index pair to find the **lat/lon at the grid cell center**." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "13fbc81f", + "id": "f94591f5", "metadata": {}, - "outputs": [], "source": [ - "# Compute grid cell centers\n", - "ii_center = ii + 0.5\n", - "jj_center = jj + 0.5\n", - "\n", - "# Convert to lat/lon (vectorized loop)\n", - "lat = np.zeros(mask_shape)\n", - "lon = np.zeros(mask_shape)\n", - "\n", - "for r in range(mask_shape[0]):\n", - " for c in range(mask_shape[1]):\n", - " lat[r, c], lon[r, c] = hf.to_latlon(\"conus1\",\n", - " ii_center[r, c],\n", - " jj_center[r, c])" + "#### Spatial mapping of gage with colored by performance metric " ] }, { "cell_type": "code", - "execution_count": null, - "id": "aa20e59f", - "metadata": {}, - "outputs": [], - "source": [ - "# Save 2D arrays of Lat & Lon\n", - "np.save(f\"{domain_data_path}{huc_8_name}_{huc_8_code}_lat_2d.npy\", lat)\n", - "np.save(f\"{domain_data_path}{huc_8_name}_{huc_8_code}_lon_2d.npy\", lon)\n", - "\n", - "# Save the Lat & Lon in a df (as CSV) matched with the ParFlow-CONUS i,j indices \n", - "grid_df = pd.DataFrame({\n", - " \"i\": ii.ravel(),\n", - " \"j\": jj.ravel(),\n", - " \"lat\": lat.ravel(),\n", - " \"lon\": lon.ravel(),\n", - "})\n", - "grid_df.to_csv(f\"{domain_data_path}df_{huc_8_name}_{huc_8_code}_conus1_gridPoints_LatLon.csv\", index=False)\n", - "\n", - "# Save a shapefile of the watershed Lat & Lon\n", - "grid_gdf = gpd.GeoDataFrame(\n", - " grid_df,\n", - " geometry=gpd.points_from_xy(grid_df.lon, grid_df.lat),\n", - " crs=\"EPSG:4326\"\n", - ")\n", - "# Save the grid points / GeoDataFrame to a shapefile for later use\n", - "grid_gdf.to_file(f\"{domain_data_path}{huc_8_name}_{huc_8_code}_conus1_gridPoints_LatLon.shp\")" + "execution_count": 60, + "id": "8b1cb373", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_sites_on_map(metrics_df, color_by=\"bias\")" ] }, { "cell_type": "code", - "execution_count": null, - "id": "41e8d63a", - "metadata": {}, - "outputs": [], - "source": [ - "grid_df" - ] - }, - { - "cell_type": "markdown", - "id": "84549c32", + "execution_count": 55, + "id": "674a3a28", "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Y8eOCn0eCREREd2+SpvY3In9+/cjPDy8QHl+2YEDB+52SERERFQGKu1Q1J1ITEwssAYMcH1dmJvXGLlRVlYWsrKy1Pd5eXlISkqCh4dHuTyynYiIqKoSEaSmpt5yfbTSuC8TG6D4dWOK2/b+++/f9pNSiYiIqKCzZ8+W2dPb78vExsPDo9BemaSkJAAFV/S90fjx4/Hyyy+r75OTkxEQEICzZ8+WeFXiipaWlqauqxQXFwez2VzBERER0f0oJSUFNWrUUNesKwv3ZWITFhaGffv2FSjPL2vYsGGR+xoMhkJXp3V2dq40iY1Wq1X/7ezszMSGiIgqVFlO5bgvJw/36dMHhw8ftrutOzc3F3PmzEGLFi3sVokmIiKiyqNS99isXLkSaWlpSE1NBQAcPHgQixYtAgB069YNjo6OGDFiBGbPno0TJ04gMDAQAPD4449j+vTp6N+/v/qAvi+++AJHjhxBdHR0hZ0PERER3ZlKndiMGjUKsbGx6vuFCxdi4cKFAK4tmhYUFASbzQabzYYbH7BsMBiwdu1ajBs3Ds8//zzS09MRERGBlStX8qnDRERElVilXVLhXpGSkgIXFxckJydXmjk2aWlpsFgsAACr1co5NkREVCHK4zv0vpxjQ0RERFUTE5tyFBQUpC79UNRrw4YN2LBhwy3rBQUFqe3Gxsbin//8J7y8vODp6Yl+/frh7NmzdsfOyspCnTp1UL16daSkpNzlMyciosrGarXi9ddfR506dWA0GuHu7o5u3bph06ZNah2bzYbJkycjODgYZrMZjRs3xv/+978CbU2cOBGKomDx4sV38xSuEbojycnJAkCSk5MLbAsMDBQAxb527twp69evv2W9hg0bioiIzWaTRo0aiaIo8uOPP8qcOXNEURRp3Lix2Gw29dhvvPGGAJDFixcXiMtqtartWq3W8rs4RERUKVitVmncuHGh3z8ajUbmzZsnIiIfffSRAJCBAwfKli1bpH79+qLVaiUmJkZt69ChQ6LX66Vnz563PG5x36G3i4nNHSrth/L777+rPywRERHF1h00aJBad9q0aSIicvjwYQEg4eHhar2wsDABIEeOHBERkQMHDoher5devXoV2i4TGyIiutGrr76qfi/861//koSEBImOjhZHR0cBIM7OzpKYmCiRkZECQHbt2iUiIh9//LEAkPHjx4uISF5enrRp00YsFoucOXPmlsctj8SGQ1F32X//+1/136+88kqR9c6dO6fe4eXq6ooRI0YAALKzswEAer1erZv/wMDs7GyICJ566ikYDAZ8/vnnZR4/ERFVLSKC7777Tn0/ZcoUeHl5oWPHjvjXv/4F4Nok3wULFhT4Drrx+wcAZs6ciU2bNuG9995DjRo17uZpqJjY3EUHDhzA6tWrAQDVq1fHgAEDiqz76aefIjc3FwDw5JNPqncx5c+b2bNnD3bv3o09e/Zgz549CAgIQJ06dTBjxgxs3rwZ7733Xpmtu0FERFXXqVOncOnSJQCAk5OT+sw34NqT+vNt27YNnTp1AgDMmTMHVqtV/QO8U6dOiI+Px6uvvoqmTZviueeeu4tncJMy6/u5T5WmG+3xxx9Xu/qmTJlSZL3U1FRxdXUVAKLT6eTcuXN227du3SqhoaFqW3Xq1JHt27fLhQsXxNXVVZo3b67Ot8nLy5Ps7Gy7/TkURURE+bZs2aJ+J9SoUcNu28yZM9Vt//jHP8RqtcqAAQNEURQBICaTST744AMRERkwYIA4ODjI33//re6flZVV7LE5FFWJJSQk4KeffgJwLSN+8skni6z77bff4urVqwCAgQMHwt/f3257ZGQkjhw5gri4OFy4cAGHDx9G8+bN8eKLL8JqteKbb77BxYsX0bdvX5jNZjg6OqJZs2bYtm1buZ0fERFVfnLTo+1ufK8oCsxmM+bPn4/U1FScPHkSKSkpePXVV7Fy5UosWLAAo0ePRkREBKZMmQJfX18YDAb4+vriww8/vGvnwMTmLvn888+RlZUFABg5ciRcXFwKrWez2fDJJ5+o74ubh+Pr64tq1aoBAFasWIGff/4ZL7/8Mho1aoRHHnkES5YswYsvvogZM2Zg37596Nmzp7qCOREREQD4+Pio/87/ozpfcnJyofXMZjNq1qwJBwcHpKen45lnnkFQUBDeeustzJ49G6+++ioCAwOxdOlSBAYG4rXXXsMPP/xQ7ucCgENRd6ok3WgZGRni5eUlAESr1crp06eLrLtw4UK1269Tp06F1rHl2eR44nH5/djvsuzIMtl8fLMEBAZIzZo1JS0tTVJTU0VRFHFxcZG8vDwREenZs6cAkN9++41DUUREZMfb21v9XrjxO2ro0KFq+RdffFHovq+88ooAkJUrV4qISL9+/QSA/PLLLyIi8ssvvwgA6devX4F9y2MoqlKvFVVZ/PDDD+rErH79+tlNzLrZre6asuXZsOLYCmw+sxkZORlQFAWbZmzCmdgzWPDrAjg6OiI9PR2KokCr1apLwet0OgCAgwM/ciIisvf444/jgw8+AACMGzcO06dPx549e9TJwc7OzoXe8LJ7925MmzYNgwYNQpcuXQAAWq0WwPXvnbv9/cOhqHImIpg6dar6fsyYMUXW3bZtG7Zu3QoAaNCggfpDcqN9Cfuw/vR6uJvc0dCnIZySnLDnf3sQ2i4UmUGZEBE4Ojqia9euSEpKwqefforVq1djzZo18PPzQ8uWLcv+JImIqFJ7/fXX0bhxYwDAzz//DC8vL3Tq1Anp6enQaDT4+uuv4e7ubrdPXl4ennjiCTg7O9t9z/Xr1w/AtSkYMTEx6qNH8svLGxObcrZixQocPnwYANC2bVs0bdq0yLoff/yx+u+i5tbsurALGkUDN5Mb8mx5+PG9H2E0GzHwlYE4fPkw4tPiAQCzZ8/G8OHDMXnyZPTv3x8tWrTAypUrK81CnUREdPeYzWZs3LgREyZMQO3ataHX6+Hq6oouXbpg/fr1GDhwYIF9PvvsM+zcuRNTpkyxm3/Tr18/fPXVV4iNjUVUVBRiY2Px1Vdf4Z///OddOReu7n2H7vbq3h9t+QipWanwd7a/Uyo3LxfHk47j2WbPItg9uNg2uLo3ERHdC7i6N8HX4ovU7NQC5cmZybDoLXAxFn63FRER0f2AiU0l08S3CXQaHeJS45AneQCAtOw0nE89j3DvcHg6elZwhERERBWHiU0lU9ezLnrW6QkAOHjpIA4kHMAF6wU082uGLrULTjYmIiK6n/De33KUlJGEXXG7cODSAQgEDb0aoolfE7ib3G+9cxEURUHrgNao61kXJ6+cRG5eLrzN3qjlVgsahXkqERHd35jYlJOEtATM2TsHxxKPIScvB6lZqVh3ch3qe9fHiy1ehK+T7x217+noyWEnIiKimzCxKSebzmzCoUuHkJaThvi0eIgI8iQPvx//HTm2HLzf6X3otfqKDpOIiKhK4dhFOUjPSceBhANIzU7FhdQL8HL0gp+TH6o7V4ePxQd/nv0Tf575s6LDJCIiqnKY2JSDHNu1oafL6ZfhYnSBg+Z6x5ijzhFajRYxcTEFVlElIiKiO8PEphw4GZzg4eiB5KxkGLQGu23WbCs8TB7Iys2CTWwVFCEREVHVxMSmHGgUDdoFtYNRa0Rcahxy83KRm5eLxPREKFDgZnSDj8XHrieHiIiI7hwTm3ISWT0S/er3Qx7ycCH1ApIykuCoc0SQWxA8HT3R3L95RYdIRERU5bDLoBw91fQpuJvcseXsFmTkZsCsM8PD0QNtA9si3Ce8osMjIiKqcpjYlCOjgxFDwoegTWAbxKXGQatoUdOtJrzN3nc1jjzJw5nkMziTfAYA4OnA598QEVHVxMSmnCmKgiDXIAS5BlXI8bNt2Vh6ZCl2nt+J9Nx0KFCgzdFWSCxERETljYlNFffnmT/xx+k/EOASoK78fenKpQqOioiIqHxw8nAVlm3Lxo64HXA1uapJDQA4G53Vf+fYcioiNCIionLBxKYKS8tOgzXLCme9c5F10nPS72JERERE5YuJTRXmqHOEWW+GNdtaZB2TznQXIyIiIipfnGNThmx5NsQmx+Jq5lU46hxRy61WiRe6zLZl40DCARy6fAhZuVmo5VYLYT5hcDe533Y8BgcDmvk1w6+Hf4Wr0RVmvRkA7BIdLsRJRERVCRObMpKYnoifj/+MI5ePINuWDa1GiwCXAPSq0ws13WoWuZ+I4FzKOSw9shRHLh+BXquHg9YBuy7sQkxcDAY2HIjqztVvO64HAx5EvDUef138C9m52QAATS476oiIqGpShCsx3pGUlBS4uLjgv+v/i5PpJxHsHgxHnSOs2VbExMUgJzcHLWu0RLhPOBr7Noan4/VnyJxJPoPok9H4I/YP7E/YD38nf9T3qo8g1yAIBIcuHUK4Tzgeb/w4FEW57RhteTacuHJCfY6Nl4MXIgIjAABWqxVms/mOrgEREdHtyP8OTU5OhrNz0fNBS4M9NmXkRNIJhPqHwuhgRLYtG3su7sHF1ItIzkqGo94Rp6+exq4LuzA4bDBquNTARetFzNk7B/HWeFzNuApngzOybdnYGbcTAkEtt1qo4VIDJ66cwEXrRfg6+d52bFqNFqEeoQj1CAUApKWlldVpExER3VM4JlFGciUXRgcjACD2aizOJJ+Bj8UHbiY3WHQWNPBugLjUOKw+sRoigpjzMbiQegH1vOpBo9Goyy3otDocSzqGHFuOmiRl2bIq+OyIiIgqByY2ZciWZwMAxCbHwqgzwkHjgDzJg95BD42iUXtg4tPicfjyYbib3KFRNPAweai3XTvpnZCalYqUrBQkZSTBxeByRxOIiYiI7idMbMqIj9kHp5NPQ0SQY8uBg+KAlKwUmBxMqGapBuDaHUg5thxk27LhoHGATa4lQoGugTA4GJBgTUBGTgYgwJXMK7icfhnN/JvB2XDrccc8ycPJKyex4/wO7L64G6lZqeV6vkRERPcizrEpI11rd8XvZ3/H/oT9yM3Lxdnks/B18kV9r/pqj0tieiLcTG7wdPREuE84lhxeAj8nPxgdjHB0cMSBqwdwNeMqnAxOqOlWEz1Ce6BDzQ63PHZKVgoWH1qMg5cOIiv32rCVt8Ub3UK6obFvY7u6iemJ2Bm7U31/Nvks6prrluGVICIiqjhMbMpIfa/6CPQOxL6EfdifsB87zu2Ai9EFNd1qwpZnw6X0S7iaeRW96vaCo84RTf2a4tDlQ/gr7i+cTT6L5KxkOOud4WJwgY/ZByadCQEuASV6zsxvR37DX3F/oaZbTVj0FtjybDibchaLDy2Gu8kdga6BAIADlw7g022f4u8zf6v7Tlw/EU+3ehrta7Yvt2tDRER0tzCxKUO+Tr7wdfLFQ8EP4a+4vzBn3xz8duQ3ZNoy4e/kj+6h3dE2sC0AwMXogiHhQ5CcmYxDlw7B2+INH7MParrVhJejF04kncCG0xtQ36s+dFpdkceMS43D/kv7EeASAIveAuDaXVBBrkHYn7Afe+P3ItA1EGnZaXj/j/ex9dxW2DJt6v6bzmxCfHY8AlwCEOweXL4XiIiIqJxxjk05yM3LxYmkE8i15cLf2R91PevCorfgaOJRHE08qtZzNbpCr9WjQ60O6BbSDc39m8PL0QvAtSQpLjUOF60Xiz3W1cyrSMtOs1vkMp9Fb8H51PMAgLWn1iImLgZQACejk1rHSe+EQ5cP4ae9P5XFqRMREVUo9tiUg4OXDmLrua3q0FC+40nHseLYCgS7BcPgYFDLNYoGWo3Wrg0FCuT//1cck4MJBgcDMnIyCqz7lJmbCVejKwDgWNIxpGanwt3kDn3e9eEtR50jrmZfxfbz25GblwsHDX8kiIio8mKPTRlZf2o9NsVuwkXrRRxIOABFUeySGgAIdAnE+ZTzOH31tFpW36s+kjKSkCd5dnUvWC/A1+Kr3lFVlACXAAS5BuHklZPq7eYAkJSRBI2iQZh3GID/T5REkGvLRUJaglovPi0eObk5yM3LRVo2H9xHRESVG/88LyMrj6+EzqSDm8kN2bbsQif95t/inW3LVsua+zfHwUsHcSDhAHydfOGgcUBCWgIcNA6ICoq65eRhrUaLh+s8jPk583Ho8iHoNDrk5F17uF/7oPao51VPPY5Oq8NF60Xo5XqbmbmZyNFeq39jLxIREVFlxMSmjNTzrAej2YgL1guIvRoLnUaHINcgaJTrnWJXMq/A2eAMb7O3WuZl9sKQ8CHYGLsRhy8fRkZOBkLcQ/BgjQcR5hNWomNXd66OJ5o8gQOXDiAuJQ4mnQl1POugllst9fhN/ZqijkcdbDm7BZq86zEpigJXoytcja7Izcsto6tBRERUMZjYlCFFUeDn5IfzKeeRmZuJo4lHEehy7eF7SRlJuJB6Ae1qtoOPxcduP18nXwxsOBCpWanIzcuFi9HFLiEqCRejC1rVaFXkdqODES2qt7gWR9KF68e2+KKBfwO4GF2QkJZQYPiMiIioMmFiU0Z2X9yNDG0GLHoLBIIGXg3gZHBCbHIssm3ZcDG4oEOtDugS3KXINpwMTkVuKwvVLNXQoWYHZPtm41N8CgDoXrs7PFw8kJiRCJ2m6NvKiYiIKgMmNmXk5JWTMDuZcTn9MpIykhDgHIBXHngF51Ov9d54OnrC09GzwH62PBtOXT2F5MxkmPVm1HKrVaKH8t2OiGoROHL5CAKdA9Uyf2d/nE47jRC3EPg5+ZXLcYmIiO4WJjZlpJqlGnQmHa5mXoWzwRnxafGIS41DkGtQkftcSruExYcX41jiMeTk5UCraBHoEohedXsVu9/talytMY5cPoI/jv+hlh24dADVParjoZCHCtxyTkREVNnwdu8ycsF6AXGpcVCgoGX1ltAqWhxPOl5k/RxbDhYeXIgDCQdQw7kGGng1QC23WohNjsXPB35GcmZymceoKAqMOiNybDl2cXQO7owQ95AyPx4REdHdxsSmjIR7h6OZXzO0r9keNd1qQqNo1AUpC3M86TiOJx1HiHuI+mA9vVaP2u61cS7lHA5eOljmMc74awZm/jXTru3Y5FgsOrgIiemJZX48IiKiu42JTRmp7VEbwe7BsOgtao/IzXc/3SgpIwk2scHoYLQr12q00CgaXE6/XKbxLTuyDD/u/RGnrpxCUkaSWp6QloA/Tv+B347+VqbHIyIiqghMbMpISlYKRATWbCuOJB5BsHuw+nC8wph0JkBg97TgfLY8G8x6c5nFlpSRhBXHVuBq5lUYdAZ4mb3Ubbl5uci0ZWL96fUFnn5MRERU2XDycBm5mnkVly9dhklnQiOfRugR2gOOOsci64e4h8Db4o3Y5FjUcquFHFsOciUXVzKuwMXoglCP0BIdN3/BzYS0BOi0OoS4hxS4++pE0gkkZyUjT/Jg1BihiHJ9f1suHMQBKVkpuJx+2e7hgURERJUNE5sy8uQDT0IMArPODH9n/1s+YM/Z4IyeoT0xf/98LD+6HFcyriDTdm3Ryn71+5Xo1uurmVfxy8FfcPDyQeTaciEQuJvc0blWZzwY8KBaL9uWDSe9E0wOJmTkZtglNlm2LOihh4fJ4/ZPnoiI6B7BxKaM+Dr5wtnZuVT71HavDXeTOwDA0+wJF4MLdFodDl86jI2nN6J9zfbF7r/i6ArsvrhbnYCcJ3m4aL2IZUeXwcvspfb65EkeEtISIBDEW+OB60tVISkzCWazGQ28GzC5ISKiSo+JTQU6cOkAzqWcQ6danZCSlYJTV08hIS0BsTmxSMxIRLB7MAJcAgrd96L1Ig5cOoAaLjXUu6o0igZ+Tn44mHAQf134CzVda+JM8hmsO7UOKVkp6l1aN87rcdG7wKQzwUnvxOfYEBFRpcfEpgIdSzwGraLF5YzL2Hl+JzJzM2HWm6FRNNh9cTdm7JqBVx98tdD1m5Izk5GWk4YaLjXsylOyUnDBegE/7f0JxxOP40zKGUieoFtIN/x88Odrk4X//38A0My/Gfzc/XAp/RKycrO4wjcREVVqvCuqgtnEhoOXDiI3L/facJbBGe4md7iZ3HA88Tj2XNxT6H5mvRkmBxPSstPUsuSsZGw9uxVHEo9Ar9UjJSsFuy7sQpw1DinZKfAye6GBdwM84PuAuk/7mu1Ry70WrNlWpOWkFXYoIiKiSoOJTQUKdg9GcmYyktKT4GZyU8tTs1Nh0VvgbfbG3vi9he7r7+SP2h61EZscqz4350TSCZxPPQ8vRy+EeYfB3eQOd6M70rLTcDzpOLJzs5GalWq32KVG0SA1KxUWnaXYu7iIiIgqAw5FVaCG3g1R060m/r74N0w6EwxaA9Jz0pGdl42G3g3hpHdCTl5OofsqioIeoT2QlpOGo4lHkZuXi90Xd0Ov1aO+V334OvkiNy8XTnonxKXG4e+Lf0On1SExPRHxEq+2k5adhqTMJPSs07PAwwKJiIgqGyY2FchR54gRjUfg6OWjOJ96HqITOBmcUNOtJgJdAnHo8iG0Dmhd5P7eZm+MaDwChy8fxpmrZ5CWkwZPR0/Udq8NRVGg1+rhZfbCXxf+gk1siPCJgElrQuzlWLWNC9YLaBnUEm0C2tyNUyYiIipXTGwqmL+zP0Y2GYlFBxfB6GCEn5MfbGLDkctH4O/kjya+TYrd31HniCa+TdDEtwmsOVbsjNsJRbn+nBoHrQP0Dno4Ojgiy5YFF6MLInwisAqrAAC96vRCVO0o3hFFRERVAhObe0CbwDbQarTYcm4L4tPi4aBxQKNqjdC5VudSPQm4VY1WOJ50HIcuH4K/kz8UKDhy+Qi8HL3QLqgdLHoLNIoGJjGpiY2LwYVJDRERVRlMbO6Ss8lnsfvibpxJPgNngzPCfcLRwLsBHDQO0Gq0aBPYBs38m+Fy+uVrQ0iOXnY9LyVRy60WBocNxvrT63Hm6hkIBP5O/hAIglyD1HpZGddXHeft3UREVJUwsbkL9sXvw6JDi3Al4wqc9E44eeUk/r7wN9oEtsHDdR5We0yMDkZUd65+R8cK9QhFiHsILqdfhojgXMo5/LTvJ6RmpcLJ4AQAdotd3vwcHCIiosqMiU05S89Jx4rjK5CZm4mG3g3V8uTMZGw+sxl1POugvlf9Mj2mRtGoQ1gejh44efUktp7ZCoHA4GDA1ZSral0HDX8EiIio6uBzbMrZqSuncCH1AgKc7ZdGcDG6wCY2HLp8qFyP76BxQJ+6fTCs8TA092+O2u610b1293I9JhERUUXhn+vlLNuWDRGBTqsrsE2v1SM9O73cY3DQOCDcJxzhPuHItmUj5nSMum3tybWIrBVZqknKRERE9yr22JQzL7MXzHozkjOT7crzJA8ZORlFLnJZHrJt2Vh0YBHm7Zunlq04tgIzd83EySsn71ocRERE5YWJTTnzd/JHmE8YYpNjkZSRBBFBRk4Gjlw+gurO1e3m3ZQna7YVc/bOwaw9s3A5/bJaXt+rPi6lXcKqY6vsVv0mIiKqjDgUVc4URcHDoQ/DQXHA3vi9iEuNg0FrQG332ugW2g0ejh7lHkNSRhLm75uPXw79gpSsFOQqueq2LFsWAl0DcTr5NM6lnEOga2C5x0NERFRemNjcBWa9Gf0b9EdUUBQS0xNhdDAiwCXgrj0Yb/3p9Th4+SDcTe4wOhjhpDip205dPYUw/zDk2HKQZcsqphUiIqJ7HxObu8jb7H3XJ+mmZqXiQMIB+Fp8ISI4dPkQnHTXE5tzyefg4+oDF6MLvBy97mpsREREZY1zbKq4LFsWsnKzYHQwooZLDZh1ZlxKv6RuT8lOwQXrBTT1awo3k1sFRkpERHTnmNhUcc4GZ7ib3HEl8wrcTe54wO8BOBuc1e0GjQFdQrqgc63OFRglERFR2WBiU8XptXq0rNES1mwr4q3xqGaphgdrPKhufyHyBfSu25trRhERUZXAOTb3gRb+LWDNtmLL2S3Ye3EvLly5oG5LyUzB2eSzXDOKiIiqBPbYVLDcvFxcTr+MKxlXyu0YWo0WDwU/hCeaPAEfiw8g17f9ceYPfPf3dzhy+Ui5HZ+IiOhuYY9NBdp9cTc2xW7CRetFaDVahLiHoH1Q+3LrPTmWdAy7LuxCRk6GWpaWnYZ4azxWn1iNYPdgLopJRESVGntsKshfcX9h3r55OJdyDm4mN5h1ZuyM24mf9v6Ei9aL5XLMefvm4VzqOWiV68/POZ18GvFp8Thx5QTOpZwrl+MSERHdLUxsKkC2LRsbYzdCo2gQ7B4MZ4Mz3ExuqO9VH+dSzyHmfMytGymluNQ4nLpyCi56F7gYXdRyH0cfJGYkIt4aj9y83GJaICIiuvdV6sTGarXipZdegp+fH4xGIyIiIjB//vxb7jdr1iwoilLo6+LF8uktuVFCWoJ6h9KNNIoGHiYPHLx0ECJSxN6350LqBRgdjIBiX67VaJGVmwVbng0+Zp8yPSYREdHdVqknVPTt2xcxMTH44IMPEBoairlz52LQoEHIy8vD4MGDb7n/999/j7p169qVeXiU/9pNCq4lUXmSV2BbHvKgUco+39RqtPAye0FJVxBvjVfLkzOTkZGbgXpe9eBkcCqmBSIiontfpU1sVqxYgTVr1qjJDAC0b98esbGxGDt2LAYMGACttvi1mBo2bIimTZvejXDt+Fh84O/kj9jkWIR6hKrltjwbrmRcQesaraEoSjEtlF6QaxACXQPhqHNEfN71xMYmNgS7BaNPvT5lejwiIqKKUGkTmyVLlsBisaB///525cOHD8fgwYOxfft2tGrV6q7Fk5aWdstE6kYtfVri3OVz2Ht2LzxMHrCJDZfTLyPINQj1XesjLS2tTOPTQYcHqz2IZUeWwU17fekEX4Mv2tVshyDHoDI/JhERUXHK5XtHKqnIyEhp1qxZgfL9+/cLAPn666+L3Pf7778XAOLj4yMajUbc3NykT58+sm/fvlseNzMzU5KTk9XX2bNnBdeeDMMXX3zxxRdffN3GKzk5+Y5yghtV2snDiYmJcHd3L1CeX5aYmFjkvtWqVcOECRMwc+ZMrF+/Hu+++y5iYmIQGRmJPXv2FHvc999/Hy4uLuqrRg0+sZeIiOheoYiU8e03d0loaCiCg4OxcuVKu/ILFy7Az88P77//Pl577bUSt3f69GmEhYWhQ4cOWLp0aZH1srKykJWVpb5PSUlBjRo1EBcXB2dn5yL3u1eICFKT0+BX/dodWfHx8TCbzRUcFRER3Y9SUlLg5+eH5OTkMvsOrbRzbDw8PArtlUlKSgKAQntzihMUFITWrVtj27ZtxdYzGAwwGAouGGk2m+/pBMGWI7i4PxsXD2QjOcmmljuaHO/puImIqOqy2Wy3rlRKlXYoKiwsDIcOHUJurv1D5fbt2wfg2h1PpSUi0Ggq7SUpUl6u4Gh0Bg6vSkfKxVxYE6//IJ38M6OYPYmIiCqXSvst3qdPH1itVvzyyy925bNnz4afnx9atGhRqvZOnTqFP//8E5GRkWUZ5j3hSmwuLu7PgsFJQeoFG66cup4M/v2TFef+zipmbyIiosqj0g5Fde3aFZ07d8aoUaOQkpKCkJAQzJs3D6tWrcKcOXPUW69HjBiB2bNn48SJEwgMDAQAdOrUCW3btkV4eDicnZ2xb98+TJkyBYqi4N13363I0yoXV8/lIDcLSI3PRcaVPDi6Xc9nM1PycPB/aXAPcoCjW8lvVyciIroXVdrEBgAWL16MCRMm4M0330RSUhLq1q2LefPmYeDAgWodm80Gm81mt0RBWFgYFixYgI8++ggZGRnw9vZGhw4d8MYbbyA0NLSwQ1VqeTYg25qHjCt50FsUJJ6/PhSVmZKHxJM5uHQ0G4EtTBUYJRER0Z2rtHdF3StSUlLg4uJSpjO6y1r8wWxsm5mC1PgcZFwRJCdZMXZ7HQDAlGaHYXG2oGFPR7R50e0WLREREZWd8vgOrbRzbKjk3Gs5wC3IAakX8pCWaINGd32b3kkLW3YeLuzPRmZKwbWriIiIKhMmNvcBnVGDiAFmaByAa+tuXl+HSm9UoDdrkJksuHo2p8JiJCIiKguVeo4NlZzZ3QFuQTrk5eUg94bERtEAzt4OyE4X5GRyVJKIiCo3Jjb3CY0W8KilQ0aSDXC83lHnGugAsQIGiwZuAfxxICKiyo1DUfcJRaMgOMoEg7MGthtGnDKu2pCdLghqZYTFi4kNERFVbkxs7iPVmxhQu4MJN94Hl345D9Ua6BD+Ty6rQERElR8Tm/tIXq5ABHD2uf4gvmr1dXDQa5B0OreYPYmIiCoHJjb3kYQjObh61gb/iOuLePo3NkJvUXB2Rxay03m7NxERVW5MbO4jSSdzoDMq0DgoduUWLy3Sr9hgjS/7VVaJiIjuJiY29xER3PgIm5s2AnwGNRERVXZMbO4jHrV0yEkX5NnsM5i0yzaY3DVwqsZFMImIqHJjYnMf8aqjg1uQAy6fuj5R+MrZHORkCKo/YIDekT8ORERUufGb7D5isGgQ0NQAjfZ6j01qvA2+YQZUb2IoZk8iIqLKgYnNfcR6yYYTf2T+/3pR15g9NUg4nI3Lx7hOFBERVX5MbO4jF/ZmwXrJBs9a15f39gjSI88GnI3JQl4uZw8TEVHlxsTmPpFnE1w+kQuTqwaKYn9rlNlTA+slG9Kv8jk2RERUuTGxuY8oxdzqTUREVBUwsblPaLQKPEMckHElD3LTA2usl2xw8tHC0Y0/DkREVLnxm+w+4htmgFM1LS6fuD5ROPH0tacRBzQ3QqMtqkuHiIiocnCo6ADo7jF7atGglxn6LVlqmWdtHWpHmuEepCtmTyIiosqBic19xuKpRWhHR/V9gx5mWCxMaoiIqGrgUNR9yJZzfY5NehLvhCIioqrjtntsUlNTsXXrViQmJsLT0xORkZFwcnIqy9ioHJz7KxM75iWp76MnJ6FelIKGfczQGZnnEhFR5XZbic1HH32Et99+G+np6RARKIoCR0dHvP3223j55ZfLOkYqI/GHs7HlyxQkXrg+eTglzoZ9v1ohAjQZzMSUiIgqt1L/if7DDz9g3LhxaNu2LebPn49NmzZh/vz5iIqKwtixY/Hjjz+WR5xUBo78noar53IguD78lJcNZFzNw/F1GbBeyi1mbyIiontfqXtspk6disGDB2POnDl25f3798eQIUMwdepUPProo2UWIJWN3CzBhT3ZsOUAWv31fFZvVmCzAlfO5OJKbC4sXpxPTkRElVepe2wOHz6MIUOGFLptyJAhOHTo0B0HReUjOxMQG6A13PC8Gg3gYFJgyxZkpXIiMRERVW6lTmxMJhOSkpIK3ZaUlASTyXTHQVHZczAoMHtoYMsVWC/b1PK0RBuyrgocTAosPtoKjJCIiOjOlTqxadOmDd566y3ExcXZlV+8eBHvvPMO2rZtW2bBUdmq1kAHESAr+XrPTGZyHnIyBW7VtTC7M7EhIqLKrdQTKiZPnoxWrVohJCQEHTt2hK+vLy5cuIB169ZBp9Nh8eLF5REnlQG9owYWTwWazOsJjNlTA4NWA5OHFo6evN2biIgqt1J/kzVo0AAxMTHo1asXYmJi8P333yMmJga9e/fGjh07UL9+/fKIk+5QbrYgJ13gF2GCa8D1j93irYVXqB6OblpkJnOZbyIiqtxu6xaY0NBQzJs3r6xjoXKkKNf+j3M1LUy+JmDmtfLqjY2wOOmQkyFQ2GFDRESVHL/K7hNanQLP2g5IT8qD3nT9riizpwZpiXlw8XeAyZU/DkREVLndVo/N5s2bMXfuXMTGxiIjI8Num6IoWLt2bZkER2XLr5EBV2JzEX/y+oP4Lp/MgYePCQHNjVAUpZi9iYiI7n2lTmy+//57jBgxAu7u7ggNDYXBYLDbLsJ5Gvcqs4cWDR42w7gtSy3za2RE7UgznH35YD4iIqr8FCllJlKvXj00atQIs2fPLpDU3I9SUlLg4uKC5ORkODs7V3Q4JZKWlgaLxQIAsFqtMJvNFRwRERHdj8rjO7TUkypiY2MxcuRIJjVERER0zyl1YlOvXj3Ex8eXRyxEREREd6TUic3kyZPxwQcf4Pz58+URDxEREdFtK9GM0YcfftjufXJyMkJDQxEREQEPDw+7bYqiYOnSpWUXIREREVEJlSix2bt3r92twFqtFt7e3oiLiyuwZhRvGSYiIqKKUqLE5vTp0+UcBhEREdGdK/NHzfI5NkRERFRRyjSx+emnn1CvXr2ybJKIiIioxEr8uNnk5GT8+uuviI+PR2hoKB5++GFoNNfyosWLF+PNN9/EwYMHERgYWG7BEhERERWnRInN8ePH0aZNGyQkJEBEoCgKoqKi8Ouvv2LQoEFYtWoVXF1dMWXKFDz//PPlHTMRERFRoUqU2LzxxhtISUnBW2+9haZNm+LkyZN477330KpVKxw8eBAjR47ElClT4OrqWs7hEhERERWtRInNxo0b8frrr2P8+PFqWUhICLp27Yqnn34aX3zxRbkFSERERFRSJZo8fOnSJTz44IN2Za1btwYADBgwoOyjIiIiIroNJUpsbDYbjEajXVn+eycnp7KPioiIiOg2lPiuqCNHjsDB4Xp1m80GADh8+HCBuk2aNCmD0IiIiIhKR5ESPFFPo9EUulRC/h1SN7/PT3ruBykpKXBxcUFycjKcnZ0rOpwSSUtLg8ViAQBYrVaYzeYKjoiIiO5H5fEdWqIem++//75MDkZERERUnkqU2AwdOrS84yAiIiK6Y2W+VhQRERFRRWFiQ0RERFUGExsiIiKqMpjYEBERUZXBxIaIiIiqDCY2REREVGWUOrFZt24dFi5cqL6Pj49Ht27dUK1aNTz22GPIzMws0wCJiIiISqrUic2bb76JgwcPqu/HjRuHTZs2oVWrVli0aBH+85//lGmARERERCVV6sTm6NGj6lpQubm5WLJkCT788EMsXrwY77zzDubNm1fmQRIRERGVRKkTm5SUFLi6ugIA/vrrL6SlpeHhhx8GADRv3hxnzpwp0wCJiIiISqrUiY23tzeOHTsGAIiOjkZgYCCqV68OAEhNTYVOpyvbCImIiIhKqERrRd2oS5cu+Pe//40DBw5g1qxZdutIHT58GEFBQWUZHxEREVGJlTqxmTx5Ms6cOYMZM2agefPmeP3119Vtc+fORatWrco0QCIiIqKSKnVi4+npiVWrVhW6bf369TAajXccFBEREdHtKHViUxxnZ+eybI6IiIioVEqU2Pzwww927x977LFyCYaIiIjoTigiIreqpNFcv3lKURTYbLZyDaoySUlJgYuLC5KTkytNj1VaWhosFgsAwGq1wmw2V3BERER0PyqP79AS9djk5eWVycGIiIiIyhMXwSQiIqIqg4kNERERVRmlTmxycnIwadIk1K9fH2azGVqt1u7l4FCmN1oRERERlVips5Dx48dj6tSp6Nq1K3r37g2DwVAecRERERGVWqkTm59//hlvvvkmJk6cWB7xEBEREd22Ug9FXblyBW3bti2PWIiIiIjuSKkTm7Zt22L37t3lEAoRERHRnSl1YvPpp5/i22+/xeLFi5GdnV0eMRERERHdllLPsYmIiEBOTg769+8PRVHg6Ohot11RFCQnJ5dZgEREREQlVerE5p///CcURSmPWIiIiIjuSKkTm1mzZpVDGERERER3rlI/edhqteKll16Cn58fjEYjIiIiMH/+/BLtm5CQgGHDhsHT0xOOjo5o2bIl1q5dW84RExERUXm67ccE79+/H4cOHUJGRkaBbY899tgdBVVSffv2RUxMDD744AOEhoZi7ty5GDRoEPLy8jB48OAi98vKykLHjh1x9epVfPLJJ/D29sb06dPRpUsXREdHIyoq6q7ET0RERGVLEREpzQ7p6el4+OGHsW7dOiiKgvzdb5x3Y7PZyjbKQqxYsQLdu3dXk5l8Dz30EA4cOIAzZ85Aq9UWuu8XX3yBZ599Flu2bEHLli0BALm5uWjUqBEsFgu2b99e4jjKY8n18paWlgaLxQLgWq+X2Wyu4IiIiOh+VB7foaUeinr33Xdx+vRpbNy4ESKCxYsXY82aNejbty9q166NXbt2lUlgt7JkyRJYLBb079/frnz48OGIi4srNjlZsmQJ6tSpoyY1AODg4IAhQ4Zgx44dOH/+fLnFTUREROWn1InN0qVL8eqrr6JVq1YAgICAAHTs2BELFy5EkyZN8OWXX5Z5kIXZv38/6tWrV2DRzfDwcHV7cfvm1yts3wMHDhS5b1ZWFlJSUuxeREREdG8odWJz+vRp1K1bF1qtFoqiID09Xd32yCOP4Ndffy3L+IqUmJgId3f3AuX5ZYmJieWy7/vvvw8XFxf1VaNGjdKGTkREROWk1ImNq6sr0tLSAADe3t44duyYui0nJ0fddjcU9zydWz1r53b3HT9+PJKTk9XX2bNnbx0oERER3RWlvisqLCwMR48eRZcuXdC+fXtMnjwZtWvXhl6vxzvvvINGjRqVR5wFeHh4FNqzkpSUBACF9siUxb4GgwEGg6G04RIREdFdUOoemxEjRiA1NRUA8N577yE9PR1RUVFo2bIlYmNj8fHHH5d5kIUJCwvDoUOHkJuba1e+b98+AEDDhg2L3Te/Xmn3JSIiontXqW/3vllaWpp663erVq2K7e0oSytXrkS3bt0wf/58DBgwQC3v2rUr9u7dW+zt3l9++SWeeeYZbNu2DS1atABw7XbviIgIWCwWbNu2rcRx8HZvIiKi21Me36G3/YC+fGazGT179iyLWEqla9eu6Ny5M0aNGoWUlBSEhIRg3rx5WLVqFebMmaMmNSNGjMDs2bNx4sQJBAYGAgAef/xxTJ8+Hf3798cHH3wAb29vfPHFFzhy5Aiio6Pv+rkQERFR2bjtxMZqteLMmTPIzMwssK1JkyZ3FFRJLV68GBMmTMCbb76JpKQk1K1bF/PmzcPAgQPVOjabDTabDTd2TBkMBqxduxbjxo3D888/j/T0dERERGDlypV86jAREVElVuqhqEuXLuGJJ57AsmXLCmwTESiKcleePHyv4FAUERHR7bknhqKeeuoprFu3Di+++CLq1asHvV5fJoEQERER3alSJzbr1q3Dxx9/jCeeeKI84iEiIiK6baW+3dtsNquTcImIiIjuJaVObB599FEsXLiwPGIhIiIiuiOlnjycm5uLESNGICUlBd27dy/0uTV9+/YtswDvdZw8TEREdHvuicnDp06dwvbt23H06FEsXbq0wPb77a4oIiIiuneUOrF58sknkZycjGnTpvGuKCIiIrqnlDqx2b59O7799lsMGjSoPOIhIiIium2lnjzs4+MDV1fXcgiFiIiI6M6UOrEZNWoUvv766/KIhYiIiOiOlHooSqPRYO/evWjSpAm6detW4K4oRVEwevToMguQiIiIqKRKfbu3RlN8J8/9dlcUb/cmIiK6PffM7d5ERERE96JSJTYZGRkYP348nnnmGbRu3bq8YiIiIiK6LaWaPGwymbB06VLk5eWVVzxEREREt63Ud0VFRERg//795RELERER0R0pdWLzwQcfYMqUKdi4cWN5xENERER020o9efiZZ56B1WpFhw4d4ObmBl9fXyiKom5XFAV79uwp0yCJiIiISqLUiY2Hhwc8PT3LIxYiIiKiO1LqxGbDhg3lEAYRERHRnSv1HBsiIiKie1Wpe2zyJScn4+jRo8jIyCiwrW3btncUFBEREdHtKHVik5ubi6effho//PBDkUsn3E9LKhAREdG9o9RDUVOnTsWyZcvw3XffQUTw+eef4+uvv0bTpk1Ru3ZtrFy5sjziJCIiIrqlUic2P/74IyZMmIBBgwYBAFq0aIGRI0di+/btCAwMxPr168s8SCIiIqKSKHVic/LkSTRq1Ehd5TszM1Pd9vTTT+Onn34qu+iIiIiISqHUiY3ZbEZ2djYURYG7uztiY2PVbSaTCYmJiWUaIBEREVFJlTqxqVu3Lk6dOgUAaNWqFf773//i3LlzSEhIwJQpU1CnTp0yD5KIiIioJEp9V9SAAQNw9OhRAMDbb7+Ntm3bIjAwEACg0+mwePHiso2QiIiIqIQUEZE7aeDs2bNYsmQJNBoNOnfufN/12KSkpMDFxQXJyclwdnau6HBKJC0tDRaLBQBgtVphNpsrOCIiIroflcd36G0/oC9fjRo18MILL5RFLERERER35LaXVPj9998xfvx4PPHEEzhz5gwAICYmBpcuXSqz4IiIiIhKo9Q9Nunp6ejVqxfWrl0LRVEAAKNGjUJAQAA++ugj1KhRAx999FGZB0pERER0K6XusZkwYQJ27tyJX375BcnJybhxis5DDz2E6OjoMg2QiIiIqKRK3WOzcOFCvPvuu+jTp0+BNaECAgLUYSkiIiKiu63UPTaXLl1CgwYNCm9Moyl0tW8iIiKiu6HUiY2/vz/27dtX6La9e/eiZs2adxwUERER0e0odWLTt29fvPfee/j777/VMkVREBsbi6lTp6J///5lGiARERFRSZU6sZk4cSL8/PzQvHlzNG3aFIqiYPjw4WjYsCG8vb3x2muvlUecRERERLdU6sTGyckJW7ZswbvvvguLxYLg4GA4Ojpi/Pjx+OOPP2AymcojTiIiIqJbuuMlFe53XFKBiIjo9txTSypkZmZi165dSExMhIeHB5o0aQKj0VgmQRERERHdjttaUuG///0vfH190aZNG/Tq1Qtt2rRBtWrV8PHHH5d1fEREREQlVuoem88++wxjxoxB586dMXjwYFSrVg0XL17ETz/9hHHjxkGn03FRTCIiIqoQpZ5jExwcjAcffBA//PBDgW1DhgzB1q1bceLEiTIL8F7HOTZERES3pzy+Q0s9FBUXF4dHHnmk0G2PPvoo4uLi7jgoIiIiottR6sQmNDQU8fHxhW67cOECQkJC7jgoIiIiottR6sTm7bffxsSJE7F//3678r179+Ltt9/GO++8U2bBEREREZVGqScPf/fdd8jNzUVERAQaNGigTh4+cOAA/Pz88P333+P7778HcG2phaVLl5Z50ERERESFKXVis3fvXjg4OKBGjRpISUlBSkoKAKBGjRoAYLdApqIoZRQmERER0a2VOrE5ffp0OYRBREREdOdu6wF9RERERPeiO0pskpKS8Nprr6FHjx546qmncODAgbKKi4iIiKjUSjQUNWbMGPz88884c+aMWpaWloZmzZrh9OnTyH/G3/z587Fjxw7UqVOnfKIlIiIiKkaJemy2bNmCgQMH2pV9/vnnOHXqFF566SVcvXoVW7ZsgcViwQcffFAugRIRERHdSokSm5MnT6Jp06Z2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iIjABx98gM2bN+Pnn39GVFQUHBwc1HomkwknTpxA//79AQBPPPEE3n//fQDXho1u5eDBgxg+fDgGDhyIyZMnw2q1qr0KNwsJCcG+ffvw3nvvoWnTppg0aRKuXLmi3g7+xx9/4NVXX8Xw4cPRoEED/PHHH0hLS0P9+vVLdU2ys7PxwAMPYNKkSVixYgW2bdumnkvnzp1RrVo1vPjii7DZbPD09MSzzz4LnU6Hd999FwDw3nvvYciQIejYsSPGjRuHRYsWISYmBiNGjChVHN9++y0WLFiAIUOGoHbt2li4cCHy8vLwwAMPlGj//HrPP/88pkyZgjVr1uDbb78ttO6XX34JPz8/hISE4JlnnoFWq1XP56OPPkL//v0RFhaG119/He7u7tiwYQOWLVuGvXv3luqciMpdmaVI9yn22FBlln9Xzc2v4OBgERGZNm2amM1mASAajUZatGghGRkZdm088MADAkB+/fVXtcxoNIqiKHa9PYUBIAMGDBB3d3cBIFqtVp5//nl1+809NsnJyRISEqLeTdWgQQOJjIxUe2z27dsnvr6+otFo1Pbatm2r9jDltzd16tQiY3JxcZGGDRtK/fr11eNERkbancvJkyelVq1a6vXy8PCQ1atX27UzZswYMRgMahzdu3e3216SHptly5aJh4eHKIoiAESn00m/fv3U7bfqsRERee6558TBwUEAiMVikddff73QHps33nhDjddsNsuCBQvs2p01a5b6OQEQo9EonTt3LjZ+olspj+9QRaSIAWMqkZSUFLi4uCA5ORnOzs4VHU6JpKWlqWP7VqsVZrO5giMiujumTZuGl19+GSdOnEDNmjULrePq6oqaNWvi77//vsvRVYxp06Zh9OjROH369C2fOURU1srjO5STh4novjF//nx07dq1yKSGiCo/zrEhovvGtm3bKjoEIipnHIq6QxyKIiIiuj0ciiIiIiIqBhMbIiIiqjKY2BAREVGVwcSGiIiIqgwmNkR0SyNHjiyw9tGthISEwNfXt1T7tGvXDiaTqczbvV9s3rwZiqIUeJI00f2EiQ3RfayoJGHatGlQFAWxsbEAgClTpmD//v13O7xCrVu3jrdtE1GR+BwbIrold3d3uLu7V3QYAK6tT3U/yM7OhkajUdflIqKSYY8N0T0mec8exH77LZL37KnoUFSFDUV16tQJGo0GiqKgTp06iIyMLHQYqUePHtBqtdBoNAgLC0N6evotj/fII4/AwcEBiqKgevXqas8RULCXadKkSXB2doaiKNBoNPDx8cG6devU7VarFeHh4dBqtVAUBQ4ODvjHP/5R4nPP77166623YDKZoCgKLBYLfvnlF7t6Y8eOhdFoVI/Rs2dPu+2nTp1CcHCwes28vLywZs0adXv+NX7zzTdhMBhgMBiwZcuWAvGcOnUKQUFBajt6vR6PP/64XZ2//voLbm5uUBQFJpMJ33zzjbrt2LFjCAwMVK+H0WjE888/b7e/q6srwsPDER4erl7X1q1bIy8vz+66Nm/eXG3HYrFg2rRpJb6uROWFiQ3RPeTA2LGI6dsXxyZPRkzfvjgwdmxFh1SoZ555BmvXrsWwYcOwatUq+Pv7Y/v27QXqXbx4EadOncKyZcvw+uuvY//+/Xj66aeLbTszMxMrV67ETz/9hE8//RQJCQmIiooqsn5ycjKefvpprF69GvPmzYOiKOjevTtyc3MBAAMHDsTBgwfxySefYPPmzfj0008RGhpa6nN+//33MXHiRCxatAhmsxkDBw5Uk7Q5c+bgo48+woMPPohVq1Zh2LBh+O233zBy5Eh1/1atWuHcuXP49NNPsWDBAogIunfvXiDRmzZtGj799FOsWLECdevWLRBHr169kJCQgFmzZmHTpk2YNGkS/P397ep88sknePHFF7Fq1Sp4eHjgmWeeQWZmpnq9wsLCMHfuXKxfvx49evTA559/XmDV73379kGr1WLFihV4+umn8eeff2LYsGHq9oYNG+Lw4cP45JNPsHbtWrRr1w6jR4+2S9aIKkSZLad5n+Lq3lRWru7eLWtq1Srwurp7d7kds6jVvfNfp0+fFhGRESNGyI2/Lsxms4SFhdm15eTkpK6ynd+2VquVrKwstax69epSo0aNIuOJiooSALJjxw617N133xUAsmfPHrXdm1e0vtHBgwcFgCxevFhERMLDw8XNze2WK40XJX/16xdeeEEtO378uACQl156SUREAgMDxd3d3W6/Zs2aicFgEBGR1atXCwD56quv1O1Hjx4VADJ69GgRuX6Nb15V+2Y+Pj5Su3btQrflr14+dOhQtWzp0qUCQJYvX15km15eXvLAAw+o711cXESv19tdsxYtWoherxcRkbVr1woA+euvv+zacXNzk5YtWxYbP9GNyuM7lD02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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "### 3b. Explore the available SWE data in a watershed " + "# Map Condon diagram\n", + "plot_utils.plot_condon_diagram(metrics_df, variable=\"streamflow\")" ] }, { "cell_type": "markdown", - "id": "e088705e", + "id": "739f1a83", "metadata": {}, - "source": [ - "
\n", - "

📖 Did you know?

\n", - "

The Snow Telemetry (SNOTEL) network, managed by the USDA Natural Resources Conservation Service (NRCS), monitors snowpack conditions across key watersheds in the western United States to support water supply forecasting and climate monitoring. SNOTEL sites are fully automated stations that continuously measure snow water equivalent (SWE), snow depth, precipitation, temperature, and other meteorological variables throughout the year. Unlike manual snow survey programs, SNOTEL provides high-temporal-resolution observations that enable near–real-time assessment of snowpack evolution and interannual variability. These data are widely used for operational forecasting, drought assessment, and long-term climate analysis.

\n", - "
" - ] + "source": [] }, { "cell_type": "markdown", - "id": "de83d6b6", + "id": "23d1553a", "metadata": {}, "source": [ - "Explore what SWE data is available at sites within the HUC ID you specified that operated during WY2004 and WY2005. If you want to check other variables besides SWE, you can change the `variable` argument name. " + "### Single-Site Evaluation" ] }, { "cell_type": "code", "execution_count": null, - "id": "3aa8210e", + "id": "c54992a5", "metadata": {}, "outputs": [], "source": [ - "avail_df = hf.get_site_variables(variable = \"swe\",\n", - " huc_id = [huc_8_code], grid = 'conus1',\n", - " date_start = StartDate, date_end = EndDate)\n", - "\n", - "# View first five records\n", - "avail_df.head(5)" - ] - }, - { - "cell_type": "markdown", - "id": "268915dc", - "metadata": {}, - "source": [ - "### 3c. Map the SNOTEL stations inside the HUC-08 watershed that have available data in the selected time range \n", - "To note here, we are using pre-loaded shape files for the East-Taylor HUC8, which are located in the `/domain_data/` directory." + "site_id = \"03347000\"" ] }, { "cell_type": "code", - "execution_count": null, - "id": "f5c95f67", - "metadata": {}, - "outputs": [], + "execution_count": 64, + "id": "1a66a445", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "### Select station locations that fall within the HUC8 watershed\n", - "\n", - "# Path to the watershed shapefile that was just created\n", - "watershed = f'{domain_data_path}East-Taylor_14020001.shp'\n", - "watershed_gdf = gpd.read_file(watershed).to_crs(epsg=4326)\n", + "import numpy as np\n", "\n", - "# Create GeoDataFrame of all available stations\n", - "filtered_all_stations_gdf = gpd.GeoDataFrame(\n", - " avail_df,\n", - " geometry=gpd.points_from_xy(\n", - " avail_df.longitude,\n", - " avail_df.latitude\n", - " ),\n", - " crs=\"EPSG:4326\"\n", - ")\n", - "print(\"Sites CRS:\", filtered_all_stations_gdf.crs)\n", + "def fdc(data):\n", + " sorted_data = np.sort(data.dropna())[::-1]\n", + " exceedance = np.arange(1, len(sorted_data)+1) / len(sorted_data)\n", + " return exceedance, sorted_data\n", "\n", - "# Combine watershed polygons into one geometry\n", - "watershed_union = watershed_gdf.geometry.unary_union\n", + "obs_exc, obs_f = fdc(streamflow_data_df[site_id])\n", + "mod_exc, mod_f = fdc(model_df[site_id])\n", "\n", - "# Filter stations that fall within the watershed\n", - "sites_in_watershed = filtered_all_stations_gdf[\n", - " filtered_all_stations_gdf.geometry.within(watershed_union)\n", - "].copy()\n", + "plt.figure()\n", "\n", - "sites_in_watershed.reset_index(drop=True, inplace=True)\n", + "plt.plot(obs_exc, obs_f, label=\"Observed\")\n", + "plt.plot(mod_exc, mod_f, label=\"Modeled\")\n", "\n", - "print(f\"Total sites in watershed: {len(sites_in_watershed)}\")\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "06a6b39b", - "metadata": {}, - "source": [ - "Plot these sites on a map. Then, hover over the pins to see the site names." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a1e3bc39", - "metadata": {}, - "outputs": [], - "source": [ - "## TODO: REPLACE WITH CSSI_EVALUATION.PLOTS FUNCTIONS\n", + "plt.xlabel(\"Exceedance Probability\")\n", + "plt.ylabel(\"Flow\")\n", + "plt.title(f\"Flow Duration Curve ({site_id})\")\n", "\n", - "# this may take a moment to load, but it should pop up in a new window\n", - "m = plot_utils.plot_sites_within_domain(sites_in_watershed, watershed_gdf, zoom_start=9)\n", - "m" - ] - }, - { - "cell_type": "markdown", - "id": "354fc021", - "metadata": {}, - "source": [ - "## 4. Retrieve SNOTEL point observations and metadata from HydroData \n", - "Use the `hf.get_point_data()` function to retrieve daily, start-of-day SWE from SNOTEL sites:" + "plt.legend()\n", + "plt.show()" ] }, { "cell_type": "code", "execution_count": null, - "id": "d74eeccb", + "id": "a25025bd", "metadata": {}, "outputs": [], - "source": [ - "# Create a folder to save observations\n", - "isExist = os.path.exists(OBS_OutputFolder)\n", - "if isExist == True:\n", - " exit\n", - "else:\n", - " os.mkdir(OBS_OutputFolder)" - ] - }, - { - "cell_type": "markdown", - "id": "b1805ac2", - "metadata": {}, - "source": [ - "### 4a. Get HydroData Observed SWE\n", - "Gather the SNOTEL data for all stations within the watershed and save CSV:" - ] + "source": [] }, { "cell_type": "code", "execution_count": null, - "id": "f0f2beb6", + "id": "f843172a", "metadata": {}, "outputs": [], - "source": [ - "# Request point observations data\n", - "data_df = hf.get_point_data(dataset=\"snotel\", variable=\"swe\", temporal_resolution=\"daily\", aggregation=\"sod\",\n", - " date_start=StartDate, date_end=EndDate,\n", - " huc_id=[huc_8_code], grid='conus1')\n", - " #polygon=watershed_bbox, polygon_crs=watershed_crs)\n", - "\n", - "# save\n", - "data_df.to_csv(f'./{OBS_OutputFolder}/df_{huc_8_name}_{huc_8_code}_SNOTEL.csv', index=False)\n", - "\n", - "# Ensure date column is datetime\n", - "data_df[\"date\"] = pd.to_datetime(data_df[\"date\"])\n", - "\n", - "# View first five records\n", - "data_df.head(5)" - ] - }, - { - "cell_type": "markdown", - "id": "fb365fbf", - "metadata": {}, - "source": [ - "### 4b. Get Metadata for HydroData Observed SWE\n", - "Also, retrieve the metadata for the same stations we retrieved SWE observations for:" - ] + "source": [] }, { "cell_type": "code", "execution_count": null, - "id": "1cb40a7c", + "id": "5da8deed", "metadata": {}, "outputs": [], - "source": [ - "# Request site-level attributes for these sites\n", - "metadata_df = hf.get_point_metadata(dataset=\"snotel\", variable=\"swe\", temporal_resolution=\"daily\", aggregation=\"sod\",\n", - " date_start=StartDate, date_end=EndDate,\n", - " huc_id=['14020001'], grid='conus1')\n", - "\n", - "# save\n", - "metadata_df.to_csv(f'./{OBS_OutputFolder}/df_{huc_8_name}_{huc_8_code}_SNOTEL_metadata.csv', index=False)\n", - "\n", - "# View first five records\n", - "metadata_df.head(5)" - ] - }, - { - "cell_type": "markdown", - "id": "d17b371a", - "metadata": {}, - "source": [ - "The metadata file is an important addition to the observations and it is recommended to always gather and save this for the observations you are using (particularly to support reproducibility within an open-science workflow). The saved file has useful attributes like site names, first and last date of available data, lat/lon, and the query URL. \n", - "\n", - "Additionally, the metadata contains **ParFlow-CONUS1 and ParFlow-CONUS2 `i,j` indices, which indicate the exact model domain grid cell the observation aligns with**. This is a useful HydroData feature that removes the need for users to manually match station latitude/longitude coordinates to the appropriate model grid cell, as this spatial mapping is handled directly within HydroData. We will use these indices below to extract PF-CONUS1 modeled SWE for each SNOTEL station in the section below. " - ] - }, - { - "cell_type": "markdown", - "id": "0e50455e", - "metadata": {}, - "source": [ - "## 5. Retrieve ParFlow-CONUS1 Modeled Snow Data" - ] + "source": [] }, { "cell_type": "code", "execution_count": null, - "id": "545a9d22", + "id": "29185ab9", "metadata": {}, "outputs": [], - "source": [ - "# Create a folder to save results\n", - "isExist = os.path.exists(MOD_OutputFolder)\n", - "if isExist == True:\n", - " exit\n", - "else:\n", - " os.mkdir(MOD_OutputFolder)" - ] + "source": [] }, { "cell_type": "markdown", - "id": "56eb4bb4", + "id": "e89ae5d1", "metadata": {}, "source": [ - "The following section retrieves ParFlow-CONUS1 data for each SNOTEL site within our HUC-08 watershed. The code identifies the CONUS1 `i,j` indices associated with each SNOTEL site, indicated in the `metadata_df`. It then extracts the CONUS1 modeled SWE output for the site and the period of interest, returning the result as a DataFrame. To fairly compare with SNOTEL, which reports SWE once daily at the start of the local day, model output is aggregated by day, using the argment `\"temporal_resolution\": \"daily\"`. Finally, the processed data is saved as a CSV file for each site. \n", - "\n", - "### 5a. ParFlow CONUS1 Model Dataset Information\n", - "We can print some information about the model output dataset by using the `hf.get_catalog_entry()` to get the CONUS1 model dataset metadata. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "10647da1", - "metadata": {}, - "outputs": [], - "source": [ - "conus1_options = {\n", - " \"dataset\": \"conus1_baseline_mod\",\n", - " \"variable\": \"swe\"\n", - "}\n", - "hf.get_catalog_entry(conus1_options)" - ] - }, - { - "cell_type": "markdown", - "id": "c6fd1306", - "metadata": {}, - "source": [ - "Before we gather model outputs at the specific SNOTEL sites, we can visualize SWE across our HUC-08. This is plotted for one day at 1km lateral resolution." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ba48a33a", - "metadata": {}, - "outputs": [], - "source": [ - "# retrieve gridded PF-CONUS1 SWE for the entire HUC8 watershed\n", - "grid_swe_options = {\n", - " \"dataset\": \"conus1_baseline_mod\",\n", - " \"variable\": \"swe\",\n", - " \"temporal_resolution\": \"daily\",\n", - " \"start_time\": '2004-04-01', ### TO NOTE: the gridded function has exclusive end date, so this is hardcoded for now \n", - " \"end_time\": '2004-04-02',\n", - " \"huc_id\": huc_8_code\n", - " }\n", - " \n", - " # Get gridded data\n", - "grid_swe = hf.get_gridded_data(grid_swe_options)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b82b9574", - "metadata": {}, - "outputs": [], - "source": [ - "grid_swe_map = xr.DataArray(grid_swe[0], dims=(\"y\", \"x\"), name=\"SWE\")\n", - "grid_swe_map.hvplot.image(cmap=\"YlGnBu\", colorbar=True, aspect=\"equal\", title=f\"{huc_8_name} Gridded SWE on 2004-04-01\")\n" - ] - }, - { - "cell_type": "markdown", - "id": "73a13787", - "metadata": {}, - "source": [ - "Now, grab the PF-CONUS1 modeled SWE from the SNOTEL site locations. Here we use the CONUS1 i and j indices from the `metadata_df` and grab the SWE from those grid cells. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "17143151", - "metadata": {}, - "outputs": [], - "source": [ - "# Copy data_df to model_df so we have the same timestamps and site_id structure\n", - "model_df = data_df.copy()\n", - "\n", - "# Set all non-date columns to NaN to prepare for filling in model data\n", - "non_date_cols = model_df.columns.difference([\"date\"])\n", - "model_df[non_date_cols] = np.nan\n", - "\n", - "# Rename site_id columns for PF outputs \n", - "model_df.columns = [\n", - " col if col == \"date\" else col.replace(\":SNTL\", \"\") + \":PFCONUS1\"\n", - " for col in model_df.columns\n", - "]" - ] - }, - { - "cell_type": "markdown", - "id": "523bd35c", - "metadata": {}, - "source": [ - "Use the function `hf.get_gridded_data()` and PF-CONUS1 `i,j` indices to select the SWE output for the correct location and time period: " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a814204c", - "metadata": {}, - "outputs": [], - "source": [ - "# Loop over each station in metadata_df\n", - "for idx, row in metadata_df.iterrows():\n", - " site_id = row[\"site_id\"] # original SNTL site_id\n", - " col_name = site_id.replace(\":SNTL\", \"\") + \":PFCONUS1\" # corresponding column in model_df\n", - " conus_i = int(row[\"conus1_i\"])\n", - " conus_j = int(row[\"conus1_j\"])\n", - " \n", - " # Build options dict for this station\n", - " options = {\n", - " \"dataset\": \"conus1_baseline_mod\",\n", - " \"variable\": \"swe\",\n", - " \"temporal_resolution\": \"daily\",\n", - " \"start_time\": '2003-10-01', ### TO NOTE: the gridded function has exclusive end date, so this is hardcoded for now \n", - " \"end_time\": '2005-10-01',\n", - " \"grid_point\": [conus_i, conus_j]\n", - " }\n", - " \n", - " # Get gridded data\n", - " data = hf.get_gridded_data(options)\n", - " \n", - " # Fill column in model_df\n", - " # Convert to numeric in case hf returns lists or other types\n", - " model_df[col_name] = np.squeeze(np.array(data))\n", - "\n", - "# Ensure date column is datetime\n", - "model_df[\"date\"] = pd.to_datetime(model_df[\"date\"])\n", - "\n", - "# Save\n", - "model_df.to_csv(f'./{MOD_OutputFolder}/df_{huc_8_name}_{huc_8_code}_PFCONUS1.csv', index=False)\n", - " \n", - "model_df.head(5)" - ] - }, - { - "cell_type": "markdown", - "id": "7464828b", - "metadata": {}, - "source": [ - "## 6. Quick plot sanity check \n", - "Plot a simple timeseries of modeled and observed SWE to make sure our data retrieval was successful. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fbe43f6a", - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10, 4))\n", - "\n", - "ax.plot(data_df[\"date\"], model_df[\"380:CO:PFCONUS1\"], label=\"Modeled\", linewidth=2)\n", - "\n", - "ax.plot(data_df[\"date\"], data_df[\"380:CO:SNTL\"], label=\"Observed\", linewidth=2)\n", - "\n", - "ax.set_xlabel(\"Date\")\n", - "ax.set_ylabel(\"SWE (mm)\")\n", - "\n", - "# Date formatting for x-axis\n", - "ax.xaxis.set_major_locator(mdates.MonthLocator(interval=3))\n", - "ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%Y'))\n", - "\n", - "ax.legend(loc='upper left')\n", - "ax.grid(True, alpha=0.3)\n", - "\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "id": "da3df109", - "metadata": {}, - "source": [ - "# Start of comparison from old notebook" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Spatial Mapping of the SNOTEL sites \n", - "Before evaluating model performance, we plot the GIS data associated with the records in the combined DataFrame. The map below shows the SNOTEL stations included in the evaluation dataset, along with the watershed boundary used for the model simulations. Hover over the pins to see the site names. \n", - "\n", - "We also print a table of the SNOTEL site metadata to help with the single site selection." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Path to the watershed shapefile\n", - "watershed = \"./domain_data/East-Taylor_14020001.shp\"\n", - "watershed_gdf = gpd.read_file(watershed).to_crs(epsg=4326)\n", - "\n", - "# Create GeoDataFrame of all available stations\n", - "filtered_all_stations_gdf = gpd.GeoDataFrame(\n", - " metadata_df,\n", - " geometry=gpd.points_from_xy(\n", - " metadata_df.longitude,\n", - " metadata_df.latitude\n", - " ),\n", - " crs=\"EPSG:4326\"\n", - ")\n", - "print(\"Sites CRS:\", filtered_all_stations_gdf.crs)\n", - "\n", - "# Combine watershed polygons into one geometry\n", - "watershed_union = watershed_gdf.geometry.unary_union\n", - "\n", - "# Filter stations that fall within the watershed\n", - "sites_in_watershed = filtered_all_stations_gdf[\n", - " filtered_all_stations_gdf.geometry.within(watershed_union)\n", - "].copy()\n", - "\n", - "sites_in_watershed.reset_index(drop=True, inplace=True)\n", - "\n", - "print(f\"Total sites in watershed: {len(sites_in_watershed)}\")\n", - "\n", - "m = nwm_utils.plot_sites_within_domain(sites_in_watershed, watershed_gdf, zoom_start=9)\n", - "m" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sites_in_watershed" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. Compare Modeled and Observed SWE Timeseries at a Single Site\n", - "\n", - "Once we have both observation data and modeling outpus, it's important to evaluate how well the model reproduces observed data. The following plots are simple timeseries comparisons of **modeled vs. observed** SWE. These types of plots provide a straight-forward visual of how well the observations and simulations agree and are a great start for assessing general model performance. \n", - "\n", - "📊 We include two figures:\n", - "\n", - "1. **Time Series Overlay:** Plots the observed and modeled values together over time. This helps identify:\n", - " - Periods of systematic bias\n", - " - Timing differences in peaks and lows\n", - " - General agreement in trends\n", - "\n", - "2. **Scatter Plot with 1:1 Line:** Plots each modeled value against its corresponding observed value. This highlights:\n", - " - Accuracy across the full range of values\n", - " - Over- or under-prediction patterns\n", - " - Outliers or extreme events" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Review the sites within the watershed from the interactive map above and click on the markers to view the site name and code. Recall, we also printed out the site metadata for all sites within the watershed, which contains the 3-letter site codes.\n", - "\n", - "✏️ Once you’ve identified the site of interest, **enter its site code in the next code cell for `my_site_code`**: " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# choose a site of interest within the watershed\n", - "my_site_code = '380:CO:'\n", - "\n", - "############################ THIS BELOW DOESNT WORK BECAUSE CODE IS NOT COMPLETE\n", - "# filter to only that site\n", - "sites_in_watershed[sites_in_watershed['site_id']==my_site_code]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "nwm_utils.comparison_plots(combined_df, f'{my_site_code}SNTL', f'{my_site_code}PFCONUS1')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To move beyond an overall summary of daily performance, we replot the modeled vs. observed SWE scatter while highlighting specific months with a distinct color. This gives us more information about the **seasonal model performance**. \n", - "\n", - "Let's customize the scatter plot by allowing you to highlight specific months with a distinct color. The selected months will appear in one color, while all other months will appear in a different color. This customization reveals whether there are **seasonal patterns** in the relationship between observed and modeled SWE, allowing us to distinguish model behavior during the key snowpack phases of accumulation and ablation (melt). Identifying these patterns is important for diagnosing the model’s strengths and limitations during different parts of the snow season.\n", - "\n", - "You can change the list of highlighted months (for example, October–December for early accumulation or March–May for spring melt) to explore in the scatter plot how model performance varies across different parts of the snow season. This seasonal perspective motivates the _peak SWE analysis_ that follows." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### 📊 For this example, let's highlight the _early snow accumulation period_ of October - January:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "combined_df['month'] = combined_df.index.month\n", - "\n", - "plot = nwm_utils.plot_custom_scatter_SWE(combined_df, f'{my_site_code}SNTL', f'{my_site_code}PFCONUS1',\n", - " highlight_months=[10, 11, 12, 1])\n", - "plot " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "

🧠 Reflect

\n", - "

What does this plot tell us about how well the model performs during the early snow accumulation period at this site?
\n", - "HINT: How close are the green points to the 1:1 line?

\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 5. Peak SWE Evaluation at the Watershed Scale \n", - "As we saw in the previous section, how well a model matches observations can differ greatly throughout the year. The following section focuses on **peak SWE** (or maximum SWE) analysis. \n", - "\n", - "**Peak SWE is a key diagnostic for snow-dominated hydrologic systems** because it represents the maximum amount of liquid water stored in the snowpack before the spring melt. Evaluating both the magnitude (quantity) and timing (date) of peak SWE provides insight into whether the model is accurately representing snow accumulation and seasonal energy balance. \n", - "\n", - "Errors in peak SWE can have important hydrologic consequences, as peak accumulation strongly influences:\n", - "- The volume of water available for spring runoff\n", - "- The timing of streamflow peaks\n", - "- Soil moisture recharge and groundwater contributions\n", - "\n", - "
\n", - " \n", - "
\n", - "\n", - "_Example daily SWE at a single site, showing two important periods in snow processes: accumulation (before peak) and ablation (after peak). The vertical line marks peak SWE._" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 5.1 Comparing Modeled and Observed Peak SWE at All Sites in the Watershed\n", - "In this section, we evaluate observed and modeled peak SWE for all stations within our watershed and for all years selected in the `StartDate` and `EndDate` above. \n", - "\n", - "#### 📋 Modeled SWE on the Date of Observed Peak SWE (magnitude) \n", - "This comparison evaluates the modeled SWE on the **specific day when observed SWE reaches its maximum.** By fixing the timing to the observed peak, this comparison isolates errors in SWE magnitude. \n", - "It answers the question: *How much SWE does the model simulate on the day the observed snowpack reaches its maximum?*" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# isolate the columns associated with observations and model predictions.\n", - "# these will be inputs to our same-day comparison function.\n", - "obs_cols = sorted([col for col in combined_df.columns if col.endswith('SNTL')])\n", - "mod_cols = sorted([col for col in combined_df.columns if col.endswith('PFCONUS1')])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# compute the same-day SWE comparison during the observed peak SWE for each of the observation and modeled sites.\n", - "df_observed_peak = utils.modeled_swe_at_observed_peak(combined_df, obs_cols, mod_cols)\n", - "df_observed_peak" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### 📊 Visualize the amount of SWE on **the day of observed peak SWE occurs** for both the model and observations at each station" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Rearrange the dataframe to long format for easier plotting\n", - "df_long = (\n", - " df_observed_peak\n", - " .reset_index() \n", - " .melt(\n", - " id_vars=['Station', 'Water_Year', 'date'],\n", - " value_vars=['Observed', 'Modeled'],\n", - " var_name='Source',\n", - " value_name='SWE'\n", - " )\n", - ")\n", - "# Create scatter plot of observed and modeled SWE on the day of observed peak SWE\n", - "scatter_obs_peak = df_long.hvplot.scatter(\n", - " x='Station',\n", - " y='SWE',\n", - " by='Source', # Observed vs Modeled\n", - " ylabel='SWE on Observed Peak Day (mm)',\n", - " title='Observed and Modeled SWE on the Day of Observed Peak SWE',\n", - " size=70,\n", - " width=700,\n", - " height=450,\n", - " alpha=0.8,\n", - " hover_cols=['Water_Year'],\n", - " rot=45\n", - ")\n", - "\n", - "# Customize the scatter plot appearance\n", - "scatter_by_station = (\n", - " scatter_obs_peak \n", - " .opts(legend_position='top_right')\n", - ")\n", - "\n", - "scatter_by_station" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 📋 Modeled vs Observed Peak SWE Comparison (timing & magnitude) \n", - "This comparison evaluates the modeled and observed peak SWE values and their corresponding dates independently. Unlike the previous comparison that fixed the timing to the observed peak swe, this analysis shows the actual days of modeled and observed peak SWE, which may occur on different dates. As a result, it captures errors in both **peak SWE magnitude** and **peak timing**." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# compute the different-day SWE comparison for each of the observed and modeled sites.\n", - "df_both_peak = utils.modeled_vs_observed_peak_swe(combined_df, obs_cols, mod_cols)\n", - "df_both_peak" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### 📊 Visualize the quantity of peak SWE for both the model and observations at each station" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "### NEED TO DECIDE HOW TO FORMAT THIS PLOT AND IF WE WANT TO HAVE THE \"SAME_DAY\" PLOT\n", - "\n", - "# Create the scatter plot\n", - "scatter_plot_both_peak = df_both_peak.hvplot.scatter(\n", - " x='Observed',\n", - " y='Modeled',\n", - " xlabel='Observed SWE (mm)',\n", - " ylabel='Modeled SWE (mm)',\n", - " title='Modeled vs. Observed Peak SWE',\n", - " size=35,\n", - " width=500,\n", - " height=400,\n", - " color='#E69F00',\n", - " hover_cols=['Station', 'Water_Year']\n", - ")#.relabel('Peak SWE')\n", - "\n", - "# Add 1:1 line (perfect match line)\n", - "swe_max = df_both_peak[['Observed', 'Modeled']].max().max()\n", - "\n", - "one_to_one_line = hv.Curve(([0, swe_max], [0, swe_max])).opts(\n", - " color='gray',\n", - " line_dash='dashed',\n", - " line_width=1,\n", - ").relabel('1:1 Line')\n", - "\n", - "# Combine scatter plot and 1:1 line into an Overlay\n", - "scatter_with_line = (scatter_plot_both_peak * one_to_one_line).opts( #scatter_plot_obs_peak * \n", - " legend_position='bottom_right'\n", - ")\n", - "\n", - "scatter_with_line" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 5.2 Visualizing Model Error for Peak SWE\n", - "\n", - "The previous scatter plots indicate that the modeled and observed peak SWE magnitude and timing don't always align. Next, we plot the degree to which \n", - "\n", - "The previous scatter plots highlight differences between modeled and observed peak SWE timing and magnitude, but interpreting these variations can be challenging when comparing modeled and observed values directly. To make these differences more explicit, we compute errors in both peak timing and peak SWE magnitude and visualize them directly. This approach clarifies both the direction and magnitude of model bias and facilitates comparison across stations and water years.\n", - "\n", - "First, add columns `Peak_Date_Diff_Days` and `Peak_SWE_Diff` to the DataFrame `df_both_peak` for computed difference in peak SWE date difference and peak SWE quantity between modeled and observed:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Compute the difference in peak SWE days and peak SWE amounts between modeled and observed\n", - "df_both_peak['Peak_Date_Diff_Days'] = (df_both_peak['Modeled_Date'] - \n", - " df_both_peak['Observed_Date']).dt.days\n", - "df_both_peak['Peak_SWE_Diff'] = (df_both_peak['Modeled'] - \n", - " df_both_peak['Observed'])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "df02795e", - "metadata": {}, - "outputs": [], - "source": [ - "df_both_peak" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### 📊 Visualize the error between the modeled and observed peak SWE " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Filter to separate each water year\n", - "year1 = df_both_peak[df_both_peak['Water_Year'] == df_both_peak['Water_Year'].min()]\n", - "year2 = df_both_peak[df_both_peak['Water_Year'] == df_both_peak['Water_Year'].max()]\n", - "\n", - "bar1 = year1.hvplot.bar(\n", - " x='Station',\n", - " y='Peak_Date_Diff_Days',\n", - " rot=45,\n", - " ylabel='Date Difference (days)',\n", - " title=f'Peak SWE Date Difference {year1[\"Water_Year\"].iloc[0]} (model - obs)',\n", - " width=400,\n", - " height=400,\n", - " color='Peak_Date_Diff_Days',\n", - " hover_cols=['Modeled', 'Observed']\n", - ")\n", - "bar2 = year1.hvplot.bar(\n", - " x='Station',\n", - " y='Peak_SWE_Diff',\n", - " rot=45,\n", - " ylabel='SWE Difference (m)',\n", - " title=f'Peak SWE Difference {year1[\"Water_Year\"].iloc[0]} (model - obs)',\n", - " width=400,\n", - " height=400,\n", - " color='Peak_SWE_Diff',\n", - " hover_cols=['Modeled', 'Observed']\n", - ")\n", - "\n", - "# Combine side by side\n", - "layout = (bar1 + bar2)\n", - "layout.opts(shared_axes=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The left panel shows the timing error (date difference) and the right panel the magnitude error (SWE difference). When we computed the difference in date and SWE quantity above, we took `modeled - observed` so: \n", - "\n", - "| | DATE OF PEAK SWE | PEAK SWE QUANTITY |\n", - "|---|---|---|\n", - "| + Positive Values | modeled AFTER observed | modeled GREATER THAN observed |\n", - "| - Negative Values | modeled BEFORE observed | modeled LESS THAN observed | " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "

🧠 Reflect

\n", - "

Looking at the two plots, what could be some reasons for the model having simulated peak SWE both earlier and less than the observed peak SWE? Perhaps try changing the my_site_code from earlier in the notebook to rerun nwm_utils.comparison_plots() to see the timeseries for a different station to look at the peak magnitude and timing. \n", - "\n", - "
What happens if you change the year that is plotted?
✏️ Try modifying the bar plot code from bar1 = year1.hvplot.bar to bar1 = year2.hvplot.bar. Don't forget to change the title!

\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 📊 Next, we combine the timing and magnitude errors and plot them together for each station." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "\n", - "scatter = df_both_peak.hvplot.scatter(\n", - " x='Peak_Date_Diff_Days',\n", - " y='Peak_SWE_Diff',\n", - " by='Station', # Water_Year\n", - " xlabel='Peak SWE Timing Error (days)',\n", - " ylabel='Peak SWE Magnitude Error (mm)',\n", - " title='Peak SWE Timing vs Magnitude Error',\n", - " size=80,\n", - " width=600,\n", - " height=400,\n", - " hover_cols=['Water_Year']\n", - ")\n", - "\n", - "# Add reference lines\n", - "vline = hv.VLine(0).opts(color='gray', line_dash='dashed')\n", - "hline = hv.HLine(0).opts(color='gray', line_dash='dashed')\n", - "\n", - "(scatter * vline * hline).opts(legend_position='top_left', show_grid=True)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "✏️ **Try changing how we view this plot.** \n", - "We can modify a line in the section of code from `by='Station'` to `by='Water_Year'` to better visualize the errors in the different Water Years. \n", - "Are there any patterns that jump out? Which year was modeled peak SWE consistently less than observed peak SWE? " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 6. Compute and Statistics and Error Metrics \n", - "The previous section visualized when and where modeled SWE differs from observations, both in terms of peak SWE timing and magnitude. However, visual inspection alone makes it difficult to compare performance across sites or to summarize model behavior in a consistent or quantifiable way. In this section, we compute commonly used statistical error metrics to quantify model performance, allowing us to objectively assess bias, error magnitude, and variability for sites within the watershed. \n", - "\n", - "Proposed outline (DTK, Jan 2026):\n", - "- Summary metrics at a station\n", - "- Summary metrics at all stations within the watershed\n", - "- Combined timing and magnitude for all stations within the watershed (Condon metric)\n", - "- Focus on timing: summary statistics for single station for accumulation & ablation periods (using the new wrapper: `nwm_utils.compute_stats_period()`)\n", - "- Melt period statistics" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "nwm_utils.compute_stats(combined_df, f'CCSS_{my_site_code}_swe_m', f'NWM_{my_site_code}_swe_m')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Pearson and Spearman correlations are both close to 1, suggesting a strong relationship between observed and modeled SWE. As shown on the timeseries plot, this strong correlation alone does not indicate a \"good\" model. For example, it does not guarantee accurate timing of key events, such as peak SWE or melt onset. Let's compare these as well. The following code uses `report_max_dates_and_values` function to identify the peak SWE value and the date it occurs for both the observed (CCSS) and modeled (NWM) datasets. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "

🧠 Reflect

\n", - "

You now have several performance metrics: Bias, Pearson Correlation, Spearman Correlation, NSE, and KGE. If you had to pick just one metric to summarize model performance, which would you choose—and why? As you review the results, compare the peak flow amounts and the timing of snowmelt onset. Do you see any significant differences? Which dataset indicates an earlier melt?

\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "summary_table = nwm_utils.report_max_dates_and_values(combined_df, f'CCSS_{my_site_code}_swe_m', f'NWM_{my_site_code}_swe_m')\n", - "summary_table" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Summary Metrics at Multiple Sites" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "site_codes = ['DAN', 'HRS', 'KIB', 'PDS', 'SLI', 'TUM', 'WHW']\n", - "\n", - "rows = []\n", - "\n", - "for site in site_codes:\n", - " obs_col = f'CCSS_{site}_swe_m'\n", - " mod_col = f'NWM_{site}_swe_m'\n", - "\n", - " stats_table = nwm_utils.compute_stats(combined_df, obs_col, mod_col)\n", - "\n", - " rows.append({\n", - " 'Station': site,\n", - " 'Mean_Obs': stats_table.loc['observed', 'Mean'],\n", - " 'Mean_Mod': stats_table.loc['modeled', 'Mean'],\n", - " 'Bias_m': stats_table.loc['Bias (Modeled - Observed)', 'Mean'],\n", - " 'Pearson_r': stats_table.loc['Pearson Correlation', 'Mean'],\n", - " 'Spearman_r': stats_table.loc['Spearman Correlation', 'Mean'],\n", - " 'NSE': stats_table.loc['Nash-Sutcliffe Efficiency (NSE)', 'Mean'],\n", - " 'KGE': stats_table.loc['Kling-Gupta Efficiency (KGE)', 'Mean']\n", - " })\n", - "\n", - "stats_AllStations = pd.DataFrame(rows)\n", - "\n", - "print('All Stations Statistics Summary:')\n", - "stats_AllStations" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "stats_AllStations.hvplot.bar(\n", - " x='Station',\n", - " y='NSE',\n", - " rot=45,\n", - " ylabel='Nash–Sutcliffe Efficiency',\n", - " title='NSE by Station',\n", - " height=400,\n", - " width=600,\n", - " bar_width=0.5\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "stats_summary.hvplot.scatter(\n", - " x='Station',\n", - " y='Bias_m',\n", - " size=100,\n", - " rot=45,\n", - " ylabel='Bias (m)',\n", - " title='Mean SWE Bias by Station'\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Combine Magnitude (absolute relative bias) and Timing (Spearman's rho) metrics using the Condon metric (and with all stations, a Condon diagram)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bias1 = evaluation_metrics.bias(combined_df.CCSS_TUM_swe_m, combined_df.NWM_TUM_swe_m)\n", - "bias1" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "abs_bias = evaluation_metrics.absolute_relative_bias(combined_df.CCSS_TUM_swe_m, combined_df.NWM_TUM_swe_m)\n", - "abs_bias" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "srho = evaluation_metrics.spearman_rank(combined_df.CCSS_TUM_swe_m, combined_df.NWM_TUM_swe_m)\n", - "srho" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "evaluation_metrics.condon(abs_bias, srho)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "

🧠 Reflect

\n", - "

\n", - " What is the modeled SWE on the date when the observed SWE reaches its peak?
\n", - " ✏️ Use the code snippet below to find the answer.\n", - "

\n", - "
\n",
-    "  \n",
-    "    # Find date of the peak SWE from observed data\n",
-    "    date_obs_max = combined_df['CCSS_HRS_swe_m'].idxmax()\n",
-    "\n",
-    "    # Get corresponding value of modeled data on that date\n",
-    "    value_mod_at_max_obs = combined_df.loc[date_obs_max, 'NWM_HRS_swe_m']\n",
-    "  
\n", - "
\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Focus on Timing: Melt Period Metrics\n", - "Compare the average melt rate over the full melt period. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The following function computes the melt period length by identifying the first date after the peak SWE when SWE drops to zero and remains at zero for at least (`min_zero_days`) consecutive days. This is used to define the end of the melt period. Finally, the function calculates the average melt rate, which represents the rate at which snow disappeared, expressed in meters per day, over the full melt period." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "melt_stats_df = utils.compute_melt_period_statistics(combined_df)\n", - "melt_stats_df.head()\n", - "melt_stats_df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "observed_melt_period = nwm_utils.compute_melt_period(combined_df[f'CCSS_{my_site_code}_swe_m'])\n", - "observed_melt_period" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "modeled_melt_period = nwm_utils.compute_melt_period(combined_df[f'NWM_{my_site_code}_swe_m'])\n", - "modeled_melt_period" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "accum_months = [10, 11, 12, 1, 2, 3]\n", - "ablation_months = [4, 5, 6]\n", - "\n", - "accum_stats = nwm_utils.compute_stats_period(\n", - " combined_df,\n", - " f'CCSS_{my_site_code}_swe_m',\n", - " f'NWM_{my_site_code}_swe_m',\n", - " accum_months\n", - ")\n", - "\n", - "accum_stats" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "ablation_stats = nwm_utils.compute_stats_period(\n", - " combined_df,\n", - " f'CCSS_{my_site_code}_swe_m',\n", - " f'NWM_{my_site_code}_swe_m',\n", - " ablation_months\n", - ")\n", - "\n", - "ablation_stats" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "

🧠 Reflect

\n", - "

\n", - " If you recall from earlier, we plotted the timeseries of out selected station. Replot it below. Do the metrics make sense given the visual comparison between modeled and observed? For example, when you look at the timeseries, is the model consistently predicting SWE to be higher or lower than observations? Does this align with the Bias sign (+ or -)?\n", - "

\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "nwm_utils.comparison_plots(combined_df, f'CCSS_{my_site_code}_swe_m', f'NWM_{my_site_code}_swe_m')\n" + "The purpose isnt to do a great analysis, but to demonstrate the workflow. \n", + "Deeper dive into a location and think about metrics - what do each of these represent? \n", + "\n" ] }, { "cell_type": "code", "execution_count": null, + "id": "a3b0f35b", "metadata": {}, "outputs": [], "source": [] @@ -1907,7 +10086,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.11" + "version": "3.10.13" } }, "nbformat": 4, diff --git a/src/cssi_evaluation/utils/plot_utils.py b/src/cssi_evaluation/utils/plot_utils.py index c4fd9b0..742df4c 100644 --- a/src/cssi_evaluation/utils/plot_utils.py +++ b/src/cssi_evaluation/utils/plot_utils.py @@ -393,7 +393,7 @@ def plot_condon_diagram(metrics_df, variable, output_dir="."): df_plot["abs_rel_bias"], df_plot["spearman_rho"], c=df_plot["condon"].map(CONDON_COLORS), - s=4, + s=25, zorder=1, alpha=0.4, ) @@ -452,7 +452,7 @@ def plot_condon_diagram(metrics_df, variable, output_dir="."): # Add text for the percentage in each category total_obs = df_plot.shape[0] ax.text( - 0, + 0.1, 0.9, str( round( @@ -480,8 +480,8 @@ def plot_condon_diagram(metrics_df, variable, output_dir="."): fontsize=12, ) ax.text( - 0, - -1, + 0.1, + -0.99, str( round( df_plot[df_plot["condon"] == "Low bias, poor shape"].shape[0] @@ -495,7 +495,7 @@ def plot_condon_diagram(metrics_df, variable, output_dir="."): ) ax.text( 9.3, - -1, + -0.99, str( round( df_plot[df_plot["condon"] == "High bias, poor shape"].shape[0] @@ -509,7 +509,7 @@ def plot_condon_diagram(metrics_df, variable, output_dir="."): ) plt.title(f"{variable.capitalize()} Performance Category") - plt.savefig(f"{output_dir}/{variable}_condon_diagram.png", bbox_inches="tight") + plt.savefig(f"{output_dir}/{variable}_condon_diagram.png", bbox_inches="tight", dpi=300) # from Irene's nwm_utils.py From e17c7dc556cc46c0984976e742d20583ec652f99 Mon Sep 17 00:00:00 2001 From: danielletijerina Date: Sat, 28 Mar 2026 10:03:50 -0600 Subject: [PATCH 3/5] reworked the analysis section, good order now --- ...ow_streamflow_point_scale_evaluation.ipynb | 602 +++++++++--------- 1 file changed, 292 insertions(+), 310 deletions(-) diff --git a/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb b/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb index 3d931e1..4ac7578 100644 --- a/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb +++ b/examples/parflow/parflow_streamflow_point_scale_evaluation.ipynb @@ -45,234 +45,31 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 38, "id": "0dfc3fb3", "metadata": {}, "outputs": [ { - "data": { - "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.4'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = false;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.4.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.4.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.4.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.4.min.js\", \"https://cdn.holoviz.org/panel/1.3.1/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", - "application/vnd.holoviews_load.v0+json": "" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n let retries = 0;\n const open = () => {\n if (comm.active) {\n comm.open();\n } else if (retries > 3) {\n console.warn('Comm target never activated')\n } else {\n retries += 1\n setTimeout(open, 500)\n }\n }\n if (comm.active) {\n comm.open();\n } else {\n setTimeout(open, 500)\n }\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n })\n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", - "application/vnd.holoviews_load.v0+json": "" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.holoviews_exec.v0+json": "", - "text/html": [ - "
\n", - "
\n", - "
\n", - "" - ] - }, - "metadata": { - "application/vnd.holoviews_exec.v0+json": { - "id": "p1002" - } - }, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.4'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = true;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", - "application/vnd.holoviews_load.v0+json": "" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n let retries = 0;\n const open = () => {\n if (comm.active) {\n comm.open();\n } else if (retries > 3) {\n console.warn('Comm target never activated')\n } else {\n retries += 1\n setTimeout(open, 500)\n }\n }\n if (comm.active) {\n comm.open();\n } else {\n setTimeout(open, 500)\n }\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n })\n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", - "application/vnd.holoviews_load.v0+json": "" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.4'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = true;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.1/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.1/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.11.0/dist/geoviews.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", - "application/vnd.holoviews_load.v0+json": "" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n let retries = 0;\n const open = () => {\n if (comm.active) {\n comm.open();\n } else if (retries > 3) {\n console.warn('Comm target never activated')\n } else {\n retries += 1\n setTimeout(open, 500)\n }\n }\n if (comm.active) {\n comm.open();\n } else {\n setTimeout(open, 500)\n }\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n })\n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", - "application/vnd.holoviews_load.v0+json": "" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] } ], "source": [ - "# import os\n", - "# import sys\n", - "\n", - "# prefix = os.environ['CONDA_PREFIX']\n", - "# os.environ['PROJ_LIB'] = os.path.join(prefix, 'share', 'proj')\n", - "\n", "import datetime\n", "from pathlib import Path\n", - "# import sys\n", - "# import pyproj\n", "import pandas as pd\n", "import numpy as np\n", - "# import xarray as xr\n", - "# import geopandas as gpd\n", - "# from dask.distributed import Client\n", - "# import matplotlib.pyplot as plt\n", - "# import matplotlib.dates as mdates\n", "import hf_hydrodata as hf\n", - "# import subsettools\n", - "# import hvplot.xarray\n", "import parflow as pf\n", "import plotly.express as px\n", "import plotly.io as pio\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", "\n", "from cssi_evaluation.utils import plot_utils\n", "from cssi_evaluation.utils import evaluation_utils\n", @@ -293,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "id": "a365996d", "metadata": {}, "outputs": [], @@ -315,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "id": "e50dc99d", "metadata": {}, "outputs": [], @@ -348,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "53c003cb", "metadata": {}, "outputs": [ @@ -357,16 +154,17 @@ "output_type": "stream", "text": [ "HUC-8 ID: 051202\n", - "HUC-8 name: Bayou De Chien-Mayfield\n" + "HUC-8 name: Patoka-White\n" ] } ], "source": [ "# ✏️ Specify HUC8 ID and Name for watershed of interest\n", - "huc_code = '051202'#'08010201'\n", + "# (The Bayou De Chien HUC '08010201' has only 1 gage, which will run faster than the following Patoka-White HUC '051202')\n", + "huc_code = '051202'\n", "print(f'HUC-8 ID: {huc_code}')\n", "\n", - "huc_name = 'Bayou De Chien-Mayfield'\n", + "huc_name = 'Patoka-White'\n", "print(f'HUC-8 name: {huc_name}')" ] }, @@ -388,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 6, "id": "10ae5690", "metadata": {}, "outputs": [ @@ -608,7 +406,7 @@ "[5 rows x 26 columns]" ] }, - "execution_count": 26, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -642,7 +440,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 7, "id": "a16038bd", "metadata": {}, "outputs": [ @@ -4544,9 +4342,9 @@ { "data": { "text/html": [ - "
\n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "print(f\"Number of streamflow sites: {len(streamflow_metadata_df)}\")\n", + "streamflow_metadata_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "068c31ab", + "metadata": {}, + "source": [ + "Plot the locations of the streamflow gages onto a map:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a16038bd", + "metadata": {}, + "outputs": [], "source": [ "# Let's define a helper plotting function to use throughout the notebook\n", "def plot_sites_on_map(metadata_df, color_by=None):\n", @@ -4421,18 +254,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "fccadf5e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Streamflow data shape: (365, 50)\n" - ] - } - ], + "outputs": [], "source": [ "# Now let's request data.\n", "streamflow_data_df = hf.get_point_data(point_options)\n", @@ -4449,217 +274,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "32cee48a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of valid streamflow sites: 45\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", - "
date033470000334835003349000033507000335100003351310033515000335250003353000...03368000033695000337150003371520033735000337400003374455033755000337635003376500
02002-10-010.333940.294324.92420.2464936.39580.0973521.081061.553677.5844...0.0028300.33677088.29600.01867895.937133.5760.0181121.797050.2162124.8676
12002-10-020.311300.288664.18840.2524365.77320.0973521.064081.474437.3580...0.0022640.24762565.37300.01698088.013143.4810.0189611.788560.2099863.3960
22002-10-030.331110.283003.84880.2456445.32040.0721651.018801.403686.5939...0.0016980.19357241.03500.01726365.090136.6890.0198101.780070.1986662.9432
32002-10-040.580150.305644.07520.2787556.22600.3282801.146151.7659210.7823...0.0022640.21168429.71500.02179145.846120.8410.0260361.805540.3622402.9998
42002-10-050.472610.373565.06570.3169606.93350.3509201.381042.2583412.7916...0.0042450.25356824.93230.02886635.941103.0120.0350921.864970.3565803.5658
\n", - "

5 rows × 45 columns

\n", - "
" - ], - "text/plain": [ - " date 03347000 03348350 03349000 03350700 03351000 03351310 \\\n", - "0 2002-10-01 0.33394 0.29432 4.9242 0.246493 6.3958 0.097352 \n", - "1 2002-10-02 0.31130 0.28866 4.1884 0.252436 5.7732 0.097352 \n", - "2 2002-10-03 0.33111 0.28300 3.8488 0.245644 5.3204 0.072165 \n", - "3 2002-10-04 0.58015 0.30564 4.0752 0.278755 6.2260 0.328280 \n", - "4 2002-10-05 0.47261 0.37356 5.0657 0.316960 6.9335 0.350920 \n", - "\n", - " 03351500 03352500 03353000 ... 03368000 03369500 03371500 03371520 \\\n", - "0 1.08106 1.55367 7.5844 ... 0.002830 0.336770 88.2960 0.018678 \n", - "1 1.06408 1.47443 7.3580 ... 0.002264 0.247625 65.3730 0.016980 \n", - "2 1.01880 1.40368 6.5939 ... 0.001698 0.193572 41.0350 0.017263 \n", - "3 1.14615 1.76592 10.7823 ... 0.002264 0.211684 29.7150 0.021791 \n", - "4 1.38104 2.25834 12.7916 ... 0.004245 0.253568 24.9323 0.028866 \n", - "\n", - " 03373500 03374000 03374455 03375500 03376350 03376500 \n", - "0 95.937 133.576 0.018112 1.79705 0.216212 4.8676 \n", - "1 88.013 143.481 0.018961 1.78856 0.209986 3.3960 \n", - "2 65.090 136.689 0.019810 1.78007 0.198666 2.9432 \n", - "3 45.846 120.841 0.026036 1.80554 0.362240 2.9998 \n", - "4 35.941 103.012 0.035092 1.86497 0.356580 3.5658 \n", - "\n", - "[5 rows x 45 columns]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Identify columns with NO NaNs\n", "valid_sites = streamflow_data_df.columns[streamflow_data_df.notna().all()]\n", @@ -4714,73 +332,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "b0df123a", "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", - "
date
02002-10-01
12002-10-02
22002-10-03
32002-10-04
42002-10-05
\n", - "
" - ], - "text/plain": [ - " date\n", - "0 2002-10-01\n", - "1 2002-10-02\n", - "2 2002-10-03\n", - "3 2002-10-04\n", - "4 2002-10-05" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "date_start = datetime.datetime.strptime(StartDate, '%Y-%m-%d')\n", "date_end = datetime.datetime.strptime(EndDate, '%Y-%m-%d')\n", @@ -4797,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "310c8fc1", "metadata": {}, "outputs": [], @@ -4818,149 +373,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "9ebe3c48", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Processing site 03347000 at PF-CONUS1 grid point (2782, 791)\n", - "Requesting pressure data for site 03347000\n", - "Calculating streamflow for site 03347000\n", - "Processing site 03348350 at PF-CONUS1 grid point (2749, 790)\n", - "Requesting pressure data for site 03348350\n", - "Calculating streamflow for site 03348350\n", - "Processing site 03349000 at PF-CONUS1 grid point (2731, 767)\n", - "Requesting pressure data for site 03349000\n", - "Calculating streamflow for site 03349000\n", - "Processing site 03350700 at PF-CONUS1 grid point (2732, 767)\n", - "Requesting pressure data for site 03350700\n", - "Calculating streamflow for site 03350700\n", - "Processing site 03351000 at PF-CONUS1 grid point (2726, 753)\n", - "Requesting pressure data for site 03351000\n", - "Calculating streamflow for site 03351000\n", - "Processing site 03351310 at PF-CONUS1 grid point (2719, 739)\n", - "Requesting pressure data for site 03351310\n", - "Calculating streamflow for site 03351310\n", - "Processing site 03351500 at PF-CONUS1 grid point (2745, 759)\n", - "Requesting pressure data for site 03351500\n", - "Calculating streamflow for site 03351500\n", - "Processing site 03352500 at PF-CONUS1 grid point (2726, 746)\n", - "Requesting pressure data for site 03352500\n", - "Calculating streamflow for site 03352500\n", - "Processing site 03353000 at PF-CONUS1 grid point (2721, 732)\n", - "Requesting pressure data for site 03353000\n", - "Calculating streamflow for site 03353000\n", - "Processing site 03353120 at PF-CONUS1 grid point (2729, 738)\n", - "Requesting pressure data for site 03353120\n", - "Calculating streamflow for site 03353120\n", - "Processing site 03353200 at PF-CONUS1 grid point (2711, 754)\n", - "Requesting pressure data for site 03353200\n", - "Calculating streamflow for site 03353200\n", - "Processing site 03353500 at PF-CONUS1 grid point (2715, 736)\n", - "Requesting pressure data for site 03353500\n", - "Calculating streamflow for site 03353500\n", - "Processing site 03353600 at PF-CONUS1 grid point (2716, 737)\n", - "Requesting pressure data for site 03353600\n", - "Calculating streamflow for site 03353600\n", - "Processing site 03353620 at PF-CONUS1 grid point (2723, 730)\n", - "Requesting pressure data for site 03353620\n", - "Calculating streamflow for site 03353620\n", - "Processing site 03353700 at PF-CONUS1 grid point (2693, 731)\n", - "Requesting pressure data for site 03353700\n", - "Calculating streamflow for site 03353700\n", - "Processing site 03353800 at PF-CONUS1 grid point (2704, 718)\n", - "Requesting pressure data for site 03353800\n", - "Calculating streamflow for site 03353800\n", - "Processing site 03354000 at PF-CONUS1 grid point (2704, 705)\n", - "Requesting pressure data for site 03354000\n", - "Calculating streamflow for site 03354000\n", - "Processing site 03357350 at PF-CONUS1 grid point (2675, 731)\n", - "Requesting pressure data for site 03357350\n", - "Calculating streamflow for site 03357350\n", - "Processing site 03358000 at PF-CONUS1 grid point (2675, 695)\n", - "Requesting pressure data for site 03358000\n", - "Calculating streamflow for site 03358000\n", - "Processing site 03360000 at PF-CONUS1 grid point (2652, 685)\n", - "Requesting pressure data for site 03360000\n", - "Calculating streamflow for site 03360000\n", - "Processing site 03360500 at PF-CONUS1 grid point (2657, 641)\n", - "Requesting pressure data for site 03360500\n", - "Calculating streamflow for site 03360500\n", - "Processing site 03361000 at PF-CONUS1 grid point (2772, 738)\n", - "Requesting pressure data for site 03361000\n", - "Calculating streamflow for site 03361000\n", - "Processing site 03361500 at PF-CONUS1 grid point (2756, 713)\n", - "Requesting pressure data for site 03361500\n", - "Calculating streamflow for site 03361500\n", - "Processing site 03361650 at PF-CONUS1 grid point (2745, 733)\n", - "Requesting pressure data for site 03361650\n", - "Calculating streamflow for site 03361650\n", - "Processing site 03361850 at PF-CONUS1 grid point (2742, 725)\n", - "Requesting pressure data for site 03361850\n", - "Calculating streamflow for site 03361850\n", - "Processing site 03362000 at PF-CONUS1 grid point (2740, 699)\n", - "Requesting pressure data for site 03362000\n", - "Calculating streamflow for site 03362000\n", - "Processing site 03362500 at PF-CONUS1 grid point (2742, 692)\n", - "Requesting pressure data for site 03362500\n", - "Calculating streamflow for site 03362500\n", - "Processing site 03363500 at PF-CONUS1 grid point (2771, 705)\n", - "Requesting pressure data for site 03363500\n", - "Calculating streamflow for site 03363500\n", - "Processing site 03363900 at PF-CONUS1 grid point (2747, 681)\n", - "Requesting pressure data for site 03363900\n", - "Calculating streamflow for site 03363900\n", - "Processing site 03364000 at PF-CONUS1 grid point (2748, 675)\n", - "Requesting pressure data for site 03364000\n", - "Calculating streamflow for site 03364000\n", - "Processing site 03364500 at PF-CONUS1 grid point (2767, 686)\n", - "Requesting pressure data for site 03364500\n", - "Calculating streamflow for site 03364500\n", - "Processing site 03365500 at PF-CONUS1 grid point (2753, 654)\n", - "Requesting pressure data for site 03365500\n", - "Calculating streamflow for site 03365500\n", - "Processing site 03366200 at PF-CONUS1 grid point (2789, 637)\n", - "Requesting pressure data for site 03366200\n", - "Calculating streamflow for site 03366200\n", - "Processing site 03366500 at PF-CONUS1 grid point (2774, 635)\n", - "Requesting pressure data for site 03366500\n", - "Calculating streamflow for site 03366500\n", - "Processing site 03368000 at PF-CONUS1 grid point (2787, 664)\n", - "Requesting pressure data for site 03368000\n", - "Calculating streamflow for site 03368000\n", - "Processing site 03369500 at PF-CONUS1 grid point (2778, 654)\n", - "Requesting pressure data for site 03369500\n", - "Calculating streamflow for site 03369500\n", - "Processing site 03371500 at PF-CONUS1 grid point (2711, 626)\n", - "Requesting pressure data for site 03371500\n", - "Calculating streamflow for site 03371500\n", - "Processing site 03371520 at PF-CONUS1 grid point (2721, 633)\n", - "Requesting pressure data for site 03371520\n", - "Calculating streamflow for site 03371520\n", - "Processing site 03373500 at PF-CONUS1 grid point (2680, 610)\n", - "Requesting pressure data for site 03373500\n", - "Calculating streamflow for site 03373500\n", - "Processing site 03374000 at PF-CONUS1 grid point (2639, 588)\n", - "Requesting pressure data for site 03374000\n", - "Calculating streamflow for site 03374000\n", - "Processing site 03374455 at PF-CONUS1 grid point (2717, 588)\n", - "Requesting pressure data for site 03374455\n", - "Calculating streamflow for site 03374455\n", - "Processing site 03375500 at PF-CONUS1 grid point (2675, 581)\n", - "Requesting pressure data for site 03375500\n", - "Calculating streamflow for site 03375500\n", - "Processing site 03376350 at PF-CONUS1 grid point (2643, 566)\n", - "Requesting pressure data for site 03376350\n", - "Calculating streamflow for site 03376350\n", - "Processing site 03376500 at PF-CONUS1 grid point (2617, 574)\n", - "Requesting pressure data for site 03376500\n", - "Calculating streamflow for site 03376500\n" - ] - } - ], + "outputs": [], "source": [ "# Loop over each station in obs_metadata_df\n", "for idx, row in streamflow_metadata_df.iterrows():\n", @@ -4997,420 +413,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "7551a523", "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", - "
date033470000334835003349000033507000335100003351310033515000335250003353000...03368000033695000337150003371520033735000337400003374455033755000337635003376500
02002-10-010.00.0790040.0645110.0601380.00.00.3829360.0959360.0...0.00.00.00.04.8806129.9964240.0000000.00.00.0
12002-10-020.00.0266440.0000000.0000000.00.00.2378100.0269890.0...0.00.00.00.04.4965728.9629150.0000000.00.00.0
22002-10-030.00.0000000.0000000.0000000.00.00.1423270.0000000.0...0.00.00.00.03.9487798.0476130.0000000.00.00.0
32002-10-040.00.0000000.0000000.0000000.00.00.1537060.0000000.0...0.00.00.00.04.1438928.5107230.0000000.00.00.0
42002-10-050.00.0705510.1050650.1081920.00.00.4392010.1686020.0...0.00.00.00.05.64083711.4242600.0268020.00.00.0
\n", - "

5 rows × 45 columns

\n", - "
" - ], - "text/plain": [ - " date 03347000 03348350 03349000 03350700 03351000 03351310 \\\n", - "0 2002-10-01 0.0 0.079004 0.064511 0.060138 0.0 0.0 \n", - "1 2002-10-02 0.0 0.026644 0.000000 0.000000 0.0 0.0 \n", - "2 2002-10-03 0.0 0.000000 0.000000 0.000000 0.0 0.0 \n", - "3 2002-10-04 0.0 0.000000 0.000000 0.000000 0.0 0.0 \n", - "4 2002-10-05 0.0 0.070551 0.105065 0.108192 0.0 0.0 \n", - "\n", - " 03351500 03352500 03353000 ... 03368000 03369500 03371500 03371520 \\\n", - "0 0.382936 0.095936 0.0 ... 0.0 0.0 0.0 0.0 \n", - "1 0.237810 0.026989 0.0 ... 0.0 0.0 0.0 0.0 \n", - "2 0.142327 0.000000 0.0 ... 0.0 0.0 0.0 0.0 \n", - "3 0.153706 0.000000 0.0 ... 0.0 0.0 0.0 0.0 \n", - "4 0.439201 0.168602 0.0 ... 0.0 0.0 0.0 0.0 \n", - "\n", - " 03373500 03374000 03374455 03375500 03376350 03376500 \n", - "0 4.880612 9.996424 0.000000 0.0 0.0 0.0 \n", - "1 4.496572 8.962915 0.000000 0.0 0.0 0.0 \n", - "2 3.948779 8.047613 0.000000 0.0 0.0 0.0 \n", - "3 4.143892 8.510723 0.000000 0.0 0.0 0.0 \n", - "4 5.640837 11.424260 0.026802 0.0 0.0 0.0 \n", - "\n", - "[5 rows x 45 columns]" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "model_df.head(5)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "263a9ca5", "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", - "
date033470000334835003349000033507000335100003351310033515000335250003353000...03368000033695000337150003371520033735000337400003374455033755000337635003376500
02002-10-010.333940.294324.92420.2464936.39580.0973521.081061.553677.5844...0.0028300.33677088.29600.01867895.937133.5760.0181121.797050.2162124.8676
12002-10-020.311300.288664.18840.2524365.77320.0973521.064081.474437.3580...0.0022640.24762565.37300.01698088.013143.4810.0189611.788560.2099863.3960
22002-10-030.331110.283003.84880.2456445.32040.0721651.018801.403686.5939...0.0016980.19357241.03500.01726365.090136.6890.0198101.780070.1986662.9432
32002-10-040.580150.305644.07520.2787556.22600.3282801.146151.7659210.7823...0.0022640.21168429.71500.02179145.846120.8410.0260361.805540.3622402.9998
42002-10-050.472610.373565.06570.3169606.93350.3509201.381042.2583412.7916...0.0042450.25356824.93230.02886635.941103.0120.0350921.864970.3565803.5658
\n", - "

5 rows × 45 columns

\n", - "
" - ], - "text/plain": [ - " date 03347000 03348350 03349000 03350700 03351000 03351310 \\\n", - "0 2002-10-01 0.33394 0.29432 4.9242 0.246493 6.3958 0.097352 \n", - "1 2002-10-02 0.31130 0.28866 4.1884 0.252436 5.7732 0.097352 \n", - "2 2002-10-03 0.33111 0.28300 3.8488 0.245644 5.3204 0.072165 \n", - "3 2002-10-04 0.58015 0.30564 4.0752 0.278755 6.2260 0.328280 \n", - "4 2002-10-05 0.47261 0.37356 5.0657 0.316960 6.9335 0.350920 \n", - "\n", - " 03351500 03352500 03353000 ... 03368000 03369500 03371500 03371520 \\\n", - "0 1.08106 1.55367 7.5844 ... 0.002830 0.336770 88.2960 0.018678 \n", - "1 1.06408 1.47443 7.3580 ... 0.002264 0.247625 65.3730 0.016980 \n", - "2 1.01880 1.40368 6.5939 ... 0.001698 0.193572 41.0350 0.017263 \n", - "3 1.14615 1.76592 10.7823 ... 0.002264 0.211684 29.7150 0.021791 \n", - "4 1.38104 2.25834 12.7916 ... 0.004245 0.253568 24.9323 0.028866 \n", - "\n", - " 03373500 03374000 03374455 03375500 03376350 03376500 \n", - "0 95.937 133.576 0.018112 1.79705 0.216212 4.8676 \n", - "1 88.013 143.481 0.018961 1.78856 0.209986 3.3960 \n", - "2 65.090 136.689 0.019810 1.78007 0.198666 2.9432 \n", - "3 45.846 120.841 0.026036 1.80554 0.362240 2.9998 \n", - "4 35.941 103.012 0.035092 1.86497 0.356580 3.5658 \n", - "\n", - "[5 rows x 45 columns]" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "streamflow_data_df.head(5)" ] @@ -5427,7 +443,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "id": "a6d957d2", "metadata": {}, "outputs": [], @@ -5465,7 +481,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 75, "id": "1929bd27", "metadata": {}, "outputs": [], @@ -5494,7 +510,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 76, "id": "1f44982d", "metadata": {}, "outputs": [ @@ -5531,7 +547,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 77, "id": "48a4c1bc", "metadata": {}, "outputs": [ @@ -5561,7 +577,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 78, "id": "cfac2e30", "metadata": {}, "outputs": [ @@ -5740,7 +756,7 @@ "6 -18671.381045 Low bias, poor shape " ] }, - "execution_count": 52, + "execution_count": 78, "metadata": {}, "output_type": "execute_result" } @@ -5761,7 +777,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 79, "id": "db73f69a", "metadata": {}, "outputs": [ @@ -5792,7 +808,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 80, "id": "8b1cb373", "metadata": {}, "outputs": [ @@ -9694,9 +4710,9 @@ { "data": { "text/html": [ - "
\n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_sites_on_map(metrics_df, color_by=\"bias\")" ] }, + { + "cell_type": "markdown", + "id": "764e1fd3", + "metadata": {}, + "source": [ + "#### Combination Metrics \n", + "The Condon diagram combines Spearman's Rho and Absolute Relative Bias to represent the performance of streamflow magnitude and timing. " + ] + }, { "cell_type": "code", - "execution_count": 81, + "execution_count": null, "id": "674a3a28", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Y8eOCn0eCREREd2+SpvY3In9+/cjPDy8QHl+2YEDB+52SERERFQGKu1Q1J1ITEwssAYMcH1dmJvXGLlRVlYWsrKy1Pd5eXlISkqCh4dHuTyynYiIqKoSEaSmpt5yfbTSuC8TG6D4dWOK2/b+++/f9pNSiYiIqKCzZ8+W2dPb78vExsPDo9BemaSkJAAFV/S90fjx4/Hyyy+r75OTkxEQEICzZ8+WeFXiipaWlqauqxQXFwez2VzBERER0f0oJSUFNWrUUNesKwv3ZWITFhaGffv2FSjPL2vYsGGR+xoMhkJXp3V2dq40iY1Wq1X/7ezszMSGiIgqVFlO5bgvJw/36dMHhw8ftrutOzc3F3PmzEGLFi3sVokmIiKiyqNS99isXLkSaWlpSE1NBQAcPHgQixYtAgB069YNjo6OGDFiBGbPno0TJ04gMDAQAPD4449j+vTp6N+/v/qAvi+++AJHjhxBdHR0hZ0PERER3ZlKndiMGjUKsbGx6vuFCxdi4cKFAK4tmhYUFASbzQabzYYbH7BsMBiwdu1ajBs3Ds8//zzS09MRERGBlStX8qnDRERElVilXVLhXpGSkgIXFxckJydXmjk2aWlpsFgsAACr1co5NkREVCHK4zv0vpxjQ0RERFUTE5tyFBQUpC79UNRrw4YN2LBhwy3rBQUFqe3Gxsbin//8J7y8vODp6Yl+/frh7NmzdsfOyspCnTp1UL16daSkpNzlMyciosrGarXi9ddfR506dWA0GuHu7o5u3bph06ZNah2bzYbJkycjODgYZrMZjRs3xv/+978CbU2cOBGKomDx4sV38xSuEbojycnJAkCSk5MLbAsMDBQAxb527twp69evv2W9hg0bioiIzWaTRo0aiaIo8uOPP8qcOXNEURRp3Lix2Gw29dhvvPGGAJDFixcXiMtqtartWq3W8rs4RERUKVitVmncuHGh3z8ajUbmzZsnIiIfffSRAJCBAwfKli1bpH79+qLVaiUmJkZt69ChQ6LX66Vnz563PG5x36G3i4nNHSrth/L777+rPywRERHF1h00aJBad9q0aSIicvjwYQEg4eHhar2wsDABIEeOHBERkQMHDoher5devXoV2i4TGyIiutGrr76qfi/861//koSEBImOjhZHR0cBIM7OzpKYmCiRkZECQHbt2iUiIh9//LEAkPHjx4uISF5enrRp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RFRSJZo8fOnSJTz44IN2Za1btwYADBgwoOyjIiIiIroNJUpsbDYbjEajXVn+eycnp7KPioiIiOg2lPiuqCNHjsDB4Xp1m80GADh8+HCBuk2aNCmD0IiIiIhKR5ESPFFPo9EUulRC/h1SN7/PT3ruBykpKXBxcUFycjKcnZ0rOpwSSUtLg8ViAQBYrVaYzeYKjoiIiO5H5fEdWqIem++//75MDkZERERUnkqU2AwdOrS84yAiIiK6Y2W+VhQRERFRRWFiQ0RERFUGExsiIiKqMpjYEBERUZXBxIaIiIiqDCY2REREVGWUOrFZt24dFi5cqL6Pj49Ht27dUK1aNTz22GPIzMws0wCJiIiISqrUic2bb76JgwcPqu/HjRuHTZs2oVWrVli0aBH+85//lGmARERERCVV6sTm6NGj6lpQubm5WLJkCT788EMsXrwY77zzDubNm1fmQRIRERGVRKkTm5SUFLi6ugIA/vrrL6SlpeHhhx8GADRv3hxnzpwp0wCJiIiISqrUiY23tzeOHTsGAIiOjkZgYCCqV68OAEhNTYVOpyvbCImIiIhKqERrRd2oS5cu+Pe//40DBw5g1qxZdutIHT58GEFBQWUZHxEREVGJlTqxmTx5Ms6cOYMZM2agefPmeP3119Vtc+fORatWrco0QCIiIqKSKnVi4+npiVWrVhW6bf369TAajXccFBEREdHtKHViUxxnZ+eybI6IiIioVEqU2Pzwww927x977LFyCYaIiIjoTigiIreqpNFcv3lKURTYbLZyDaoySUlJgYuLC5KTkytNj1VaWhosFgsAwGq1wmw2V3BERER0PyqP79AS9djk5eWVycGIiIiIyhMXwSQiIqIqg4kNERERVRmlTmxycnIwadIk1K9fH2azGVqt1u7l4FCmN1oRERERlVips5Dx48dj6tSp6Nq1K3r37g2DwVAecRERERGVWqkTm59//hlvvvkmJk6cWB7xEBEREd22Ug9FXblyBW3bti2PWIiIiIjuSKkTm7Zt22L37t3lEAoRERHRnSl1YvPpp5/i22+/xeLFi5GdnV0eMRERERHdllLPsYmIiEBOTg769+8PRVHg6Ohot11RFCQnJ5dZgEREREQlVerE5p///CcURSmPWIiIiIjuSKkTm1mzZpVDGERERER3rlI/edhqteKll16Cn58fjEYjIiIiMH/+/BLtm5CQgGHDhsHT0xOOjo5o2bIl1q5dW84RExERUXm67ccE79+/H4cOHUJGRkaBbY899tgdBVVSffv2RUxMDD744AOEhoZi7ty5GDRoEPLy8jB48OAi98vKykLHjh1x9epVfPLJJ/D29sb06dPRpUsXREdHIyoq6q7ET0RERGVLEREpzQ7p6el4+OGHsW7dOiiKgvzdb5x3Y7PZyjbKQqxYsQLdu3dXk5l8Dz30EA4cOIAzZ85Aq9UWuu8XX3yBZ599Flu2bEHLli0BALm5uWjUqBEsFgu2b99e4jjKY8n18paWlgaLxQLgWq+X2Wyu4IiIiOh+VB7foaUeinr33Xdx+vRpbNy4ESKCxYsXY82aNejbty9q166NXbt2lUlgt7JkyRJYLBb079/frnz48OGIi4srNjlZsmQJ6tSpoyY1AODg4IAhQ4Zgx44dOH/+fLnFTUREROWn1InN0qVL8eqrr6JVq1YAgICAAHTs2BELFy5EkyZN8OWXX5Z5kIXZv38/6tWrV2DRzfDwcHV7cfvm1yts3wMHDhS5b1ZWFlJSUuxeREREdG8odWJz+vRp1K1bF1qtFoqiID09Xd32yCOP4Ndffy3L+IqUmJgId3f3AuX5ZYmJieWy7/vvvw8XFxf1VaNGjdKGTkREROWk1ImNq6sr0tLSAADe3t44duyYui0nJ0fddjcU9zydWz1r53b3HT9+PJKTk9XX2bNnbx0oERER3RWlvisqLCwMR48eRZcuXdC+fXtMnjwZtWvXhl6vxzvvvINGjRqVR5wFeHh4FNqzkpSUBACF9siUxb4GgwEGg6G04RIREdFdUOoemxEjRiA1NRUA8N577yE9PR1RUVFo2bIlYmNj8fHHH5d5kIUJCwvDoUOHkJuba1e+b98+AEDDhg2L3Te/Xmn3JSIiontXqW/3vllaWpp663erVq2K7e0oSytXrkS3bt0wf/58DBgwQC3v2rUr9u7dW+zt3l9++SWeeeYZbNu2DS1atABw7XbviIgIWCwWbNu2rcRx8HZvIiKi21Me36G3/YC+fGazGT179iyLWEqla9eu6Ny5M0aNGoWUlBSEhIRg3rx5WLVqFebMmaMmNSNGjMDs2bNx4sQJBAYGAgAef/xxTJ8+Hf3798cHH3wAb29vfPHFFzhy5Aiio6Pv+rkQERFR2bjtxMZqteLMmTPIzMwssK1JkyZ3FFRJLV68GBMmTMCbb76JpKQk1K1bF/PmzcPAgQPVOjabDTabDTd2TBkMBqxduxbjxo3D888/j/T0dERERGDlypV86jAREVElVuqhqEuXLuGJJ57AsmXLCmwTESiKcleePHyv4FAUERHR7bknhqKeeuoprFu3Di+++CLq1asHvV5fJoEQERER3alSJzbr1q3Dxx9/jCeeeKI84iEiIiK6baW+3dtsNquTcImIiIjuJaVObB599FEsXLiwPGIhIiIiuiOlnjycm5uLESNGICUlBd27dy/0uTV9+/YtswDvdZw8TEREdHvuicnDp06dwvbt23H06FEsXbq0wPb77a4oIiIiuneUOrF58sknkZycjGnTpvGuKCIiIrqnlDqx2b59O7799lsMGjSoPOIhIiIium2lnjzs4+MDV1fXcgiFiIiI6M6UOrEZNWoUvv766/KIhYiIiOiOlHooSqPRYO/evWjSpAm6detW4K4oRVEwevToMguQiIiIqKRKfbu3RlN8J8/9dlcUb/cmIiK6PffM7d5ERERE96JSJTYZGRkYP348nnnmGbRu3bq8YiIiIiK6LaWaPGwymbB06VLk5eWVVzxEREREt63Ud0VFRERg//795RELERER0R0pdWLzwQcfYMqUKdi4cWN5xENERER020o9efiZZ56B1WpFhw4d4ObmBl9fXyiKom5XFAV79uwp0yCJiIiISqLUiY2Hhwc8PT3LIxYiIiKiO1LqxGbDhg3lEAYRERHRnSv1HBsiIiKie1Wpe2zyJScn4+jRo8jIyCiwrW3btncUFBEREdHtKHVik5ubi6effho//PBDkUsn3E9LKhAREdG9o9RDUVOnTsWyZcvw3XffQUTw+eef4+uvv0bTpk1Ru3ZtrFy5sjziJCIiIrqlUic2P/74IyZMmIBBgwYBAFq0aIGRI0di+/btCAwMxPr168s8SCIiIqKSKHVic/LkSTRq1Ehd5TszM1Pd9vTTT+Onn34qu+iIiIiISqHUiY3ZbEZ2djYURYG7uztiY2PVbSaTCYmJiWUaIBEREVFJlTqxqVu3Lk6dOgUAaNWqFf773//i3LlzSEhIwJQpU1CnTp0yD5KIiIioJEp9V9SAAQNw9OhRAMDbb7+Ntm3bIjAwEACg0+mwePHiso2QiIiIqIQUEZE7aeDs2bNYsmQJNBoNOnfufN/12KSkpMDFxQXJyclwdnau6HBKJC0tDRaLBQBgtVphNpsrOCIiIroflcd36G0/oC9fjRo18MILL5RFLERERER35LaXVPj9998xfvx4PPHEEzhz5gwAICYmBpcuXSqz4IiIiIhKo9Q9Nunp6ejVqxfWrl0LRVEAAKNGjUJAQAA++ugj1KhRAx999FGZB0pERER0K6XusZkwYQJ27tyJX375BcnJybhxis5DDz2E6OjoMg2QiIiIqKRK3WOzcOFCvPvuu+jTp0+BNaECAgLUYSkiIiKiu63UPTaXLl1CgwYNCm9Moyl0tW8iIiKiu6HUiY2/vz/27dtX6La9e/eiZs2adxwUERER0e0odWLTt29fvPfee/j777/VMkVREBsbi6lTp6J///5lGiARERFRSZU6sZk4cSL8/PzQvHlzNG3aFIqiYPjw4WjYsCG8vb3x2muvlUecRERERLdU6sTGyckJW7ZswbvvvguLxYLg4GA4Ojpi/Pjx+OOPP2AymcojTiIiIqJbuuMlFe53XFKBiIjo9txTSypkZmZi165dSExMhIeHB5o0aQKj0VgmQRERERHdjttaUuG///0vfH190aZNG/Tq1Qtt2rRBtWrV8PHHH5d1fEREREQlVuoem88++wxjxoxB586dMXjwYFSrVg0XL17ETz/9hHHjxkGn03FRTCIiIqoQpZ5jExwcjAcffBA//PBDgW1DhgzB1q1bceLEiTIL8F7HOTZERES3pzy+Q0s9FBUXF4dHHnmk0G2PPvoo4uLi7jgoIiIiottR6sQmNDQU8fHxhW67cOECQkJC7jgoIiIiottR6sTm7bffxsSJE7F//3678r179+Ltt9/GO++8U2bBEREREZVGqScPf/fdd8jNzUVERAQaNGigTh4+cOAA/Pz88P333+P7778HcG2phaVLl5Z50ERERESFKXVis3fvXjg4OKBGjRpISUlBSkoKAKBGjRoAYLdApqIoZRQmERER0a2VOrE5ffp0OYRBREREdOdu6wF9RERERPeiO0pskpKS8Nprr6FHjx546qmncODAgbKKi4iIiKjUSjQUNWbMGPz88884c+aMWpaWloZmzZrh9OnTyH/G3/z587Fjxw7UqVOnfKIlIiIiKkaJemy2bNmCgQMH2pV9/vnnOHXqFF566SVcvXoVW7ZsgcViwQcffFAugRIRERHdSokSm5MnT6Jp06Z2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iIjABx98gM2bN+Pnn39GVFQUHBwc1HomkwknTpxA//79AQBPPPEE3n//fQDXho1u5eDBgxg+fDgGDhyIyZMnw2q1qr0KNwsJCcG+ffvw3nvvoWnTppg0aRKuXLmi3g7+xx9/4NVXX8Xw4cPRoEED/PHHH0hLS0P9+vVLdU2ys7PxwAMPYNKkSVixYgW2bdumnkvnzp1RrVo1vPjii7DZbPD09MSzzz4LnU6Hd999FwDw3nvvYciQIejYsSPGjRuHRYsWISYmBiNGjChVHN9++y0WLFiAIUOGoHbt2li4cCHy8vLwwAMPlGj//HrPP/88pkyZgjVr1uDbb78ttO6XX34JPz8/hISE4JlnnoFWq1XP56OPPkL//v0RFhaG119/He7u7tiwYQOWLVuGvXv3luqciMpdmaVI9yn22FBlln9Xzc2v4OBgERGZNm2amM1mASAajUZatGghGRkZdm088MADAkB+/fVXtcxoNIqiKHa9PYUBIAMGDBB3d3cBIFqtVp5//nl1+809NsnJyRISEqLeTdWgQQOJjIxUe2z27dsnvr6+otFo1Pbatm2r9jDltzd16tQiY3JxcZGGDRtK/fr11eNERkbancvJkyelVq1a6vXy8PCQ1atX27UzZswYMRgMahzdu3e3216SHptly5aJh4eHKIoiAESn00m/fv3U7bfqsRERee6558TBwUEAiMVikddff73QHps33nhDjddsNsuCBQvs2p01a5b6OQEQo9EonTt3LjZ+olspj+9QRaSIAWMqkZSUFLi4uCA5ORnOzs4VHU6JpKWlqWP7VqsVZrO5giMiujumTZuGl19+GSdOnEDNmjULrePq6oqaNWvi77//vsvRVYxp06Zh9OjROH369C2fOURU1srjO5STh4novjF//nx07dq1yKSGiCo/zrEhovvGtm3bKjoEIipnHIq6QxyKIiIiuj0ciiIiIiIqBhMbIiIiqjKY2BAREVGVwcSGiIiIqgwmNkR0SyNHjiyw9tGthISEwNfXt1T7tGvXDiaTqczbvV9s3rwZiqIUeJI00f2EiQ3RfayoJGHatGlQFAWxsbEAgClTpmD//v13O7xCrVu3jrdtE1GR+BwbIrold3d3uLu7V3QYAK6tT3U/yM7OhkajUdflIqKSYY8N0T0mec8exH77LZL37KnoUFSFDUV16tQJGo0GiqKgTp06iIyMLHQYqUePHtBqtdBoNAgLC0N6evotj/fII4/AwcEBiqKgevXqas8RULCXadKkSXB2doaiKNBoNPDx8cG6devU7VarFeHh4dBqtVAUBQ4ODvjHP/5R4nPP77166623YDKZoCgKLBYLfvnlF7t6Y8eOhdFoVI/Rs2dPu+2nTp1CcHCwes28vLywZs0adXv+NX7zzTdhMBhgMBiwZcuWAvGcOnUKQUFBajt6vR6PP/64XZ2//voLbm5uUBQFJpMJ33zzjbrt2LFjCAwMVK+H0WjE888/b7e/q6srwsPDER4erl7X1q1bIy8vz+66Nm/eXG3HYrFg2rRpJb6uROWFiQ3RPeTA2LGI6dsXxyZPRkzfvjgwdmxFh1SoZ555BmvXrsWwYcOwatUq+Pv7Y/v27QXqXbx4EadOncKyZcvw+uuvY//+/Xj66aeLbTszMxMrV67ETz/9hE8//RQJCQmIiooqsn5ycjKefvpprF69GvPmzYOiKOjevTtyc3MBAAMHDsTBgwfxySefYPPmzfj0008RGhpa6nN+//33MXHiRCxatAhmsxkDBw5Uk7Q5c+bgo48+woMPPohVq1Zh2LBh+O233zBy5Eh1/1atWuHcuXP49NNPsWDBAogIunfvXiDRmzZtGj799FOsWLECdevWLRBHr169kJCQgFmzZmHTpk2YNGkS/P397ep88sknePHFF7Fq1Sp4eHjgmWeeQWZmpnq9wsLCMHfuXKxfvx49evTA559/XmDV73379kGr1WLFihV4+umn8eeff2LYsGHq9oYNG+Lw4cP45JNPsHbtWrRr1w6jR4+2S9aIKkSZLad5n+Lq3lRWru7eLWtq1Srwurp7d7kds6jVvfNfp0+fFhGRESNGyI2/Lsxms4SFhdm15eTkpK6ynd+2VquVrKwstax69epSo0aNIuOJiooSALJjxw617N133xUAsmfPHrXdm1e0vtHBgwcFgCxevFhERMLDw8XNze2WK40XJX/16xdeeEEtO378uACQl156SUREAgMDxd3d3W6/Zs2aicFgEBGR1atXCwD56quv1O1Hjx4VADJ69GgRuX6Nb15V+2Y+Pj5Su3btQrflr14+dOhQtWzp0qUCQJYvX15km15eXvLAAw+o711cXESv19tdsxYtWoherxcRkbVr1woA+euvv+zacXNzk5YtWxYbP9GNyuM7lD02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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Map Condon diagram\n", "plot_utils.plot_condon_diagram(metrics_df, variable=\"streamflow\")" @@ -4772,137 +648,15 @@ "id": "23d1553a", "metadata": {}, "source": [ - "### Single-Site Evaluation" + "### 5c. Single-Site Evaluation" ] }, { "cell_type": "code", - "execution_count": 82, + "execution_count": null, "id": "c54992a5", "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", - "
value
site_id03354000
site_nameWHITE RIVER NEAR CENTERTON, IN
latitude39.497548
longitude-86.400549
rmse97.254737
mse9458.483817
pearson_r0.860493
spearman_rho0.727204
nse0.683658
kge0.758594
r_squared0.683658
bias_from_r0.992125
bias0.18309
percent_bias18.309024
abs_rel_bias0.18309
total_difference6837.555162
condonLow bias, good shape
\n", - "
" - ], - "text/plain": [ - " value\n", - "site_id 03354000\n", - "site_name WHITE RIVER NEAR CENTERTON, IN\n", - "latitude 39.497548\n", - "longitude -86.400549\n", - "rmse 97.254737\n", - "mse 9458.483817\n", - "pearson_r 0.860493\n", - "spearman_rho 0.727204\n", - "nse 0.683658\n", - "kge 0.758594\n", - "r_squared 0.683658\n", - "bias_from_r 0.992125\n", - "bias 0.18309\n", - "percent_bias 18.309024\n", - "abs_rel_bias 0.18309\n", - "total_difference 6837.555162\n", - "condon Low bias, good shape" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# pick a gage \n", "single_gage = \"03354000\"\n", @@ -4911,111 +665,6 @@ "display(gage_metrics.to_frame(name=\"value\"))" ] }, - { - "cell_type": "code", - "execution_count": 83, - "id": "03de4f5e", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VNXaxuHfJJOekJBAEoL0jhSRDkoRaYqoqKggTRQUFVFUxAZ6FBA/AQUBC4oCig2wgqAiinQQRXrvIZT0OmV/f0wyhRQCQhLIc19XrjPZe82etScDhzy+610mwzAMREREREREREREipBXcU9ARERERERERERKH4VSIiIiIiIiIiJS5BRKiYiIiIiIiIhIkVMoJSIiIiIiIiIiRU6hlIiIiIiIiIiIFDmFUiIiIiIiIiIiUuQUSomIiIiIiIiISJFTKCUiIiIiIiIiIkVOoZSIiIiIiIiIiBQ5hVIiIiJXgNmzZ2MymdiwYUOe53v06EHVqlUv2usdOHAAk8nE7NmzL9o1S7IOHTrQoEGDS/46n376KVOmTLnkr1NSzJ8/n2uuuQZ/f39iYmIYMWIEKSkpHmM2b97MzTffTOXKlQkICCA8PJzWrVszd+7cXNd7++23adWqFeXKlcPPz4/KlStzzz33sHXr1lxjTSZTnl8TJkwocM4vvPACJpMp38/Dzz//TOvWrQkMDKRcuXIMHDiQuLi4XOMsFgsvv/wyVatWxc/Pj7p16zJ16tQ8r7lv3z569epFWFgYwcHBdO7cmU2bNhU4TxERkcuBubgnICIiIiIOn376Kf/++y8jRowo7qlccvPmzeO+++7jgQceYPLkyezatYtRo0axbds2li5d6hyXkJBApUqVuPfee6lYsSKpqanMmzePfv36ceDAAV544QXn2NOnT9O9e3caN25M2bJl2bdvHxMmTKBly5Zs3LiROnXqeMzhzjvvZOTIkR7HKleunO+cN2/ezP/93/8RFRWV5/kVK1bQvXt3br75Zr755hvi4uIYNWoUnTp1YsOGDfj5+TnHDhs2jDlz5vC///2P5s2b89NPP/H444+TnJzMc8895xx38uRJrr/+esqWLcuHH36Iv78/48ePp0OHDqxfvz7XPYmIiFxOFEqJiIjIJZOWlkZgYOAV91ry39hsNp5++mm6dOnC+++/D0DHjh0JCQmhb9++LF68mO7duwOOKrUOHTp4PL9Hjx7s37+f9957zyOUevnllz3GtW/fnlatWlG/fn3mzZvHK6+84nE+KiqKVq1aFWrOVquVQYMGMXToUP7++29OnTqVa8zTTz9N7dq1+eqrrzCbHf/MrlatGm3btuXDDz/k4YcfBmDr1q3MmjWL1157jaefftp5n6dPn+bVV1/loYceIjw8HIA33niDkydPsmrVKqpUqQLAddddR40aNXjppZf4/PPPCzV/ERGRkkjL90REREqhTp06UbduXQzD8DhuGAY1a9bk5ptvdh47duwYvXv3JiQkhNDQUO6++25iY2NzXXPgwIEEBwezZcsWunTpQkhICJ06dQLgzJkzDBs2jIoVK+Lr60v16tV5/vnnyczM9LhGQkICgwcPJjw8nODgYG6++Wb27duHyWRi7NixznFjx47FZDKxadMm7rzzTsqWLUuNGjUA2LBhA/fccw9Vq1YlICCAqlWrcu+993Lw4EGP18pZ8rhs2TIGDRpEeHg4QUFB3HLLLezbty/P9239+vVcf/31BAYGUr16dSZMmIDdbj/n+/3OO+/Qrl07IiMjCQoKomHDhkycOBGLxeIc06FDB3744QcOHjzosZysIJmZmYwcOZLo6GgCAwNp164dGzdupGrVqgwcONA57uTJkwwbNoz69esTHBxMZGQkN9xwA3/88Ueuax45coQ777yTkJAQwsLC6Nu3L+vXr89zueaGDRvo2bMn4eHh+Pv706RJE7744otzvh9r1qzh+PHjDBo0yOP4XXfdRXBwMAsXLjznNcqVK+cMfgpSvnx5gEKNLciECRM4c+YMr732Wp7njx49yvr16+nXr5/Ha7Vp04batWt73NOiRYswDCPX/Q8aNIj09HSWLFniPLZw4UJuuOEGZyAFUKZMGXr16sV3332H1Wr9T/clIiJSnFQpJSIicgWx2Wx5/pJ6dvj0+OOPc+utt/LLL79w4403Oo8vXryYvXv38vbbbwOQnp7OjTfeyLFjxxg/fjy1a9fmhx9+4O67787z9bOysujZsydDhw7l2WefxWq1kpGRQceOHdm7dy8vv/wyjRo14o8//mD8+PFs3ryZH374AQC73c4tt9zChg0bGDt2LNdeey2rV6+mW7du+d5vr169uOeee3jooYdITU0FHP2u6tSpwz333EN4eDjHjx9nxowZNG/enG3btlGuXDmPawwePJjOnTvz6aefcvjwYV544QU6dOjAP//8Q1hYmHNcbGwsffv2ZeTIkYwZM4aFCxcyevRoYmJi6N+/fwE/Fdi7dy99+vShWrVq+Pr68vfff/Paa6+xY8cOPvzwQwCmT5/OkCFD2Lt3b6FCGXCEGJ9//jnPPPMMN9xwA9u2beP2228nKSnJY9yZM2cAGDNmDNHR0aSkpLBw4UI6dOjAL7/84qxESk1NpWPHjpw5c4bXX3+dmjVrsmTJkjx/3suXL6dbt260bNmSmTNnEhoayvz587n77rtJS0vzCMXO9u+//wLQqFEjj+M+Pj7UrVvXed6d3W7HbrcTHx/Pl19+yU8//cS0adPyvH7On4P9+/fz7LPPEhkZmSsAAsdyyVmzZmG322nQoAGPPvponuO2bdvGq6++yoIFCwgODj6ve8o59ueff3qMLV++PNHR0bnGuV8rPT2dvXv3cvvtt+d5zfT0dPbt20ft2rXznJOIiEiJZ4iIiMhl76OPPjKAAr+qVKniHG+z2Yzq1asbt956q8d1unfvbtSoUcOw2+2GYRjGjBkzDMD45ptvPMY9+OCDBmB89NFHzmMDBgwwAOPDDz/0GDtz5kwDML744guP46+//roBGEuXLjUMwzB++OEHAzBmzJjhMW78+PEGYIwZM8Z5bMyYMQZgvPTSS+d8b6xWq5GSkmIEBQUZb731Vq737Pbbb/cY/+effxqA8eqrrzqPtW/f3gCMtWvXeoytX7++0bVr13POwZ3NZjMsFovxySefGN7e3saZM2ec526++WaPn1NBtm7dagDGqFGjPI5/9tlnBmAMGDAg3+darVbDYrEYnTp18rj/d955xwCMxYsXe4wfOnRorp933bp1jSZNmhgWi8VjbI8ePYwKFSoYNpst39d/7bXXDMA4fvx4rnNdunQxateunet4zhwAw9fX15g+fXq+1/fz83OOrV27trFt27ZcY/r06WPMmzfP+P33342vvvrK6N69uwEYL7zwgsc4m81mtGzZ0rj33nudx9q3b29cffXVHuPmzZtnAMbq1atzvdaQIUMMX19f5/edO3c26tSpk+fcfX19jSFDhhiGYRhHjx41AGP8+PG5xn366acGYKxatSrf90FERKSk0/I9ERGRK8gnn3zC+vXrc31dd911HuO8vLx49NFH+f777zl06BDgqOZZsmQJw4YN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9152797NM888Q+fOnT1CmSFDhlCmTBlatGhBVFQUp06d4ssvv+Tzzz/n6aefdlZJJSYm0rlzZ/r06UOtWrUICAhg165dvPXWW2RmZjJmzBjnNd944w22bdtGp06duOqqq4iLi2PWrFksXbqUsWPHOivBwsLC8gwnw8LCsFqtuc69/vrrdO7cmbvuuothw4YRFxfHs88+S4MGDTx29bv66qsZPHgwY8aMwdvbm+bNm7N06VLee+89Xn31VY9Kwaeeeoo5c+Zw880388orr+Dn58eECRPIyMhg7Nix+b7HIiIil4VibbMuIiIiF0XOTnLr16/P83xBu7rNnj3bAIz58+fnef7IkSPGHXfcYQQHBxshISHGHXfcYaxatSrP3feCgoLyvMbp06eNhx56yKhQoYJhNpuNKlWqGKNHjzYyMjI8xp05c8YYNGiQERYWZgQGBhqdO3c21qxZYwAeO+fl7L538uTJfOdbtmxZIyQkxOjWrZvx77//GlWqVPHYkS7nPVu6dKnRr18/IywszAgICDBuuukmY/fu3R7XzGu3tZx7Lsxued99953RuHFjw9/f36hYsaLx9NNPG4sXLzYAY/ny5R73f+eddxphYWGGyWQyzvVPtYyMDOPJJ580IiMjDX9/f6NVq1bG6tWrjdDQUOOJJ55wjsvMzDSeeuopo2LFioa/v79x7bXXGosWLcpz/ocOHTJ69erl8fP+8ccf89yF8e+//zZ69+5tREZGGj4+PkZ0dLRxww03GDNnzjzne2IYjh3kGjVqZPj6+hrR0dHG8OHDjeTkZI8xH374oXH99dcb5cqVM8xmsxEWFma0b9/emDNnTq734oEHHjDq1atnBAcHG2az2bjqqquM++67z9i6davH2G+//da47rrrjPLlyxtms9kICQkxrr/+euOzzz4r1Lzz+zwYhmEsXbrUaNWqleHv72+Eh4cb/fv3N06cOJFrXFZWljFmzBijcuXKhq+vr1G7dm3j7bffzvOae/bsMW677TajTJkyRmBgoNGpUydj48aNhZqriIhISWYyjOzF8yIiIlIq3XHHHaxZs4YDBw7g4+NT3NPJ5dNPP6Vv3778+eeftGnT5qJdd/bs2QwaNIj169fnW410OVq1ahVt27Z17i53MYwbN44XXniBQ4cOcdVVV12Ua4qIiIho+Z6IiEgplJmZyaZNm1i3bh0LFy5k0qRJJSKQ+uyzzzh69CgNGzbEy8uLNWvW8MYbb9CuXbuLGkhdKZYtW8bq1atp2rQpAQEB/P3330yYMIFatWoVqi9TXqZNmwZA3bp1sVgs/Prrr7z99tvcd999CqRERETkolIoJSIiUgodP36cNm3aUKZMGYYOHcpjjz1W3FMCHDulzZ8/n1dffZXU1FQqVKjAwIEDefXVV4t7aiVSmTJlWLp0KVOmTCE5OZly5crRvXt3xo8fj7+//wVdMzAwkMmTJ3PgwAEyMzOpXLkyo0aN4oUXXrjIsxcREZHSTsv3RERERERERESkyJ17GxsREREREREREZGLTKGUiIiIiIiIiIgUOYVSIiIiIiIiIiJS5NTovJDsdjvHjh0jJCQEk8lU3NMRERERERERESmRDMMgOTmZmJgYvLzyr4dSKFVIx44do1KlSsU9DRERERERERGRy8Lhw4e56qqr8j2vUKqQQkJCAMcbWqZMmWKejYiIiIiIiIhIyZSUlESlSpWcWUp+FEoVUs6SvTJlyiiUEhERERERERE5h3O1P1KjcxERERERERERKXIKpUREREREREREpMgplBIRERERERERkSKnUEpERERERERERIqcQikRERERERERESlyCqVERERERERERKTImYt7AqWdzWbDMIzinobIFcNkMuHt7V3c0xAREREREZFzKNZQ6vfff+eNN95g48aNHD9+nIULF3Lbbbd5jNm+fTujRo1ixYoV2O12rr76ar744gsqV64MQGZmJk899RSfffYZ6enpdOrUienTp3PVVVc5rxEfH8/w4cP59ttvAejZsydTp04lLCysqG7Vg8Vi4fjx48TGnSItMwu7MimRi8bLBMEB/kRHlqNChQoKqEREREREREqoYg2lUlNTady4MYMGDeKOO+7IdX7v3r1cd911DB48mJdffpnQ0FC2b9+Ov7+/c8yIESP47rvvmD9/PhEREYwcOZIePXqwceNG5y+jffr04ciRIyxZsgSAIUOG0K9fP7777ruiuVE3FouFrdt3cOhUMgEhYQSGRoCpyKchcsUy7AZn0lKI3XWIxKRk6taprWBKRERERESkBDIZJWTtmMlkylUpdc899+Dj48OcOXPyfE5iYiLly5dnzpw53H333QAcO3aMSpUq8eOPP9K1a1e2b99O/fr1WbNmDS1btgRgzZo1tG7dmh07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vcU2Fbl85fSU8jE5KqYclVKuUCozJ5QC7cBXyimUEhEREREREQdbluf3WxcWzzzksubcfS+fUCoDP9dg9ZUq1RRKiYiIiIiIiIM10/P73csgI6l45iKXrZyeUp6VUq74IR33SqnUopyalDAKpURERERERMTh7EopawbsWlI8c5HLls2tpxQAXt4ePaXSPCqlFEqVZgqlRERERERExMGtUspmGBw4nca/S2djsVqLcVJyubHYckKpvJfvpRm+rsHqKVWqKZQSERERERERB7dKqVOpVpIyLNiTjvHX2hXFOCm53Lh6SuVUSpkJ8HWFUimGekqJg0IpERERERERcXCrlNpir+p8nHr6cDFMRi5XVrsBGJ6VUmZXKJVqdwul1FOqVFMoJSIiIiIiIg42RyhlB7YlBzoPW5Lji2lCcjmy2e14Y8dkyj7gZcbf1xU/JNtVKSUOCqVERERERETEwWYBID3LRqytjOtwukIpKTyr3XA1OYdcPaWS7T6uc+opVaoVayj1+++/c8sttxATE4PJZGLRokUe5w3DYOzYscTExBAQEECHDh3YunWrx5jMzEwee+wxypUrR1BQED179uTIkSMeY+Lj4+nXrx+hoaGEhobSr18/EhISLvHdiYiIiIiIXGayl++lZlo5ZbhCKSM9oZgmJJcjq83IrpTKLpU6a/less2t0bl23yvVijWUSk1NpXHjxkybNi3P8xMnTmTSpElMmzaN9evXEx0dTefOnUlOTnaOGTFiBAsXLmT+/PmsXLmSlJQUevTogc3mSmX79OnD5s2bWbJkCUuWLGHz5s3069fvkt+fiIiIiIjIZcWaAUBKppWTRpjzsFdmUjFNSC5HtuxKqZzVe3iZ8fE24e3lOJJoVaWUOJgLM+iff/457wvXr18fs7ngy3fv3p3u3bvnec4wDKZMmcLzzz9Pr169APj444+Jiori008/ZejQoSQmJjJr1izmzJnDjTfeCMDcuXOpVKkSP//8M127dmX79u0sWbKENWvW0LJlSwDef/99Wrduzc6dO6lTp85535uIiIiIiMgVyWbBDqRl2ThNGQxMmDAwZyUW98zkMmK12/HG5tZTyhuTyYS/2YvULBsJ7pVSanReqhUqlLrmmmswmUwYhlGoi3p5ebFr1y6qV69+wRPbv38/sbGxdOnSxXnMz8+P9u3bs2rVKoYOHcrGjRux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Pn36MG/ePK666iq8vLy4+eabneeuvfZatm7dSs2aNfN8br169bBarWzYsMG5nHDnzp25mqeLiIiIiJRWZ1KzAPAzWTB7ZbcddgulAkPCMZlMGIaBT5aCAylYTqPzwlRKnbG59TZWKFUqnXej8/Xr17N27dpcx9euXcuGDRsuyqSk6EybNo3MzEy6du3K77//zuHDh1myZAmdO3emYsWKvPbaa86xf/75JxMnTmTXrl288847fPnllzz++OOAY/e8WbNm8e+//7Jv3z7mzJlDQEAAVapUoXbt2vTt25f+/fuzYMEC9u/fz/r163n99df58ccfzznHvn37smnTJl577TXuvPNO/P39nedGjRrF6tWreeSRR9i8eTO7d+/m22+/5bHHHgOgTp06dOvWjQcffJC1a9eyceNGHnjggVyN3UVERERESqucUMo3u6cU4LH7Hl5eZHoFOcZYU4p6enKZyWl0bsaeZ08p91DqpMXtc5aRUBTTkxLmvEOpRx55hMOHD+c6fvToUR555JGLMikpOrVq1WLDhg3UqFGDu+++mxo1ajBkyBA6duzI6tWrCQ937bQxcuRINm7cSJMmTfjf//7Hm2++SdeuXQEICwvj/fffp23btjRq1IhffvmF7777ztkz6qOPPqJ///6MHDmSOnXq0LNnT9auXUulSpUKNcfmzZvzzz//OHfdy9GoUSNWrFjB7t27uf7662nSpAkvvvgiFSq4GuR99NFHVKpUifbt29OrVy+GDBlCZGTkxXj7REREREQue65QyuJocg7g7dk7ONMnBIAAWzL27EoYkbzk9JQym6znrJSKzXIVHKhSqnQ67+V727Zt49prr811vEmTJmzbtu2iTEqKVpUqVTz6NOXlwIEDBZ6/7bbbCuw35uPjw8svv8zLL7+c5/mBAwcycODAfJ+/bt26fM81b96cpUuX5ns+Ojqa77//3uNYv3798h0vIiIiIlKaxKe5KqWcoZTZ32OMxacMZBzHn0ySUlMJCwk++zIiQD49pdxCTvdQ6miGq6G+QqnS6bwrpfz8/Dhx4kSu48ePH8dsPu+MS0RERERERIqRe6WUt7PRua/HGKtPqPNxWtKZIpubXH7O1VOqnFuj8yNpbhmCQqlS6bxDqc6dOzN69GgSE10fmISEBJ577jk6d+58UScnIiIiIiIil5YzlDJZXY3OvT1DqSzfMq7HyacQyY/tHD2lygb6OnuXHU81wCe7369CqVLpvEOpN998k8OHD1OlShU6duxIx44dqVatGrGxsbz55psXdXJWq5UXXniBatWqERAQQPXq1XnllVew211lgIZhMHbsWGJiYggICKBDhw5s3brV4zqZmZk89thjlCtXjqCgIHr27MmRI0cu6lxFREREREQuR/HZoZRPfo3OAYtfWdfjlNNFNje5/FhsBVdKeXuZiAhyhJ6nkrPAP7sKT6FUqXTeoVTFihX5559/mDhxIvXr16dp06a89dZbbNmypVBNq8/H66+/zsyZM5k2bRrbt29n4sSJvPHGG0ydOtU5ZuLEiUyaNIlp06axfv16oqOj6dy5M8nJyc4xI0aMYOHChcyfP5+VK1eSkpJCjx49sNlsF3W+IiIiIiIil5vT2aGUn3ujc7NnKGX3C3M+tqVo+Z7kz9VTyu33bS/PVj85faVOpWRi+GVX4WUkglsBipQOF9QEKigoiCFDhlzsueSyevVqbr31Vm6++WYAqlatymeffcaGDRsAR5XUlClTeP755+nVqxcAH3/8MVFRUXz66acMHTqUxMREZs2axZw5c7jxxhsBmDt3LpUqVeLnn3927h4nIiIiIiJSGuU0OvczWdwqpTyX7xkBrkope5pCKcmfq6eUPc9KKXCFUla7QaY5BH8Aww5ZKeBfBik9ClUp9e2332KxWAp90R9//JH09PQLnlSO6667jl9++YVdu3YB8Pfff7Ny5UpuuukmAPbv309sbCxdunRxPsfPz4/27duzatUqADZu3IjFYvEYExMTQ4MGDZxj8pKZmUlSUpLHl4iIiIiIyJUmp6dUsNnI6QCUK5TCLZQy0uKLZmJyWXL1lLK59ZQ6K5Rya3aeYnLbyVFL+EqdQoVSt99+OwkJCYW+6D333MPx48cvdE5Oo0aN4t5776Vu3br4+PjQpEkTRowYwb333gtAbGwsAFFRUR7Pi4qKcp6LjY3F19eXsmXL5jsmL+PHjyc0NNT5dbGXJoqIiIiIiJQEzlDKO3u5lbcveHn+qmgKDHc9TlellOQvp1LKbLI5IimTF66SKYecSimAZAJdJxRKlTqFWr5nGAYDBw7Ez8/v3IOBjIyM/zSpHJ9//jlz587l008/5eqrr2bz5s2MGDGCmJgYBgwY4BxnOusDbhhGrmNnO9eY0aNH8+STTzq/T0pKUjAlIiIiIiJXlAyLjbQsRxgV5G11HDy7SgrwDnKFUl6ZCUUxNblMWW1uPaVMgLdPrjHl3Cql4u0BVMv5RqFUqVOoUMo9ACqMvn37UqbMf18H+vTTT/Pss89yzz33ANCwYUMOHjzI+PHjGTBgANHR0YCjGqpChQrO58XFxTmrp6Kjo8nKyiI+Pt6jWiouLo42bdrk+9p+fn6FDuFEREREREQuRzlVUgAB3tlNps25Qylf/2Cy8MEXC+ZMLd+T/Hn0lIJcS/fAs1LqtDXAdUKhVKlTqFDqo48+utTzyFNaWhpeZ5WNent7Y89eo1qtWjWio6NZtmwZTZo0ASArK4sVK1bw+uuvA9C0aVN8fHxYtmwZvXv3BuD48eP8+++/TJw4sQjvpnT67bff6NixI/Hx8YSFhRXqOVWrVmXEiBGMGDHigl937NixLFq0iM2bN1/wNURERERErnQeoZRXTqVU7v84H+hnJt4IJsoUj09WQhHNTi5HHj2lTCbw8s41xj2UOmnxd51QKFXqFKqnVHG55ZZbeO211/jhhx84cOAACxcuZNKkSdx+++2AY9neiBEjGDduHAsXLuTff/9l4MCBBAYG0qdPHwBCQ0MZPHgwI0eO5JdffuGvv/7ivvvuo2HDhs7d+EqzgQMHYjKZeOihh3KdGzZsGCaTiYEDBxb9xERERERE5JLL2XkPwN+UHUrlUSkV5OdNIo6G1D6WFLBZi2R+cvk530qp45luIahCqVKnUJVSxWXq1Km8+OKLDBs2jLi4OGJiYhg6dCgvvfSSc8wzzzxDeno6w4YNIz4+npYtW7J06VJCQkKcYyZPnozZbKZ3796kp6fTqVMnZs+ejbd37sS2NKpUqRLz589n8uTJBAQ4SiczMjL47LPPqFy5cjHPTkRERERELhX3Sik/kxUw51kpFeDjqJTCBHbDgIwECCpXdBOVy4bNflZPqXOEUkczfHFu+6hQqtQp0ZVSISEhTJkyhYMHD5Kens7evXt59dVX8fV1Jfcmk4mxY8dy/PhxMjIyWLFiBQ0aNPC4jr+/P1OnTuX06dOkpaXx3XffqWm5m2uvvZbKlSuzYMEC57EFCxZQqVIl57JIgMzMTIYPH05kZCT+/v5cd911rF+/3uNaP/74I7Vr1yYgIICOHTty4MCBXK+3atUq2rVrR0BAAJUqVWL48OGkpqbmO7/ExESGDBlCZGQkZcqU4YYbbuDvv//2GDNhwgSioqIICQlh8ODBF63ZvoiIiIjIlSwnlPLCjo/JESbkVSkV6OvtCKXIDqXS1VdK8pbT6NwbW76VUiF+ZvzMjjjiUKpbI3SFUqVOiQ6lpOgMGjTIo3fYhx9+yP333+8x5plnnuHrr7/m448/ZtOmTdSsWZOuXbty5oxjS9jDhw/Tq1cvbrrpJjZv3swDDzzAs88+63GNLVu20LVrV3r16sU///zD559/zsqVK3n00UfznJdhGNx8883Exsby448/snHjRq699lo6derkfN0vvviCMWPG8Nprr7FhwwYqVKjA9OnTL+bbIyIiIiJyRYrPDqV8sWD2zi5XyaunlK9r+Z7dDqSdKaopymXGmt1TyseU3VMqj933TCaTs1rqYKpbaKVQqtQ57+V7aWlpBAYGXoq5XFkWDCmev6gDw6HXe+f9tH79+jF69GgOHDiAyWTizz//ZP78+fz2228ApKamMmPGDGbPnk337t0BeP/991m2bBmzZs3i6aefZsaMGVSvXp3JkydjMpmoU6cOW7ZscTadB3jjjTfo06ePs4l5rVq1ePvtt2nfvj0zZszA39/fY17Lly9ny5YtxMXFOXdD/L//+z8WLVrEV199xZAhQ5gyZQr3338/DzzwAACvvvoqP//8s6qlRERERETO4bRbKOXtlR1KmfNYvufrTYIqpaQQ3JfvOSqlcodSAOWC/TgSn87JNBt23yC8slIdy0KlVDnvUCosLIxmzZrRoUMH2rdvz3XXXUdQUNClmNvlLe0MpJ4s7lkUWrly5bj55pv5+OOPndVJ5cq51ojv3bsXi8VC27Ztncd8fHxo0aIF27dvB2D79u20atXKkYZna926tcfrbNy4kT179jBv3jznMcMwsNvt7N+/n3r16uUan5KSQkREhMfxnOWcOa97dqP21q1bs3z58gt5K0RERERESo2cRud+WDHnhFLeeS3fMxOPQik5N1ejc5vjQB7L98Czr1SWuQz+WamQnnCppyclzHmHUitWrGDFihX89ttvTJs2jYyMDK699lpnSJVTRVPqBYZfdq97//33O5fRvfPOOx7nDMPxF4t74JRzPOdYzpiC2O12hg4dyvDhw3Ody6uput1up0KFCs6KLXdhYWHnfD0REREREcnfGffle17Z3V3yqJTy9jKR6uXYTMpu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j+dPf/oT6enpvP322zQ2Nvb1oQnBunXrOPTQQ7ntttt44IEH+vpwhAixbt065syZw1133cUPP/zAa6+9xtdff93XhyXEbnJzc5k3bx5jx47llltuYdKkSTz99NOcccYZ1NfXA1LKJ/adpssqEgKA2tpaLrroIiIjIzEYDJSUlHDJJZdw9dVXYzQa8Xg8ckdA9ClZoyJclJSUcNxxx3Hqqafyj3/8A4DFixdz77338vTTTxMZGUl6enofH6UYrAoKCsjOzuYPf/gD999/P06nk4cffpicnBxiYmKYPXs2V1xxRV8fphikNmzYwPTp0/njH//IvffeS2VlJeeffz7jxo3jsccew2g0yt9yERbcbje///3vaWpq4plnngGgtbWVCy+8kI8++oijjjqK7777DlCBKU3T+vJwRT8mr3hCeLlcLkaPHs3VV1/Nc889R3Z2Nq+++irPPfecPxtFYriiL8kaFeGiqKiI0047jWuuucb/2Ndff82aNWuYO3cup556KhdffHEfHqEYzIqKikhISKC4uBiA//u//+P999+ntbWVLVu28MADD3DjjTf28VGKwcjpdPL4449z1113ce+99wKQmprKUUcdxRtvvEFdXZ38LRdhw2g0sn37dpqbmwHVxzQyMpJ58+ZxzTXXsHXrVi6//HIACUiJfSKZUkIEqaioIDU1FU3TqKmp4aabbiI/P5+LL76Ya6+9FoPBgNPpxGw29/WhikHGdwdK1qgIBy0tLVRWVjJixAgA/vnPf3L33Xfz9NNPk52dTUFBAX/+85+5/fbbufbaa/v4aMVg43a7Wbp0Keeeey7l5eWcddZZPPbYYwwZMoTm5maeeeYZnn32WZ5//nnmzp3b14crBpnq6mqSk5MB/BnONpuN2bNnc/TRR/PII49IppToc263G13Xuf3228nNzeXuu+9mxowZ5OfnM2vWLP7xj39gt9t54YUX+PLLLyU7WuwTecUTg15wXDYtLQ1N03A6nSQlJfHEE08wYsQIXnvtNZ599llaW1u57bbbuO222/rwiMVg0rZXVHJysqxR0Sd8a1HXdaKiohg2bJj/cyNHjuSjjz5iwYIFHHHEEZx66qlERUVRWlraV4crBpng9Wk0GjnkkEN44403OO+887jxxhsZMmQIuq4THR3NueeeS35+Ptu3b+/joxaDhW99ejwekpOTcbvdQKBRtMlkYt68eSxfvpyWlhZA+vSIvuFbqwaDAZPJxFlnnUVeXh6XX345xx57LJMmTWL+/PlcffXVnHzyyWzcuJG8vLw+PmrR30mmlBi0SktLcbvdDBs2rN06aN/dq7q6Om644QYKCgpwOp2sX7+eJUuWMHPmzD46cjFY5Obm8vzzz1NbW8vw4cO59tprQ+5Eud1ujEajrFGx3+1pLQbTdZ2WlhbOPfdczj33XC699FLpNSH2q7br85prriEjIwOXy0VRURGZmZlYrVb/RX5xcTFnn302//znPznyyCP79uDFgLen10/f62NeXh5Tpkzhb3/7G7fccksfHrEYrILXalZWFtdccw2ZmZls2LCBb775hurqaiZMmMAll1yCruusXLmSq6++mo8//pjhw4f39eGLfkwypcSgtGXLFg4++GCuvfZadu7ciaZpu92R8k00S0hI4KGHHmLnzp1s3bqVn3/+WS72xX63adMmDj74YAoLC8nPz+ezzz5jypQpfPnll/616mtuLmtU7E9dWYvBr5+apvGPf/yDLVu2+C/4JSAl9pfO1qfJZCI7Oxur1QqodahpGs888wyNjY2MGzeuj49eDHTtrc/JkyeHvH5qmobH42H48OFcddVVfPzxx5SXl/fxkYvBpu1a/fzzz5kyZQqff/45U6dO5ZZbbuHee+/lkksuAdS6feeddzAYDERHR/fx0Yt+TxdikCkqKtLnzJmjT58+XT/yyCP18847T9+xY4eu67ru8Xh2299ms+lXX321HhMTo2/YsKG3D1cMQi6XSz///PP1Cy64QNd1tS7Lysr0K664Qo+KitLfffdd/+O6LmtU7D9dXYs+K1as0G+++WY9MTFRX7NmTR8csRhMOlufkZGRu63P5cuX6zfccIOekJCgr127ti8OWQwi3f1bruu6/vLLL+tpaWl6dXV1nxyzGJy6+lrqdrt1Xdf11atX65deeqmekJAgf+tFj5BMKTHorFu3DpPJxNNPP80ll1xCaWkpf/rTn/wZU217+FitVoqLi/nmm2+YMmVKHx21GEw0TaOysjLkLn56ejovvPACl112GZdddhlr1qzxr1dZo2J/6epaBCgvL+fzzz9n586dLFq0iOnTp/fRUYvBorP1efnll4esz7KyMj788ENyc3NZtKB4SSwAAA0TSURBVGgR06ZN66vDFoNEd/6Wu1wuABYs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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# model output and observations for this site\n", - "obs = streamflow_data_df[single_gage]\n", - "mod = model_df[single_gage]\n", - "\n", - "# pull metrics for \n", - "rho = gage_metrics[\"spearman_rho\"]\n", - "bias = gage_metrics[\"bias\"]\n", - "nse = gage_metrics[\"nse\"]\n", - "condon = gage_metrics[\"condon\"]\n", - "\n", - "\n", - "fig, ax = plt.subplots(figsize=(12, 4))\n", - "\n", - "ax.plot(streamflow_data_df['date'], streamflow_data_df[site_id], label=\"Observed\", linewidth=2)\n", - "ax.plot(model_df['date'], model_df[site_id], label=\"Modeled\", linewidth=2, alpha=0.8)\n", - "\n", - "ax.set_ylabel(\"flow [cms]\")\n", - "ax.set_title(f\"Hydrograph at gage {site_id}\")\n", - "plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\")\n", - "ax.legend()\n", - "\n", - "# add selected metrics as text box annotation\n", - "textstr = (\n", - " f\"Srho: {rho:.2f}\\n\"\n", - " f\"Bias: {bias:.2f}\\n\"\n", - " f\"NSE: {nse:.2f}\\n\"\n", - " f\"Condon: {condon}\"\n", - ")\n", - "\n", - "# box for annotated metrics\n", - "plt.text(\n", - " 0.02, 0.95, textstr,\n", - " transform=plt.gca().transAxes,\n", - " fontsize=10,\n", - " verticalalignment=\"top\",\n", - " bbox=dict(boxstyle=\"round\", alpha=0.2)\n", - ")\n", - "\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "id": "df00ae8c", - "metadata": {}, - "source": [ - "#### Plot several metrics together using a polar plot to provide a compact, multi-metric view of model performance:" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "8b128d0d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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wvDy8jruCYSnpycvvfQSN954I2eddRY33XQTISEhlJWVsW/fPl577TXy8vK48847ueSSS0hMTEShULBu3Try8vJ48MEHrW199NFHXH/99SxfvvyY69RPPvkkkydPZt68eTz44IPWhCeBgYHce++91vPefvttNm3axDnnnENUVBQ9PT1s2rSJV199lezsbC644ALruRdccAFjx45l3LhxBAQE0NDQwAcffMAff/zB66+/bhXKTZs28eyzz3LhhRcSFxdHb28vP//8M++88w5nnHEG8+fPt7bZv+XtYPrjBKZPnz7Aw7F06VI+/vhjzj//fJ566imUSiXPP/88vb29PPHEE9bzZDIZL774IldffTW33HILV1xxBaWlpdx///2cffbZA7KjnXvuuZx99tncdtttdHV1kZCQwGeffcbatWv55JNPjrhVTMTOjGYkm4hzcaSEJ4OxfPlyYerUqYKHh4fg5uYmxMfHC9dcc42wa9cu6zlHS/IwWNS3IAiCTqcTHnjgASE6OlpwcXERwsLChNtuu03o6OgYcF50dLRw/vnnH3Z9f9T3V199NaR7Gyyids2aNcLYsWMFV1dXISIiQrjvvvuEn3/+WQCE9evXH/P+rr32WiE6OnrAsY6ODuEf//iHMGbMGMHFxUUIDg4Wzj//fKGoqMh6jtFoFP7zn/9Y+/b09BRSUlKEW265RSgtLT2sn2Pdx2AMFrnd3d0tPProo0JycrKgUCgEHx8fITMzU7jnnnsElUplPW/v3r3C9OnTBXd3dwEQZs2aJQjC0f9uDo367uenn34SZs2aJXh4eAju7u5CWlqa8MILLwiCIAhNTU3CddddJ6SkpAgeHh6Cp6enkJWVJfz3v/8dkHCjv+0VK1Yc9Z772bVrl3DmmWcK7u7ugre3t7Bw4UKhrKxswDlbtmwR5s2bJ4SHhwsKhUJwd3cXxo4dKzz99NPWZD39vPDCC8LkyZMFPz8/QSaTCQEBAcLcuXOFH374YcB5paWlwnnnnSdEREQISqVScHV1FTIzM4Vnn31W6O3tPea4j/a7LSsrExYuXCh4e3sL7u7uwplnnins3r170HY+/fRTISsrS1AoFEJoaKhw9913CxqN5rDzNBqNcPfddwuhoaGCQqEQsrKyBo2YF3EcEkEYov9JRERERERExOGIa9QiIiIiIiJOjCjUIiIiIiIiTowo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iYmJXHnllQwORup7PeMernloB8NOP0WpRu68tBqDRlAg+lUmogYlHLVCzl/2tLcyamQBj0t21TAl0BvMBDzy1gSVaPwSBAFBpZI9TT9fnOo0rEYyajOkNMPMdy+qQqMSeKm2nztfbDjubEqkviH6urdKpTpldnPDhg187Wtfm/Lz+gc/+AEFBQXo9XpycnL42te+NvlngUCA2267jdzcXEwmE2vWrGHTpk0zP+dMHtzf38/VV1/NF77wBRobG9m0aROXX3755Jv0xhtv0NjYyMaNG3n66af55z//yQ9/+MPJ53//+9/n0Ucf5YEHHqC+vp5bbrmFa6+9ls2bNwORKDUvL49nnnmGhoYGbr/9dr773e/yzDPPHHeOidd57bXXePHFFye/fscdd/D973+fffv2odFouPrqq7ntttu47777eOutt2htbeX222+ffLzT6eRzn/scb731Fjt27KCsrIyLLrroPTWLH/7wh1x55ZXU1tZy0UUXcc011+ByuaYdUd92223cfffdNDY2UlNTgyAIbN26FZPJxM6dO7nnnnu48847ee2114DID91ll13G2NgYmzdv5rXXXqO1tZWrrrqKQYePax7eSZ/dR67VwI8+vghLgpbTxflN2JX9AiBJwPz//iNpf7XsdsVwaDIKnM+oNFrEcHRpyqkQVCokuVO/TCh8yewAhegc4GzbjMX5L823cssF5QA8tr2Dj/1mqyx2pyKW36XpXhwef/zxE35eP/vss/zqV7/iwQcf5PDhwzz33HMsXrx48nmf//zn2bZtG3/5y1+ora3liiuu4MILL+Tw4cMzOueMrvX9/f2EQiEuv/xyCgsLAY47lE6n45FHHsFoNFJdXc2dd97JN7/5TX70ox/h9Xr55S9/yZtvvsnatWsBKCkpYevWrTz44IOcc845aLXa4xx7cXEx27dv55lnnuHKK6+c/LrJZOLhhx+e3Jfd0dEBwK233spHPvIRAP7nf/6Hq6++mjfeeIP169cD8MUvfpHHHnts0s5555133Pf34IMPkpyczObNm7n44osnv3799ddz9dVXA3DXXXdx//33093djSRJBINTj1pM1E1uv/12NmzYMPl1QRDIy8vju9/9LgBFRUXcf//9/Oc//2HDhg28/vrr1NbW0tLSQn5+ZPXnI488wtKlS/nGn9+iczRAslHLjy6pIlGvQgyHEMNhJAlZPwQnbMn9wSpJEpIoympXEkWQ5LYZRuL0eE9FUQRJktXuRJQaCgZkW2Hotg0T8LhIKyiXySIEvB7EUFD+9zQcxud2yNr457GNEPR5sKTNTBznZLjHR/C5bLJ+/0G/N1Kjj9LmmQuS6VqRy1/39tLQ7+AzD73N49evxO/3Mzo6GvXEzIno6enBYDBQXDzzTX/9/f3s37+fNWtOLghTU1PDHXfcAUBZWRm//e1veeONN8jIyCArK4sLLrgArVZLQUEBq1evBqC1tZWnn36anp4ecnIiy2FuvfVW/v3vf/Poo49y1113TfucM/r9W7JkCeeffz6LFy/mIx/5CB/+8If51Kc+RXJy8uSfH7v7eu3atbhcLrq7uxkaGsLn8/GhD33oOJuBQIBly5ZN/v8f/vAHHn74YTo7O/F6vQQCAZYuXXrccxYvXnxCUYuamnfWJmZmZk4+9tivDQ29M8c5NDTE7bffzptvvsng4CDhcBiPx0NXV9eUdk0mExaLBbfbjc1m4+WXX57y/aqrqwPAbrcf97hAIEBCQsJxX1OpVOzfv5+XX36ZF198kdTUVOrq6iZtTLy2s/0gaKuweQLs2L2b6uTjb6fucXnnVAE6Dmw99YNmSG/jXtltep3jjPa0ym5Xie9fCZt9zftltwnQU79Ldpuny3s60tnCSGeLrDaDPs9p8/1Ha1OU4OARFRNJ2zNNQ5Ofd/X19dTX18t1RCDS3Huyz+KTUVBw6hXLx/oAiEhkDg0N8dWvfpVf//rXlJSUcOGFF3LRRRdxySWXoNFo2LdvH5IkUV5+/KXU7/eTmjqzPf8zctRqtZrXXnuN7du385///If777+f733ve+zcufOkz5uoyQK89NJL5OYer+I0MQj/zDPPcMstt3Dvvfeydu1aLBYLP//5z99jf2L+7d0cu5R9Ih3y7q8dm+a4/vrrGR4e5te//jWFhYXo9XrWrl37nga1dy97n7CdmZnJRRddNOX3PXHOSy65BKvVOvn1Bx54gKysrOOe+6c//Qmr1cpFF11Ea2srb7zxxntsazQaPl6dSrkll7/t7eWJVh0//UQ1RalG7IM9BLxu0osqpjzPTPF7nAy2NVCwaGbyg6eis/ZtssuXoEuYuaDJVAy2NWCwWElMz5HN5oRUZEZxlWw2A143/YdrKaxZK5tNgO76XaQXVpJgTpTNZigYoKd+F3nVq2XrfrcNdBH0+0gvlC+iVvTntKxG1lWvQ+0NJJjl/jntw+eykVG8UDabsf6cPrGziyZ7H3qNiseuX8HKwkgw9/rrr7Nq1SqSkpJkO+uBAwcwm82UlpbO+LlZWVmkpZ1aavZEPkAURfLz82lubua1117j9ddf58Ybb+TnP/85mzdvnmw43rt373vKpDPNKMw4oyUIAuvXr2f9+vXcfvvtFBYW8s9//hOAgwcPHje2tGPHDsxmM3l5eSQnJ6PX6+nq6uKcc845oe233nqLdevWceONN05+rbVV/gjp2Nf7/e9/P+kQu7u7p61POlFrOZliy8RSE61W+57HqVSq4742sVxeq9WyePFiurq6GBgYmEx9NzQ0YLfbqalZzLVLa+gZ9/F22yg/eaWZX1yxBEGtBgFZm5RUag1IkuyNT4IgyL6XW6VSyd6kJagituS0qdHpkcQwgkola6OaVm+IzH3LedaJf2t1stkNBXzoEoyynlOSJNRqjew/p0gSKo1WdrsqtVpem4KAoJLXphDD79P21hGe3dcHwD2fqmFtacbkn018ZsqpHigIAhqNJiqb0UzvvBuDwcCll17KpZdeyle/+lUqKyupq6tj2bJlhMNhhoaGOOuss2J6jRn9LezcuZM33niDD3/4w2RkZLBz506Gh4epqqqitraWQCDAF7/4Rb7//e/T2dnJHXfcwU033YRKpcJisXDrrbdyyy23IIoiZ555Jg6Hg+3bt2M2m/nc5z5HaWkpf/7zn3n11VcpLi7miSeeYPfu3VHVHqZDaWkpTzzxBCtXrsThcPDNb35z2rPRsXQvnqqZ4oILLqCmpoZrrrmGX//614RCIW688UbOOeccVq5cCcAD1y7nE7/fTvuIm5+81Mi31icr1KShwOiCQk06ss9najSEFVj3CJGxHzlrnxNjTxayZbOpBH6PC3OKvNvTIstu5N1KJx4do5PbSUsKND0q0UhJlI2UXWMefv16pFHqi2cW8/Glx2dPRVFUpOk1WqYzvXMyHnvsMcLhMGvWrMFoNPLEE09gMBgoLCwkNTWVa665hs9+9rPce++9LFu2jJGREd58800WL1580mzsu5nRCRMTE9myZQsXXXQR5eXlfP/73+fee+/lox/9KADnn38+ZWVlnH322Vx55ZVccsklx7Wx/+hHP+L222/n7rvvpqqqio985CO88MILk474K1/5CpdffjlXXXUVa9asYXR09LjoWm4eeeQRxsfHWbZsGddddx1f+9rXyMjIOPUTiTjqkzWSnYyJWeqpEASB5557juTkZM4++2wuuOACSkpK+Otf/zr5GKtRx58+t5Ikg5bmQSd/3D0q+yiJEs4vYlaBWUq1RvZmIqWWU6g1WtnHifRGM36Zx57kRgyHIhrPMo+RhYIBRfbRA6hl7qQXQyFFnL8izm+GNt3+EHe93Ig3GOaMkhS+89HKE9qNxTGeiFii4mAwGNM6Z6vVykMPPcT69eupqanhjTfe4IUXXpisQT/66KN89rOf5Rvf+AYVFRVceuml7Ny5czJTOl0ESaZPzOuvvx6bzcZzzz0nh7l5z0MPPcSzzz7Lq6++OuPn7t27F4vF8p4mg2jY3jrCZ/+0i5AocfECHTd8dHXMNicI+jx0N+ymZPmJSxXR0n1oJ6n5ZRiTUmSzOdbXTijgJ6PovR8O0RLwuelt2EvRsrNk/SDsadhNck4xJuupa2PTJeB109u4l6JlZ8qWUhfDIToObKVo6ZmyOBev08ZQewOFNetkON07jHQdRlAJpObNvEY5FT6XncG2etnP2ln7NpklVSSYrbLZHO1pRRLDsnbS+1w2htobKVg8vRq1KEn85KVGdnWMkZ2UwAs3n0ma+b1Zjueff57zzz9/yj6jaNi2bRv5+fnTago7lok0/OHDhxXL2srFab+ZbK6IRXQ82t20J2LdgjR+8olFALzYGpiWLux0EY7WqOVfoyi/hKBGIZuSzCNfEKknT2hSy2YzwYhKo8VjH5PVrpy4bcMYEpNltxv0eWTfcR6RYpU3nS5JkkL67gqk/sPhyR6N6fDX3d3s6hhDp1Hxh2tXnNBJS5KkSPQfrciRz+cjHA5Hrdkwm8QddZSYzWaam5sxm80n/OcrX/nKlM+V01EDXLWqgM8sj6Tsf/PmYZr6HbLYVSu0RlGjU0ZCUPY0tUqNoFIpoKEs/xpNQRCwpGbiHB2Q1a5cSKKIa2wIS6p888MQ+fBXYs+5EutjI/KW0mmxkz4UmL5m/K72MZ7eFRlp/fFli1iSbz2xzaOfeXJL/EbrqCdUs+Sc6VYK2d6xYxeJfBCwWCyTm2pORGLi1GMyGo1Gdk3Wr59bTH3XMAdHJH78ciP3XrGEzMTYmpUEQZh0gHJGLErJ8imxRnLyrDKO6OhNFpwj/bLZm8CSlkN3/U6Cfu+8U9FyjQ2i1mhlTflCpItcDIdlHaEC5aRYBZUalSq2LuN3o5i++zTq/n02L798rRkJuPaMAq5cOXXt1efzvWfaRQ6iddROpxONRjM5HjyfkXme4YODxWLB6/VGNbsnd0QNYDIauHZBiJAumfo+B3e+2MDPP1WDURfbX7FGq1cg+tXjd9lltanR6hFDQdn3c2t1BoJ+DwbkS9nqjRZCAV9E8UvGZiWtPgGTNR3bQBfphfLN08eKJInYBrtJysyXPe3p97jQGUyyO7+gz4veJLNmeDCARie/U1Ai9T0dfXdPIMSPX27EHQizojCZ2y+uPunj/X4/CQkJiqS+o2kmc7lcWCwWRdYky0089R0lZrM56hp1LLJsU6HX69GpJH7/6RoyLHq6xjzc82oz4Wlqyk6FEvq5SogoqLXKpOl1CnRTqzVatHoDPqdNVrsAKTlFuMYG8SpgO1ps/V2R1LzMY1kAPue4rEteJlAmnS6/ZroohhHDYdlT36c6qyRJ/OaNw3SPeciw6HngmuWnlNj1+XyyR68TioTRRtSnQ9ob4o46aiwWC36/P6oRLbn0qN9tU6PRYNXDnz63igStir2d4zy8tS0mu0qlqU+bsSeT/PVkAKM1Dbd9VHa72gQjyTnFDHc2Icr8MxYNfo8zEuEXVcouQypJEm7bKMYk+brnIaJtHgr4ZJcNVaKWHPk9EmQXZDlVOv3v+3rZ1jqKVi3wwLXLyZhGmc3n85GQIN/uAGByl0W0jvp0aCSDuKOOmom/4ImGhJmg1WoV0dFOSEjA7/ezOC+JX1+1FIAXa/t5qbYvaptKpb7DQb/ss9QaXQIhv1dWm3qjhYDXLfuMujEpFY99VJE59aSMPNQaHWO9sV3SYkUSRYY7mkjKyldEKzvgdSGGQxgsVlnt+j1ONLoE2WeoQ36vrEtu4J3IV/Z08klS3/u6xnliRwcAd1xSzYrC6Y1ZTqS+5WTiczSauvdE6vt0IO6oo8RoNKJWq7HZbDN+7oRDlZuEhAS83oijunBRNrddGKlT/vGtNvZ1jkdlU6nUtySz0hMok6bW6BJQqdQEvG5Z7SaYE0GS8Lvl6dA/FkEQyCiqxDU2gGM4+ktaLEiSxFBHEwgCyVmFiryGxzaKMTFZ9khdKW1vv8elzLIXmaP0d8bI3mt3wOHj5682I0pw5co8rlkz/dllJSJqv9+PTqeLaomKzWY7adPvfCLuqKNEpVKRkZHBwMDMx2H0ej3BYFD29Pe7LwD/fc4CPrk8D1GCn73aROfozJ3N6TT2pFdo7ClyAZDbrgqTNQ3X2KCsdifQJhjJKl3MaM+RWR/ZkiSJkc5mAh4n2aU1sjvSiddwjQ1iSk6X3bYS9WlRDBPwumXPLMzmGJkvGOaulxtx+UMsyUvizo8vmlEkr0SNOhabAwMDZGXJOy6oFHFHHQM5OTn09c08YtHr9QiCgM/nk/U8CQkJx9kUBIG7L1/M6uIUPIEwd77YgN07s5q6Eo1fgiBEUuoBeb9/vclCwOOUPZ2cYErEJ3OXOoAlLRvn6KBiteQEs5WsBYsZ6TqMfahHkTT7uxHFMEPtDfjcDrLLl8juRCbwueyEQ0GMMm53g8gFwOeyy96gFvC6UanVsqe+Q36f7J3koWAgIhxyTCe9JEn8duMR2kfcpJp0PHDtChK0M+u0ViKijsVmX1/fpE70fCfuqGMgOzub/v6Zz8MKgoBer5c9/a3X69/j/Cc2BRWmGhly+vnJSw0EQtOvt6onxp5krtEqEaXqEkyIoih7nfqderK874HelIhWb1AsqgYwJCaTXVaDrb+TwdZDhGQuYxyLz+2gt3EvoYCfnPKlsjulY3EM92JJy5J9LCvgcSKJYRLM8skwTtjVG+UfBYpE/3KPkb133Ov5g31sbhlGrRL43TXLybHOfE5fqdR3tDb7+/vJzp7fIjYTxB11DETrqOHETjVWpqp9p5h0/Olzq0hM0NA44OT+Nw9PO7qaHHsKKZGmlreeLKhU6Awm2e3qTYkgCPhc8taTBUEgKSNX8Wg3wZxEXvVqVGo1PfW7cY4OyPp6ohhmtKeV/uYDWFIzyalYqlgkDRD0+3DbRkhMzz31g2eI2z6KITFF1ll8UKY+HdnK5lI8nV7XY+ORbe0AfO+iKs4oSZ2xzVAoRCgUUiSijjb1HXfUHxBicdQGg0Hx1PexlGaYeeDaFahVAptahnlmT/e0bAqCKrL1S+40tTGSppYbperUkah6elrlM8GUkoEYDuMel29H+4lQa7RkFC8kvaiCsZ5W+pr34RofjilLIIZD2Aa76T60C5/TRm7VCqxZhbI7uXdj6+/AZE1XZPuaxzYqq1jKBH6PE71J5nEvvxdJEtElyLuVLbI+NOL8hp1+fna0eeyypTl8fn1RVDb9fn+k30NmlbNYovS4o/6AkJ2dHVWNGpSLqH0+35TR0vrSNH708YiAx5M7u3jr8PC07OoM8ndT64xmQgG/IpG6EhcAkzUVj03+uWeVSk1KThFjve3yy5SeAJM1nfxFazAlZzDafYSuuh2M9rTisY+esrlPkiSCfi+u8SGG2hvpPLgd9/gQqfkLyKlcLvsazxMR8LpxjQ2Rkiu/2lEo4CPgdWNIlE/VDSJjako0kvk9TvQGs+zNehPp9EBI5K5XGrF7gyzMTuTuy2uiTt1PRL5yp/6jddSSJJ1Wjjq+QjQGcnJyoo6oExIS8HjkVVDS6/WIokgwGJzy5vqZNQW0Dbt4eGs7v379MBmWBCqyTv4BooTWsVqjRaNPwO92ySp3qTdZIrJ/Mq8SNVhSCAUaCPg86BKMstkFMKdmYhvsxjHST1KG/Oncd6NSa7Bm5pOUkYfXMY5rbJCR7sOE/D7UWj16kwW1RjcpRzzSfZhwwI/f45rcq22wWMmpXK7IGNPJGOtrx5KWpUg07baNkmBOkn1+2u9xolLJ30imRDp9wm5iRi4PbD7CkSEXVqOWB69bgUEXfT+AEvXpWOyOjo4SDAbjjvqDQCypb5PJxPDw9CLa6aLValGr1fh8vpOmmL5zURXtI27eaBrixy83cO8VS8iwTP3Drjda8PR3yHrWCbt+j1NWR60zmFGp1ficdlklFVVqNYbEFFxjg6TkyBvNCYKKlNxihjtbMKdkyO4opn5dAWNSyuT7Hw4FCXhdEYccCk7Ouas1OhJMSaTklqBTIIKbLl7nOF7HGPmL1ihi3z0+pMi4l8c+ijEpVZFGMnNyhqw2w8EA4aCfje0eXm8cQiXA/VcvIz8ltsupEo46FArh8/mi0rbu7+8nMTFRVl1sJYmnvmMgNzeX4eHhqFLYZrM5qq1mpyIxMRG7/eSjRGqVwH1XL6Myy4LNE+RHLzbgCUy9fERvimznkluXWsl6sluBerIlLRvniLyNWBMYk9JIMCUy2n1YdtvTRa3RYrAkY83MJyW3hJTcEgCSswtJTM9Bb0qcMycthkMMdzSTklMiu040RFLqfrcDswL7yN22EYzWmTdgnQxJkiKd5DLXvf0eJ10+PQ9v6wTgtgsrOass9suL3W6XfbmI2+2OWv2qp6eH3Fzls1dyEXfUMZCdnY3RaKS1tXXGzzWbzQQCAdlXiVqt1mltSzPrNTxy/SrSLXo6Rj38/CQCHmqtHpVGS0DubmqF6snGpEg9WW6HGok8JbyOMVntQuSCkVZYjsc+htsmb6bl/cBYbxsanZ5EhUoDzpF+TMnpsmczgn4vQb8Xo8x175DfiyjK30g2MGrj4QaRkCjxscXZ3HB2iSx2bTYbVqtVFlsTuFwuzGZzVJmKw4cPU1ZWJut5lCTuqGNAEATKy8tpaWmZ8XO1Wi16vR63W97VlFar9ZQR9QQ5VgMPfXYleo2KPZ3jPHp0BOPdCIKgSJ36nYaymQubnAxDYjLhYICgT973VhBUWNKycQz3ymp3Ao1WT2p+KSOdLbI32Z3OeJ3jOEcHSC+sUESSUAyHcY4OYEmTf/mFxzaKwWxFpZa3yjgh7ylnhiMYFvnN9iHsfonyTDP3fCr65rFjCYVCOJ1O2R212+2OWv2qpaWF8vJyWc+jJHFHHSPROmqI1KnlTn9PRNTTjSaX5lv55ZVLAfjXwT5eOXTimrsSaep3GsrknU9WqdQYEpNxK9ClnZiWg8cxTtAnbyPgBOaUTBIsVgbbGmRfsHI6Egr4GGprIDWvFK3MTXwTuMYG0ej0si85AXDb5U97A/jdDtm7yB96q41WWxizXs0fr1uJSS/P5cLhcKDT6WSvUbtcrqhrzHFH/QEjFketRJ164oY5E7sfq8nm1g9Hfmj/sLmVA9229zxGsTR1YgoeBeQejdY0RexqdHrMyenYh5SJqgVBIL2wEjEUZLT7iCKvcboghsMMHDmE0ZqGJU2Z7lxJkrAP9ZCUkSd7tB4OBfE57bLLcMLRBjUZ0+mvNQzwyqEBBCR+eUUNRWnypdQn0t5yv78Tqe9oiDvqDxixOmq5U98qlYrExMQZq3p99dxSPrEsF1GCn77SSPf48RGjzqhMQ5kxKQ23IvXkVPxuh+x7ygGSMvNxjvTLvgRmApVaTeaCxbjGh+dM/WqukSSJ4c4mVGo1aflliqS8Adzjw4jhEKYUebunAbyOMXQGI1q9zNKOPg+hgE+2qYaWQSe/3xTps7m0RMOHF8lbAlCiPg3Rp769Xi9dXV1xR/1BYr6lvmFmdeoJBEHgp59czMrCZNyBMHe+cLyAh0anR6XWyC73aLBYEcMh2e1qtDr0pkTc4/I3ZumNFozWNMb7OmS3PYFWn0BmSTWjPUcU+R7mM5IkMdpzBL/bSWZJtWKd5pIkMtbXTnJOsew7wwFc48Oyi4ZAJJpOsCTLUve2eQLc/UojIVFibYGJzyyVt+kNIh3fSUky704/2ogbTeq7tbUVk8l02ihnQdxRx0xZWRlDQ0MzdowQGaVyOp2IMm+kSkpKikonW69R8+B1K8hPMTDg8HH3K40Ew5GzCYIwqU4lJ4JKhTExWZH1nJbULJwj0c25n4qUnCJcY0OyXzCOxWCxklG8kKGORtw2+d+f+YgkSYz1tuIeH1FUfQsind6CIGBJlX8kKxQM4LGPYkmV3xl4bCOYZKh7h8IiP/t3EyOuACXpJm5YkkBKsny7BwDC4bAijWR2ux2DwYBWO/Mu/Ym0t1JZGiWIO+oYSUlJIS0tjcOHZz7/ajKZUKlUOBzyNlNNRNTRpJNTzXoe+dwqLHoN9X0OfrvxyKQdvdGCz61Andqapsh6TnNKBkG/B78CZ9YmGLGkZTHWd+JOebkwWdPIKK5iqL0Bl8L7wOcaSZIY7T6Ca2yYnPIlimwfm0AMhxnv6yQlp1iR3eSu0QEM5iTZv4dwKIjPZceYFLujfnR7B4f6HJh0ah68dgUBt0MRh6rVajEY5H0fYkmnn271aYg7almorKykvr5+xs8TBCGqNPWpsFgsiKIYdVq9LNPC765Zjlol8GbTEM/u7QHAYEnG6xhTZD7Z73ESCsgrwahSazCnZOIYUabOa80uxOsYU0Sr+lhM1nQyS6oZ7mjGNtA5K7rSs40YDjHYVo/HMUpOxVLFOrwnsA/1oNHrFUlNS5KEY6RfmXEv+yg6oznmdaQbm4d4/mDk9+LeK5eSaZAIBAIkyxxRK9VIZrfbo3bUDQ0NVFRUyHoepYk7ahlYtmwZ+/bti+q50aapT8ZEQ1ksF4Czy9P5waXVAPx5RyfbjoyQYElCEsOyp7/VGh0J5iRFurQT07JxjQ1NrsOUE41WT1JG/tHd4so6T2NSKjkVS7EP9THU3ih7U99cEvR76WvejxQOkVu5QtFIGiLqULaBLlJySxRJf3qd45EGNYXq07FG063DLn63MTJRcNO5pVy4KIuBgQHS09PRaOSd91aiPg2RC0C0dvfu3cvy5ctlPpGyxB21DKxYsYK9e/dG9dzpbhKbC7vXnVHI9euKAPjV6y0cGYooC7mVGKdSSEZSb0pEZzApVqu2ZhcQDgWxD/UoYv9Y9EYLuVUrCAV89DXvV2yWezbx2EfpbdxLgtlKVlmN4nvOI93kzZisaRgs8kaPEziGekhMy5G9CU4SRTz2sZguAA5vkLtebsQfEjmnPJ1bPhRJAQ8MDCjSXKVEx3cwGMTtdkdl1+1209TUxIoVK2Q9k9LEHbUMrFixgv379xMOzzzKsVqtOBwO2RvK5LoAfP9jVWyoSMcfEvnxS434dEmK1JON1lS8DhtiFO/hqUjKyMM+1KtI1KtSqckoqmC8r53ALDhOjVZHTvlSEsxJ9DTuwT7YfVqmwiO7u5sYbGsgNW8BaQVliutYQ6R2HPC6SM0vVcR+0OfB6xgnMV3+tLfXZUOlVqMzRDc7HBYlfv6fZoacfgpSjPzm08tQqwT8fj82m43MTHmb6pRqJLPZbBgMhqh2fB84cID09HRycuT/+1GSuKOWgcrKSiRJorm5ecbPnWgoczrlTSfH0lB2LBq1ivuvXkZFpoUxT4B73xrC6XLLPkOs1RvR6PR4HPJfAkzJaUiSqEhqHSDBbMWSlsNwR9OsOE1BpSItv4ys0hrsQ730txyYlUuCXHjso3TX7yYU9JNfvUqxZSbvJhTwMdpzhPTCCsUid/tQL6bkdDQ6+YVD3OMjGJPSok7XP7GjgwPdNgxaNX/87AqSjJH3YGBggKSkJNk3h9ntdjQajeyNZLGk0/fu3cuKFStOq45viDtqWdBoNCxdujSq9LcgCIrUqS0WC4IgMD4+HrutBC0Pf24laWYd7aMenmrX4RyTN00tCALm1CycIwOy2o3YVpGUkcd4f4dijjQltxgxFMQ+2K2I/RNhsFjJW7gKndFMb8MehjubZW/IkxOf20F/ywGG2htJzi4kq7RGdo3mqYikvFswWtNk6Zg+EaGAH+doP0mZ+bLbFsNhXGODUY+SbT0ywt/3Rbbp3fOpGiqz3lGyUirtPTw8TFpa9BeLqYglnT7hqE834o5aJlasWBF1Q1lycjJjY/IqMqlUKjIzMxkYkMfx5acYefC6leg0Kg4Oh3lyj/wrNC2pWXid4wT98m/8SszIJRwMKLY8RKVSk15UyXh/h+ziJSd93aObu3IXrkQMheiu38lYbxthBTayRUvA62awtZ7+lgPoTYnkL1pDYnrOrEY1zpG+SMo7T5mUN8B4fwfGpFTZd3BDRCtbo0tAb5q5VGTnqJv73ogsZfry2SVcsuSdtG84HGZ4eJjsbPmzGkpcACRJYmxsLOru9H379sUd9QeZ5cuXR91QlpaWxsiI/I1UWVlZsjlqgBWFyfziiiUA/KcjyL/r5B170uj0GBNTcI7K3/ilUqlJzilirK9dMbGLBHMS1qwCBlvrZt1R6hKMZC6oJrt8aURTuG4HQx1N+NyOOalhS5KIe3yY/paD9DbuRaXRkF+9hpTcEsUbxt6N12ljtKeVjOKFir12wOfBNTpISk6xIvYdI/0kpmfP+HLj8of4ycuN+IIi60tTue0jx48ljYyMoNPpsFjkvVx4vV7sdrvsdW+Px4PP5yMlZeYb1DweDw0NDaddxzfEHbVsTDSURdMUlpKSgtfrxeORt86YkZGBy+WSdZ/4pUty+PoFER3XP2xp42CPTTbbAJa0bJwjA4o4F0tqFoIgKJJen8CaVYjelMhgWz2SzA2C0yHBlEh22RJyq1YgCKqjjnIP430d+D1ORZ22JIp4HGOMdB2mq3YHoz1HSLBYKVh8BumFFYrUbU9F0O9jsK2e1LxSDBarYq8z3tuOOTVLkfnvgNdNwOPCnDIzpydKEvf+p5l+u49cq4H7r16ORn38R/5E1Ct3dmNwcJDk5OSoGr5OxsjICMnJyVGNkR08eJDU1FTy8vJkPdNsEHfUMrFw4UIkSeLQoUMzfq5Wq8VqtcoeVWu1WtLS0mSNqgH+5/wyzikyEZbg7lca6R33ymbbmBS5KSvR+CUIKlJyihnv71BsDnlS/SocZqT78Jx1ZOsMJtILyymsWUtSZj4Br4u+5v101e1guLMF5+gAAa87pvOJYhify459qJfBtno6Dm472lAnkl5cSf6iM0jOLlR0DehJzxcOMdhahzk5XZEu7Al8bgcexyjJOYWK2HcM92FKTp9xNuDpXV3s6RxHr1Hx4HUrSDEd//cgSZJi9Wml7I6MjJCWFt142o4dO1i1atVp10gGIO90+wcYjUbD+vXr2bx5MzU1NTN+fmpqKqOjoxQUFMh6rqysLPr7+1mwYIFsNgVB4O5PVHPtn3bR5gjzwxfr+cWnlpBoiD2tKAgqEtNzsA/1KLIwwmhNQzPQhX2wh+RsZT5YVWo1WaWL6Gnci85gJikjV5HXmd5ZNFhSs7CkZkUcq9OGxzGGYzhSswXQGSKbrjRaHWqtDrVWj0qtQhIjTtxtGwFJIhQMEA4GCAX9hPxeAl43Ko0WvdGM3pRITmYBOqN5XnwQSpLEUEcTKrVWsVGsidcZ620jKSMPjVb+jIEYDuEcHSC7fMmMnrejbZS/7I40Nt59+WIW5b63S9putxMKhaJ2fFMRCoUYHh6murpaVruSJDE6Okp+fnTNeps2bWLDhg2ynmm2iEfUMnLuueeyadOmqJ6rZJ16dHSUYDB46gfPgOyMNG6oFshO1NFvP17AI1YS03PwuxyTjkROBEEgJa8E+2AX4ZC878mxaHQJZC2ojghMzBNBDZVKjTEpNdJ8VrmcoqVnkVu5gsT0HPRGE5Ik4Xc7cQz3Mt7XyXh/BwD2wW6cY4MEfW4ElYoEcxLJ2UUULD6Dwpp1ZJctISWnGL3JMm+c9FhvKwGPi8wFCxWdz/Y6xwl4XIp0ekNEOERnMJEwgyay7nEPv3wt0jx2/boiLl9+4lRvf38/GRkZqGRezDI8PIzBYIhaK3oqYqlPh8NhtmzZEnfUcWDDhg1s3rx5XtWpjUYjFouFwcFBWe0KgkBVcR63rU3ErNdwqM/BA5vkWaWp1mgxp2ZiH1Rm25fBkozelMS4woIaCWYr6UURQQ2PQ96ufjkQBAGdwYQlNQtrViFpBWVkLqgmt3I5eQtXklsZabrJqVhGTvlSMooXkpq3AGtm/tFZ4YR54ZjfzXh/B67RIbLLalBrlEu7S6LIaHcr1uxCRZrUJEnCPtQ7o4yMJxDirpcb8QbDrC5K4Xsfq5rSdnd3tyL1WqXq3rHUp2trawmHwyxbtkzWM80WcUctIytWrMDn80Ul0KFUnRoiUbXcjhqgqKgIrXuYX1+5GJUArzUO8s/98oxtJWXk4hobIhxSpns6raAM5+ggXkfsc+Ynw5ycTnphBYOthxR/rTgRJ+0Y7iO7fIniwh7j/R0IKkGx0obHPookiZiS06f1eFGS+PXrh+kZ95KVmMDvrlmOVn3ij/ihoSEkSZK9K1uSJAYHB+ddfXrTpk2cffbZsu8yny3ijlpGtFotZ555Jhs3bozq+enp6QwNyS9lmJmZyeDgoOxrShMTE0lMTKTE4OP2ixcC8Nj2Dt5ui70RTGcwk2BJUiyq1uoNpOSWMNzZrIhgx7GYUzJJKyhnoLVOse1oH3Qi6e527EO95JQvQWcwKfp6frcD+2APGUWViqTWJUnC1t9JUkbetO0/u7eHt9tG0alVPHDtctItU9fMOzo6KCgokD3tPT4+jiiKUaWnT4YkSQwPD5OePr1Ly7vZuHHjaZv2hrijlp0NGzZEXadWyqEmJyejUqkYHZXfSRQWFtLZ2cnn1hXx2bWFSMC9/2nmyFDs9eXknGLsQz2KbdtKTM9Bo0tgrLdNEfvHYknNIr2wksG2elwKLV35oDJRk3aO9pNTvjTqXdjTfj1RZKijCWt2gWKv5bYNEwr6SZxmtL6nc4wnd3QCcOfHq1lWMPVCEJ/Px+DgoOyNqxBJe2dmZs6rC8DpXp+GuKOWnXPPPTfqOnVycjJqtVp2hyoIgmLp79zcXDweDzabjdsvXshZZWn4QyI/eqmBUVdsDjbBlIgxMXWyqUluBEEgvahiVlLgAOaUDDKKFzLc0aToOtMPEpERrEO4baNHnbSykTRMpLxVWLPkd3QQWRYz3ttOcnYRKpX6lI/vt3v5xX+akYCrVxfw6dUnP1dXVxdpaWmYTPK/V0qlvWO5ABw8eBBJkli6dKns55ot4o5aZpYvX04gEKCurm7Gz51wqHLPPQOT60Tldg4ajYa8vDw6OjrQqFX87prllGWYGXMH+NFLDfiCsc0rJ+cWRxSPFBKdeCcF3qR4ChzAZE0jp2IpzpF+htob3le60rNN0O+lt2kfkiiSW7lc8Zo0KJ/yBiYX8ljSTu3wfMEwd73ciNsfZlmBlR9cuvCkj5ckic7OToqKiuQ46nG43W6cTicZGRmy245lLnvTpk2cddZZp219GuKOWna0Wi0bNmzg3//+d1TPV8qhpqen4/V6ZVfpAiguLqanpwe/309igpZHrl9FiklH67CbX77WghjD96JLMGJOzWK8V7kO7cT0HDR6A6M9yqfA4aiudOUKwsEAfU37ZVci+yDgdY7T27gXQ2IKWWWLZ2Ut6Tsp70LFUt6iGGa8v4PknOJTXgQkSeI3bx6mY9RDmlnPA9esQK85eQQ+MDCAKIqKRb2pqalotfL+XbjdblwuV9QXgFdeeYULLrhA1jPNNnFHrQCXXnopL7zwQlTPTU9Px+fzye5QNRoNWVlZdHfLr+6UmJhISkoKnZ2RGll+ipE/XrcCnVrF222jPPF2Z0z2k7OL8DhG8bkdchz3PUS2iVXgGhvENS5/M9+JUGt1ZJctQW+y0Nu4F68z3hE+HSRJwj7YzcCROlLyFpCWXzorOtYAoz1HUKnUWLOUmZkGcAz1oNbqptXp/dyBXt46PIJGJfDAtcvJSjq1EllbWxvFxcWy15ABuru7yc2VvwM+lguA3W5n8+bNXHLJJbKfazaJO2oFuPjii9mxYwfDwzNvGtJoNGRkZCiS/i4sLKSrq0v2ZjWAkpIS2tvbJ22vLErhnk9FNrQ9u6+H1xuir49rdPqITKWCTV9avYGM4iqGO5rxe+TPOpwIQaUiraCc5JxiBo7UMdLVMivp99OVoN9Lf8sB7EO9ZJctIXGWdKwBHMO9uMaHySipVuxiEA4FsQ10k5JbcsoZ5IPdNh7b3gHA7ZcsZFXRqZus7HY74+PjiqS9bTYbLpdLEUcdS9371Vdfpby8XNbNjHNB3FErQHZ2NsuXL+fll1+O6vlyylMeS3p6OhqNRhHbWVlZqFQq+vreUdS6bFkuXzsvsr7xd5uOUNdrj9p+UmY+fo9L0cUhJmvaUfWrQ7OmfiUIAonpOeQtXEXA66anYU88un4XE4s/ehr2oDOYyFu4kgTze1diKoXXOc5oTyuZJdVo9crpZ9sGutAbLRgTT+50hxw+fvZqE6IEn1yex3VnTG8VbltbG3l5eeh08i+B6ezsJC8vT/a0dzAYZGRkJGpH/cILL5z20TTEHbViXHLJJTz//PNRPTcrKwubzSb7ljJBECgsLKSjo0NWuxO2S0pKaGs7Pur9+gXlfKwmm5AocffLjfTZohPwUGu0WLMKGOttU7Rb2ppVMCfqV1q9gezypSRl5h2Nrg/Ho2smouiD2Ae7yFqwiLSCclTq2WsKCvq9DLYqr74VCvhwDPWSklty0sf5Q2F+8kojTl+IRbmJ/OQTi6a1Aczv99PT00NJycntR0MoFKK7u5vCQvl35/f392OxWKLqUA+FQrz00ktceumlsp9rtok7aoW49NJLefXVV/H5Zt4olJCQQHp6Or298mz5OpaCggJGRkZklb481rbT6Twu5a9SCdx7xRKW5Ftx+kPc+WIDLl90DigxI5dwMKiIXvUEkZGtSkRx9tWvBEEgKSOPvKqVBLwuuut34RjpU0w/ez4TDgUZ7Wmlp3432gQjeQtXYUicejZYCcRwiIEjhzCnZCqqvgUw2tOG0ZqK3jS1LrQkSfx+Yyttw25STDr+cO0KErSnHt8CaG1tJTU1lcTE6e8Mny69vb2YTCasVqvstnt6eqIW4di+fTtarZbVq1fLfKrZJ+6oFaKmpoaUlJSol5/k5eUp0viVkJBAZmYmXV1dstvWarWUlZXR0NBwnINL0Kp56LMryElKoNfm5e5/NxKKQsBDpVKTXljOaHerop3SKpWarAWL8NhGcAzLf1k6FdoEI9nlS0nNK8U20E1P/W7c48MfiLlrUQxjG+ii+9BOAh4XORVLSS+c3SgajqpvtTei0WpJzVe2vukaH8brGDulytdLdf282TyESoDfXr2MvOTpjaP5fD7a2tqorKyU47jvobOzk8LCQtl3e3u9XkZGRqKuez///PN87GMfQ62e3mVmPhN31AohCEJM3d/Z2dl4PB7s9ujrulNRVFREZ2enYk1lXq+X/v7jo94MSwJ/un4VJp2a2h47f9gSXQrbmJSKKTmd4Y5mRR2XRpdA5oJFjPW2zcnaT0EQMKdkkF+9iqTMPEa6DtPXtO99W7+WJBHHcB/dh3biGh8io2Qh2eVL0M9ANUpOxnrbCPjcijaPAYSDAUa6WkgrKDupTGZ9n52Ht0ZGFL97URXrSqe/87q5uZmMjAzZ13pCpEHN4XBEHfWejN7eXlJTUzEYDFE9/4UXXnhfpL0h7qgV5dJLL+Vf//pXVA5Ro9GQnZ1NT4/8u64zMjJQq9XHNX7JhUajoaKigsbGxvd831XZifzm6mWoBHi1foB/HYju9VPzFhDwuXGOKJcCB0gwJ0UENdrq58xBRvS5c8lftAajNY3B1kP0Nu7FNTY4qzV0pYh0OnfSVbcT+2A3qXml5FauOGVDlZKM93fiHB0gq1T5+eyR7sMkmJMwJU89Izzi8vPTV5oIixKXLMnhi2cWT9u+y+Wiq6uLqqoTq2jFykSDmtxNZBBJe0er7tXY2EhnZycf+tCHZD7V3BB31Apy7rnn4vP52Lp1a1TPz8vLo6enR/bIcarGL7koLCyclNF7N+dXZfK9j0W2Jz2yrZ1d7TOPVtUaLemFFYz2KJsCh6OCGvllDBw5hM8lf3ZjuqjUapKzCylYvBZzaiZjfR10HdrBWG8bQX90DXpzhSRJ+Fx2hjqa6Kp9G499nLSCUvKqV2NOyZhT6UzbYDf2wW6yy5agS1B2HalrfAivY5y0grIpv+dgWOSnrzRh8wapzLLws08untH709TURH5+PhbL1LXvaFGyQc3pdOJ0OsnJia434Omnn+biiy9WZE3qXBB31Aqi1Wq56qqrePLJJ6N6fnp6OqIoKiJ9WVBQgMPhYGxM/nEnlUpFVVUVTU1NhMPvXZH5hfVFfGZNARLw8/800zY8cwEPY1Iq5llIgQNY0rJJzVtA/+FaxZauTBeVWkNSRh751atJL6wg4PPQXb9rcr54vm45kyQJv8fJeF8HPQ27GThSi0qlIqdyOTkVSzFZ0+dc29o+1IOtvyOyiMaorLBHJOV9+JQp7wc3t9I86CTJoOXB61Zg1E2/Vm+z2RgYGKCiokKOI7+Hzs5OUlJSFGlQ6+npISsrK6pIXZIknnrqKa655hrZzzVXxB21wlx77bX87W9/w++fuUCFSqUiNzdXkfS3VquloKBAsag6JycHvV5/QvuCIPDDS6s5szQNXzAi4DHmnvnccmp+KQGfR/EUOETWjKbkltDfchCv06b4650KQRAwJqWStWARBYvPwJCUint8mK66nfQ07GGsrx2/2zGnDWiiGMZjH2Wkq4Wuuh30NR8g4HNjzSqkoGYdaQXlijvE6WIb6GK8r4Oso9vilGY6Ke9/Hxrg1YZBBAHu+/RSClNnFh02NDRQXFwcdY33ZIiiSHt7uyLRtCRJMaW9d+zYwdjYGBdddJHMJ5s74o5aYc444wxSUlKiXn5SUFBAb28vwWBQ5pNFGr/6+/vxeuVPnQqCwMKFCzl8+DCBwHudsPaogMeCdBMjrgA/jkLAQ6XWTKbAg37lI8mkjFxS8xYwcKRuVtS2potGq8eamU9OxVIKl6zDmpVP0Oehr+UgXbXbGThSx1hfO27bCKGAXxHnLUlSpG9gdJDR7iP0Ne+n8+A2RrpagIhKWdGS9WSWVGNJzZyWKtRsMd7fgW2gi+zyJSTMQvPaOynv8imzCE0DDh7c0grArR+uYEPFzPZcDw8PY7PZKCsri/m8J6Kvrw+VSqXIzvDh4WHC4TCZmZlRPf/JJ5/kiiuuQK+fOlNxunH6yomcJgiCwDXXXMNTTz3FJz7xiRk/32q1YrFY6Onpobh4+k0k08FsNpOenk5HR4cizSYZGRkkJSVx+PBhqqur3/PnSYaIgMdlv9vG4SEXv369hdsurEQ1gxSoMSkFc3I6I51NZJUtUTx9mpieg6BSMdBaR0ZR1bR2Ms8mao0Wc0om5pRMJFHE73Hgd7vwe5y4x4cJ+jyoNVp0RgsanR61VodGG/l35L91CCo1giBMKnuJ4RCSJCGGQ4SDAUJBP+FgYPK/Q34ffo8LJAmd0YzeaMacmkVaQRnaBNOcp7SnIqJj3YZzdICcCuV1rAFCx6W8T7whbNwd4O5XmgiJEhdWZ3HjhpmNh0mSRENDA6WlpYpsIYNIE1lJyalXnUZDR0cHBQUFUe0jDwaD/PWvf+Uf//iH7OeaS+KOeha45pprWLJkCTabLaqlAEVFRbS1tVFUVCT7L8aCBQvYvXs3paWlinRuLly4kG3btlFSUnLCFFxhqok/XLuCa/+0k22tozy1s2vaKxEnSM0vpadxL+N9HaTkynuZORGW1CxUag1D7Y1YvW6s2fLPkMqBoFKRYLaSYLZOfk0Mhwl4XQS8LkIBP6GAH7/bSTjoJxQMIIbem7npqtsxYXHSmUccux6tzoDBkkya0Yw2wThrAhmxIoZDDLU3EPR5yalYhm4WJDIlUWSorR6DJXnKlHcwLPLTfzcx5g5QmmHmF1fO/PLZ19eHz+dTJC0NMDIygtPppKBAfj1un8/HwMAA559/flTPf/XVVzGZTJx55pkyn2xuiTvqWaCiooLFixfz7LPP8qUvfWnGz8/NzeXQoUOMj4/LPguZlpZGYmIiR44cUSSqTk5OJjMzk+bm5imF29eUpHL35TXc+reDPLOnm1yrgfMqp5/qU6k1ZC1YRG/TPnQGE+YU+fVw343JmkZu5TIGjhwi4HWTXlSJ6jRYrKBSq0kwJ025K1uSRCRRQpJExHCI7kM7KVh8BiqNFkFQzcsLyUwJ+jwMtB5Co9OTU7l8diQyJYmR7sOI4TBZZRVTvo+PbG2nod+BRa/hwetWYNbP7CNaFEUaGxupqKhQRH/52GhdiYt9Z2cn6enpUXdrP/nkk3zmM59RRB1sLnl/fTfzmGuvvZannnoqqudqNBry8/Npb5dfk3miltza2hrVutPpUFVVRU9PD+PjU9d1P7UibzLFd/+bh6nvm9kolM5gIrNkIcOdTbOmfqUzmMmtWk44FKCved+s1MmVRhBUqNRq1BrtpANTqTWojqbDT3c8jjF6m/ZhTEyZlTnpCRzDfXhsI2SVLpqyPv9G4yAv1kUaI3951VIWpM88Fd/a2oogCIpEuxCRnPR4PIqoUYmiSEdHR9TqXg6Hg+eff55rr71W3oPNA+KOepb49Kc/zfbt22ltbY3q+cXFxZMpLblJSUkhIyOD5uZm2W1DpBZeVlbG/v37TziuNcGtH67go4uyCIkSP3m5kX77zJrcjEmpJGcXMXDkEKFZUr9Sa3SRJiRzEr1Ne/G5bLPyunFmRkSBq4fB1kOk5peSOos61l7HOGO9rWQuWIRGd2L1rSNDLn636QgA/3N+GR9aOPNGKqfTSXNzM8uWLVMkohRFkYaGBsWi9YGBAQRBiLpB7ZlnnqGysvKE/TCnO3FHPUtkZmZy6aWX8tBDD0X1fIvFQmpqKp2dnTKfLEJVVRVdXV24XDOfaZ4OZWVlqFSqk14GVCqBX165lMW5STh9IX70YgMu/8wEPJIy8zFYkhhsPTRrm7sEIaIrnZJTRP/hWhzDvR+IvdynC6IYZqSzGVt/F9llS7Ckyt+pPBVBv5fBtnpS88umLDfYvUHueqWRYFji/MoM/uf8mXdqS5LE/v37KSoqUmRVKEB3dzeSJCmikgWRBrXi4uKoMzd/+MMf+PKXvyzzqeYHcUc9i9xwww088sgjJxxXmg4lJSV0dHScNCqNFovFQl5eHk1NTbLbhshM+PLly2lraztpCtygU/Pw51aSnZRA97iXn/27aUYCHoIgkFZYAZLEcFfLrDrMxPRcskoXM97fycCRunm7fOSDhNdpo6dhNwGfh9yq5bOqYx1R36rDnJpFYlr2CR8TFiXuebWJYaef4jQTv7xqKSrVzB3VkSNHCAaDiq0KDYfDNDU1UVlZqUi0brfbGR8fj/oSsGfPHpqbm99XS06OJe6oZ5HzzjuPpKQk/vnPf0b1/MzMTDQajSILUAAqKysZGBjAZrMpYj8xMZHy8nL27dt30stGZmICD39uJUadmgPdNv741swEPFQqNZkLFuF1jOEYml31K4MlmbyFq1BrdfQ07MYx0h+PrueAiEzpEQaO1JKYnktOxbIp085K8I76lp7UvKm7rx/b3kFtjx2jTs2D160gyTDzmvmxKW+llKLa29vR6/VRK1mdisOHD1NQUBD1ONmDDz7IZz7zGUVWpc4H4o56FlGpVNxwww088MADUT1fEATKyso4fFgZnWSDwUBxcTENDQ2y256gtLQUjUZzysi9OieJX1+1FEGAVw4N8ELtzLaPaXT6iPpVXxseh/xrUk+GWqMlo6iSjOKFjPe1x6PrWcbnstPbsAe/20Fu1Uqsmfmz3gg33tdO0Ocho2ThlLXwLS3DPHcgcpH8xRVLKM+cuZMRRZF9+/ZRXFysWMo7GAzS0tLCwoULFXkfXS4X/f39US9nsdlsPP3009xwww0yn2z+EHfUs8znP/95du3aRV1dXVTPz8vLQxRFRZSvIFJLHh8fZ3h4WBH7KpWKZcuW0d7efso94x+uzuI7H41o6P5paxu7O2bmcBNMiRH1q9b6ORHUMCalHo2utfQ07MYZj64VRRTDjHYfof/wQSzpObM2H/1ubIPdOIb7yCxdNGVXefuIm9+8eRiA/96wgIsWnzg1fipaW1sJhUKKaU1DJNpNSkoiPV2Z5T5HjhwhJycHozG6v6vHHnuMmpoali9fLvPJ5g9xRz3LpKam8pnPfIbf/va3UT1fpVKxYMECxaJqnU5HWVkZDQ0NijmViRT4qbrAAf7rrBI+vSofUYKfv9pMx4h7Rq9lTsmcU0GNSHRdRUbxQsb62hk4XDtr42MfFCRJwjU+RE/DHnxzGEUD2Id6sfV3kl0+tfqW0xfkrpcb8YdEzipL49YPRyea4XA4FE95+3w+2traFIumvV4v3d3dUUfToijyu9/9jptvvlnmk80v4o56Drjpppt48sknT9pUdTIKCwvxer2KRb0lJSV4vV76+5UTu5huClwQBO78+CLWlqTiDYa586UGxj0za8ZLTM8hJad4Tp3kRHStM5rpa9rPYFvDaSdPOR/xOsbpa9rHaPeRo/vO5yaKBnCM9DHW20ZW6WL0xhOnscOixC/+08yAw0desoHffHoZ6iiax0RRZP/+/YqmvAGam5vJyMggOTlZEfttbW1kZGRErcD16quv4nK5+OQnPynzyeYXcUc9ByxdupTly5fzpz/9KarnazQaSkpKaGlpkflk79ivrKyksbERUaERp5mkwHUaFQ9cu5ySNBPDTj8/eakRf2hmne9JmXlYswroP1xLwKvMCNqpUGu0pOYtIH/RalQqFT31uxnpaiEUnLmy2gcdv8dJ/+GDDLYdwpScRv6iNZE97HO0lMU5OsBodytZpYtP2ln+1M5O9nXZSNCqePC6FSSbomueOnLkiOIpb5fLRVdXl2Kd5IFAgPb29piEQ+677z5uuOEGxXaazxfijnqOuPXWW/nVr34VlfwlRKJeu92uiJ40RFS7JEmiq6tLEftwfBf4qdTBrEYdf7p+FUkGLc2DTu57Y+apf2tWAUkZefQ1H5jT9LNGl0B6USW5VSsIBQN0H9rJWG87YnhmM+MfRII+D4Nt9fQ17UdnMJO/6AysWYVzqsblGO5jpOswWQsWYbBYp3zc9tYR/rY3MrHxs0/WUJ0T3aiYzWajpaVF0ZQ3QGNjI/n5+Yp1Ure3t5OcnBx1RmD//v1s2bKFG2+8UeaTzT/ijnqOuOSSS7Barfz5z3+O6vlarZbi4mJF554XLlxIY2Nj1JeJ6VBaWorRaGTv3r2ndLzFaREBD41K4K3DIzy9a+aXiOTsQqzZhfS3HJyTmvWx6AwmshYsIrtsCT6Xja66HYz1thEKxCPsd+N3Oxhqb6SnYQ8qtYb8RatJzVswaytAp8I+1MNoTySSNiROnR7uGvPw69cjzWNfWF/Mx5dGN+bk8/nYtWsX5eXliqa8h4aGGBwcpKIiuvr5qQgEArS2tlJeXh61jZ/+9Kd88YtfJCND+d3+c03cUc8RKpWKb3/729xzzz1RLzApLS3FZrMpVqvOzs4mNTWV2tpaRexD5H1YuXIlLpeLxsbGUz5+7YJU7vrEYgCe3t3NpuahGb+mNTOf5Jxi+lsO4nXaZvx8uUkwJ5FdvpTMBdUEvG66Du1gsK0Bn8v+ge4SlyQR19gQvU376Gs5gEqtJnfhStILK2Z1JnoqbIPdjPd1kF2+5KSRtNsf4q6XG/EGw5xRksJ3LoouXR0Oh9m9ezcpKSmK6UxDZBzrwIEDVFdXn1DxTg6OHDkSUyf54cOH+de//sWtt94q88nmJ3FHPYd8+tOfJhgM8uyzz0b1fKU7tAVBoKamhpGREXp7lVscotPpWLNmDe3t7dNa5nLlqnxuOCeyROK+Nw7T2D/zyDgpI5fU/AUMHKnDNT5zZy83giBgsCSTVbqY/OrVqLU6+g/X0tOwB/tQD+ETyE++Xwn6PIz2tNJV+zZjvW2YktMpWLyWtILyOWsUOxZJkhjtaZ3s7k4wTd0IJUoSv3q9hV6bl+ykBH77meVo1TP/2JUkidraWsLhMMuWLVO0Fl9fX4/JZIpaHONUeL3eyU7yaLnnnnu46qqrFFtnOt+IO+o5RKvV8s1vfpO77747akdbXFyMz+dTbK46ISGBmpoaamtrFU2BWywWVq5cyYEDB6bVDf+tj1Ty4YWZkwIeA46ZLxRJTMsho7iK4Y5mxvra5030qtUbSMsvpbBmHdbMPFxjQ3TVvs1gWz2uscH3pdMO+r3Yh3roa95Pd8NuQgEf6cVV5C9agzUzf85T3BNMrAX12EfJrVw+ZXf3BH/d3c3O9jF0GhV/uHYFaWZ9VK/b1tbG4OAga9asUbQuPTQ0RG9vr6KXgebmZjIzM6PuJO/t7eWJJ57gW9/6lswnm7/EHfUc84UvfIH+/n5eeeWVqJ6v0WioqKhQtEM7JydH8RQ4RFakVlZWsmvXrlOqhKlUAr/+9FKqcxKxe4Pc+WID7hkKeMCErvRyXKODDLbVz6uGLpVajSUtm9zK5eRWrUCrN2Ab6KLz4Hb6Wg5gH+w5bUe8JEnC53Yw1ttGT8Nuug/twm0bwWRNp3DxWjJLqjEmpswrac2Az0Nv414AciuXoz1FdL+rfWyyj+LHly1iSb41qtcdGhqisbGR1atXK5aKhndS3gsXLox6+cipcDqddHd3x9RJ/stf/pKLLroopoj8dEOQ5ksY8QHm7rvv5uWXX+att96K6vmiKPLmm29SWlqqWLrK7/fz5ptvUlNTo9i+X4h8gO/btw+328369etPGT0M2H18/HdbGXT4WV6QzO0XL4xqLjUcCkYcdShI5oJFaPXKfSDGStDvxWMfxWMbxeuyodUbMFnTMCSmoDeaUanlkSAUwyE6DmylaOmZstgMBQP43Y7Js0uSiCExBZM1FUNiyryJmk+ExzHGUFsDlrRsUnJLTnmB6LN5+d9nDuAOhLn2jAJ+fNniqF7X5XKxZcsWFi1apJjG9AQHDhzA7Xazbt06xS5Iu3fvRqvVsnTp0qiePzo6SmFhIRs3bmTVqlXyHm4eE3fU8wC73U5BQQEvvPACZ599dlQ2+vr6qK2t5YILLlBEKxYiKafa2lrOO+889ProUnjTIRwOs3XrViwWy7RScHU9dq54cDu+oMjFi7O54ZzoRO0lSWS0uxXX+BCZJdUnbRCaL4jhEB77GB77KF7nOOFgAG2CEb3RjM5oQW+0RO28Y3HUoaAfv9tJwOPC73Hi9zgnzzbhnBPMSbOmCR0tEzrW433tpBWUT0si0xsI841nD9I95mFFYTJP/9cZ6DQz/z6DwSBbtmwhMzOTRYsWRXP8aTM0NMTu3bs599xzFYumx8fH2bZtG+eff37UmYEf/OAHbN26lddff13m081v4o56nnDHHXfw5ptvsmXLlqhus5IksWXLFrKyshQbqYDIjViSJFatWqVoWtLr9bJlyxYWLFhAaWnpKR//70P9fOXJfQDccHYJF9fkRP3ajuE+RnuOkJpXSmJ69HbmgikdpN6AzmhGo9Wj1upQa/VotDrUOh0arR5BpX7P3+dUjlqSJMRQkFAwQDjoP/rvo/8d8OH3uGS9MMwVkigy3NWC1zFG5oJFJ20am3yOJPGzfzexrXWUDIueF28+k4zEmXeoS5LEzp07kSSJM844Q9HftWAwyMaNGykvL1csIydJEtu2bSMlJSXqlPXw8DALFizgpZde4qyzzpL5hPObuKOeJzgcDhYsWMCjjz7KxRdfHJWNsbExtm/fznnnnafYrXi2UuDwzg181apVZGZmnvLxD2xq5Wf/bkIlwO0XV7OiMPq1h16njcG2eszJ6aTkLZjThRqxEgr6CXhcBLxuQkE/4UAg8u+jDlaSRARBhVqrm3TYE47B73GiM5gBKeKgw2HCwQAgoVKrUR91/JoJ56/TozOYTzun/G5CAT+DbfUgSWQuWIRGN70M0rN7e3j87Q60aoG/fPkMVhRGN+tcX19Pf38/55xzDlqtsiWBAwcO4PF4WLt2rWIXgp6eHg4dOsT5558f9fdzyy23cPjwYV588UWZTzf/iTvqecR9993Hww8/zIEDB6Lu7Ny/fz/BYJDVq1fLfLp3mEiBn3vuuSQkKDvP2tPTw8GDB1m3bt0pu0QlSeKbz9by7N4ejDo193yyhsLUEwsjTIeg38dQWz2iGCa9qHJaEdXpRsT5hiJOOxRAEsVI9/vRrw93NpNeVIVKHXHgxzrn0/nyMhWSJOEaG2S0+whGaxppBWXT/j73dY3zwxfqEaVI89i1Z0Q3OtTW1kZTUxNnnXWW4vrKs5HyDgaDvPHGGyxatIi8vLyobHR2dlJZWcnOnTupqamR+YTzn/ldIPqA8ZWvfAWn08lTTz0VtY2FCxcyMjLC4OCgjCc7ntzcXNLS0qitrVV8pCkvL4/KykrefvttbDbbSR8rCAJ3fWIxq4tT8ATC3PliA7YZCngci1afQE7lMswpmfQ3H2Cstw1Joc76uUIQBNQaLTqDCYMlGWNSKiZrGqbkdEzJkWUUJmvka8akVBLMVrR6w/vSSYcCfgZbDzHW00Z6USUZRZXT/j4HHD5+/mozogRXrszjmjXRNX51dHTQ2NjIGWecobiTDgaD7N+/n+rqasWcNETGscxmc0wZuNtvv51PfepTH0gnDXFHPa/Q6/Xceeed3H777VHPLOv1eiorK6mrq4t649l0qKmpYXR0VNFFKBMsWLCAsrIy3n77bRyOky830WlUPHjtCgpTjQw5/dz1ciOBUPTOVRBUJGcXklu1HI9jjJ7GPXO+ejSOvEiShHN0gJ6G3ajUavKqV2Gypk37+b5gmLtebsTlD7EkL4k7P74oqhRyd3c3hw4d4owzzlB0PegEhw4dwmKxKLo0xOFw0N7eTk1NTdRp9bq6Op555hnuvPNOmU93+hB31POMa665BovFwh/+8IeobRQVFaHRaGhtbZXxZMej1+tZsmQJtbW1uFzKq1GVlZVRUlLC9u3bcTpPLqiRbNLxyPWrSEzQ0Djg5Ddvxq7drTOYya1cjjkl430bXX8QeSeKbo1E0cULZzQmJkkSv9t4hPYRN6kmHQ9cu4IE7cyzDb29vRw8eJA1a9aQmpo64+fPlJ6eHvr6+li6dKlidWlJkqirq6O4uDhqGUuA7373u3z5y1+muLhYxtOdXsQd9TxDrVZz99138+Mf//iU0eNUqFQqampqaGlpwePxyHzCd8jJyaGgoICdO3eeUv1KDsrLyykoKGD79u2nvBwsSDfzwFEBj80tw/x1T3fMrx+JrovIqVyOxz5GT+Ne/O65U+GKEz3vjaJXzyiKnuD5g31sahlGrRL43TXLybHOfOyor6+P/fv3s2rVqqh3X88Em83GgQMHWLFihaIp797eXpxOZ0xTKFu3bmXTpk1873vfk/Fkpx9xRz0P+djHPkZlZSU///nPo7aRkpJCTk4OdXV1itaRJ+pb01G/ihVBEKiqqiIvL4+tW7eeMrJeX5rGjy6LzJ8+tbOLtw7LI16iN5rJrVqOOTmdvub9jPa0zquNZnFOTtDneSeKLqyYcRQ9QV2PjUe2tQPwvYuqOKNk5pFwb28v+/btY8WKFdOabIgVn8/Hzp07qaioICvr1DPh0RIMBqmvr6e6ujrqLm9JkvjWt77Frbfe+oFQyDoZcUc9DxEEgXvvvZd7772Xtra2qO1UV1czNjamaB1ZEARWrlyJ2+2moaFBsdc59vUWLlxIYWEhW7duxW63n/TxV68u4EtnRlJmv379MM0D8kTAgqAiOScSXfvdDrrqdmAb7EYUlesLiBMboaCf4c4Wehp2o9bqIrXo5Ogi2GGnn58dbR67bGkOn19fNGMbXV1dk5F0dnZ2VOeYCeFwmF27dpGWljat3QSxMFH/jrbLG+DJJ5+ks7OTb3zjGzKe7PQk7qjnKatXr+aaa67h61//etQ2jq0jn2p3dixotVrWrFlDZ2cn3d2xp5hPxURkXVJSwrZt207ZDf6di6q4oCqDQFjkxy81MBSFgMdU6I1mssuXklFchWt0gO5Du3CO9M8bgY84kcUtY71tdB/aSTgUmJTKVGt0UdkLhETueqURuzfIwuxE7r585o1SHR0d1NbWsmbNmlmJpCVJ4uDBg0iSpGhdGmBwcDDm+rfdbueb3/wm9957L2azWeYTnn7EHfU85u6772br1q0xDfjn5OSQkZEx+UuqFGazmZUrV3Lw4MFpqV/JQUVFBeXl5Wzbto2xsbEpH6dWCdz36WVUZSdi8wb50UsNeALypaoFQcCYlEpu1UpS80oY7++kp2E3bttI3GHPIaIYxjbYTVfdDnwuB9nlS8lasAhdQvSz9ZIk8cDmIxwZcmE1annwuhUYdDNrHmtra6O+vp61a9fOSk164jWHhoZYvXq1oupbE8IeixYtiqn+fccdd1BdXc2VV14p4+lOX+KOeh6TlpbGXXfdxde+9jW83uhVkhYvXsz4+Ljio1QZGRlUVVWxc+fOmM47E0pLS1m4cCHbt28/6fdn0mv40+dWkm7R0zHq4eevNhMW5XWigiBgTskkv3o1iek5jHQ209e8H6/TJuvrxDk5kiTiGOmn+9AuXKODZBQvPKVu9HR55dAArzcOoRLg/quXkZ8yfWckiiKHDh2iqamJtWvXzkp3N7yjvrVmzRpF1bcgkvJOTEyMSUCktraWBx98kN/+9rfzSj1tLok76nnOf/3Xf5GSksI999wTtQ29Xj+pKa1kChygpKSEjIwMdu3apegc97EUFxdPalk3NjZOGcXmWA08/NmV6DUq9nSOTzYCyY2gUpGUkUf+ojUYk1IYOFJH/+FavI7xeIStIJIoHu3k3oOtv5PUvBJyq1ZgTJJHLrOh38FDb0V6Rm67sJKzyqYfDQcCAXbs2MHQ0BDnnHPOrMxJQ0R9a8+ePSxZsiRq/efpIkfKW5IkvvrVr3LzzTfHJIX5fiO+QvQ0YOfOnZx33nnU1dVRUlIStZ09e/YQDodZvXq1ojfVcDjMtm3bMJlMLF++fNZuxU6nk507d2KxWFi+fPmU3aYv1fbz1f+LCHjcuGEBH12kbCNPOBjAPtSDY7gPjU5PYkYe5pSMeb/dS26ZS6UIBf04hvtwDveh0mhJysjDkpqFoJIvDhl1+bnlmQOMe4J8bHE2v/3MqVXdJpj4uTSbzaxYsULx3d0TTKhvZWVlUV1drfhrvfnmm1RWVsa0QOXJJ5/kW9/6Fk1NTYpvZjudiDvq04T/+q//YnBwkOeffz5qG4FAgDfffJOFCxcqrm3r8/nYvHkzJSUllJWVKfpaxxIIBNizZw8+n481a9ZgMp24HvnbNw/zi/+0oBLgB5dUs6xA2WgDIjVT19gg9sFewkE/iek5WNKy56329Xx21JIk4XfbcQz34x4fIsGSTFJmHgZLsuwXw2BY5Hv/rKNxwEl5ppl/3rgek35678fg4CB79uyhuLiYqqqqWbu0SpLEjh07EASBNWvWKP66e/fuJRAIxKT0Zbfbqaio4L777uOqq66S+YSnN3FHfZowMjJCeXk5jzzyCJdddlnUdgYHB9m9ezfnnHOO4jdWm83G1q1bp61+JReiKFJfX093d/eUSyQkSeIbzxzkH/t7MenU/PxTS2ZUb4wFSZLwOW04hvtw20cwmJOwpOVgsqbJGgXGynx01OFQAOfoIM6RfsLBAObUTBLTc9ElKPd39/tNR3jl0ACWBA0v3HQmRWmnbkaTJInW1laamppYunRpTGNK0VBfX8/AwABnn3224hF8V1cX9fX1bNiwIaYa+M0330x9fT1vvPFGvDb9LuKO+jTi8ccf59vf/jb19fUx1bjq6+sZGhri7LPPVrQDFN5Rv1q/fj1Wq1XR13o3nZ2d1NXVUV1dTVFR0Xt++f2hMNc8tJM9neNkJSbwiyuWkGSYnbTkBKFgANfoAI6RfsRwCHNyOkZrGgazdc6d9nxx1OFQEK9jDLdtBI9tBL0pMXKxSU5TvHzwWsMAv3nzCIIAf/rcSs6rPPWFMxwOc+DAAUZGRli9erXiteF309HRQUNDA2effbbio01Op5PNmzezevXqmJaSbN68mY997GPs379/VjNwpwtxR30aIUkSl1xyCVarlSeffDJqO6IosnXrVpKSkliyZImMJzwxhw8f5siRI6xfvz6mnb/RMDo6yu7du8nOzmbx4sWo3uX8Rl1+PvH77XSNeViYnciPL1uEVj37DlKSJHwuG+7xYdy2EcRwGGNSCsakVIxJqVFtzoqVuXTUQb834pjto/icdnQGE0ZrKuaUTEWj52NpGXTyrb/XEhIl/vdD5Xzt/FM7EK/Xy65duxAEgdWrVysuA/tuurq6qK2tnZWu8nA4zObNm8nKymLhwoVR23G73dTU1HDzzTfHtDfi/UzcUZ9m9PX1UV1dzWOPPcbHP/7xqO14PB42bdrEkiVLYpKfmy7Nzc20t7ezfv36WW8S8Xg87Nq1C41Gw6pVq9Dr9cf9+ZEhJ5/4/XacvhDnVWTw9QvK5jT1JkkSAa8Lj20Ut32EgMdFgjkJ41GpydlyVLPpqCM1Z8ekcw76vRgsVoxJaZisqWh0s+vwbJ4AtzxzgBFXgAuqMvnjdStQqU7+MzE+Ps6uXbtIT09nyZIlimer3k1vby/79+9nzZo1szKffeDAARwOB2eeeeZ7LsAz4eabb+bgwYNs2rQpJjvvZ+KO+jTkiSee4Jvf/Cb19fUx3Zr7+/vZt28fGzZsmLLpSi4kSaKxsZHu7m7OPPNMxV/v3YRCIQ4cOMDw8DA1NTXvuZxsaRnm84/tJixKXHdGIVeuzJ/V852MUMCHxz6K2zaK1zmOVpeAITEZvdGCzmhBZzAiCPJ/wCnpqMVwmIDXhd/jxO924nGMgSRFMgjWVIyJKXOWbg+FRf7fvw5xqM9BSbqJ5766nsSEqTMaoijS3NxMa2srlZWVLFiwYNYvev39/ezdu3fW+kEm1L42bNgQ02KTTZs2cfHFF3PgwAHF15qezsQd9WmIJEl8/OMfx2Kx8NRTT8Vkq7a2lvHxcc466yzFb7OSJFFfX09fXx9nnnmmoso9U71+b28vdXV1pKWlUVNTc1x0/cSOTv7fc4cA+PaFlawvnbmaktKI4RBexzhel52Ax4nf4wJJQmc0TTpuvUzOWy5HLYZD+D2uyfP6PU6CPg9qjTZyXpMFgyWZBHOiIheOmfLQW208f7APk07Nv25aT2nG1Bkgm83G/v37AVi+fDlJSUmzdcxJJhpEV6xYMSs7w91uN5s2bWL58uUxvZ7L5aKmpoavf/3rfO1rX5PxhO8/4o76NKW/v5/q6uqYu8DD4TBvvfUWycnJs1KvliSJ2tpahoaGOPPMMxXflHQifD4ftbW1jI6OsmTJEnJycib/7Icv1PPotg70GhV3fWIx5Znze5ZTkiSCfg9+94QjnHDeIjqDGZ3BhFqnR6PVodbqUWt1R/9bd0qnOF1HLYphwsEA4aCfUCBAOBggFPQTCvgJeF0Rp6zVHb1ImNEfvUxodPopbc4VG5uH+OVrLQD84doVXLjoxApToijS0tLCkSNHKC0tpby8fE7StkNDQ+zatYtly5bNSgkrFArx1ltvkZaWxuLFi2OyddNNN1FXV8fGjRvjKe9TEHfUpzFPPvkk3/jGN6ivryctLfroz+PxsGXLFioqKmZFnH1CIGB4eJj169fPemQ9cYbe3l5qa2tJT0+fjK7DosSXHt/NxuZhko1a7r1iKemW+edQTkbEeXsJeJwEvG5CwcCkIw0HA4RDEe1wlUZ7nAOPfFgKkbStIAAS9sEeEtNzI/8vSUiShCSGJm2GAn4kMQwIx10C1Fo9Gp0OncE8b53yu2kddvGtv9fiD4ncdG4pt37kxDrKdrudffsiC3PmKooGGBgYmNw6lp+vfKlGkiR2795NMBhk7dq1MTnXjRs3cskll3Dw4EEWLFgg4ynfn8Qd9WmMJEl88pOfJBQK8a9//Sumutjo6Chvv/32rDWiSJJEXV0dAwMDrFu3bs4Uck4UXTt9QT71wNs0DzopTjPxs8trZiy8MJ+RJJFwMEhownEf/UeSxIgjliSQpMiCltEBLGnZkTEoIeLEBZX6PRG6SqM9rWdfHd4gtzxzgCGnn3PK03nk+lWo39U8Nl+iaIg0le7bt2/WImmApqYmuru7Oeecc9DpolMeg8hOiKVLl/Kd73yHr371qzKe8P1L3FGf5oyNjbFs2TJuueWWmEcbOjs7qa+v55xzzpmVZi9JkmhoaKC7u3tOusGPPcdEdJ2RkcHixYsZ9oS57HfbGHEFWFOcwnc+WvWeD+73O/NljlppwqLED16o50C3jYIUIy/cdCZJxuObx+x2O/v370eSJJYtWzbrOwGOZaK7e7Zq0hC5GOzfv5+zzjorphFLSZK49NJL0Wq1/P3vfz+tL3ezSbwwcJqTkpLC008/zfe+9z327NkTk63CwkLy8/PZuXMnwWBQphNOjSAILFy4kMLCQrZu3Yrdblf8Nac6R15eHueddx7hcJiNGzcieMb543Ur0GlU7Gwf47HtHXNytjjK88SOTg502zBo1fzxsyuOc9LhcJjm5mbeeustMjMzOeecc+bUSXd1dbF//35WrVo1a056ItW/fPnymPcg/PrXv6auro4//elPcSc9A+IR9fuEnw6xg3EAADNUSURBVP3sZ/zxj39k3759MdXMRFFkx44dqNVqxcU7jmVivGXt2rWzvsnpWCRJoqenh/r6eoxGIz2qTL774hEAbjq3lI9Un7i56P3IByGi3npkhJ/9uwmIyFZesiTSWCiKIt3d3TQ1NaHX61m6dOmcOmiA9vZ26uvrZ608BeD3+9m8eTNFRUWUl5fHZGvXrl2ce+65vPHGG5xxxhkynfCDQdxRv08QRZGLLrqIpKQk/vKXv8TkYAOBAFu2bCE7O1tx1Z1jaW1tpbGxcU52I7+bUChEa2srR44cYdOwgb81eVGrBH54aTVL8qxzerbZ4v3uqDtH3dz67EF8QZEvn13Cdy+qQpIkBgYGaGhoQJIkKisryc3NndPob2J3fU9PD6tXr541HetwOMz27dsxGAysWLEipvfAZrOxfPly/vu//5tvfvObMp7yg0HcUb+PGBoaYunSpdxxxx3ccMMNMdlyOp1s3bqV8vLyWe3KnCu1oanw+/20tLTww1c72TMiYNKp+cUVS8hLnv1O9dnm/eyoXf4Q//vMAfrtPtaXpvL451djGx+joaEBj8dDRUUFhYWFcz42NF01OLmRJIldu3bh9/tZt24dGk30f/+SJHHllVfidrt58cUX5/w9PR2JO+r3GZs2beJjH/sYb7/9NjU1NTHZGhsbY/v27bMe4c6Vfu/JGHc4+fSDb9M8GiTDpOYXn6oh2TK729Vmm/eroxYliR+92MCeznFyrQae+lwN/R2HGRsbo7S0lAULFsTkmOTC4XCwa9euU+qry83E+OTo6ChnnXVWTB3eAA888AA//vGPOXDgwKyl7N9vxK827zM2bNjAbbfdxic/+UnGx8djspWSksKqVas4cOAAQ0NDMp3w1FgsFs4++2xEUWTLli24XK5Ze+2pSE608NR/n0NOkp4hd5g7/7mPoZ42xHBoro8WZ4Y8vauLPZ3j6DUqvr7SSN2et7FYLFxwwQVUVFTMCyc9MDDAW2+9RW5uLqtXr57Vy2pzczODg4OsW7cuZie9c+dObr31Vv7v//4v7qRjIB5Rvw8RRZHLLrsMn8/Hyy+/HPMHT3d3N7W1tbMuVSmKIg0NDXR1dU2pKz3bNA84+eQD23H5Q6zLVvPpBWGSswtJTMt+X0Wd8P6MqHe0jfKTlxsBuK5M5BPLcqmsrJyTpTsnQpIkjhw5QnNz86zOSE/Q3t5OY2MjZ555Zswd3r29vaxatYpvfetb/M///I9MJ/xgEnfU71McDgfr1q3jQx/6EL/61a9itnfkyBEOHz7MWWedNevLSSZ0pRcuXEhxcfGc1603NQ/xhcd2I0rwmWXpnJ3iIuDzYEnLJikjF61+9teiKsH7yVFLkkRb7xDffuEwvjBcuMDAPVetnHXZ1ZNxrI71mjVrZr3LfGKJyrp162LSu4eI3OfZZ59NTU0NDz/88Jz/zp7uxFPf71MSExP517/+xZ///GceeeSRmO2VlpaSn5/P22+/jdfrleGE06ewsJB169bR0tLCwYMHEUVxVl//3WyoyOCOSyLd8E/vH6ZTV0h2WQ3hoJ/u+l0MHKnD6xgnfgeee0QxjHOknyN1e7j71YiTXlGQxP1f2DCvnLTX62Xr1q243e45mdUeHh5m3759rFy5MmYnLUkSX/rSl9DpdPz+97+PO2kZiDvq9zELFizgb3/7GzfffDPbtm2L2V51dTWpqals374dn88nwwmnT0pKCueccw42m41t27bh9/tn9fXfzefWFfHZtYVIwC9fa6HHoyazpJqCRWvQGUwMttXT07Ab+2D35G7tOLNHwOdhtKeVrrodjA108X+taga9kJWYwB+uW4VWPX8++sbGxti8eTMWi4X169eTkDC72tsjIyPs3LmTmpoasrJi3xNwzz33sGXLFv7xj3+8R/s9TnTEU98fAH73u99x5513snv3bgoKCmKyJUkS+/btw263s379+ln/RZzQlR4bG2P16tVzuoQiFBb5wuN72NIyTIpJxy+vWEKqOfJ+iGIY9/gwzpF+/G4HRms6ienZJJitp02EcbqlviPv+QjOkT58bgcmaxqJaTk83+zkyZ1d6NQq/nrDGSwrmLuFOu+mu7ubgwcPUlVVRUlJyaz/bIyOjrJjxw4WLVpEYWFhzPZefPFFPv3pT7NlyxaWL18uwwnjQNxRfyCQJImvfOUr7N69m61bt8bcOCNJEnv37sXhcMyJs5YkicOHD9PS0kJ5eTmlpaVzNpvp8AX55O+3c3jIxYJ0Ez+9vIYE7fECHgGvG+dIP87RAVQaLeaUDEzWNHQG87x22qeDo5ZEEa/Thsc+gmtsCLVWhyUtG0tqJmqNjj2dY9z5QgMS8NPLF/Pp1bFdVOUiEAhMyr2uXLmSjIyMWT/D2NgYb7/9NtXV1RQVFcVsr6GhgbVr1/LQQw9x5ZVXxn7AOJPEHfUHhEAgwIc+9CGSk5N59tlnY+4EF0WRffv2TTatzXa6DiIfNPv370ej0bBs2bI5qzl2j3m47HfbGHUHOKMkIuChOoEDlkQRt20Et20Yj30MlVqNMSkNkzWVBIs1olA1j5ivjjocCuCxj+GxjeBxjKNSazBZUzElZ5BgTpq8/PTbvdzyzAHc/jBXry7g7stj00+Wi/7+fg4ePDipAT8XvzsTkfREg2as9Pf3s379eq655hp+9KMfyXDCOMcSd9QfIMbGxjjrrLNYv349Dz74YMzRnCiK7N+/H5vNNie1NYh0yjY1NdHe3j6n0fXezjGu/uNOAmGRTy7P4/p1RSd9vCSKeF02PLZRPPYRwqEghsQUTEmpGJNSUWtjm1+Vg/niqCP62p6j79UoPpcdndGMKSkNozX1hJkJXzDMN589SMeoh2UFVv7y5TPQa+b2IhQIBKirq2NwcJDFixeTl5c3JxmViZq0XJG03W7nnHPOYcmSJTz66KPxzWMKEHfUHzB6enpYt24d119/PXfeeWfM9iZq1jabjXXr1mEwzM1o0nyIrp/b38vX/3oAgP85r4wLFmZO63mSJBHwuvHYR/HYRvB7nOhNiZisqRiT0tAmGOfkA30uHbUkifhcDjz2ETy2UUIBH4bEZIxJaRiTUtHopi63SJLEz//TzFuHR0gz63nx5jPJSpr9S+SxzIcoGiLd3Tt37mTx4sWy1KR9Ph8f/ehHMRgM/Otf/5oXWwTfj8Qd9QeQiYUGd955pyzC7RMrBye2Gc2VrvSx0XVFRQULFiyY9dv9L//TzG/ePIJaJfCjS6tZHIWARyjoP+q0R/E6xhHUavRGC3qjGb3Rgs5oQaPTK+68Z8tRS5JI0OfB73Hhdzvxe5wEvC5UKjXGpFSM1jQMlmRU6ulFxP/c38Mj2zrQqASe/vIZrCqKbdwoFuZLFA3v6FjX1NTE3FQKkd+3q666ip6eHt54441Z20P+QSTuqD+gvP3223z4wx/mkUce4YorrojZniRJk07yjDPOiHkWMxbGxsbYt28fOp2OZcuWzerFQZIkbn56Py/W9mPRa/jFFUvIsUafZRDFMAGPK+LEPE4CHicBrxuVRnuc49YbzWh0CbI6ASUctSSJBLweAh7nMd+TCwTQGczoTZajlxJLVJmEg902bn/+EKIEd368ms+uLZLl3NEwEUVbrVaWLFkyZ9kmgLa2NhoaGli1ahWZmdPL9JwMSZK48cYb2bRpE1u3bp01Ra8PKnFH/QHmpZde4sorr+SFF17gvPPOk8XmxAfCypUrZZnJjJZwOExjYyMdHR1UVFRQWlo6a5GMLxjmqj/u4GC3jVyrgZ9/qgZLgnwpQVEME/C68budRx2ek4DXg+po5K01mNBodai1OjRaPeqj/61Sa2b0HkTjqCVJIhwKEg76CQcDhIIBwkE/oYCfgNdFwOMGgaMXDHNMTvndDDl8fP2ZAzh9IT65PI9fXFEzJ9HrsVH0okWLyM/Pn7MoWqkL9J133skf//hHtm/fLkt0HufkxB31B5zHH3+cr33ta2zcuFG2uUe5U2yxMFfR9ZDTxyd+t51em5ea3CR+eGk1GgWXbEw474DHScDnIRwMHHWUfsKBAJIkIgiqSac94cA1Oh1qjQ5BpQJBQBAEBEEFCEiSyGDrITJKqiOORpKQkECSEMPhd+wf+1rBAAAqtebo6+hQH30tncEkm1N+N/5QmG/9vZbWYTeLchN59ivr3jMmNxsMDAxw4MCBeRFFi6LIwYMHGR4eZu3atbL97D/44IN8+9vf5q233mLRokWy2IxzcuKOOg6/+MUv+OlPf8rGjRtZvFieEZbh4WF27do12Yk9l/PCE9F1e3s7hYWFVFRUzMrsd2O/g089sB13IMyHF2Zy07lz8z5IkoQkho93qoFjIt5QAEkUj3PEkiQhSSIhv+8dx3rUiQuCgKBSodbqJyP390TvszhqJkkSv379MG82D5Fi0vH8TetnXS/cbrfT0NDA+Pj4nEfREPmZ37NnD263m7Vr18p2YXj88ce56aabeOWVVzjzzDNlsRnn1MQddRwAfvKTn3DfffexceNGqqurZbFps9nYsWMH2dnZLF68eM7HNhwOB42NjQwPD0/qDivdpfpm0yBfenwPogRfWF/EJ5bNnq53rMyX8axT8WJtHw9uaUMlwJNfXMO60rRZe223201TUxP9/f0UFRVRXl4eszRkrPh8Pnbt2oUgCKxZs0a28zz55JN85Stf4fnnn5etVBZnesQddZxJfvjDH/L73/+eTZs2UVVVJYtNj8fDzp070el0rFy5cl7s/h0bG6OhoQGn00l5eTlFRUWop9lRHA1/2trOj15sQAC+97Eq1hSfHo03p4Ojru+z873nDhEWJb7/sSq+dFbJrLyuz+ejpaWFzs5O8vLyqKiomBdSmePj4+zatYu0tDSWLl0q28/1X/7yF770pS/xz3/+kw996EOy2IwzfeKOOs4kkiRx++2389BDD7Fx40bZnHUoFJrcD75mzZp5oVokSRKDg4M0NjYSCoWorKxUbHRGkiS+/9whntrZRYJWxc8ur6EkfXalQqNhvjvqUZefr//1ADZvkEuW5PCbTy9VPN0cDAY5cuQIra2tpKenU1VVNS9+niGyI+HAgQOyN0/+5S9/4Ytf/CJ///vfufDCC2WxGWdmxB11nOOQJIk77riDBx98kDfeeEO2ZhFJkmhpaeHIkSMsX76c7OxsWezGiiRJ9PT00NjYiFarpaqqiszMTNk/8INhkS88tvvoEg4d916xlBTT3G8fOxnz2VEHwyLf+UcdzYNOKrMs/OPGdRh1yp0xHA7T0dFBS0sLFouFhQsXzukI4rFIkjTZg7Fy5UpZxq8mmEh3P/vss3EnPYfEHXWcE3LnnXdy//3388Ybb1BTUyOb3Qlx+rKyMsrLy+eNKMWxH8Rms5nq6mrZP4jt3iCX/34brcNuSjPM3P2JxXPSmTxd5rOj/u2bh3m1YZAkg5bnb1pPYaoyyzYkSaK7u5umpia0Wi0LFy4kIyNj3vzcBoNB9u3bh9PpZM2aNbJONTz++ON89atfjae75wFxRx1nSn7yk5/wy1/+kpdffpk1a9bIZtdut7Nz506Sk5NZunTpvFo7GAwGaW1t5ciRI4qkNjtH3Vz2u22Me4KsX5DKbRdWnlDAYz4wXx31vw8N8LtNRxAEePT6VWyokF95SpIkBgYGaGxsJBwOK1oaiRan08nu3btJSEhg5cqVsjaxPfDAA9x2223861//ijeOzQPijjrOSbn//vv57ne/yzPPPMNHP/pR2ez6/X727t2Lx+Nh5cqVc6orfSKObRZKTU2lpKREtpT4rvYxrnl4B8GwxBUr8uZ0e9bJmI+OumnAwXf+UUdIlPjmRyr46rmlstoPhUJ0d3fT1tZGMBikrKxM8WbDaOjq6qK2tpbi4mKqqqpkm6iQJIkf/OAH3H///bz44ousW7dOFrtxYiPuqOOckr/+9a984Qtf4A9/+APXXXedbHaP1ZWuqqqipKRkXkUsELlQdHR00N7ejkajobi4mIKCgpizAH/f28M3/nYQgFsuKOO8SvnqinIx3xz1uDvA1585wJg7wIXVWTxw7XLZfl48Hg/t7e10dnZiNBopKSkhNzd33jnoUChEbW0tg4ODLF++XNZ6dDgc5sYbb+Tll1/m1VdfZeHChbLZjhMbc//bF2fec9VVV5Gamsrll1/O4OAgt956qyx2BUGgvLyc1NRU9u7dy8jICMuWLZvzOdRj0ev1VFRUUFZWRm9vL21tbTQ1NVFQUEBxcTFmc3Td259ckUfbiIvfbWzl/jePkJmYQHVOksynf/8QDIv89N9NjLkDlGaY+cWVS2J20pIkMTo6SltbG4ODg2RmZrJmzRpSUlLm3YURIiWjPXv2kJCQwIYNG2Tdeubz+fjMZz5DU1MT27dvJz8/XzbbcWInHlHHmTZ79+7loosu4rrrruOee+6RdYFJIBBg//792O12Vq5cOW86at+NJEmMj4/T1tZGf38/KSkpFBYWkp2dPePoSxQlbnp6Hy/XDWBJ0HDvFUvITpq7lZPvZj5F1A9ubuXFuojQyXM3rWfB/2/v3uOiLPP/j79mhoOc5DAKIyAICp4R0TJPQW2WWZ7aNS2L1DK3xFrNLeurm+1mrr9yNVt381Btudp5K7ETampmHlI28YACGgLCyHGQ4xzuuX9/lLNSVqgMM+jn+XjcDwaYmeua4fC+ruu+7uu6jMvbzGYzBQUFnDp1CovFQnR0NDExMW5xHfSFqKrKqVOnOHz4MN26daN79+4t2pAwmUyMHTsWq9XKpk2b3PZv72omQS0uSl5eHrfccgtDhgzh1VdfbdGJYKqqcvLkSbKzs4mLiyMuLs7lq5n9ErPZTGFhIfn5+VgsFjp37kx0dPRFTT5rsChMXL2brKJqIoN9eP53/fD3do+BLncJ6q3ZZ1i+NReANakDGdHMfb7Pp6oqZWVlnDp1CqPReFkNrNZkNpvJysqioqKCAQMG0LFjxxZ9/uLiYkaOHElUVBTvvPOO2zZWrnYS1OKiGY1Gbr31VkJDQ3n77bdbfCKYyWQiMzMTrVZLUlKS2ywo8XPODaGeOnWK4uJigoKCiIiIwGAwNOsfX+nZRsau3EVJdSOJnYN4+vZeTt3Ao7ncIajzSmt5/P2DWBWVR34Tx5wR8c1+rKqqmEwmjEYjRUVFKIriaExd6imL1lRcXMzBgwfR6/X069evxVf1O3ToEKNHj+aGG25g9erVbnX1hWhKglpckrNnz3L33XeTm5vLxo0b6d69e4s+v6IoHD9+nJMnT7aJ3vU5FouFoqIiSkpKqKioICAggLCwMAwGA8HBwT87ZHmkuJoJL++m3qJwax8DDyV3dfl5UlcHdXWDldnvfEtZjZnf9AhlTepAtNpffk8URaGsrAyj0YjRaERRFMLCwggPD8dgMLSJ3yGz2cyhQ4coLS0lISGBiIiIFv9d+PDDD0lNTWXu3LksWLDA5b9r4pdJUItLpigK8+fP55///CdvvfWWU1Yuqqqq4r///W+b6V2fz2q1cubMGceh1Wodod2xY0c8PJqG3+ajZ3hw3X5UFaYPj2FMvwgX1fx7rgxqxa7yp42HySqqJqaDHx/OHEqgz4V7fI2NjZw5cwaj0UhZWRne3t4YDAYMBgN6vb5NhPM5xcXFZGVlERISQkJCAu3atWvR51dVlUWLFrFkyRLeeOMNxo8f36LPL5xDglpctg0bNvDggw/yzDPPMGfOnBZvnZ/fuz63bWZb+ucL3+8NXFFR4QiUhoYGOnbs6AiUc/+Q13x5kkWfZKPVwPzbenFNF9dN7HFlUL/y1Xd8+O1pfL10fDhzKPFh/1txS1VVampqHL1mk8lEUFCQ470MCAhocz3E1uhF19XVMXXqVPbt28fGjRtbdMVB4VwS1KJFfPPNN4wbN44RI0bw8ssvt3hPAL7f9epc7zohIQG9vm3sQvVjqqpSW1vrCJqqqioCAwMdw+Mv7CjmnQOn8fHUseS3CcR0cM7ymL/GVUH9ZU4Zz2ccB+Afk5O4tY+BxsZGTCYT5eXlGI1GzGazo6ETFhbmlN+31qCqKgUFBRw9epSQkBD69evnlNdSUFDAuHHjCAgI4L333mvxSWnCuSSoRYspKSlh/PjxaDQa/vOf/zhl4w1FUThx4gQ5OTmEh4fTq1evNvtP+hyz2ewYHq+qqqK2roHVOZ4cq1LR++pYfFtXQvXB6Dxad7KPK4L6ZFktf3w/C4vNzoQ+gfy2mwcmkwmz2UxAQAAhISGOUwfuPFu7OUwmE1lZWTQ2NtK3b18MBoNTRgJ27drFHXfcwfjx41mxYoVbrVMgmkeCWrSoxsZGZsyYQUZGBhs2bOCGG25wSjn19fUcOXKE0tJSevToQUxMTJsbDv85ZrOZAmM5U9cfoeislS4BMLOnDV/fdnj7BjgOL19/p4a3s4NaVVUUqxlzXQ3m+hoqTTUs2l1DeSP01mtZeEMo+pBggoKCaN++/U/O6bdVFouF7OxsCgsL6dq1K3FxcU55baqqsnz5cubPn8/zzz/Pww8/3OJliNYhQS1anKqqrFmzhjlz5jhmlTqr91NaWsqhQ4fa/HD4hXxXXsf4f+zCVG9laNcQ0gaHYW2oxVxfg6W+BpvFjIdXO7z9AvBs54uHpxc6T290nl4/3PZCo7n0xktLBLVdUVCsZmxWC8oPh81qxtJQi7m+FrvNipePHx4+/rx0oJ4sYwORQT6kzxpGsJtvA3qxzh/mDg4Opk+fPk67TKyiooKpU6dy8OBB3nrrLQYPHuyUckTrkKAWTpOVlcXEiRMxGAysX7+e8PBwp5Rjt9s5ceIEx48fx2Aw0LNnT/z8XHNet6XtOVnBva/sxaqoTLqmM5MHRTu+p9isjtC2NjacF4ZmFJsVAK2HpyO0dZ7eF7yt0Wi/H3LVaJp8tCsKpw7uIjphCBqtDlBRVRVVtYOqYrcr54Xv9+XaLP+rg81qQbUroNH8pFzPdn54+/rj5euPVqvjjd35vHugiHaeWt5/aMgVt5xqWVkZR48exWKx0KdPH6cNc8P3Q92TJk1i4MCBvPLKK7LS2BVAglo4VW1tLWlpaXz88cesW7fOqZvPNzQ0cOzYMYqKioiOjiY+Pr7Nn78GeGd/IY+/lwXAYyPim7Wto6raUazWC/Zmm962Apf2L0Cj0f4Qvl54/NCTd/Tmvf7XENDqPH8xlL4+Uc7iT48B8OKkRMYmuvaytJZkMpk4evQoVVVVxMXFERsb67QhfLvdzpIlS3j22Wf561//SlpaWpub/S4uTIJatIo33niDmTNn8vDDD/Pss886dRWks2fPkp2dTVlZGV27dqVbt25tftWlxZ9ms2rHSTy0GhaN70uvTi13PbmqqqCqqPzw8YfDbrNSdPQbOve+Fq2HZ9NeN5oWCYGCynrmvnuQBqvCtKEx/Gn0lbFjU11dHdnZ2RiNRmJiYoiLi3PqJK4zZ85w7733cvLkSd5++20GDBjgtLJE65OgFq3m2LFjTJw4EV9fX15//XXi45u/HOSlqKys5OjRo9TU1BAfH++W+wo3l92u8vt/HyDj6BkCfTx5YUI/DO2dO1rg7MlkdWYbj717kNOmBq6LDWHd/YPwdIOlUy9HY2Mjx48fp6CggMjISHr06NGiu1xdyKeffsq0adNISUlh1apVbWpRINE8bfuvQrQpPXr0YM+ePQwaNIikpCSWLVuGoihOKy8kJIShQ4eSlJREQUEBW7du5eTJk9hsNqeV6SxarYblkxLpHd6e6gYrf950lDpz23sd59hVlWVbcjhtaqBTYDv+fndSmw7phoYGDh8+zJYtWzCbzaSkpNC/f3+nhrTJZGLatGlMmjSJRYsWsWHDBgnpK5T0qIVLfPnll0ydOpXw8HBee+01unXr5tTyVFWluLiY3NxcGhoaiI2NJTY2ts0NiRurGxm78ivOnDWTFBXEn27vje5X1r++VM7sUb+5r4AN+wrw8tDy7ozB9Osc1KLP31pqa2vJy8ujsLCQ0NBQ4uPjCQ4Odnq5n332GQ888AC9e/dm7dq1sn/0Fa7tNmFFm3b99deTlZVF//79SUxM5MUXX8RutzutPI1GQ0REBMnJySQlJVFWVkZGRgZHjhyhsbHRaeW2NENgO1657xp8PHVkFphYu/Okq6t00b7Jr+TNfQUAPDuuT5sM6erqavbv38+2bduw2+0kJyczaNAgp4d0dXU1999/PxMnTmThwoV89tlnEtJXAelRC5fbsWMH06ZNa7Xe9TkVFRXk5uZSVlZGVFQU3bp1azOXdX122MhD6w+gqjDj+lhuT2j5S9+c0aMuNjUw551vqbMo3HNdFM+O69siz9sazm1nmpubS0VFheN3prX2cP7888954IEH6NmzJ2vXriUqKqpVyhWuJz1q4XLJyclkZWWRmJhIYmIiL7zwAlar1enl6vV6rrvuOq6//nqsVitffPEFe/bs4cyZM7h7+3VkHwNPjOwBwJqdJzlwqsrFNfp1DRaFZz/Jps6iMCA6mD/d3tvVVWoWm81Gfn4+27dvZ9++fQQGBnLTTTeRkJDQKiFdXl7O/fffz4QJE1iwYAGff/65hPRVRnrUwq3s2LGDhx56CI1Gw8qVK0lJSWm1shsaGjh16hT5+fl4eHgQExND586d3XZtZFVVefy9LN49UISPp47nf5dAtL7lRgRasketqipLPjvGrhMVhAZ4s2nWMEKdPGv9ctXW1pKfn09BQQE+Pj7ExMQQGRnZakuZKorCmjVreOqppxg2bBgvvfQS0dHRv/5AccWRoBZux2KxsGLFCp555hlGjx7NCy+84LRVzS5EURRKSkrIz8+nqqqK8PBwunTpQkhIiNstIGGx2bn3lb3s/a6S0ABvlk7oR5BvyzQsWjKo3ztQxOu78/HUaXjrwesYEO2eq2XZ7XbHz76yspJOnTrRpUsX9Hp9q/7s9+7dy8yZM6mqquLFF1/k9ttvb7WyhfuRoW/hdry8vJg7dy7Hjh1DVVW6d+/O0qVLW2U4HECn0xEZGcmwYcNITk7Gy8uLPXv2sHXrVo4dO0ZtbW2r1KM5vDy0vHzPALrofSmtMbPok2wsNudNyrsU/y2oYt2efACeHt3b7UL63LnngwcP8tlnn5GdnU1oaCg333wzAwcOpEOHDq0W0uXl5UyfPp0bb7yRMWPGcOTIEQlpIT1q4f62bdvGzJkz0Wg0/P3vf3fajly/RFEUzpw5Q2FhIaWlpQQGBhIZGUlERATe3t6tXp8fO1FWy/iVuzjbaCM5viOPjYi/7HBpiR618Wwjc97+lhqzjTsHRrLktwluMypRU1NDYWEhp0+fxmq1EhERQWRkpEtGTs4f5h4+fDjLly8nJiamVesg3JcEtWgTrFYrK1asYOHChdx0000899xz9OzZ0yV1sVgsFBcXU1RURGVlJR07diQyMhKDweDS67K/zisn9dV92Owqd18bxV3XXt6Eo8sN6karwuPvZ/FdeR39IgN5e8Zg2nm6dmW4+vp6x8+upqYGg8FAZGQkYWFhLtkmVVVVPv30U5588klqa2tZsWIFt912W6vXQ7g3CWrRphiNRv785z/z6quvMnnyZBYuXOjS60jr6+spKiqiqKiI2tpa9Ho9BoMBg8Hgkku93tpXwLz/HALgjzd35/r4jpf8XJcT1Kqq8rfNOWzPKUPv50X6rGGEBzl3Kc2fq4fJZMJoNGI0GqmpqUGv1xMZGUl4eLhLG1a7d+9m3rx5HDlyhP/7v//joYceuiI2kREtT4JatEl5eXksWLCAjz76iJkzZzJv3jyX70VdV1fnCISKigr8/f0doR0cHNxqw6mLPj7Kmp3f4anT8Nz4vvQwXNqykpcT1B99e5q1X32HTqth/QODuC629X42iqJQVlbm+FkoikJYWBgGg4HQ0FCXz+I/evQoTz31FFu2bGH27NnMnTuXwMAra1tP0bIkqEWblpmZyZNPPsnevXt54oknePTRR1ttAYpfYrVaOXPmjOPQarV06NCBDh06oNfr8ff3d1pwK3aVGesOsCX7DEE+niyd0O+SLoW61KA+VGRi/keHsavwp9t7MW2Yc8+12u12TCYT5eXlVFRUUFFRgbe3t6ORpNfrXTKs/WOFhYU8/fTTbNiwgfvvv58FCxZgMBhcXS3RBkhQiyvCF198wbx58ygqKuLxxx9n+vTpbrPKmN1up7Ky0hEklZWVeHp6OjW468w2fvfybrJLzhId4sv/+10Cvl4X1yu+lKAuqzEz+51vqW6wMi4xnGUTE1u8QXKhYD7XENLr9XTs2JGAgAC3mbRWWFjI0qVLWb16NWPHjuUvf/lLq62+J64MEtTiiqGqKh988AGLFi3i1KlTPProo6SlpbXKJgkXQ1EUqqqqfhLcwcHBBAUFERgYSFBQ0GWfryw2NTB25S7KaswMjA5m/m29LmoDj4sNaovNzhP/ySKvtJZendrz/kND8PG6vMljqqpSV1eHyWSiuroak8lEVVVVk2Du0KED7du3d5tgPicnJ4clS5awfv16brvtNubPn0///v1dXS3RBklQiyuOqqps3ryZxYsXs3//fn7/+98zZ84cOnXq5OqqXdC54D4/jGpra2nXrl2T4A4ICMDX1/eiAulgoYmJq3fTaLUzpl8404fHNvuxFxPUqqqy4otctmSXEuTrSXraMDqHXNwpCEVRqKur4+zZs5hMJsf7Ybfbad++veO9CA4OdstgPiczM5PFixeTnp7OXXfdxRNPPEGPHj1cXS3RhklQiyvanj17WLx4MRkZGdx333388Y9/pGvXrq6u1q+yWq1UV1c7gttkMlFXV4dGo8HPzw8/Pz/8/f0dh5+fH97e3hcMr08OlfDw+kwAHkruyqi+zWuwXExQf3KohH/uOIFWA69Pu5bhcReeba6qKvX19dTV1VFbW+s46urqqK+vR6fTERAQQFBQkOMICAhwi3PMv0RVVb788kuee+45vvrqKx544AEee+wxWZNbtAgJanFVOHz4MEuWLOHdd99lzJgxzJo1i2HDhrltr+xC7HY79fX1jmA7P+gaGxvRarW0a9fOcXh7eztuv3mwkn/uOo1WAwtu7U5SlxA0Gu0vvv7mBLWqqhwtNjH/o6PY7CqPpkRzV2IHGhsbaWxsxGw2O26f+xzA19e3SUPjXGOjXbt2bepnYrFYeO+991ixYgXHjx8nLS2NRx55hI4dL/2yOCF+TIJaXFXy8/NZuXIlr7zyClFRUaSlpXH33Xe7xUzxy2Gz2WhoaPjZgGxoaGDtIQt7S6GdTmV2HwWDL2h1Hmi0OrQ6HVqtDjSaJkHZWFuNt9/3w8yqqqKqdlRFwW5XsCsKpkaFF7J0nLVq6K9Xmd5bi4+PT5NGwo8bDj4+Pm7fQ/41xcXFrFq1ilWrVtG+fXvS0tKYMmUK7dtf2qVwQvwSCWpxVaqvr2fDhg289NJLFBQUkJqayowZM+jVq5erq+Y0ZpvC5LV72Z9fRViAN38d250ALy3qD6FrtyugqoD6fSjbFcoLcukQFY9WpwO+D3GNTodW54Gialj4aR7HztQRH+rPBzOH4ufdOjtLuYLdbmfr1q2sWrWK9PR0RowYwaxZsxgxYkSbb3gI9yZBLa5qqqqye/duXn75Zd59912uueYaZsyYwfjx49t8L/tCKussjFu5i4LKenp1as+z4/rgqbtwyPza0Pc/tufx6WEjAe08SE8bRpcO7nE5XEsrKSlh3bp1rF69mpqaGqZNm8b06dOJjW3+xDwhLoc0A8VVTaPRMGTIEN544w2KiooYP348ixYtIjQ0lNTUVDIyMrDZbK6uZosJ8fPi1SkDCWjnwdGSs7z0RS6X0lbffNTIp4eNaDTw4qTEKy6ka2pqeP3117n55puJiooiIyOD5557jsLCQhYvXiwhLVqVBLUQP9Dr9cyePZsjR46wc+dOQkNDmTJlCpGRkcyePZv9+/dfUqi5m26hAfxjchI6rYZtx8t490DRRT0+50wN/9h+AoDZN8VzY48wZ1Sz1VmtVjZt2sSkSZMICwtj2bJl3HzzzeTn57NlyxbuvPNOly8/Kq5OMvQtxC9QFIVt27axfv163n//fcLDw5k8eTJ33nkn3bt3d3X1Lsu/95xi/oeHAXhiZA+GdevQ5PsXGvo21VuY/c63lNdauKlnGKvvHYD2IhZRcTeKorB7927efPNN3n77bfz8/Lj77ruZPHkyffr0cXX1hAAkqIVotoaGBtLT0/n3v/9NRkYG0dHRjB49mjFjxjBkyBA8PNreRKpn0o/w2q58vHRaFt/Rl/iwAMf3fhzUNsXOgo8Oc7j4LLEd/fhw5lDat3Pd7lOXqqamhoyMDNLT0/n4449RVZU77riDe+65h2HDhsnEMOF2JKiFuAS1tbVs2bKFjRs3smnTJhRFYdSoUYwePZqRI0e2mct0FLvK9Df288WxUoJ9PVk6IZGOAd7AT4N6zc6TbDxYjJ+Xjo/ShtItNOBXnt19FBYWkp6ezsaNG9m2bRuxsbGMGTOG0aNHM3jwYHQ61+6TLcQvkaAW4jIpisK+ffvYuHEj6enp5OTkkJyczE033URKSgoDBgxw6952rdnG7/75NceMNcR08GPJHQn4eOmaBPWOvEr+tjkHgJfvGcDIPu6961NNTQ27du1i+/btfP755xw6dIjhw4czevRoRo8eTVxcnKurKESzSVAL0cJOnjzJxx9/zLZt29ixYwcWi4Xhw4eTkpJCSkoKSUlJbhfcRVX1jFv5NeW1Zq7tEsJTo3qiURXyv/0Ke2R/5n1wBLPNTtoN3Zh7i/udm6+trXUE8/bt2/nmm2+Ijo4mJSWFG2+8kVtvvZWQkBBXV1OISyJBLYQT2e12Dh065AiQHTt2YLVaGT58ONdffz3XXHMNSUlJbrHD138Lqpi4eg8Wm51xiRFMHdyZI998xfLjfpTWmEmO78irU665qB24nEFVVQoLCzlw4AD79u1zBHNUVJSjMZScnEx0dLRL6ylES5GgFqIV2e12srKy2L59Ozt37uTAgQOcOnWK2NhYBgwY4DiSkpJc0gNMP1jMrDf/C8Dvr49h28ETHK/WEhXiS3raMAJ9W3fymKqqFBQUcODAgSZHVVUVvXr1YuDAgSQnJ5OcnEyXLl1atW5CtBYJaiFcrLy8nMzMTDIzMx1B9N1339GlSxf69+9P9+7diY+PdxwdOnRw6sYVK7bmOs5HA/h4avlg5lB6GJw3Qc5ut1NYWEhOTo7jyM7OJjMzE5PJRO/evZs0ZBISEq7IleOEuBAJaiHcUGVlJZmZmRw8eJDc3FxHeJ0+fZrAwMAmwd21a1fCw8Pp1KkTnTp1uuy9mlVV5Q9vf8tH3xYDsPzOBMYldb6s12O32ykvL6ekpISSkhJOnz7teF25ubnk5uZis9mIjY1t8tr69+9PQkICPj4+l1W+EG2ZBLUQbUhtbS15eXlNep4nTpxwBGBjYyM+Pj506tSpSXiHhoYSEBDgOPz9/Zt8DAgIwNfXF51Oh1arxaKoLN+SS21xHk+n3oJOp0NRFGw2m2NrzZqaGsfH82+fPXsWo9FIcXGxo15GoxGbzUZgYKCjbnFxcU1COSYmBk/PtnddthDOJkEtxBVCVVWqq6sd4Xh+UJaVlf0kUM+/rSjKRZXl5eX1k9A/d7t9+/YYDAZHI+H8Q4arhbh4EtRCXOVUVaWxsZH6+nrsdrvjUBQFrVbb5NDpdPj5+cma10K0IglqIYQQwo3JorZCCCGEG5OgFkIIIdyYBLUQQgjhxiSohRBCCDcmQS2EEEK4MQlqIYQQwo1JUAshhBBuTIJaCCGEcGMS1EIIIYQbk6AWQggh3JgEtRBCCOHGJKiFEEIINyZBLYQQQrgxCWohhIPFYnF1FX7CHeskRGuSoBbCTaWkpJCWlkZaWhpBQUHo9Xrmz5/PuZ1pLRYLjz/+OBEREfj5+TFo0CC2b9/ueHxFRQV33XUXkZGR+Pr60rdvX958880LljFnzhw6dOjAiBEjAFi4cCFRUVF4e3sTHh7OI4884nhMVVUVqampBAcH4+vry6233kpubq7j+//6178ICgri888/p2fPnvj7+zNy5EhKSkqa9bqnTJnCuHHjWLx4MeHh4cTHx1/qWyjEFUGCWgg39vrrr+Ph4cHevXtZsWIFy5YtY+3atQBMnTqVXbt28dZbb5GVlcWECRMYOXKkIzQbGxsZMGAAmzZt4vDhwzz44IPce++97N2794Jl7Nq1i1WrVvHee++xbNkyVq1aRW5uLh9++CF9+/Z13H/KlCns37+fjRs3snv3blRVZdSoUVitVsd96uvreeGFF1i3bh1ffvklBQUFzJ07t9mve+vWrWRnZ7N582Y2bdp0OW+hEG2fKoRwS8nJyWrPnj1Vu93u+NoTTzyh9uzZU83Ly1M1Go16+vTpJo/5zW9+oz755JM/+5yjRo1SH3vssSZlJCYmNrnP0qVL1fj4eNVisfzk8Tk5OSqg7tq1y/G18vJy1cfHR33nnXdUVVXV1157TQXUvLw8x31WrlyphoWFNet133fffWpYWJhqNpubdX8hrnTSoxbCjV133XVoNBrH54MHDyY3N5f9+/ejqirx8fH4+/s7jh07dnDixAkAFEVh0aJFJCQkoNfr8ff3JyMjg4KCgiZlDBw4sMnnEyZMoKGhgdjYWKZPn84HH3yAzWYDIDs7Gw8PDwYNGuS4v16vp3v37mRnZzu+5uvrS9euXR2fd+rUidLS0ma/7r59++Ll5dXs+wtxJfNwdQWEEJdGp9Nx4MABdDpdk6/7+/sDsHTpUpYtW8by5cvp27cvfn5+/OEPf/jJ5Cw/P78mn3fu3Jnjx4+zefNmtmzZwsMPP8zzzz/Pjh07HOfHf0xV1SYNCk9Pzybf12g0P/vYC/lxnYS4mklQC+HG9uzZ85PP4+Li6N+/P4qiUFpayvDhwy/42J07dzJ27FjuueceAOx2O7m5ufTs2fNXy/Xx8WHMmDGMGTOGmTNn0qNHDw4dOkSvXr2w2Wzs3buXIUOGAN9PWsvJyWnW8wohLp4EtRBurLCwkDlz5jBjxgwyMzN56aWXWLp0KfHx8UyePJnU1FSWLl1K//79KS8v54svvqBv376MGjWKbt268f777/P1118THBzM3/72N4xG468G6r/+9S8URWHQoEH4+vqybt06fHx8iI6ORq/XM3bsWKZPn86qVasICAhg3rx5REREMHbs2FZ6V4S4usg5aiHcWGpqKg0NDVx77bXMnDmTWbNm8eCDDwLw2muvkZqaymOPPUb37t0ZM2YMe/fupXPnzgAsWLCApKQkbrnlFlJSUjAYDIwbN+5XywwKCmLNmjUMHTqUhIQEtm7dSnp6Onq93lHugAEDuP322xk8eDCqqvLJJ5/8ZLhbCNEyNOrFnDgSQrSalJQUEhMTWb58uaurIoRwIelRCyGEEG5MgloI0arOv5zsx8fOnTtdXT0h3I4MfQshWlVeXt7Pfi8iIgIfH59WrI0Q7k+CWgghhHBjMvQthBBCuDEJaiGEEMKNSVALIYQQbkyCWgghhHBjEtRCCCGEG5OgFkIIIdyYBLUQQgjhxv4/B2U5V/vBYpEAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "metrics = [\"nse\", \"kge\", \"spearman_rho\", \"pearson_r\"]\n", - "values = [gage_metrics[m] for m in metrics]\n", - "\n", - "# close the loop\n", - "values += values[:1]\n", - "angles = np.linspace(0, 2*np.pi, len(metrics)+1)\n", - "\n", - "plt.figure()\n", - "ax = plt.subplot(111, polar=True)\n", - "\n", - "ax.plot(angles, values)\n", - "ax.fill(angles, values, alpha=0.2)\n", - "\n", - "ax.set_xticks(angles[:-1])\n", - "ax.set_xticklabels(metrics)\n", - "\n", - "plt.title(f\"Performance Metrics: {site_id}\")\n", - "plt.show()" - ] - }, { "cell_type": "markdown", "id": "79c4a3ea", @@ -5026,21 +675,10 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": null, "id": "2540851c", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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0jmDXZpEkhBuoX1SOH1ax2EyVExaCnEm5LyUEKKmfPDBByxZsgSj0ciDDz7I5MmTT3tMkhBCnEqVEn+TJk1i/PjxPP3004SFhfHFF18QHx/PLbfcwmWXXVbdMYpacMcdd/Dee+95E3/vvvsud955J7/99pt3n4cffpgvvviCBQsW0LRpU1588UUGDRrE7t27iY6O5uDBg1x33XWMHDmS++67jzVr1jB+/Hif19m8eTODBg3imWee4Z133iErK4v777+f+++/n/fee69CXKqqMnjwYKKjo/n++++JiIhg7ty59O/fn507dxIdHc2nn37KU089xezZs7nooov44IMPeO2113ySlkIIUVU2lxsAvXfGnx6DXiFfNWJRHOg8gZr4K5vxp+j0BJVU/DlUo9bqS/WAxwV6uVLxbMgxlxBCiBplCi6rCszZD3+8qs0KLJV3CFa9rS2t+kOPeyA8qVpeWlEUgkzaMUT8CfnCIecke29n5tvYmp7PlkN5/LjtKJsP51V4rsrmDEYEGbmiUyID2yfQu0Ws91hF1F9dunTROnCchnXr1tVwNEIIcWasVitZWVne7mqPPfYY2dnZTJ48mZYtW/o5OiFEQ1OlxN/27dv5+OOPtScwGLBarYSGhvL0009z9dVXc99991VrkPXSl/dqMxRqW3A0XDfvjB82bNgwJk2axL59+1AUhT/++INFixZ5E39FRUW8+eabzJ8/n8svvxyAt99+myVLlvDOO+8wceJE3nzzTVq0aMGsWbNQFIU2bdqwefNm70BrgJdeeombb76ZsWPHApCamsprr71G3759efPNN7FYfGdJ/Prrr2zevJnMzEzMZjMAL7/8Ml9//TWff/459957L6+88gp33nknd999NwDPPvssP/30EzZbYLbfE0JUL5tTm2OnK038KXqMeh02TERQFLAVf6qqoi8/4698q0+1pBLQZZfE31mSYy4hhBC1JqopDJ4BB/6E9E1aBWD6xrLtu3+GtF+hSW+IbwumEAiOBWOw9vs+PBlC46s9rPhwC/HhFi5uE88D/VM5nGtl+5F8Dhwv5mBOMbnFTv7OKGBHRr7PnME8q5OPVx3k41UHMRl09GwezcD2CdzYIwWzQZKA9dE111zjvW2z2ZgzZw7t27end+/eAKxcuZKtW7cyatQoP0UohAh0GXk2sgrsxIebSQjXznF6PB4+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4QemTp3K888/z44dOxgzZgwTJ070Orgu7tixY1xyySWMGTOGHTt28Nxzz/Hoo4/yv//9r45b3rhVddzXrFnDuHHjWLx4Mdu2beP8889n0qRJ7Nixo45b3rhVddyLZGZmctttt3HhhRfWUUubluqM+/XXX8/y5cuZPXs2UVFRfPfdd/Tq1asOW934VXXc161bx2233cbdd9/Nvn37+Omnn9iyZQv33HNPHbe8ccvNzWXgwIF89NFHldpevlebtup+7zQkq1evZsqUKWzcuJGlS5ficDgYP348ubm57m3eeust3nnnHT766CO2bNlCeHg448aNIzs7273N1KlTWbhwId9//z3r1q0jJyeHyy67DKfTWR/dKteWLVv4/PPPGTBggNf9TaWf6enpnHPOOZhMJv7880/279/PjBkzCAkJcW/TFPr65ptv8umnn/LRRx9x4MAB3nrrLd5++20+/PBD9zaNsZ8Vfc/UVJ9uvvlmdu7cyV9//cVff/3Fzp07mTx5cq33r7jy+pqXl8f27dt58cUX2b59OwsWLCA6OprLL7/ca7vG0NfKHjssWrSITZs2ERERUWJdU+jnkSNHGD16NL169WLVqlXs2rWLF198ER8fH/c2DaqfSjRrTqezvpvQKMm4VU52drZKTU1VaWlp9d2URmf79u3qo48+qu9mNDoHDhxQ4eHh6r333qvvpjRK+fn5Kjs7W9ntdvd98nkn6tvw4cPVAw884HVfr1691DPPPFPq9v/+979Vr169vO67//771dlnn11rbWyKqjrupenTp4965ZVXarppTVp1x/2GG25QL7zwgnr55ZfVwIEDa7GFTVNVx/3PP/9UwcHBKjU1tS6a12RVddzffvtt1aVLF6/7PvjgAxUZGVlrbWzqALVw4cJyt5Hv1aatJr7vG5qkpCQFqNWrVyullHK5XCo8PFy98cYb7m0KCgpUcHCw+vTTT5VSSmVkZCiTyaS+//579zZxcXFKr9erv/76q247UIHs7GzVvXt3tXTpUjV27Fj12GOPKaWaVj+ffvppNXr06DLXN5W+Xnrppequu+7yuu/qq69Wt956q1KqafTz9O+ZmurT/v37FaA2btzo3mbDhg0KUAcPHqzlXpWuMt+pmzdvVoA6ceKEUqpx9rWsfsbGxqp27dqpvXv3qo4dO6p3333Xva6p9POGG25wvz9L09D6KRl/zdDx48f55ptvcDqd6PV6rxRyUTYZt6rZt28f1113Heeccw7XXnstX3zxRX03qdHYvXs3Q4cO5cSJE/XdlEZl586dDBs2jMTERLZv317fzWl09u7dy3XXXceYMWO47rrreOGFFwDQ6+VQQdQfm83Gtm3bGD9+vNf948ePZ/369aXus2HDhhLbX3zxxWzduhW73V5rbW1KqjPup3O5XGRnZ9OyZcvaaGKTVN1xnzNnDkeOHOHll1+u7SY2SdUZ919//ZVhw4bx1ltv0a5dO3r06MGTTz5Jfn5+XTS5SajOuI8aNYrY2FgWL16MUorExER+/vlnLr300rpocrMl36tNV0183zdEmZmZAO5jkGPHjpGQkODVT4vFwtixY9393LZtG3a73WubiIgI+vXr1+DGYsqUKVx66aVcdNFFXvc3pX4Wfc9ed911tGnThsGDB3udU2oqfR09ejTLly8nOjoagF27drFu3TouueQSoOn0s7ia6tOGDRsIDg5mxIgR7m3OPvtsgoODG2S/i2RmZqLT6dzZq02lry6Xi8mTJ/PUU0/Rt2/fEuubQj9dLhd//PEHPXr04OKLL6ZNmzaMGDHCqxxoQ+unnM1rZqKjoxkyZAivvvoqs2bNkiBWJcm4Vc3evXsZM2YMPXv25LnnniMsLIwff/zRK21flG7Xrl2MHDmSp556irfeequ+m9No7Nq1i3POOYdp06axcuVK5s6dy5IlS+q7WY1GVFQUY8eOpXv37jzxxBP06dOHTz/9lCuvvNL9w1lJ2U9RD1JSUnA6nYSFhXndHxYWRkJCQqn7JCQklLq9w+EgJSWl1tralFRn3E83Y8YMcnNzuf7662ujiU1Sdcb90KFDPPPMM8ybNw+j0VgXzWxyqjPuR48eZd26dezdu5eFCxfy3nvv8fPPPzNlypS6aHKTUJ1xHzVqFPPmzeOGG27AbDYTHh5OSEiIV0k0UfPke7Xpqonv+4ZGKcUTTzzB6NGj6devH4C7L+X1MyEhAbPZTIsWLcrcpiH4/vvv2b59O9OnTy+xrin18+jRo3zyySd0796dv//+mwceeIBHH32Ub775Bmg6fX366ae56aab6NWrFyaTicGDBzN16lRuuukmoOn0s7ia6lNCQgJt2rQp8fht2rRpkP0GKCgo4JlnnuHmm28mKCgIaDp9ffPNNzEajTz66KOlrm8K/UxKSiInJ4c33niDCRMmsGTJEq666iquvvpqVq9eDTS8fsqvw2YkPT2dqVOncv7556PX6/nmm29QSnHvvfdiMBhwuVyS2VEKGbeqOXXqFDfccAP33Xcfb7zxBgCdOnXitddeIzU1lby8vBJf8EJz8uRJBg8ezNNPP8306dOx2+28++677N27l4CAAIYNG8Zdd91V381scPbs2cOQIUN45plnePLJJ0lOTua8885j4cKFnH/++RgMBnmPlsPpdPL5559z7bXX8s477wCQn5/P/v37+eWXX7j66qtZvnw5Op0OpRQ6na6eWyyao9NfdxW9FkvbvrT7RfmqOu5FvvvuO6ZNm8Yvv/xS6o8aUb7KjrvT6eTmm2/mlVdeoUePHnXVvCarKq93l8uFTqdj3rx5BAcHA/DOO+9w7bXXMnPmTHx9fWu9vU1FVcZ9//79PProo7z00ktcfPHFxMfH89RTT/HAAw8we/bsumhusyXfq01bdb/vG6KHH36Y3bt3s27duhLrqtPPhjQWMTExPPbYYyxZssRrPqnTNfZ+gvY9O2zYMF5//XUABg8ezL59+/jkk0+47bbb3Ns19r7+8MMPzJ07l/nz59O3b1927tzJ1KlTiYiI4Pbbb3dv19j7WZqa6FNp2zfUftvtdm688UZcLhcff/xxhds3pr5u27aN999/n+3bt1e5PY2pn0XJP1dccQWPP/44AIMGDWL9+vV8+umnjB07tsx966ufcia0GXE4HHTt2pV7772XL774gk6dOvHtt9/yxRdfuDPYJKOjJBm3qomNjeXyyy/nvvvuc9+3ZMkSduzYwejRo5k0aRK33nprPbaw4YqNjSUkJIS4uDgAJkyYwIIFC8jPz+fgwYO89dZbPPzww/XcyobFbrfz4YcfMm3aNF577TUAWrduzfnnn893331HRkaGvEcrYDAYOHz4MLm5uYB2MOPr68vYsWO57777iI6O5s477wTk5I6oe61atcJgMJS48i0pKanMi0jCw8NL3d5oNBIaGlprbW1KqjPuRX744QfuvvtufvzxxxIlqET5qjru2dnZbN26lYcffhij0YjRaOTVV19l165dGI1GVqxYUVdNb9Sq83pv27Yt7dq1cwf9AHr37o1SitjY2Fptb1NRnXGfPn0655xzDk899RQDBgzg4osv5uOPP+bLL78kPj6+LprdLMn3atN1Jt/3DdEjjzzCr7/+ysqVK4mMjHTfHx4eDlBuP8PDw7HZbKSnp5e5TX3btm0bSUlJDB061P29v3r1aj744AOMRqO7nY29n6B9z/bp08frvt69e3Py5Emg6fyfPvXUUzzzzDPceOON9O/fn8mTJ/P444+7MzqbSj+Lq6k+hYeHk5iYWOLxk5OTG1y/7XY7119/PceOHWPp0qXubD9oGn1du3YtSUlJdOjQwf3ZdOLECf71r3/RqVMnoGn0s1WrVhiNxgo/mxpSPyXw14y0bt2aF198kYsvvthdEqUoiPX555+7r1yVOv0eSikZtyrq168fDzzwAF26dAG0dO8ZM2bw9ttvM3/+fB599FHWrVvHZ599Vs8tbXhGjBjBL7/8wtKlS9Hr9bRo0YIFCxbw008/8dtvv3HfffexbNmyUq9ebK5MJhPTp0/nxRdfBDxX4Dz55JNERkbyn//8x/0eFSU5nU4cDgc9evQgKyuLHTt2oNfrOX78OP/5z38YOnQoTz/9NDt37iz1wESI2mY2mxk6dChLly71un/p0qWMGjWq1H1GjhxZYvslS5YwbNgwTCZTrbW1KanOuIOW6XfHHXcwf/58mXOrGqo67kFBQezZs4edO3e6/x544AF69uzJzp07veaNEGWrzuv9nHPO4dSpU+Tk5Ljvi46ORq/Xe51sFmWrzrjn5eWVqOJgMBgAKUlem+R7temq7vd9Q6OU4uGHH2bBggWsWLGCzp07e63v3Lkz4eHhXv202WysXr3a3c+hQ4diMpm8tomPj2fv3r0NZiwuvPDCEt/7w4YN45ZbbmHnzp106dKlSfQTtO/ZqKgor/uio6Pp2LEj0HT+T8v6Xis6r9FU+llcTfVp5MiRZGZmsnnzZvc2mzZtIjMzs0H1uyjod+jQIZYtW1bigpmm0NfJkyeze/dur8+miIgInnrqKf7++2+gafTTbDZz1llnlfvZ1OD6qUST53K5Stxns9mUUkqlpaWpm266SY0aNUp98sknKi8vTz322GPqySefrOtmNihOp1Mp5Rk7h8OhlJJxK0tZ46WUUj/88INasmSJ+3ZGRobq3bu3evnll+u0jQ3V6WNns9nUypUr1Y033qhWrlzptS4mJkZZLBY1Z86c+mhqg1I0bkX/Fn/NKaWU3W5XDz30kBo+fLjKzs5WSpX+Wdhcnf66W79+verXr58aOHCguvDCC5Wvr6+6//77lVJKHT16VJlMJrVhw4Z6a69o3r7//ntlMpnU7Nmz1f79+9XUqVOVv7+/On78uFJKqWeeeUZNnjzZvf3Ro0eVn5+fevzxx9X+/fvV7NmzlclkUj///HN9daFRquq4z58/XxmNRjVz5kwVHx/v/svIyKivLjRKVR3307388stq4MCBddTapqOq456dna0iIyPVtddeq/bt26dWr16tunfvru6555766kKjVNVxnzNnjjIajerjjz9WR44cUevWrVPDhg1Tw4cPr68uNErZ2dlqx44daseOHQpQ77zzjtqxY4c6ceKEUkq+V5ubit6HjcGDDz6ogoOD1apVq7yOQfLy8tzbvPHGGyo4OFgtWLBA7dmzR910002qbdu2Kisry73NAw88oCIjI9WyZcvU9u3b1QUXXKAGDhxY4rdmQzJ27Fj12GOPuW83lX5u3rxZGY1G9dprr6lDhw6pefPmKT8/PzV37lz3Nk2hr7fffrtq166d+v3339WxY8fUggULVKtWrdS///1v9zaNsZ8Vfc/UVJ8mTJigBgwYoDZs2KA2bNig+vfvry677LIG01e73a4uv/xyFRkZqXbu3On1+WS1WhtVXyv6Pz1dx44d1bvvvut1X1Po54IFC5TJZFKff/65OnTokPrwww+VwWBQa9eubZD9lMBfE3bq1CkVExOjlCr9hHfRid/09HR18803q9GjR6sRI0YoX19ftW3btjpta0Ny8OBB9eSTT6q7775bvfLKKyohIcFrfdEbVcZNU9F4FedyuVROTo665JJL1FdffeW+r7k6fezi4+OVUlrQ6tixY6qgoEAppY2Ry+VSMTExavjw4e6AYHNV0Wuu6DVVdJJixowZ9dHMBqv4+E2bNk2dOnVKKaXU7t271YwZM9Rzzz2nvvnmG6WUNpabN29WAwcOLPOAToi6MHPmTNWxY0dlNpvVkCFD1OrVq93rbr/9djV27Fiv7VetWqUGDx6szGaz6tSpk/rkk0/quMVNQ1XGfezYsQoo8Xf77bfXfcMbuaq+3ouTwF/1VXXcDxw4oC666CLl6+urIiMj1RNPPOF1kllUTlXH/YMPPlB9+vRRvr6+qm3btuqWW25RsbGxddzqxm3lypXlfl7L92rzU977sDEo7fUMeF0w63K51Msvv6zCw8OVxWJR5557rtqzZ4/X4+Tn56uH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lg4dOjBx4kSWLVtGXFwczz//vNf2FX1XT5s2jQ4dOmCxWIiIiODRRx91r6voOKu0Y5EvvvgCHx+fEmUrH330UcaOHeu+XdExXlJSEpMmTcLX15fOnTszb968Csfm+eef59SpUyxbtoxLLrmEDh06cO655/L3339jMpmYMmWKe9vSyoYOGjSIadOmuW+/88479O/fH39/f9q3b89DDz1ETk5Oif7//fff9O7dm4CAACZMmOA+zp02bRpff/01v/zyi/v4ZtWqVSVKfZamovH5+OOP6d69Oz4+PoSFhXHttddWOD5CNGtKNBpHjhxRP/74o/u23W5XSik1fvx49fLLL5fY3ul01lXTGryYmBj38hdffKEsFov66quv1NatW9W8efOUTqdTCxYsqMcWNiwyXtUnY1c9Mm5nRsZPCCHqxu23366uuOKKcrd56qmnVMeOHVVGRobauXOnslgs7s9gp9Opzj77bNW3b1+1ZMkSdeTIEfXbb7+pxYsXK6WU2r17twoICFDvvvuuio6OVv/8848aPHiwuuOOO9yPf/PNN6tRo0apNWvWqMOHD6u3335bWSwWFR0drZRSauPGjUqn06np06erqKgo9f7776uQkBAVHBzsfoydO3eqTz/9VO3evVtFR0er559/Xvn4+KgTJ064t+nYsaNq2bKlmjlzpjp06JCaPn260uv16sCBA0oppbKzs1WXLl3UmDFj1Nq1a9WhQ4fUDz/8oNavX6+UUuqvv/5SQUFB6quvvlJHjhxRS5YsUZ06dVLTpk0rc+xefvllNXDgQK/7ZsyYoQCVlZWl5syZo0wmkxo1apT6559/1MGDB1VOTo66/PLLVe/evdWaNWvUzp071cUXX6y6deumbDabUkq59xs2bJhav3692rp1qxo+fLgaNWpUlcckMDDQPbYffPCBMhgMasmSJe5tALVw4UKllFLHjh1TgNqxY4dSSqmVK1cqQKWnpyur1aree+89FRQUpOLj41V8fLzKzs5WMTExSq/Xq82bN7sfc9euXUqn06kjR46UOXZCCCFEU5Samqp0Op16/fXXS11/7733qhYtWiiXy6WUqvi7+qefflJBQUFq8eLF6sSJE2rTpk3q888/dz9eRcdZZR2LhIWFqVmzZrkfx+FwqLCwMPXZZ58ppSp3jDdx4kTVr18/97HKqFGjlK+vr3r33XdL7bvT6VQhISHqvvvuK3X9a6+9pnQ6nUpNTXWPzemPNXDgQK9zyu+++65asWKFOnr0qFq+fLnq2bOnevDBB93ri/p/0UUXqS1btqht27ap3r17q5tvvlkppR0fXn/99WrChAnu4xur1VruMVFlxmfLli3KYDCo+fPnq+PHj6vt27er999/v9R+CyE0EvhrpIoH9a6//nr13HPPuW9PmzZNbdy4sT6a1eDZ7Xb1xRdfqH/++cfr/iFDhqipU6fWU6saLhmv6pOxqx4ZtzMj4yeEELXr9ttvVwaDQfn7+3v9vfrqq+5trFarGjx4sLr++utV37591T333ONe9/fffyu9Xq+ioqJKffzJkyeXOHmzdu1apdfrVX5+vjp8+LDS6XQqLi7Oa5sLL7xQPfvss0oppW666SY1YcIEr/U33HCDV+CvNH369FEffvih+3bHjh3Vrbfe6r7tcrlUmzZt1CeffKKUUuqzzz5TgYGB7pNJpxszZkyJk3Tffvutatu2bZltOD3wd+DAAdWtWzc1fPhwpZR2sglQO3fudG8THR2tAK/vvpSUFOXr6+u+aLJov+K/kQ4cOKAAtWnTpiqNSWljO3HiRPftygb+itpV2v/LxIkTvU6yTZ06VZ133nlltlMIIYRoqjZu3Oj13Xq6d955RwEqMTFRKVXxd/WMGTNUjx493BcHFVeZ46zSjkWUUurRRx9VF1xwgfv233//rcxms0pLS1NKVXyMFxUVVeaxSlmBv4SEhHLXL1iwwOtYpzKBv9P9+OOPKjQ01H27qP+HDx923zdz5kwVFhbmvl3ahXIVHRNVND7/+9//VFBQkMrKyiqzrUIIbzLHXwMWHR3NZ599Rnp6Op06dWLy5Ml06tSp1Hn6nE4nAC+++CKvvfYakyZNquvmNhjFx61z587ceuutdO7cGdBKB91zzz1e26enpxMSEsLgwYPro7n1Tsar+mTsqkfG7czI+AkhRP06//zz+eSTT7zuKz6vjNlsZu7cuQwYMICOHTt6lVTauXMnkZGR9OjRo9TH3rZtG4cPH/Yq7aSUwuVycezYMfbu3YtSqsT+VquV0NBQAA4cOMBVV13ltX7kyJH89ddf7tu5ubm88sor/P7775w6dQqHw0F+fj4nT5702m/AgAHuZZ1OR3h4OElJSe6+DB48uMw5dbZt28aWLVt47bXX3Pc5nU4KCgrIy8vDz8+v1P327NlDQEAATqcTq9XKeeed51Vi1Gw2e7XrwIEDGI1GRowY4b4vNDSUnj17cuDAAfd9RqORYcOGuW/36tWLkJAQDhw4wPDhwys9JiNHjixx+/SyWWfq3nvv5a677uKdd97BYDAwb948ZsyYUaPPIYQQQjQFqnDKo+LnSsv7rr7uuut477336NKlCxMmTOCSSy5h0qRJGI1Gtm/fXuFxFpQ8FgG45ZZbGDlyJKdOnSIiIoJ58+ZxySWXuMvBV3SMFx0dXeaxypmOjdlsrvQ+K1eu5PXXX2f//v1kZWXhcDgoKCggNzcXf39/APz8/Ojatat7n7Zt27qPD6urovEZN24cHTt2dP+/TZgwgauuuqrM40khBEjgr4Hav38/I0eOZMyYMQQFBfHhhx+ydOlSJk+ezD333INer8dut2MymcjJyXFv8/bbb7N161aGDBlS312oF6eP2wcffMCSJUu8xs3hcGA0el7677zzDjExMV51t5sLGa/qk7GrHhm3MyPjJ4QQ9c/f359u3bqVu8369esBSEtLIy0tzX2ixNfXt9z9XC4X999/v9dcM0U6dOjA7t27MRgMbNu2DYPB4LU+ICAAqNyc30899RR///03//d//0e3bt3w9fXl2muvxWazeW1nMpm8but0OlwuV6X78sorr3D11VeXWOfj41Pmfj179uTXX3/FYDAQERGBxWLxWu/r6+t1cq+s/iqlSlwwWdoFlEX3VXZMSlPa456JSZMmYbFYWLhwIRaLBavVyjXXXFOjzyGEEEI0Bt26dUOn07F//36uvPLKEusPHjxIixYtaNWqVbmPU/Rd3b59e6Kioli6dCnLli3joYce4u2332b16tW4XK4Kj7Og5LEIwPDhw+natSvff/89Dz74IAsXLmTOnDnu9RUd40VFRXm1szJat25NSEgI+/fvL3X9wYMHMRqN7guF9Xp9ieMmu93uXj5x4gSXXHIJDzzwAP/5z39o2bIl69at4+677/barrTjw8ocf5anovExm81s376dVatWsWTJEl566SWmTZvGli1bzig4KkRTJoG/Bshms/Gf//yH6667jlmzZgGQkpLCQw89xJw5c8jPz+eRRx5xf9CGhITw0ksv4efnx9q1a5tt0K+y41Z0QnzdunV8//33zJ8/n+XLl9OxY8f6bH6dk/GqPhm76pFxOzMyfkII0Tgc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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "streamflow_utils.plot_streamflow_diagnostics(\n", " streamflow_data_df,\n", @@ -5051,12 +689,13 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "7f41f7ba", + "cell_type": "markdown", + "id": "30f069c4", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "FDC: plots streamflow against exceedance probability; compares the distribution of flows between observed and modeled data \n", + "Q-Q: compares modeled and observed flows at the same percentiles (quantiles)" + ] } ], "metadata": { diff --git a/src/cssi_evaluation/variables/streamflow_utils.py b/src/cssi_evaluation/variables/streamflow_utils.py index d593ecd..7b68da8 100644 --- a/src/cssi_evaluation/variables/streamflow_utils.py +++ b/src/cssi_evaluation/variables/streamflow_utils.py @@ -61,7 +61,7 @@ def plot_streamflow_diagnostics( plt.setp(ax.get_xticklabels(), rotation=45, ha="right") - # --- metrics annotation --- + # add metrics annotation if metrics_row is not None: textstr = ( f"Srho: {metrics_row['spearman_rho']:.2f}\n" @@ -92,7 +92,7 @@ def plot_streamflow_diagnostics( ax.plot(p, obs_sorted, label="Observed", linewidth=2) ax.plot(p, mod_sorted, label="Modeled", linewidth=2, alpha=0.8) - ax.set_yscale("log") # important! + ax.set_yscale("log") ax.set_xlabel("Exceedance Probability") ax.set_ylabel("Streamflow") ax.set_title("Flow Duration Curve")