diff --git a/CatchmentAttributes_nhdplus.ipynb b/CatchmentAttributes_nhdplus.ipynb
index b2475b7..705f27f 100644
--- a/CatchmentAttributes_nhdplus.ipynb
+++ b/CatchmentAttributes_nhdplus.ipynb
@@ -154,7 +154,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "/home/whitelightning450/mambaforge/envs/hyriver/lib/python3.10/site-packages/dataretrieval/nwis.py:692: UserWarning: WARNING: Starting in March 2024, the NWIS qw data endpoint is retiring and no longer receives updates. For more information, refer to https://waterdata.usgs.gov.nwis/qwdata and https://doi-usgs.github.io/dataRetrieval/articles/Status.html or email CompTools@usgs.gov.\n",
+ "/uufs/chpc.utah.edu/common/home/u0972368/conda-envs/hyriver/lib/python3.10/site-packages/dataretrieval/nwis.py:692: UserWarning: WARNING: Starting in March 2024, the NWIS qw data endpoint is retiring and no longer receives updates. For more information, refer to https://waterdata.usgs.gov.nwis/qwdata and https://doi-usgs.github.io/dataRetrieval/articles/Status.html or email CompTools@usgs.gov.\n",
" warnings.warn(\n"
]
}
@@ -440,7 +440,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "/tmp/ipykernel_304225/3686794627.py:4: UserWarning: 1 of 365 requests failed.. IDs of the failed requests are ['17077353']\n",
+ "/scratch/local/u0972368/981718/ipykernel_3936694/3686794627.py:4: UserWarning: 1 of 365 requests failed.. IDs of the failed requests are ['17077353']\n",
" catchments = wd_cat.byid(\"featureid\", comids) # Get the catchments for the comids of the flowlines of the tributaries of the station\n"
]
}
diff --git a/EE_Exercise.ipynb b/EE_Exercise.ipynb
new file mode 100644
index 0000000..51e3f25
--- /dev/null
+++ b/EE_Exercise.ipynb
@@ -0,0 +1,685 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "ed65cc92",
+ "metadata": {},
+ "source": [
+ "Imports"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "6c7e2e87",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/uufs/chpc.utah.edu/common/home/u0972368/conda-envs/hyriver/lib/python3.10/site-packages/google/api_core/_python_version_support.py:275: FutureWarning: You are using a Python version (3.10.20) which Google will stop supporting in new releases of google.api_core once it reaches its end of life (2026-10-04). Please upgrade to the latest Python version, or at least Python 3.11, to continue receiving updates for google.api_core past that date.\n",
+ " warnings.warn(message, FutureWarning)\n"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "import time\n",
+ "import requests\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import ee\n",
+ "\n",
+ "from pynhd import NLDI\n",
+ "from supporting_scripts import getData, dataprocessing, SNOTEL_Analyzer, mapping"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c6412ef6",
+ "metadata": {},
+ "source": [
+ "Setup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "79617e36",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "nldi = NLDI()\n",
+ "\n",
+ "usgs_gage_id = \"09330000\" # Fremont River near Bicknell, UT\n",
+ "WY = 2019\n",
+ "\n",
+ "StartDate = f\"{WY-1}-10-01\"\n",
+ "EndDate = f\"{WY}-09-30\"\n",
+ "\n",
+ "OutputFolder = \"files/SNOTEL\"\n",
+ "os.makedirs(OutputFolder, exist_ok=True)\n",
+ "os.makedirs(\"Figures\", exist_ok=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a73c3a6c",
+ "metadata": {},
+ "source": [
+ "EE Login"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "eef05df6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ee.Authenticate()\n",
+ "ee.Initialize()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6726f3fe",
+ "metadata": {},
+ "source": [
+ "Streamflow data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "6e1308ab",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/uufs/chpc.utah.edu/common/home/u0972368/conda-envs/hyriver/lib/python3.10/site-packages/geopandas/geoseries.py:772: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
+ " val = getattr(super(), mtd)(*args, **kwargs)\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Authenticating with Earth Engine...\n",
+ "Initializing Earth Engine...\n",
+ "Earth Engine initialized successfully.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " convective_fraction | \n",
+ " longwave_radiation | \n",
+ " potential_energy | \n",
+ " potential_evaporation | \n",
+ " pressure | \n",
+ " shortwave_radiation | \n",
+ " specific_humidity | \n",
+ " temperature | \n",
+ " total_precipitation | \n",
+ " wind_u | \n",
+ " wind_v | \n",
+ "
\n",
+ " \n",
+ " | Date | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 2018-10-01 | \n",
+ " 0.107919 | \n",
+ " 265.928666 | \n",
+ " 12.275103 | \n",
+ " 0.212778 | \n",
+ " 73997.583419 | \n",
+ " 196.268434 | \n",
+ " 0.005725 | \n",
+ " 11.922340 | \n",
+ " 0.089365 | \n",
+ " 0.913642 | \n",
+ " 4.007560 | \n",
+ "
\n",
+ " \n",
+ " | 2018-10-02 | \n",
+ " 0.029557 | \n",
+ " 304.154152 | \n",
+ " 13.961216 | \n",
+ " 0.104625 | \n",
+ " 73957.941048 | \n",
+ " 89.003282 | \n",
+ " 0.007564 | \n",
+ " 9.832566 | \n",
+ " 0.144091 | \n",
+ " -1.751890 | \n",
+ " 3.449391 | \n",
+ "
\n",
+ " \n",
+ " | 2018-10-03 | \n",
+ " 0.230969 | \n",
+ " 277.871537 | \n",
+ " 51.612060 | \n",
+ " 0.122942 | \n",
+ " 73882.076787 | \n",
+ " 167.323142 | \n",
+ " 0.007527 | \n",
+ " 9.150452 | \n",
+ " 0.112957 | \n",
+ " -0.844505 | \n",
+ " 2.330025 | \n",
+ "
\n",
+ " \n",
+ " | 2018-10-04 | \n",
+ " 0.316795 | \n",
+ " 279.622465 | \n",
+ " 67.608203 | \n",
+ " 0.177075 | \n",
+ " 73805.375300 | \n",
+ " 187.067744 | \n",
+ " 0.006030 | \n",
+ " 8.990522 | \n",
+ " 0.236266 | \n",
+ " 1.065523 | \n",
+ " 3.564316 | \n",
+ "
\n",
+ " \n",
+ " | 2018-10-05 | \n",
+ " 0.006660 | \n",
+ " 260.681259 | \n",
+ " 25.443709 | \n",
+ " 0.141444 | \n",
+ " 73801.376099 | \n",
+ " 176.036476 | \n",
+ " 0.005280 | \n",
+ " 5.840326 | \n",
+ " 0.005817 | \n",
+ " 2.237381 | \n",
+ " 0.429708 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " convective_fraction longwave_radiation potential_energy \\\n",
+ "Date \n",
+ "2018-10-01 0.107919 265.928666 12.275103 \n",
+ "2018-10-02 0.029557 304.154152 13.961216 \n",
+ "2018-10-03 0.230969 277.871537 51.612060 \n",
+ "2018-10-04 0.316795 279.622465 67.608203 \n",
+ "2018-10-05 0.006660 260.681259 25.443709 \n",
+ "\n",
+ " potential_evaporation pressure shortwave_radiation \\\n",
+ "Date \n",
+ "2018-10-01 0.212778 73997.583419 196.268434 \n",
+ "2018-10-02 0.104625 73957.941048 89.003282 \n",
+ "2018-10-03 0.122942 73882.076787 167.323142 \n",
+ "2018-10-04 0.177075 73805.375300 187.067744 \n",
+ "2018-10-05 0.141444 73801.376099 176.036476 \n",
+ "\n",
+ " specific_humidity temperature total_precipitation wind_u \\\n",
+ "Date \n",
+ "2018-10-01 0.005725 11.922340 0.089365 0.913642 \n",
+ "2018-10-02 0.007564 9.832566 0.144091 -1.751890 \n",
+ "2018-10-03 0.007527 9.150452 0.112957 -0.844505 \n",
+ "2018-10-04 0.006030 8.990522 0.236266 1.065523 \n",
+ "2018-10-05 0.005280 5.840326 0.005817 2.237381 \n",
+ "\n",
+ " wind_v \n",
+ "Date \n",
+ "2018-10-01 4.007560 \n",
+ "2018-10-02 3.449391 \n",
+ "2018-10-03 2.330025 \n",
+ "2018-10-04 3.564316 \n",
+ "2018-10-05 0.429708 "
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Get basin polygon from USGS gage\n",
+ "basin = NLDI().get_basins(usgs_gage_id)\n",
+ "geometry = basin.to_crs(\"EPSG:4326\").geometry[0]\n",
+ "basin_polygon_coords = list(geometry.exterior.coords)\n",
+ "\n",
+ "daily_NLDAS_df = getData.get_NLDAS_daily(\n",
+ " basin_polygon_coords,\n",
+ " begin_date=StartDate,\n",
+ " end_date=EndDate\n",
+ ")\n",
+ "\n",
+ "daily_NLDAS_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5ec20463",
+ "metadata": {},
+ "source": [
+ "SNOTEL download helper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "5e1e3675",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def download_snotel_csv(SiteName, SiteID, StateAbb, StartDate, EndDate, OutputFolder, tries=5):\n",
+ " out_csv = f\"./{OutputFolder}/df_{SiteID}_{StateAbb}_SNTL.csv\"\n",
+ "\n",
+ " if os.path.exists(out_csv):\n",
+ " df = pd.read_csv(out_csv)\n",
+ " df[\"Date\"] = pd.to_datetime(df[\"Date\"])\n",
+ " return df.set_index(\"Date\")\n",
+ "\n",
+ " url = (\n",
+ " \"https://wcc.sc.egov.usda.gov/reportGenerator/view_csv/\"\n",
+ " f\"customSingleStationReport/daily/start_of_period/{SiteID}:{StateAbb}:SNTL\"\n",
+ " f\"%7Cid=%22%22%7Cname/{StartDate},{EndDate}/WTEQ::value\"\n",
+ " \"?fitToScreen=false\"\n",
+ " )\n",
+ "\n",
+ " for attempt in range(tries):\n",
+ " try:\n",
+ " r = requests.get(url, timeout=60)\n",
+ " r.raise_for_status()\n",
+ "\n",
+ " with open(out_csv, \"w\", encoding=\"utf-8\") as f:\n",
+ " f.write(r.text)\n",
+ "\n",
+ " df = pd.read_csv(out_csv)\n",
+ " df[\"Date\"] = pd.to_datetime(df[\"Date\"])\n",
+ " return df.set_index(\"Date\")\n",
+ "\n",
+ " except Exception as e:\n",
+ " if attempt == tries - 1:\n",
+ " raise\n",
+ " wait = 2 ** attempt\n",
+ " print(f\"SNOTEL download failed: {e}\")\n",
+ " print(f\"Retrying in {wait} seconds...\")\n",
+ " time.sleep(wait)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "25e42b8b",
+ "metadata": {},
+ "source": [
+ "Snowtel Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "43a4d936",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SNOTEL download failed: HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)\n",
+ "Retrying in 1 seconds...\n",
+ "SNOTEL download failed: HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)\n",
+ "Retrying in 2 seconds...\n",
+ "SNOTEL download failed: HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)\n",
+ "Retrying in 4 seconds...\n",
+ "SNOTEL download failed: HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)\n",
+ "Retrying in 8 seconds...\n"
+ ]
+ },
+ {
+ "ename": "ReadTimeout",
+ "evalue": "HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTimeoutError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:464\u001b[0m, in \u001b[0;36mHTTPConnectionPool._make_request\u001b[0;34m(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)\u001b[0m\n\u001b[1;32m 463\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 464\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_validate_conn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 465\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (SocketTimeout, BaseSSLError) \u001b[38;5;28;01mas\u001b[39;00m e:\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:1093\u001b[0m, in \u001b[0;36mHTTPSConnectionPool._validate_conn\u001b[0;34m(self, conn)\u001b[0m\n\u001b[1;32m 1092\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m conn\u001b[38;5;241m.\u001b[39mis_closed:\n\u001b[0;32m-> 1093\u001b[0m \u001b[43mconn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconnect\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1095\u001b[0m \u001b[38;5;66;03m# TODO revise this, see https://github.com/urllib3/urllib3/issues/2791\u001b[39;00m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connection.py:796\u001b[0m, in \u001b[0;36mHTTPSConnection.connect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 794\u001b[0m server_hostname_rm_dot \u001b[38;5;241m=\u001b[39m server_hostname\u001b[38;5;241m.\u001b[39mrstrip(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 796\u001b[0m sock_and_verified \u001b[38;5;241m=\u001b[39m \u001b[43m_ssl_wrap_socket_and_match_hostname\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 797\u001b[0m \u001b[43m \u001b[49m\u001b[43msock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msock\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 798\u001b[0m \u001b[43m \u001b[49m\u001b[43mcert_reqs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcert_reqs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 799\u001b[0m \u001b[43m \u001b[49m\u001b[43mssl_version\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mssl_version\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 800\u001b[0m \u001b[43m \u001b[49m\u001b[43mssl_minimum_version\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mssl_minimum_version\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 801\u001b[0m \u001b[43m \u001b[49m\u001b[43mssl_maximum_version\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mssl_maximum_version\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 802\u001b[0m \u001b[43m \u001b[49m\u001b[43mca_certs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mca_certs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 803\u001b[0m \u001b[43m \u001b[49m\u001b[43mca_cert_dir\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mca_cert_dir\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 804\u001b[0m \u001b[43m \u001b[49m\u001b[43mca_cert_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mca_cert_data\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 805\u001b[0m \u001b[43m \u001b[49m\u001b[43mcert_file\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcert_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 806\u001b[0m \u001b[43m \u001b[49m\u001b[43mkey_file\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkey_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 807\u001b[0m \u001b[43m \u001b[49m\u001b[43mkey_password\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkey_password\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 808\u001b[0m \u001b[43m \u001b[49m\u001b[43mserver_hostname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_hostname_rm_dot\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 809\u001b[0m \u001b[43m \u001b[49m\u001b[43mssl_context\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mssl_context\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 810\u001b[0m \u001b[43m \u001b[49m\u001b[43mtls_in_tls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtls_in_tls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 811\u001b[0m \u001b[43m \u001b[49m\u001b[43massert_hostname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43massert_hostname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 812\u001b[0m \u001b[43m \u001b[49m\u001b[43massert_fingerprint\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43massert_fingerprint\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 813\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 814\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msock \u001b[38;5;241m=\u001b[39m sock_and_verified\u001b[38;5;241m.\u001b[39msocket\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connection.py:975\u001b[0m, in \u001b[0;36m_ssl_wrap_socket_and_match_hostname\u001b[0;34m(sock, cert_reqs, ssl_version, ssl_minimum_version, ssl_maximum_version, cert_file, key_file, key_password, ca_certs, ca_cert_dir, ca_cert_data, assert_hostname, assert_fingerprint, server_hostname, ssl_context, tls_in_tls)\u001b[0m\n\u001b[1;32m 973\u001b[0m server_hostname \u001b[38;5;241m=\u001b[39m normalized\n\u001b[0;32m--> 975\u001b[0m ssl_sock \u001b[38;5;241m=\u001b[39m \u001b[43mssl_wrap_socket\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 976\u001b[0m \u001b[43m \u001b[49m\u001b[43msock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msock\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 977\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeyfile\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkey_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 978\u001b[0m \u001b[43m \u001b[49m\u001b[43mcertfile\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcert_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 979\u001b[0m \u001b[43m \u001b[49m\u001b[43mkey_password\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkey_password\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 980\u001b[0m \u001b[43m \u001b[49m\u001b[43mca_certs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mca_certs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 981\u001b[0m \u001b[43m \u001b[49m\u001b[43mca_cert_dir\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mca_cert_dir\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 982\u001b[0m \u001b[43m \u001b[49m\u001b[43mca_cert_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mca_cert_data\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 983\u001b[0m \u001b[43m \u001b[49m\u001b[43mserver_hostname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_hostname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 984\u001b[0m \u001b[43m \u001b[49m\u001b[43mssl_context\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcontext\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 985\u001b[0m \u001b[43m \u001b[49m\u001b[43mtls_in_tls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtls_in_tls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 986\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 988\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/util/ssl_.py:483\u001b[0m, in \u001b[0;36mssl_wrap_socket\u001b[0;34m(sock, keyfile, certfile, cert_reqs, ca_certs, server_hostname, ssl_version, ciphers, ssl_context, ca_cert_dir, key_password, ca_cert_data, tls_in_tls)\u001b[0m\n\u001b[1;32m 481\u001b[0m context\u001b[38;5;241m.\u001b[39mset_alpn_protocols(ALPN_PROTOCOLS)\n\u001b[0;32m--> 483\u001b[0m ssl_sock \u001b[38;5;241m=\u001b[39m \u001b[43m_ssl_wrap_socket_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43msock\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcontext\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtls_in_tls\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver_hostname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 484\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ssl_sock\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/util/ssl_.py:527\u001b[0m, in \u001b[0;36m_ssl_wrap_socket_impl\u001b[0;34m(sock, ssl_context, tls_in_tls, server_hostname)\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m SSLTransport(sock, ssl_context, server_hostname)\n\u001b[0;32m--> 527\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mssl_context\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrap_socket\u001b[49m\u001b[43m(\u001b[49m\u001b[43msock\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver_hostname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_hostname\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/ssl.py:513\u001b[0m, in \u001b[0;36mSSLContext.wrap_socket\u001b[0;34m(self, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, session)\u001b[0m\n\u001b[1;32m 507\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mwrap_socket\u001b[39m(\u001b[38;5;28mself\u001b[39m, sock, server_side\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 508\u001b[0m do_handshake_on_connect\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 509\u001b[0m suppress_ragged_eofs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 510\u001b[0m server_hostname\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, session\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 511\u001b[0m \u001b[38;5;66;03m# SSLSocket class handles server_hostname encoding before it calls\u001b[39;00m\n\u001b[1;32m 512\u001b[0m \u001b[38;5;66;03m# ctx._wrap_socket()\u001b[39;00m\n\u001b[0;32m--> 513\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msslsocket_class\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_create\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 514\u001b[0m \u001b[43m \u001b[49m\u001b[43msock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msock\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 515\u001b[0m \u001b[43m \u001b[49m\u001b[43mserver_side\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_side\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 516\u001b[0m \u001b[43m \u001b[49m\u001b[43mdo_handshake_on_connect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdo_handshake_on_connect\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 517\u001b[0m \u001b[43m \u001b[49m\u001b[43msuppress_ragged_eofs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msuppress_ragged_eofs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 518\u001b[0m \u001b[43m \u001b[49m\u001b[43mserver_hostname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_hostname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 519\u001b[0m \u001b[43m \u001b[49m\u001b[43mcontext\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 520\u001b[0m \u001b[43m \u001b[49m\u001b[43msession\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msession\u001b[49m\n\u001b[1;32m 521\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/ssl.py:1104\u001b[0m, in \u001b[0;36mSSLSocket._create\u001b[0;34m(cls, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, context, session)\u001b[0m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdo_handshake_on_connect should not be specified for non-blocking sockets\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1104\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdo_handshake\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1105\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (\u001b[38;5;167;01mOSError\u001b[39;00m, \u001b[38;5;167;01mValueError\u001b[39;00m):\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/ssl.py:1375\u001b[0m, in \u001b[0;36mSSLSocket.do_handshake\u001b[0;34m(self, block)\u001b[0m\n\u001b[1;32m 1374\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msettimeout(\u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m-> 1375\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_sslobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdo_handshake\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1376\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n",
+ "\u001b[0;31mTimeoutError\u001b[0m: _ssl.c:1000: The handshake operation timed out",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[0;31mReadTimeoutError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/requests/adapters.py:644\u001b[0m, in \u001b[0;36mHTTPAdapter.send\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m 643\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 644\u001b[0m resp \u001b[38;5;241m=\u001b[39m \u001b[43mconn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murlopen\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 645\u001b[0m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 646\u001b[0m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 647\u001b[0m \u001b[43m \u001b[49m\u001b[43mbody\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbody\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 648\u001b[0m \u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mheaders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 649\u001b[0m \u001b[43m \u001b[49m\u001b[43mredirect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 650\u001b[0m \u001b[43m \u001b[49m\u001b[43massert_same_host\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 651\u001b[0m \u001b[43m \u001b[49m\u001b[43mpreload_content\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 652\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_content\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 653\u001b[0m \u001b[43m \u001b[49m\u001b[43mretries\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmax_retries\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 654\u001b[0m \u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 655\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunked\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 656\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 658\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (ProtocolError, \u001b[38;5;167;01mOSError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m err:\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:841\u001b[0m, in \u001b[0;36mHTTPConnectionPool.urlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)\u001b[0m\n\u001b[1;32m 839\u001b[0m new_e \u001b[38;5;241m=\u001b[39m ProtocolError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mConnection aborted.\u001b[39m\u001b[38;5;124m\"\u001b[39m, new_e)\n\u001b[0;32m--> 841\u001b[0m retries \u001b[38;5;241m=\u001b[39m \u001b[43mretries\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mincrement\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 842\u001b[0m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merror\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnew_e\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m_pool\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m_stacktrace\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msys\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexc_info\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m]\u001b[49m\n\u001b[1;32m 843\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 844\u001b[0m retries\u001b[38;5;241m.\u001b[39msleep()\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/util/retry.py:490\u001b[0m, in \u001b[0;36mRetry.increment\u001b[0;34m(self, method, url, response, error, _pool, _stacktrace)\u001b[0m\n\u001b[1;32m 489\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m read \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m method \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_is_method_retryable(method):\n\u001b[0;32m--> 490\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[43mreraise\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43merror\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merror\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m_stacktrace\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 491\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m read \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/util/util.py:39\u001b[0m, in \u001b[0;36mreraise\u001b[0;34m(tp, value, tb)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m value\u001b[38;5;241m.\u001b[39mwith_traceback(tb)\n\u001b[0;32m---> 39\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m value\n\u001b[1;32m 40\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:787\u001b[0m, in \u001b[0;36mHTTPConnectionPool.urlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)\u001b[0m\n\u001b[1;32m 786\u001b[0m \u001b[38;5;66;03m# Make the request on the HTTPConnection object\u001b[39;00m\n\u001b[0;32m--> 787\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 788\u001b[0m \u001b[43m \u001b[49m\u001b[43mconn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 789\u001b[0m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 790\u001b[0m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 791\u001b[0m \u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout_obj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 792\u001b[0m \u001b[43m \u001b[49m\u001b[43mbody\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbody\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 793\u001b[0m \u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mheaders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 794\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunked\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 795\u001b[0m \u001b[43m \u001b[49m\u001b[43mretries\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mretries\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 796\u001b[0m \u001b[43m \u001b[49m\u001b[43mresponse_conn\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresponse_conn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 797\u001b[0m \u001b[43m \u001b[49m\u001b[43mpreload_content\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpreload_content\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 798\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_content\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_content\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 799\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mresponse_kw\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 800\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 802\u001b[0m \u001b[38;5;66;03m# Everything went great!\u001b[39;00m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:488\u001b[0m, in \u001b[0;36mHTTPConnectionPool._make_request\u001b[0;34m(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)\u001b[0m\n\u001b[1;32m 487\u001b[0m new_e \u001b[38;5;241m=\u001b[39m _wrap_proxy_error(new_e, conn\u001b[38;5;241m.\u001b[39mproxy\u001b[38;5;241m.\u001b[39mscheme)\n\u001b[0;32m--> 488\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m new_e\n\u001b[1;32m 490\u001b[0m \u001b[38;5;66;03m# conn.request() calls http.client.*.request, not the method in\u001b[39;00m\n\u001b[1;32m 491\u001b[0m \u001b[38;5;66;03m# urllib3.request. It also calls makefile (recv) on the socket.\u001b[39;00m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:466\u001b[0m, in \u001b[0;36mHTTPConnectionPool._make_request\u001b[0;34m(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)\u001b[0m\n\u001b[1;32m 465\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (SocketTimeout, BaseSSLError) \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 466\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_raise_timeout\u001b[49m\u001b[43m(\u001b[49m\u001b[43merr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43me\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 467\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/urllib3/connectionpool.py:367\u001b[0m, in \u001b[0;36mHTTPConnectionPool._raise_timeout\u001b[0;34m(self, err, url, timeout_value)\u001b[0m\n\u001b[1;32m 366\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(err, SocketTimeout):\n\u001b[0;32m--> 367\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ReadTimeoutError(\n\u001b[1;32m 368\u001b[0m \u001b[38;5;28mself\u001b[39m, url, \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRead timed out. (read timeout=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtimeout_value\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 369\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 371\u001b[0m \u001b[38;5;66;03m# See the above comment about EAGAIN in Python 3.\u001b[39;00m\n",
+ "\u001b[0;31mReadTimeoutError\u001b[0m: HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)",
+ "\nDuring handling of the above exception, another exception occurred:\n",
+ "\u001b[0;31mReadTimeout\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[6], line 41\u001b[0m\n\u001b[1;32m 38\u001b[0m SiteID \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m09330000\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 39\u001b[0m StateAbb \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUT\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m---> 41\u001b[0m snotel_df \u001b[38;5;241m=\u001b[39m \u001b[43mdownload_snotel_csv\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 42\u001b[0m \u001b[43m \u001b[49m\u001b[43mSiteName\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mSiteName\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 43\u001b[0m \u001b[43m \u001b[49m\u001b[43mSiteID\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mSiteID\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[43m \u001b[49m\u001b[43mStateAbb\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mStateAbb\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[43m \u001b[49m\u001b[43mStartDate\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mStartDate\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 46\u001b[0m \u001b[43m \u001b[49m\u001b[43mEndDate\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mEndDate\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[43m \u001b[49m\u001b[43mOutputFolder\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mOutputFolder\u001b[49m\n\u001b[1;32m 48\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m snotel_df\u001b[38;5;241m.\u001b[39mhead()\n",
+ "Cell \u001b[0;32mIn[6], line 19\u001b[0m, in \u001b[0;36mdownload_snotel_csv\u001b[0;34m(SiteName, SiteID, StateAbb, StartDate, EndDate, OutputFolder, tries)\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m attempt \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(tries):\n\u001b[1;32m 18\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 19\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[43mrequests\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m300\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 20\u001b[0m r\u001b[38;5;241m.\u001b[39mraise_for_status()\n\u001b[1;32m 22\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(out_csv, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m\"\u001b[39m, encoding\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m f:\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/requests/api.py:73\u001b[0m, in \u001b[0;36mget\u001b[0;34m(url, params, **kwargs)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mget\u001b[39m(url, params\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 63\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Sends a GET request.\u001b[39;00m\n\u001b[1;32m 64\u001b[0m \n\u001b[1;32m 65\u001b[0m \u001b[38;5;124;03m :param url: URL for the new :class:`Request` object.\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[38;5;124;03m :rtype: requests.Response\u001b[39;00m\n\u001b[1;32m 71\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 73\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mget\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/requests/api.py:59\u001b[0m, in \u001b[0;36mrequest\u001b[0;34m(method, url, **kwargs)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;66;03m# By using the 'with' statement we are sure the session is closed, thus we\u001b[39;00m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;66;03m# avoid leaving sockets open which can trigger a ResourceWarning in some\u001b[39;00m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;66;03m# cases, and look like a memory leak in others.\u001b[39;00m\n\u001b[1;32m 58\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m sessions\u001b[38;5;241m.\u001b[39mSession() \u001b[38;5;28;01mas\u001b[39;00m session:\n\u001b[0;32m---> 59\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msession\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/requests/sessions.py:589\u001b[0m, in \u001b[0;36mSession.request\u001b[0;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001b[0m\n\u001b[1;32m 584\u001b[0m send_kwargs \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 585\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtimeout\u001b[39m\u001b[38;5;124m\"\u001b[39m: timeout,\n\u001b[1;32m 586\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mallow_redirects\u001b[39m\u001b[38;5;124m\"\u001b[39m: allow_redirects,\n\u001b[1;32m 587\u001b[0m }\n\u001b[1;32m 588\u001b[0m send_kwargs\u001b[38;5;241m.\u001b[39mupdate(settings)\n\u001b[0;32m--> 589\u001b[0m resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprep\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msend_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/requests/sessions.py:703\u001b[0m, in \u001b[0;36mSession.send\u001b[0;34m(self, request, **kwargs)\u001b[0m\n\u001b[1;32m 700\u001b[0m start \u001b[38;5;241m=\u001b[39m preferred_clock()\n\u001b[1;32m 702\u001b[0m \u001b[38;5;66;03m# Send the request\u001b[39;00m\n\u001b[0;32m--> 703\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[43madapter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 705\u001b[0m \u001b[38;5;66;03m# Total elapsed time of the request (approximately)\u001b[39;00m\n\u001b[1;32m 706\u001b[0m elapsed \u001b[38;5;241m=\u001b[39m preferred_clock() \u001b[38;5;241m-\u001b[39m start\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/requests/adapters.py:690\u001b[0m, in \u001b[0;36mHTTPAdapter.send\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m 688\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m SSLError(e, request\u001b[38;5;241m=\u001b[39mrequest)\n\u001b[1;32m 689\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(e, ReadTimeoutError):\n\u001b[0;32m--> 690\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ReadTimeout(e, request\u001b[38;5;241m=\u001b[39mrequest)\n\u001b[1;32m 691\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(e, _InvalidHeader):\n\u001b[1;32m 692\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidHeader(e, request\u001b[38;5;241m=\u001b[39mrequest)\n",
+ "\u001b[0;31mReadTimeout\u001b[0m: HTTPSConnectionPool(host='wcc.sc.egov.usda.gov', port=443): Read timed out. (read timeout=300)"
+ ]
+ }
+ ],
+ "source": [
+ "def download_snotel_csv(SiteName, SiteID, StateAbb, StartDate, EndDate, OutputFolder, tries=5):\n",
+ " os.makedirs(OutputFolder, exist_ok=True)\n",
+ " out_csv = f\"./{OutputFolder}/df_{SiteID}_{StateAbb}_SNTL.csv\"\n",
+ "\n",
+ " if os.path.exists(out_csv):\n",
+ " df = pd.read_csv(out_csv)\n",
+ " df[\"Date\"] = pd.to_datetime(df[\"Date\"])\n",
+ " return df.set_index(\"Date\")\n",
+ "\n",
+ " url = (\n",
+ " \"https://wcc.sc.egov.usda.gov/reportGenerator/view_csv/\"\n",
+ " f\"customSingleStationReport/daily/start_of_period/{SiteID}:{StateAbb}:SNTL\"\n",
+ " f\"%7Cid=%22%22%7Cname/{StartDate},{EndDate}/WTEQ::value\"\n",
+ " \"?fitToScreen=false\"\n",
+ " )\n",
+ "\n",
+ " for attempt in range(tries):\n",
+ " try:\n",
+ " r = requests.get(url, timeout=300)\n",
+ " r.raise_for_status()\n",
+ "\n",
+ " with open(out_csv, \"w\", encoding=\"utf-8\") as f:\n",
+ " f.write(r.text)\n",
+ "\n",
+ " df = pd.read_csv(out_csv)\n",
+ " df[\"Date\"] = pd.to_datetime(df[\"Date\"])\n",
+ " return df.set_index(\"Date\")\n",
+ "\n",
+ " except Exception as e:\n",
+ " if attempt == tries - 1:\n",
+ " raise\n",
+ " wait = 2 ** attempt\n",
+ " print(f\"SNOTEL download failed: {e}\")\n",
+ " print(f\"Retrying in {wait} seconds...\")\n",
+ " time.sleep(wait)\n",
+ "\n",
+ "SiteName = \"FREMONT RIVER NEAR BICKNELL\"\n",
+ "SiteID = \"09330000\"\n",
+ "StateAbb = \"UT\"\n",
+ "\n",
+ "snotel_df = download_snotel_csv(\n",
+ " SiteName=SiteName,\n",
+ " SiteID=SiteID,\n",
+ " StateAbb=StateAbb,\n",
+ " StartDate=StartDate,\n",
+ " EndDate=EndDate,\n",
+ " OutputFolder=OutputFolder\n",
+ ")\n",
+ "\n",
+ "snotel_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8b80b636",
+ "metadata": {},
+ "source": [
+ "Landsat helper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5b205118",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def get_landsat_ndsi_timeseries(basin_polygon_coords, begin_date, end_date):\n",
+ " basin = ee.Geometry.Polygon(basin_polygon_coords)\n",
+ "\n",
+ " col = (\n",
+ " ee.ImageCollection(\"LANDSAT/LC08/C02/T2_L2\")\n",
+ " .filterBounds(basin)\n",
+ " .filterDate(begin_date, end_date)\n",
+ " .sort(\"CLOUD_COVER\")\n",
+ " )\n",
+ "\n",
+ " n = col.size().getInfo()\n",
+ " img_list = col.toList(n)\n",
+ " records = []\n",
+ "\n",
+ " for i in range(n):\n",
+ " img = ee.Image(img_list.get(i))\n",
+ "\n",
+ " qa = img.select(\"QA_PIXEL\")\n",
+ " cloud_mask = (\n",
+ " qa.bitwiseAnd(1 << 1).eq(0)\n",
+ " .And(qa.bitwiseAnd(1 << 2).eq(0))\n",
+ " .And(qa.bitwiseAnd(1 << 3).eq(0))\n",
+ " .And(qa.bitwiseAnd(1 << 4).eq(0))\n",
+ " )\n",
+ "\n",
+ " green = img.select(\"SR_B3\").multiply(2.75e-05).add(-0.2)\n",
+ " swir1 = img.select(\"SR_B6\").multiply(2.75e-05).add(-0.2)\n",
+ "\n",
+ " ndsi = green.subtract(swir1).divide(green.add(swir1)).rename(\"NDSI\")\n",
+ " ndsi = ndsi.updateMask(cloud_mask)\n",
+ "\n",
+ " stat = ndsi.reduceRegion(\n",
+ " reducer=ee.Reducer.mean(),\n",
+ " geometry=basin,\n",
+ " scale=30,\n",
+ " maxPixels=1e9,\n",
+ " ).getInfo()\n",
+ "\n",
+ " if stat and stat.get(\"NDSI\") is not None:\n",
+ " records.append({\n",
+ " \"Date\": pd.to_datetime(img.date().format(\"YYYY-MM-dd\").getInfo()),\n",
+ " \"NDSI\": stat[\"NDSI\"],\n",
+ " })\n",
+ "\n",
+ " df = pd.DataFrame(records)\n",
+ " if not df.empty:\n",
+ " df = df.sort_values(\"Date\").set_index(\"Date\")\n",
+ " return df"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "aac57f42",
+ "metadata": {},
+ "source": [
+ "Landsat"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "25abdb74",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "landsat_df = get_landsat_ndsi_timeseries(\n",
+ " basin_polygon_coords=basin_polygon_coords,\n",
+ " begin_date=StartDate,\n",
+ " end_date=EndDate\n",
+ ")\n",
+ "\n",
+ "landsat_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0f5502c9",
+ "metadata": {},
+ "source": [
+ "Clean and Allign"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "795c4f2e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "stream = stream_df.copy()\n",
+ "snotel = snotel_df.copy()\n",
+ "landsat = landsat_df.copy()\n",
+ "\n",
+ "if \"Date\" in stream.columns:\n",
+ " stream[\"Date\"] = pd.to_datetime(stream[\"Date\"])\n",
+ " stream = stream.set_index(\"Date\")\n",
+ "else:\n",
+ " stream.index = pd.to_datetime(stream.index)\n",
+ "\n",
+ "if \"Date\" in snotel.columns:\n",
+ " snotel[\"Date\"] = pd.to_datetime(snotel[\"Date\"])\n",
+ " snotel = snotel.set_index(\"Date\")\n",
+ "else:\n",
+ " snotel.index = pd.to_datetime(snotel.index)\n",
+ "\n",
+ "landsat.index = pd.to_datetime(landsat.index)\n",
+ "\n",
+ "merged = pd.DataFrame(index=pd.date_range(StartDate, EndDate, freq=\"D\"))\n",
+ "\n",
+ "# streamflow\n",
+ "if \"flow_cfs\" in stream.columns:\n",
+ " merged[\"streamflow_cfs\"] = stream[\"flow_cfs\"]\n",
+ "else:\n",
+ " merged[\"streamflow_cfs\"] = stream.iloc[:, 0]\n",
+ "\n",
+ "# SNOTEL SWE\n",
+ "swe_col = \"Snow Water Equivalent (m) Start of Day Values\"\n",
+ "if swe_col in snotel.columns:\n",
+ " merged[\"snotel_swe_m\"] = snotel[swe_col]\n",
+ "else:\n",
+ " merged[\"snotel_swe_m\"] = snotel.iloc[:, 0]\n",
+ "\n",
+ "# Landsat NDSI\n",
+ "merged[\"landsat_ndsi\"] = landsat[\"NDSI\"]\n",
+ "\n",
+ "merged.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "667bd93a",
+ "metadata": {},
+ "source": [
+ "Plot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e7c34a86",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fig, axes = plt.subplots(3, 1, figsize=(13, 10), sharex=True)\n",
+ "\n",
+ "axes[0].plot(merged.index, merged[\"streamflow_cfs\"])\n",
+ "axes[0].set_ylabel(\"cfs\")\n",
+ "axes[0].set_title(\"USGS Streamflow\")\n",
+ "\n",
+ "axes[1].plot(merged.index, merged[\"snotel_swe_m\"])\n",
+ "axes[1].set_ylabel(\"m\")\n",
+ "axes[1].set_title(\"SNOTEL SWE\")\n",
+ "\n",
+ "axes[2].scatter(merged.index, merged[\"landsat_ndsi\"], s=18)\n",
+ "axes[2].set_ylabel(\"NDSI\")\n",
+ "axes[2].set_title(\"Landsat 8 NDSI\")\n",
+ "\n",
+ "axes[2].set_xlabel(\"Date\")\n",
+ "plt.tight_layout()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c4542d65",
+ "metadata": {},
+ "source": [
+ "Save"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "61cf2db6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "merged.to_csv(\"Figures/watershed_stream_snotel_landsat.csv\")\n",
+ "fig.savefig(\"Figures/watershed_stream_snotel_landsat.png\", dpi=300, bbox_inches=\"tight\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "hyriver",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.20"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/HydroDF_Analysis.ipynb b/HydroDF_Analysis.ipynb
index 3c2bef7..69322c9 100644
--- a/HydroDF_Analysis.ipynb
+++ b/HydroDF_Analysis.ipynb
@@ -74,10 +74,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "TUM: 15288 start date: 1980-01-10 00:00:00 end date: 2021-11-17 00:00:00\n",
- "DAN: 14936 start date: 1980-10-26 00:00:00 end date: 2021-09-16 00:00:00\n",
- "SLI: 14273 start date: 1982-10-21 00:00:00 end date: 2021-11-17 00:00:00\n",
- "TES: 629 start date: 2005-03-01 00:00:00 end date: 2006-11-19 00:00:00\n"
+ "386: 16068 start date: 1978-10-01 00:00:00 end date: 2022-09-27 00:00:00\n",
+ "387: 12940 start date: 1990-10-01 00:00:00 end date: 2026-03-05 00:00:00\n",
+ "629: 17323 start date: 1978-10-01 00:00:00 end date: 2026-03-05 00:00:00\n",
+ "632: 14456 start date: 1986-08-07 00:00:00 end date: 2026-03-05 00:00:00\n",
+ "713: 16592 start date: 1980-10-01 00:00:00 end date: 2026-03-05 00:00:00\n",
+ "780: 14429 start date: 1986-09-03 00:00:00 end date: 2026-03-05 00:00:00\n",
+ "DAN: 6195 start date: 2004-10-01 00:00:00 end date: 2021-09-16 00:00:00\n",
+ "SLI: 5892 start date: 2005-10-01 00:00:00 end date: 2021-11-17 00:00:00\n",
+ "TES: 629 start date: 2005-03-01 00:00:00 end date: 2006-11-19 00:00:00\n",
+ "TUM: 6257 start date: 2004-10-01 00:00:00 end date: 2021-11-17 00:00:00\n"
]
}
],
@@ -132,60 +138,110 @@
" \n",
" \n",
" | \n",
- " TUM_SWE_cm | \n",
+ " 386_SWE_cm | \n",
+ " 387_SWE_cm | \n",
+ " 629_SWE_cm | \n",
+ " 632_SWE_cm | \n",
+ " 713_SWE_cm | \n",
+ " 780_SWE_cm | \n",
" DAN_SWE_cm | \n",
" SLI_SWE_cm | \n",
+ " TUM_SWE_cm | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
"
\n",
" \n",
" \n",
" \n",
- " | 1982-10-21 | \n",
- " 0.000 | \n",
- " NaN | \n",
- " 0.000 | \n",
+ " 2005-10-01 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
"
\n",
" \n",
- " | 1982-10-22 | \n",
- " 0.508 | \n",
- " NaN | \n",
- " 2.286 | \n",
+ " 2005-10-02 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
"
\n",
" \n",
- " | 1982-10-23 | \n",
- " 1.270 | \n",
- " NaN | \n",
- " 2.286 | \n",
+ " 2005-10-03 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
"
\n",
" \n",
- " | 1982-10-24 | \n",
- " 1.778 | \n",
- " NaN | \n",
- " 2.286 | \n",
+ " 2005-10-04 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
"
\n",
" \n",
- " | 1982-10-25 | \n",
- " 2.032 | \n",
- " NaN | \n",
- " 2.540 | \n",
+ " 2005-10-05 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " TUM_SWE_cm DAN_SWE_cm SLI_SWE_cm\n",
- "Date \n",
- "1982-10-21 0.000 NaN 0.000\n",
- "1982-10-22 0.508 NaN 2.286\n",
- "1982-10-23 1.270 NaN 2.286\n",
- "1982-10-24 1.778 NaN 2.286\n",
- "1982-10-25 2.032 NaN 2.540"
+ " 386_SWE_cm 387_SWE_cm 629_SWE_cm 632_SWE_cm 713_SWE_cm \\\n",
+ "Date \n",
+ "2005-10-01 0.0 0.0 0.0 0.0 0.0 \n",
+ "2005-10-02 0.0 0.0 0.0 0.0 0.0 \n",
+ "2005-10-03 0.0 0.0 0.0 0.0 0.0 \n",
+ "2005-10-04 0.0 0.0 0.0 0.0 0.0 \n",
+ "2005-10-05 0.0 0.0 0.0 0.0 0.0 \n",
+ "\n",
+ " 780_SWE_cm DAN_SWE_cm SLI_SWE_cm TUM_SWE_cm \n",
+ "Date \n",
+ "2005-10-01 0.0 0.0 0.0 0.0 \n",
+ "2005-10-02 0.0 0.0 0.0 0.0 \n",
+ "2005-10-03 0.0 0.0 0.0 0.0 \n",
+ "2005-10-04 0.0 0.0 0.0 0.0 \n",
+ "2005-10-05 0.0 0.0 0.0 0.0 "
]
},
"execution_count": 4,
@@ -226,128 +282,20 @@
"metadata": {},
"outputs": [
{
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " dayl_s | \n",
- " prcp_mm_day | \n",
- " srad_W_m2 | \n",
- " swe_cm | \n",
- " tmax_C | \n",
- " tmin_C | \n",
- " vp_Pa | \n",
- " tmean | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 1980-01-01 | \n",
- " 33914.08 | \n",
- " 0.0 | \n",
- " 356.43 | \n",
- " 2.943 | \n",
- " 6.07 | \n",
- " -12.54 | \n",
- " 232.94 | \n",
- " -3.235 | \n",
- "
\n",
- " \n",
- " | 1980-01-02 | \n",
- " 33952.03 | \n",
- " 0.0 | \n",
- " 363.52 | \n",
- " 2.943 | \n",
- " 7.82 | \n",
- " -11.91 | \n",
- " 239.32 | \n",
- " -2.045 | \n",
- "
\n",
- " \n",
- " | 1980-01-03 | \n",
- " 33993.09 | \n",
- " 0.0 | \n",
- " 364.49 | \n",
- " 2.943 | \n",
- " 7.14 | \n",
- " -12.50 | \n",
- " 229.62 | \n",
- " -2.680 | \n",
- "
\n",
- " \n",
- " | 1980-01-04 | \n",
- " 34037.22 | \n",
- " 0.0 | \n",
- " 340.58 | \n",
- " 2.943 | \n",
- " 5.89 | \n",
- " -10.41 | \n",
- " 276.75 | \n",
- " -2.260 | \n",
- "
\n",
- " \n",
- " | 1980-01-05 | \n",
- " 34084.41 | \n",
- " 0.0 | \n",
- " 318.39 | \n",
- " 2.943 | \n",
- " 6.51 | \n",
- " -7.77 | \n",
- " 340.48 | \n",
- " -0.630 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " dayl_s prcp_mm_day srad_W_m2 swe_cm tmax_C tmin_C vp_Pa \\\n",
- "Date \n",
- "1980-01-01 33914.08 0.0 356.43 2.943 6.07 -12.54 232.94 \n",
- "1980-01-02 33952.03 0.0 363.52 2.943 7.82 -11.91 239.32 \n",
- "1980-01-03 33993.09 0.0 364.49 2.943 7.14 -12.50 229.62 \n",
- "1980-01-04 34037.22 0.0 340.58 2.943 5.89 -10.41 276.75 \n",
- "1980-01-05 34084.41 0.0 318.39 2.943 6.51 -7.77 340.48 \n",
- "\n",
- " tmean \n",
- "Date \n",
- "1980-01-01 -3.235 \n",
- "1980-01-02 -2.045 \n",
- "1980-01-03 -2.680 \n",
- "1980-01-04 -2.260 \n",
- "1980-01-05 -0.630 "
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
+ "ename": "FileNotFoundError",
+ "evalue": "[Errno 2] No such file or directory: 'files/PyDayMet/PyDayMet_11274790.csv'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[5], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#Read the data from PyDayMet \u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m PyDayMet_df \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43mf\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfiles/PyDayMet/PyDayMet_\u001b[39;49m\u001b[38;5;132;43;01m{\u001b[39;49;00m\u001b[43mstation_id\u001b[49m\u001b[38;5;132;43;01m}\u001b[39;49;00m\u001b[38;5;124;43m.csv\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m#set the date column to be a datetime object and set it to the index\u001b[39;00m\n\u001b[1;32m 4\u001b[0m PyDayMet_df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDate\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mto_datetime(PyDayMet_df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDate\u001b[39m\u001b[38;5;124m'\u001b[39m])\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1026\u001b[0m, in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[1;32m 1013\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[1;32m 1014\u001b[0m dialect,\n\u001b[1;32m 1015\u001b[0m delimiter,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1022\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[1;32m 1023\u001b[0m )\n\u001b[1;32m 1024\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[0;32m-> 1026\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/pandas/io/parsers/readers.py:620\u001b[0m, in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 617\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[1;32m 619\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[0;32m--> 620\u001b[0m parser \u001b[38;5;241m=\u001b[39m \u001b[43mTextFileReader\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 622\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[1;32m 623\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1620\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 1617\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 1619\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m-> 1620\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1880\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[0;34m(self, f, engine)\u001b[0m\n\u001b[1;32m 1878\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[1;32m 1879\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m-> 1880\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1881\u001b[0m \u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1882\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1883\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1884\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompression\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1885\u001b[0m \u001b[43m \u001b[49m\u001b[43mmemory_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmemory_map\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1886\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_text\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1887\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding_errors\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstrict\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1888\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1889\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1890\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1891\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
+ "File \u001b[0;32m~/conda-envs/hyriver/lib/python3.10/site-packages/pandas/io/common.py:873\u001b[0m, in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 868\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 869\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[1;32m 870\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[1;32m 871\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[1;32m 872\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[0;32m--> 873\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 874\u001b[0m \u001b[43m \u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 875\u001b[0m \u001b[43m \u001b[49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 876\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 877\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 878\u001b[0m \u001b[43m \u001b[49m\u001b[43mnewline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 879\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 880\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 881\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[1;32m 882\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
+ "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'files/PyDayMet/PyDayMet_11274790.csv'"
+ ]
}
],
"source": [
@@ -361,171 +309,9 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " convective_fraction | \n",
- " longwave_radiation | \n",
- " potential_energy | \n",
- " potential_evaporation | \n",
- " pressure | \n",
- " shortwave_radiation | \n",
- " specific_humidity | \n",
- " temperature | \n",
- " total_precipitation | \n",
- " wind_u | \n",
- " wind_v | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2006-01-01 | \n",
- " 0.005192 | \n",
- " 199.833836 | \n",
- " 1.508087 | \n",
- " 0.044990 | \n",
- " 71408.170160 | \n",
- " 95.234192 | \n",
- " 0.002439 | \n",
- " -7.561317 | \n",
- " 0.563703 | \n",
- " 2.807882 | \n",
- " 5.710911 | \n",
- "
\n",
- " \n",
- " | 2006-01-02 | \n",
- " 0.051767 | \n",
- " 264.132482 | \n",
- " 33.055034 | \n",
- " 0.013663 | \n",
- " 70799.285724 | \n",
- " 93.932771 | \n",
- " 0.004772 | \n",
- " -0.944478 | \n",
- " 4.532128 | \n",
- " 4.467674 | \n",
- " 8.864378 | \n",
- "
\n",
- " \n",
- " | 2006-01-03 | \n",
- " 0.016707 | \n",
- " 214.292827 | \n",
- " 9.209950 | \n",
- " 0.030093 | \n",
- " 71724.799553 | \n",
- " 101.167170 | \n",
- " 0.002966 | \n",
- " -6.371842 | \n",
- " 0.575387 | \n",
- " 4.247262 | \n",
- " 3.778855 | \n",
- "
\n",
- " \n",
- " | 2006-01-04 | \n",
- " 0.000000 | \n",
- " 226.581243 | \n",
- " 0.000000 | \n",
- " 0.016272 | \n",
- " 72808.304958 | \n",
- " 101.368610 | \n",
- " 0.003240 | \n",
- " -3.462835 | \n",
- " 0.002358 | \n",
- " 1.485389 | \n",
- " 1.450410 | \n",
- "
\n",
- " \n",
- " | 2006-01-05 | \n",
- " 0.000000 | \n",
- " 214.910143 | \n",
- " 0.000000 | \n",
- " 0.033974 | \n",
- " 73429.441947 | \n",
- " 112.546583 | \n",
- " 0.002849 | \n",
- " 1.320337 | \n",
- " 0.000000 | \n",
- " -0.779809 | \n",
- " 3.417216 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " convective_fraction longwave_radiation potential_energy \\\n",
- "Date \n",
- "2006-01-01 0.005192 199.833836 1.508087 \n",
- "2006-01-02 0.051767 264.132482 33.055034 \n",
- "2006-01-03 0.016707 214.292827 9.209950 \n",
- "2006-01-04 0.000000 226.581243 0.000000 \n",
- "2006-01-05 0.000000 214.910143 0.000000 \n",
- "\n",
- " potential_evaporation pressure shortwave_radiation \\\n",
- "Date \n",
- "2006-01-01 0.044990 71408.170160 95.234192 \n",
- "2006-01-02 0.013663 70799.285724 93.932771 \n",
- "2006-01-03 0.030093 71724.799553 101.167170 \n",
- "2006-01-04 0.016272 72808.304958 101.368610 \n",
- "2006-01-05 0.033974 73429.441947 112.546583 \n",
- "\n",
- " specific_humidity temperature total_precipitation wind_u \\\n",
- "Date \n",
- "2006-01-01 0.002439 -7.561317 0.563703 2.807882 \n",
- "2006-01-02 0.004772 -0.944478 4.532128 4.467674 \n",
- "2006-01-03 0.002966 -6.371842 0.575387 4.247262 \n",
- "2006-01-04 0.003240 -3.462835 0.002358 1.485389 \n",
- "2006-01-05 0.002849 1.320337 0.000000 -0.779809 \n",
- "\n",
- " wind_v \n",
- "Date \n",
- "2006-01-01 5.710911 \n",
- "2006-01-02 8.864378 \n",
- "2006-01-03 3.778855 \n",
- "2006-01-04 1.450410 \n",
- "2006-01-05 3.417216 "
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"#Read the data from NLDAS \n",
"NLDAS_df = pd.read_csv(f\"files/NLDAS/NLDAS_{station_id}.csv\")\n",
@@ -544,84 +330,9 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " site_no | \n",
- " flow_cms | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2006-10-13 | \n",
- " 11274790 | \n",
- " 0.611643 | \n",
- "
\n",
- " \n",
- " | 2006-10-14 | \n",
- " 11274790 | \n",
- " 0.563504 | \n",
- "
\n",
- " \n",
- " | 2006-10-15 | \n",
- " 11274790 | \n",
- " 0.538019 | \n",
- "
\n",
- " \n",
- " | 2006-10-16 | \n",
- " 11274790 | \n",
- " 0.504039 | \n",
- "
\n",
- " \n",
- " | 2006-10-17 | \n",
- " 11274790 | \n",
- " 0.481386 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " site_no flow_cms\n",
- "Date \n",
- "2006-10-13 11274790 0.611643\n",
- "2006-10-14 11274790 0.563504\n",
- "2006-10-15 11274790 0.538019\n",
- "2006-10-16 11274790 0.504039\n",
- "2006-10-17 11274790 0.481386"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"streamflow_df = pd.read_csv(f\"files/NWIS/streamflow_{station_id}.csv\")\n",
"#set the date column to be a datetime object and set it to the index\n",
@@ -640,113 +351,9 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Unnamed: 0 | \n",
- " station_id | \n",
- " Average_Elevation_m | \n",
- " Minimum_Elevation_m | \n",
- " Maximum_Elevation_m | \n",
- " Average_Slope | \n",
- " Area_km2 | \n",
- " Open_Water | \n",
- " Perennial_Ice_Snow | \n",
- " Developed,_Open_Space | \n",
- " ... | \n",
- " Developed,_Medium_Intensity | \n",
- " Developed,_High_Intensity | \n",
- " Barren_Land_Rock_Sand_Clay | \n",
- " Deciduous_Forest | \n",
- " Evergreen_Forest | \n",
- " Mixed_Forest | \n",
- " Shrub_Scrub | \n",
- " Grassland_Herbaceous | \n",
- " Woody_Wetlands | \n",
- " Emergent_Herbaceous_Wetlands | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " TuolumneRiverBasin | \n",
- " 11274790 | \n",
- " 2847.0938 | \n",
- " 1165.1238 | \n",
- " 3972.5696 | \n",
- " 0.392479 | \n",
- " 1249.464814 | \n",
- " 0.745168 | \n",
- " 0.374508 | \n",
- " 0.071823 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- "
\n",
- "
1 rows × 21 columns
\n",
- "
"
- ],
- "text/plain": [
- " Unnamed: 0 station_id Average_Elevation_m Minimum_Elevation_m \\\n",
- "0 TuolumneRiverBasin 11274790 2847.0938 1165.1238 \n",
- "\n",
- " Maximum_Elevation_m Average_Slope Area_km2 Open_Water \\\n",
- "0 3972.5696 0.392479 1249.464814 0.745168 \n",
- "\n",
- " Perennial_Ice_Snow Developed,_Open_Space ... \\\n",
- "0 0.374508 0.071823 ... \n",
- "\n",
- " Developed,_Medium_Intensity Developed,_High_Intensity \\\n",
- "0 0.008978 0.006413 \n",
- "\n",
- " Barren_Land_Rock_Sand_Clay Deciduous_Forest Evergreen_Forest \\\n",
- "0 8.326386 0.01026 37.994588 \n",
- "\n",
- " Mixed_Forest Shrub_Scrub Grassland_Herbaceous Woody_Wetlands \\\n",
- "0 0.002565 45.493722 5.055856 0.638715 \n",
- "\n",
- " Emergent_Herbaceous_Wetlands \n",
- "0 1.233824 \n",
- "\n",
- "[1 rows x 21 columns]"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"basin_info = pd.read_csv(f\"files/basin_info/basin_info_{station_id}.csv\")\n",
"basin_info.head()"
@@ -761,7 +368,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
@@ -778,252 +385,9 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " site_no | \n",
- " flow_cms | \n",
- " TUM_SWE_cm | \n",
- " DAN_SWE_cm | \n",
- " SLI_SWE_cm | \n",
- " dayl_s | \n",
- " prcp_mm_day | \n",
- " srad_W_m2 | \n",
- " swe_cm | \n",
- " tmax_C | \n",
- " ... | \n",
- " longwave_radiation | \n",
- " potential_energy | \n",
- " potential_evaporation | \n",
- " pressure | \n",
- " shortwave_radiation | \n",
- " specific_humidity | \n",
- " temperature | \n",
- " total_precipitation | \n",
- " wind_u | \n",
- " wind_v | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2006-10-13 | \n",
- " 11274790 | \n",
- " 0.611643 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39849.51 | \n",
- " 0.0 | \n",
- " 335.15 | \n",
- " 0.0 | \n",
- " 12.52 | \n",
- " ... | \n",
- " 223.457644 | \n",
- " 0.038401 | \n",
- " 0.139839 | \n",
- " 72107.765879 | \n",
- " 174.191132 | \n",
- " 0.003637 | \n",
- " 4.295980 | \n",
- " 0.025121 | \n",
- " -2.033486 | \n",
- " 0.793636 | \n",
- "
\n",
- " \n",
- " | 2006-10-14 | \n",
- " 11274790 | \n",
- " 0.563504 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39705.43 | \n",
- " 0.0 | \n",
- " 368.37 | \n",
- " 0.0 | \n",
- " 12.76 | \n",
- " ... | \n",
- " 219.173461 | \n",
- " 0.027793 | \n",
- " 0.143067 | \n",
- " 71877.921092 | \n",
- " 190.454843 | \n",
- " 0.004275 | \n",
- " 3.669391 | \n",
- " 0.014288 | \n",
- " -0.926827 | \n",
- " -2.149881 | \n",
- "
\n",
- " \n",
- " | 2006-10-15 | \n",
- " 11274790 | \n",
- " 0.538019 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39562.00 | \n",
- " 0.0 | \n",
- " 402.91 | \n",
- " 0.0 | \n",
- " 15.72 | \n",
- " ... | \n",
- " 221.013230 | \n",
- " 0.000000 | \n",
- " 0.156591 | \n",
- " 72003.823920 | \n",
- " 180.353373 | \n",
- " 0.003437 | \n",
- " 5.069112 | \n",
- " 0.004031 | \n",
- " 1.443303 | \n",
- " -2.045946 | \n",
- "
\n",
- " \n",
- " | 2006-10-16 | \n",
- " 11274790 | \n",
- " 0.504039 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39419.27 | \n",
- " 0.0 | \n",
- " 342.84 | \n",
- " 0.0 | \n",
- " 9.39 | \n",
- " ... | \n",
- " 212.436870 | \n",
- " 0.624320 | \n",
- " 0.159340 | \n",
- " 71788.350428 | \n",
- " 190.753002 | \n",
- " 0.003852 | \n",
- " 3.643004 | \n",
- " 0.001124 | \n",
- " 4.436657 | \n",
- " -0.672672 | \n",
- "
\n",
- " \n",
- " | 2006-10-17 | \n",
- " 11274790 | \n",
- " 0.481386 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39277.27 | \n",
- " 0.0 | \n",
- " 327.94 | \n",
- " 0.0 | \n",
- " 5.66 | \n",
- " ... | \n",
- " 187.458054 | \n",
- " 4.542329 | \n",
- " 0.116995 | \n",
- " 71563.357945 | \n",
- " 188.902233 | \n",
- " 0.002838 | \n",
- " -2.503130 | \n",
- " 0.004309 | \n",
- " 1.149626 | \n",
- " -2.636144 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5 rows × 24 columns
\n",
- "
"
- ],
- "text/plain": [
- " site_no flow_cms TUM_SWE_cm DAN_SWE_cm SLI_SWE_cm dayl_s \\\n",
- "Date \n",
- "2006-10-13 11274790 0.611643 0.0 0.0 0.0 39849.51 \n",
- "2006-10-14 11274790 0.563504 0.0 0.0 0.0 39705.43 \n",
- "2006-10-15 11274790 0.538019 0.0 0.0 0.0 39562.00 \n",
- "2006-10-16 11274790 0.504039 0.0 0.0 0.0 39419.27 \n",
- "2006-10-17 11274790 0.481386 0.0 0.0 0.0 39277.27 \n",
- "\n",
- " prcp_mm_day srad_W_m2 swe_cm tmax_C ... longwave_radiation \\\n",
- "Date ... \n",
- "2006-10-13 0.0 335.15 0.0 12.52 ... 223.457644 \n",
- "2006-10-14 0.0 368.37 0.0 12.76 ... 219.173461 \n",
- "2006-10-15 0.0 402.91 0.0 15.72 ... 221.013230 \n",
- "2006-10-16 0.0 342.84 0.0 9.39 ... 212.436870 \n",
- "2006-10-17 0.0 327.94 0.0 5.66 ... 187.458054 \n",
- "\n",
- " potential_energy potential_evaporation pressure \\\n",
- "Date \n",
- "2006-10-13 0.038401 0.139839 72107.765879 \n",
- "2006-10-14 0.027793 0.143067 71877.921092 \n",
- "2006-10-15 0.000000 0.156591 72003.823920 \n",
- "2006-10-16 0.624320 0.159340 71788.350428 \n",
- "2006-10-17 4.542329 0.116995 71563.357945 \n",
- "\n",
- " shortwave_radiation specific_humidity temperature \\\n",
- "Date \n",
- "2006-10-13 174.191132 0.003637 4.295980 \n",
- "2006-10-14 190.454843 0.004275 3.669391 \n",
- "2006-10-15 180.353373 0.003437 5.069112 \n",
- "2006-10-16 190.753002 0.003852 3.643004 \n",
- "2006-10-17 188.902233 0.002838 -2.503130 \n",
- "\n",
- " total_precipitation wind_u wind_v \n",
- "Date \n",
- "2006-10-13 0.025121 -2.033486 0.793636 \n",
- "2006-10-14 0.014288 -0.926827 -2.149881 \n",
- "2006-10-15 0.004031 1.443303 -2.045946 \n",
- "2006-10-16 0.001124 4.436657 -0.672672 \n",
- "2006-10-17 0.004309 1.149626 -2.636144 \n",
- "\n",
- "[5 rows x 24 columns]"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"#merge the SNOTEL_df, met_df, and streamflow dataframes\n",
"Hydro_df = pd.concat([SNOTEL_df, PyDayMet_df, NLDAS_df,streamflow_df], axis=1)\n",
@@ -1036,252 +400,9 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " site_no | \n",
- " flow_cms | \n",
- " TUM_SWE_cm | \n",
- " DAN_SWE_cm | \n",
- " SLI_SWE_cm | \n",
- " dayl_s | \n",
- " prcp_mm_day | \n",
- " srad_W_m2 | \n",
- " swe_cm | \n",
- " tmax_C | \n",
- " ... | \n",
- " longwave_radiation | \n",
- " potential_energy | \n",
- " potential_evaporation | \n",
- " pressure | \n",
- " shortwave_radiation | \n",
- " specific_humidity | \n",
- " temperature | \n",
- " total_precipitation | \n",
- " wind_u | \n",
- " wind_v | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2006-10-13 | \n",
- " 11274790 | \n",
- " 0.611643 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39849.51 | \n",
- " 0.0 | \n",
- " 335.15 | \n",
- " 0.0 | \n",
- " 12.52 | \n",
- " ... | \n",
- " 223.457644 | \n",
- " 0.038401 | \n",
- " 0.139839 | \n",
- " 72107.765879 | \n",
- " 174.191132 | \n",
- " 0.003637 | \n",
- " 4.295980 | \n",
- " 0.025121 | \n",
- " -2.033486 | \n",
- " 0.793636 | \n",
- "
\n",
- " \n",
- " | 2006-10-14 | \n",
- " 11274790 | \n",
- " 0.563504 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39705.43 | \n",
- " 0.0 | \n",
- " 368.37 | \n",
- " 0.0 | \n",
- " 12.76 | \n",
- " ... | \n",
- " 219.173461 | \n",
- " 0.027793 | \n",
- " 0.143067 | \n",
- " 71877.921092 | \n",
- " 190.454843 | \n",
- " 0.004275 | \n",
- " 3.669391 | \n",
- " 0.014288 | \n",
- " -0.926827 | \n",
- " -2.149881 | \n",
- "
\n",
- " \n",
- " | 2006-10-15 | \n",
- " 11274790 | \n",
- " 0.538019 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39562.00 | \n",
- " 0.0 | \n",
- " 402.91 | \n",
- " 0.0 | \n",
- " 15.72 | \n",
- " ... | \n",
- " 221.013230 | \n",
- " 0.000000 | \n",
- " 0.156591 | \n",
- " 72003.823920 | \n",
- " 180.353373 | \n",
- " 0.003437 | \n",
- " 5.069112 | \n",
- " 0.004031 | \n",
- " 1.443303 | \n",
- " -2.045946 | \n",
- "
\n",
- " \n",
- " | 2006-10-16 | \n",
- " 11274790 | \n",
- " 0.504039 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39419.27 | \n",
- " 0.0 | \n",
- " 342.84 | \n",
- " 0.0 | \n",
- " 9.39 | \n",
- " ... | \n",
- " 212.436870 | \n",
- " 0.624320 | \n",
- " 0.159340 | \n",
- " 71788.350428 | \n",
- " 190.753002 | \n",
- " 0.003852 | \n",
- " 3.643004 | \n",
- " 0.001124 | \n",
- " 4.436657 | \n",
- " -0.672672 | \n",
- "
\n",
- " \n",
- " | 2006-10-17 | \n",
- " 11274790 | \n",
- " 0.481386 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39277.27 | \n",
- " 0.0 | \n",
- " 327.94 | \n",
- " 0.0 | \n",
- " 5.66 | \n",
- " ... | \n",
- " 187.458054 | \n",
- " 4.542329 | \n",
- " 0.116995 | \n",
- " 71563.357945 | \n",
- " 188.902233 | \n",
- " 0.002838 | \n",
- " -2.503130 | \n",
- " 0.004309 | \n",
- " 1.149626 | \n",
- " -2.636144 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5 rows × 24 columns
\n",
- "
"
- ],
- "text/plain": [
- " site_no flow_cms TUM_SWE_cm DAN_SWE_cm SLI_SWE_cm dayl_s \\\n",
- "Date \n",
- "2006-10-13 11274790 0.611643 0.0 0.0 0.0 39849.51 \n",
- "2006-10-14 11274790 0.563504 0.0 0.0 0.0 39705.43 \n",
- "2006-10-15 11274790 0.538019 0.0 0.0 0.0 39562.00 \n",
- "2006-10-16 11274790 0.504039 0.0 0.0 0.0 39419.27 \n",
- "2006-10-17 11274790 0.481386 0.0 0.0 0.0 39277.27 \n",
- "\n",
- " prcp_mm_day srad_W_m2 swe_cm tmax_C ... longwave_radiation \\\n",
- "Date ... \n",
- "2006-10-13 0.0 335.15 0.0 12.52 ... 223.457644 \n",
- "2006-10-14 0.0 368.37 0.0 12.76 ... 219.173461 \n",
- "2006-10-15 0.0 402.91 0.0 15.72 ... 221.013230 \n",
- "2006-10-16 0.0 342.84 0.0 9.39 ... 212.436870 \n",
- "2006-10-17 0.0 327.94 0.0 5.66 ... 187.458054 \n",
- "\n",
- " potential_energy potential_evaporation pressure \\\n",
- "Date \n",
- "2006-10-13 0.038401 0.139839 72107.765879 \n",
- "2006-10-14 0.027793 0.143067 71877.921092 \n",
- "2006-10-15 0.000000 0.156591 72003.823920 \n",
- "2006-10-16 0.624320 0.159340 71788.350428 \n",
- "2006-10-17 4.542329 0.116995 71563.357945 \n",
- "\n",
- " shortwave_radiation specific_humidity temperature \\\n",
- "Date \n",
- "2006-10-13 174.191132 0.003637 4.295980 \n",
- "2006-10-14 190.454843 0.004275 3.669391 \n",
- "2006-10-15 180.353373 0.003437 5.069112 \n",
- "2006-10-16 190.753002 0.003852 3.643004 \n",
- "2006-10-17 188.902233 0.002838 -2.503130 \n",
- "\n",
- " total_precipitation wind_u wind_v \n",
- "Date \n",
- "2006-10-13 0.025121 -2.033486 0.793636 \n",
- "2006-10-14 0.014288 -0.926827 -2.149881 \n",
- "2006-10-15 0.004031 1.443303 -2.045946 \n",
- "2006-10-16 0.001124 4.436657 -0.672672 \n",
- "2006-10-17 0.004309 1.149626 -2.636144 \n",
- "\n",
- "[5 rows x 24 columns]"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"#all of the NaN values here should be 0, fill them\n",
"Hydro_df = Hydro_df.fillna(0)\n",
@@ -1290,260 +411,9 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " site_no | \n",
- " flow_cms | \n",
- " TUM_SWE_cm | \n",
- " DAN_SWE_cm | \n",
- " SLI_SWE_cm | \n",
- " dayl_s | \n",
- " prcp_mm_day | \n",
- " srad_W_m2 | \n",
- " swe_cm | \n",
- " tmax_C | \n",
- " ... | \n",
- " Developed,_Medium_Intensity | \n",
- " Developed,_High_Intensity | \n",
- " Barren_Land_Rock_Sand_Clay | \n",
- " Deciduous_Forest | \n",
- " Evergreen_Forest | \n",
- " Mixed_Forest | \n",
- " Shrub_Scrub | \n",
- " Grassland_Herbaceous | \n",
- " Woody_Wetlands | \n",
- " Emergent_Herbaceous_Wetlands | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2006-10-13 | \n",
- " 11274790 | \n",
- " 0.611643 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39849.51 | \n",
- " 0.0 | \n",
- " 335.15 | \n",
- " 0.0 | \n",
- " 12.52 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2006-10-14 | \n",
- " 11274790 | \n",
- " 0.563504 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39705.43 | \n",
- " 0.0 | \n",
- " 368.37 | \n",
- " 0.0 | \n",
- " 12.76 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2006-10-15 | \n",
- " 11274790 | \n",
- " 0.538019 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39562.00 | \n",
- " 0.0 | \n",
- " 402.91 | \n",
- " 0.0 | \n",
- " 15.72 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2006-10-16 | \n",
- " 11274790 | \n",
- " 0.504039 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39419.27 | \n",
- " 0.0 | \n",
- " 342.84 | \n",
- " 0.0 | \n",
- " 9.39 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2006-10-17 | \n",
- " 11274790 | \n",
- " 0.481386 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 39277.27 | \n",
- " 0.0 | \n",
- " 327.94 | \n",
- " 0.0 | \n",
- " 5.66 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5 rows × 45 columns
\n",
- "
"
- ],
- "text/plain": [
- " site_no flow_cms TUM_SWE_cm DAN_SWE_cm SLI_SWE_cm dayl_s \\\n",
- "Date \n",
- "2006-10-13 11274790 0.611643 0.0 0.0 0.0 39849.51 \n",
- "2006-10-14 11274790 0.563504 0.0 0.0 0.0 39705.43 \n",
- "2006-10-15 11274790 0.538019 0.0 0.0 0.0 39562.00 \n",
- "2006-10-16 11274790 0.504039 0.0 0.0 0.0 39419.27 \n",
- "2006-10-17 11274790 0.481386 0.0 0.0 0.0 39277.27 \n",
- "\n",
- " prcp_mm_day srad_W_m2 swe_cm tmax_C ... \\\n",
- "Date ... \n",
- "2006-10-13 0.0 335.15 0.0 12.52 ... \n",
- "2006-10-14 0.0 368.37 0.0 12.76 ... \n",
- "2006-10-15 0.0 402.91 0.0 15.72 ... \n",
- "2006-10-16 0.0 342.84 0.0 9.39 ... \n",
- "2006-10-17 0.0 327.94 0.0 5.66 ... \n",
- "\n",
- " Developed,_Medium_Intensity Developed,_High_Intensity \\\n",
- "Date \n",
- "2006-10-13 0.008978 0.006413 \n",
- "2006-10-14 0.008978 0.006413 \n",
- "2006-10-15 0.008978 0.006413 \n",
- "2006-10-16 0.008978 0.006413 \n",
- "2006-10-17 0.008978 0.006413 \n",
- "\n",
- " Barren_Land_Rock_Sand_Clay Deciduous_Forest Evergreen_Forest \\\n",
- "Date \n",
- "2006-10-13 8.326386 0.01026 37.994588 \n",
- "2006-10-14 8.326386 0.01026 37.994588 \n",
- "2006-10-15 8.326386 0.01026 37.994588 \n",
- "2006-10-16 8.326386 0.01026 37.994588 \n",
- "2006-10-17 8.326386 0.01026 37.994588 \n",
- "\n",
- " Mixed_Forest Shrub_Scrub Grassland_Herbaceous Woody_Wetlands \\\n",
- "Date \n",
- "2006-10-13 0.002565 45.493722 5.055856 0.638715 \n",
- "2006-10-14 0.002565 45.493722 5.055856 0.638715 \n",
- "2006-10-15 0.002565 45.493722 5.055856 0.638715 \n",
- "2006-10-16 0.002565 45.493722 5.055856 0.638715 \n",
- "2006-10-17 0.002565 45.493722 5.055856 0.638715 \n",
- "\n",
- " Emergent_Herbaceous_Wetlands \n",
- "Date \n",
- "2006-10-13 1.233824 \n",
- "2006-10-14 1.233824 \n",
- "2006-10-15 1.233824 \n",
- "2006-10-16 1.233824 \n",
- "2006-10-17 1.233824 \n",
- "\n",
- "[5 rows x 45 columns]"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"#add in the basin info as columns in the dataframe, repeat the values for each row\n",
"for col in basin_info.columns:\n",
@@ -1554,1070 +424,9 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " site_no | \n",
- " flow_cms | \n",
- " TUM_SWE_cm | \n",
- " DAN_SWE_cm | \n",
- " SLI_SWE_cm | \n",
- " dayl_s | \n",
- " prcp_mm_day | \n",
- " srad_W_m2 | \n",
- " swe_cm | \n",
- " tmax_C | \n",
- " ... | \n",
- " Developed,_Medium_Intensity | \n",
- " Developed,_High_Intensity | \n",
- " Barren_Land_Rock_Sand_Clay | \n",
- " Deciduous_Forest | \n",
- " Evergreen_Forest | \n",
- " Mixed_Forest | \n",
- " Shrub_Scrub | \n",
- " Grassland_Herbaceous | \n",
- " Woody_Wetlands | \n",
- " Emergent_Herbaceous_Wetlands | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2019-03-01 | \n",
- " 11274790 | \n",
- " 6.909299 | \n",
- " 74.422 | \n",
- " 82.296 | \n",
- " 122.936 | \n",
- " 40066.17 | \n",
- " 14.08 | \n",
- " 280.15 | \n",
- " 40.505 | \n",
- " 3.27 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-02 | \n",
- " 11274790 | \n",
- " 11.071869 | \n",
- " 75.184 | \n",
- " 83.058 | \n",
- " 124.460 | \n",
- " 40211.76 | \n",
- " 28.55 | \n",
- " 185.59 | \n",
- " 40.371 | \n",
- " 1.44 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-03 | \n",
- " 11274790 | \n",
- " 10.618800 | \n",
- " 78.486 | \n",
- " 86.868 | \n",
- " 128.524 | \n",
- " 40357.90 | \n",
- " 0.00 | \n",
- " 477.81 | \n",
- " 40.320 | \n",
- " 3.90 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-04 | \n",
- " 11274790 | \n",
- " 9.854246 | \n",
- " 78.232 | \n",
- " 86.868 | \n",
- " 128.778 | \n",
- " 40504.55 | \n",
- " 0.00 | \n",
- " 584.53 | \n",
- " 40.320 | \n",
- " 5.98 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-05 | \n",
- " 11274790 | \n",
- " 10.448899 | \n",
- " 78.232 | \n",
- " 86.614 | \n",
- " 129.032 | \n",
- " 40651.69 | \n",
- " 23.06 | \n",
- " 278.81 | \n",
- " 40.279 | \n",
- " 1.48 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-06 | \n",
- " 11274790 | \n",
- " 12.827510 | \n",
- " 80.772 | \n",
- " 89.408 | \n",
- " 132.334 | \n",
- " 40799.28 | \n",
- " 19.66 | \n",
- " 202.14 | \n",
- " 40.210 | \n",
- " 0.18 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-07 | \n",
- " 11274790 | \n",
- " 10.901968 | \n",
- " 83.312 | \n",
- " 92.456 | \n",
- " 135.890 | \n",
- " 40947.30 | \n",
- " 7.76 | \n",
- " 429.45 | \n",
- " 40.986 | \n",
- " 1.75 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-08 | \n",
- " 11274790 | \n",
- " 8.919792 | \n",
- " 83.566 | \n",
- " 92.710 | \n",
- " 136.652 | \n",
- " 41095.72 | \n",
- " 0.00 | \n",
- " 516.49 | \n",
- " 40.986 | \n",
- " -3.42 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-09 | \n",
- " 11274790 | \n",
- " 7.560586 | \n",
- " 83.312 | \n",
- " 92.710 | \n",
- " 136.906 | \n",
- " 41244.50 | \n",
- " 3.88 | \n",
- " 460.72 | \n",
- " 41.375 | \n",
- " -1.31 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-10 | \n",
- " 11274790 | \n",
- " 6.909299 | \n",
- " 83.820 | \n",
- " 92.710 | \n",
- " 137.668 | \n",
- " 41393.63 | \n",
- " 0.00 | \n",
- " 674.84 | \n",
- " 41.375 | \n",
- " -1.06 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-11 | \n",
- " 11274790 | \n",
- " 6.286330 | \n",
- " 83.566 | \n",
- " 92.456 | \n",
- " 137.922 | \n",
- " 41543.06 | \n",
- " 0.00 | \n",
- " 670.50 | \n",
- " 41.375 | \n",
- " 1.31 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-12 | \n",
- " 11274790 | \n",
- " 6.144746 | \n",
- " 83.820 | \n",
- " 92.710 | \n",
- " 138.176 | \n",
- " 41692.78 | \n",
- " 2.81 | \n",
- " 517.15 | \n",
- " 41.655 | \n",
- " 5.47 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-13 | \n",
- " 11274790 | \n",
- " 5.918211 | \n",
- " 83.820 | \n",
- " 92.456 | \n",
- " 138.684 | \n",
- " 41842.76 | \n",
- " 0.00 | \n",
- " 699.61 | \n",
- " 41.655 | \n",
- " 0.52 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-14 | \n",
- " 11274790 | \n",
- " 5.663360 | \n",
- " 83.566 | \n",
- " 92.456 | \n",
- " 138.684 | \n",
- " 41992.97 | \n",
- " 0.00 | \n",
- " 733.03 | \n",
- " 41.655 | \n",
- " 5.77 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-15 | \n",
- " 11274790 | \n",
- " 5.804944 | \n",
- " 83.820 | \n",
- " 92.202 | \n",
- " 138.684 | \n",
- " 42143.38 | \n",
- " 0.00 | \n",
- " 702.72 | \n",
- " 41.655 | \n",
- " 7.50 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-16 | \n",
- " 11274790 | \n",
- " 6.229696 | \n",
- " 83.566 | \n",
- " 91.948 | \n",
- " 138.684 | \n",
- " 42293.98 | \n",
- " 0.00 | \n",
- " 686.98 | \n",
- " 41.655 | \n",
- " 9.69 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-17 | \n",
- " 11274790 | \n",
- " 7.079200 | \n",
- " 81.788 | \n",
- " 91.694 | \n",
- " 139.192 | \n",
- " 42444.72 | \n",
- " 0.00 | \n",
- " 653.99 | \n",
- " 41.592 | \n",
- " 10.09 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-18 | \n",
- " 11274790 | \n",
- " 7.815437 | \n",
- " 82.804 | \n",
- " 91.440 | \n",
- " 139.192 | \n",
- " 42595.59 | \n",
- " 0.00 | \n",
- " 585.96 | \n",
- " 41.448 | \n",
- " 9.36 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-19 | \n",
- " 11274790 | \n",
- " 8.523357 | \n",
- " 83.312 | \n",
- " 91.440 | \n",
- " 139.446 | \n",
- " 42746.56 | \n",
- " 7.29 | \n",
- " 399.09 | \n",
- " 41.341 | \n",
- " 6.99 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-20 | \n",
- " 11274790 | \n",
- " 9.486128 | \n",
- " 84.074 | \n",
- " 92.456 | \n",
- " 140.462 | \n",
- " 42897.61 | \n",
- " 6.42 | \n",
- " 328.51 | \n",
- " 41.304 | \n",
- " 2.80 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-21 | \n",
- " 11274790 | \n",
- " 8.325139 | \n",
- " 83.820 | \n",
- " 92.456 | \n",
- " 140.970 | \n",
- " 43048.71 | \n",
- " 2.33 | \n",
- " 358.24 | \n",
- " 41.295 | \n",
- " 2.70 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-22 | \n",
- " 11274790 | \n",
- " 7.588902 | \n",
- " 84.074 | \n",
- " 92.710 | \n",
- " 141.478 | \n",
- " 43199.83 | \n",
- " 4.19 | \n",
- " 486.67 | \n",
- " 41.714 | \n",
- " 4.11 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-23 | \n",
- " 11274790 | \n",
- " 7.843754 | \n",
- " 84.074 | \n",
- " 92.710 | \n",
- " 141.986 | \n",
- " 43350.96 | \n",
- " 4.22 | \n",
- " 343.99 | \n",
- " 42.136 | \n",
- " 1.51 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-24 | \n",
- " 11274790 | \n",
- " 6.994250 | \n",
- " 84.582 | \n",
- " 92.964 | \n",
- " 143.510 | \n",
- " 43502.06 | \n",
- " 0.00 | \n",
- " 755.23 | \n",
- " 42.136 | \n",
- " 7.89 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-25 | \n",
- " 11274790 | \n",
- " 6.796032 | \n",
- " 85.090 | \n",
- " 92.964 | \n",
- " 143.764 | \n",
- " 43653.11 | \n",
- " 0.00 | \n",
- " 583.93 | \n",
- " 42.049 | \n",
- " 6.76 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-26 | \n",
- " 11274790 | \n",
- " 7.079200 | \n",
- " 84.836 | \n",
- " 93.218 | \n",
- " 143.764 | \n",
- " 43804.08 | \n",
- " 0.00 | \n",
- " 408.20 | \n",
- " 41.828 | \n",
- " 6.05 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-27 | \n",
- " 11274790 | \n",
- " 9.457811 | \n",
- " 85.598 | \n",
- " 92.710 | \n",
- " 143.764 | \n",
- " 43954.95 | \n",
- " 25.39 | \n",
- " 246.40 | \n",
- " 41.720 | \n",
- " 1.84 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-28 | \n",
- " 11274790 | \n",
- " 9.514445 | \n",
- " 86.614 | \n",
- " 95.758 | \n",
- " 148.336 | \n",
- " 44105.70 | \n",
- " 0.00 | \n",
- " 471.78 | \n",
- " 41.720 | \n",
- " 1.50 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-29 | \n",
- " 11274790 | \n",
- " 7.957021 | \n",
- " 86.868 | \n",
- " 96.012 | \n",
- " 148.590 | \n",
- " 44256.29 | \n",
- " 0.00 | \n",
- " 713.86 | \n",
- " 41.720 | \n",
- " 3.95 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-30 | \n",
- " 11274790 | \n",
- " 7.673853 | \n",
- " 86.868 | \n",
- " 96.012 | \n",
- " 148.590 | \n",
- " 44406.70 | \n",
- " 0.00 | \n",
- " 740.84 | \n",
- " 41.720 | \n",
- " 6.55 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-03-31 | \n",
- " 11274790 | \n",
- " 8.268506 | \n",
- " 86.868 | \n",
- " 95.758 | \n",
- " 148.590 | \n",
- " 44556.91 | \n",
- " 0.00 | \n",
- " 714.94 | \n",
- " 41.710 | \n",
- " 10.11 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2019-04-01 | \n",
- " 11274790 | \n",
- " 9.797613 | \n",
- " 84.836 | \n",
- " 95.504 | \n",
- " 148.590 | \n",
- " 44706.89 | \n",
- " 8.13 | \n",
- " 443.96 | \n",
- " 41.580 | \n",
- " 8.73 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- "
\n",
- "
32 rows × 45 columns
\n",
- "
"
- ],
- "text/plain": [
- " site_no flow_cms TUM_SWE_cm DAN_SWE_cm SLI_SWE_cm dayl_s \\\n",
- "Date \n",
- "2019-03-01 11274790 6.909299 74.422 82.296 122.936 40066.17 \n",
- "2019-03-02 11274790 11.071869 75.184 83.058 124.460 40211.76 \n",
- "2019-03-03 11274790 10.618800 78.486 86.868 128.524 40357.90 \n",
- "2019-03-04 11274790 9.854246 78.232 86.868 128.778 40504.55 \n",
- "2019-03-05 11274790 10.448899 78.232 86.614 129.032 40651.69 \n",
- "2019-03-06 11274790 12.827510 80.772 89.408 132.334 40799.28 \n",
- "2019-03-07 11274790 10.901968 83.312 92.456 135.890 40947.30 \n",
- "2019-03-08 11274790 8.919792 83.566 92.710 136.652 41095.72 \n",
- "2019-03-09 11274790 7.560586 83.312 92.710 136.906 41244.50 \n",
- "2019-03-10 11274790 6.909299 83.820 92.710 137.668 41393.63 \n",
- "2019-03-11 11274790 6.286330 83.566 92.456 137.922 41543.06 \n",
- "2019-03-12 11274790 6.144746 83.820 92.710 138.176 41692.78 \n",
- "2019-03-13 11274790 5.918211 83.820 92.456 138.684 41842.76 \n",
- "2019-03-14 11274790 5.663360 83.566 92.456 138.684 41992.97 \n",
- "2019-03-15 11274790 5.804944 83.820 92.202 138.684 42143.38 \n",
- "2019-03-16 11274790 6.229696 83.566 91.948 138.684 42293.98 \n",
- "2019-03-17 11274790 7.079200 81.788 91.694 139.192 42444.72 \n",
- "2019-03-18 11274790 7.815437 82.804 91.440 139.192 42595.59 \n",
- "2019-03-19 11274790 8.523357 83.312 91.440 139.446 42746.56 \n",
- "2019-03-20 11274790 9.486128 84.074 92.456 140.462 42897.61 \n",
- "2019-03-21 11274790 8.325139 83.820 92.456 140.970 43048.71 \n",
- "2019-03-22 11274790 7.588902 84.074 92.710 141.478 43199.83 \n",
- "2019-03-23 11274790 7.843754 84.074 92.710 141.986 43350.96 \n",
- "2019-03-24 11274790 6.994250 84.582 92.964 143.510 43502.06 \n",
- "2019-03-25 11274790 6.796032 85.090 92.964 143.764 43653.11 \n",
- "2019-03-26 11274790 7.079200 84.836 93.218 143.764 43804.08 \n",
- "2019-03-27 11274790 9.457811 85.598 92.710 143.764 43954.95 \n",
- "2019-03-28 11274790 9.514445 86.614 95.758 148.336 44105.70 \n",
- "2019-03-29 11274790 7.957021 86.868 96.012 148.590 44256.29 \n",
- "2019-03-30 11274790 7.673853 86.868 96.012 148.590 44406.70 \n",
- "2019-03-31 11274790 8.268506 86.868 95.758 148.590 44556.91 \n",
- "2019-04-01 11274790 9.797613 84.836 95.504 148.590 44706.89 \n",
- "\n",
- " prcp_mm_day srad_W_m2 swe_cm tmax_C ... \\\n",
- "Date ... \n",
- "2019-03-01 14.08 280.15 40.505 3.27 ... \n",
- "2019-03-02 28.55 185.59 40.371 1.44 ... \n",
- "2019-03-03 0.00 477.81 40.320 3.90 ... \n",
- "2019-03-04 0.00 584.53 40.320 5.98 ... \n",
- "2019-03-05 23.06 278.81 40.279 1.48 ... \n",
- "2019-03-06 19.66 202.14 40.210 0.18 ... \n",
- "2019-03-07 7.76 429.45 40.986 1.75 ... \n",
- "2019-03-08 0.00 516.49 40.986 -3.42 ... \n",
- "2019-03-09 3.88 460.72 41.375 -1.31 ... \n",
- "2019-03-10 0.00 674.84 41.375 -1.06 ... \n",
- "2019-03-11 0.00 670.50 41.375 1.31 ... \n",
- "2019-03-12 2.81 517.15 41.655 5.47 ... \n",
- "2019-03-13 0.00 699.61 41.655 0.52 ... \n",
- "2019-03-14 0.00 733.03 41.655 5.77 ... \n",
- "2019-03-15 0.00 702.72 41.655 7.50 ... \n",
- "2019-03-16 0.00 686.98 41.655 9.69 ... \n",
- "2019-03-17 0.00 653.99 41.592 10.09 ... \n",
- "2019-03-18 0.00 585.96 41.448 9.36 ... \n",
- "2019-03-19 7.29 399.09 41.341 6.99 ... \n",
- "2019-03-20 6.42 328.51 41.304 2.80 ... \n",
- "2019-03-21 2.33 358.24 41.295 2.70 ... \n",
- "2019-03-22 4.19 486.67 41.714 4.11 ... \n",
- "2019-03-23 4.22 343.99 42.136 1.51 ... \n",
- "2019-03-24 0.00 755.23 42.136 7.89 ... \n",
- "2019-03-25 0.00 583.93 42.049 6.76 ... \n",
- "2019-03-26 0.00 408.20 41.828 6.05 ... \n",
- "2019-03-27 25.39 246.40 41.720 1.84 ... \n",
- "2019-03-28 0.00 471.78 41.720 1.50 ... \n",
- "2019-03-29 0.00 713.86 41.720 3.95 ... \n",
- "2019-03-30 0.00 740.84 41.720 6.55 ... \n",
- "2019-03-31 0.00 714.94 41.710 10.11 ... \n",
- "2019-04-01 8.13 443.96 41.580 8.73 ... \n",
- "\n",
- " Developed,_Medium_Intensity Developed,_High_Intensity \\\n",
- "Date \n",
- "2019-03-01 0.008978 0.006413 \n",
- "2019-03-02 0.008978 0.006413 \n",
- "2019-03-03 0.008978 0.006413 \n",
- "2019-03-04 0.008978 0.006413 \n",
- "2019-03-05 0.008978 0.006413 \n",
- "2019-03-06 0.008978 0.006413 \n",
- "2019-03-07 0.008978 0.006413 \n",
- "2019-03-08 0.008978 0.006413 \n",
- "2019-03-09 0.008978 0.006413 \n",
- "2019-03-10 0.008978 0.006413 \n",
- "2019-03-11 0.008978 0.006413 \n",
- "2019-03-12 0.008978 0.006413 \n",
- "2019-03-13 0.008978 0.006413 \n",
- "2019-03-14 0.008978 0.006413 \n",
- "2019-03-15 0.008978 0.006413 \n",
- "2019-03-16 0.008978 0.006413 \n",
- "2019-03-17 0.008978 0.006413 \n",
- "2019-03-18 0.008978 0.006413 \n",
- "2019-03-19 0.008978 0.006413 \n",
- "2019-03-20 0.008978 0.006413 \n",
- "2019-03-21 0.008978 0.006413 \n",
- "2019-03-22 0.008978 0.006413 \n",
- "2019-03-23 0.008978 0.006413 \n",
- "2019-03-24 0.008978 0.006413 \n",
- "2019-03-25 0.008978 0.006413 \n",
- "2019-03-26 0.008978 0.006413 \n",
- "2019-03-27 0.008978 0.006413 \n",
- "2019-03-28 0.008978 0.006413 \n",
- "2019-03-29 0.008978 0.006413 \n",
- "2019-03-30 0.008978 0.006413 \n",
- "2019-03-31 0.008978 0.006413 \n",
- "2019-04-01 0.008978 0.006413 \n",
- "\n",
- " Barren_Land_Rock_Sand_Clay Deciduous_Forest Evergreen_Forest \\\n",
- "Date \n",
- "2019-03-01 8.326386 0.01026 37.994588 \n",
- "2019-03-02 8.326386 0.01026 37.994588 \n",
- "2019-03-03 8.326386 0.01026 37.994588 \n",
- "2019-03-04 8.326386 0.01026 37.994588 \n",
- "2019-03-05 8.326386 0.01026 37.994588 \n",
- "2019-03-06 8.326386 0.01026 37.994588 \n",
- "2019-03-07 8.326386 0.01026 37.994588 \n",
- "2019-03-08 8.326386 0.01026 37.994588 \n",
- "2019-03-09 8.326386 0.01026 37.994588 \n",
- "2019-03-10 8.326386 0.01026 37.994588 \n",
- "2019-03-11 8.326386 0.01026 37.994588 \n",
- "2019-03-12 8.326386 0.01026 37.994588 \n",
- "2019-03-13 8.326386 0.01026 37.994588 \n",
- "2019-03-14 8.326386 0.01026 37.994588 \n",
- "2019-03-15 8.326386 0.01026 37.994588 \n",
- "2019-03-16 8.326386 0.01026 37.994588 \n",
- "2019-03-17 8.326386 0.01026 37.994588 \n",
- "2019-03-18 8.326386 0.01026 37.994588 \n",
- "2019-03-19 8.326386 0.01026 37.994588 \n",
- "2019-03-20 8.326386 0.01026 37.994588 \n",
- "2019-03-21 8.326386 0.01026 37.994588 \n",
- "2019-03-22 8.326386 0.01026 37.994588 \n",
- "2019-03-23 8.326386 0.01026 37.994588 \n",
- "2019-03-24 8.326386 0.01026 37.994588 \n",
- "2019-03-25 8.326386 0.01026 37.994588 \n",
- "2019-03-26 8.326386 0.01026 37.994588 \n",
- "2019-03-27 8.326386 0.01026 37.994588 \n",
- "2019-03-28 8.326386 0.01026 37.994588 \n",
- "2019-03-29 8.326386 0.01026 37.994588 \n",
- "2019-03-30 8.326386 0.01026 37.994588 \n",
- "2019-03-31 8.326386 0.01026 37.994588 \n",
- "2019-04-01 8.326386 0.01026 37.994588 \n",
- "\n",
- " Mixed_Forest Shrub_Scrub Grassland_Herbaceous Woody_Wetlands \\\n",
- "Date \n",
- "2019-03-01 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-02 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-03 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-04 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-05 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-06 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-07 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-08 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-09 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-10 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-11 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-12 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-13 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-14 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-15 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-16 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-17 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-18 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-19 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-20 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-21 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-22 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-23 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-24 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-25 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-26 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-27 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-28 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-29 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-30 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-03-31 0.002565 45.493722 5.055856 0.638715 \n",
- "2019-04-01 0.002565 45.493722 5.055856 0.638715 \n",
- "\n",
- " Emergent_Herbaceous_Wetlands \n",
- "Date \n",
- "2019-03-01 1.233824 \n",
- "2019-03-02 1.233824 \n",
- "2019-03-03 1.233824 \n",
- "2019-03-04 1.233824 \n",
- "2019-03-05 1.233824 \n",
- "2019-03-06 1.233824 \n",
- "2019-03-07 1.233824 \n",
- "2019-03-08 1.233824 \n",
- "2019-03-09 1.233824 \n",
- "2019-03-10 1.233824 \n",
- "2019-03-11 1.233824 \n",
- "2019-03-12 1.233824 \n",
- "2019-03-13 1.233824 \n",
- "2019-03-14 1.233824 \n",
- "2019-03-15 1.233824 \n",
- "2019-03-16 1.233824 \n",
- "2019-03-17 1.233824 \n",
- "2019-03-18 1.233824 \n",
- "2019-03-19 1.233824 \n",
- "2019-03-20 1.233824 \n",
- "2019-03-21 1.233824 \n",
- "2019-03-22 1.233824 \n",
- "2019-03-23 1.233824 \n",
- "2019-03-24 1.233824 \n",
- "2019-03-25 1.233824 \n",
- "2019-03-26 1.233824 \n",
- "2019-03-27 1.233824 \n",
- "2019-03-28 1.233824 \n",
- "2019-03-29 1.233824 \n",
- "2019-03-30 1.233824 \n",
- "2019-03-31 1.233824 \n",
- "2019-04-01 1.233824 \n",
- "\n",
- "[32 rows x 45 columns]"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"#take a look around peak SWE to make sure we have snotel values, early season can be tricky to assess\n",
"Hydro_df.loc['2019-03-01':'2019-04-01']"
@@ -2625,260 +434,9 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " site_no | \n",
- " flow_cms | \n",
- " TUM_SWE_cm | \n",
- " DAN_SWE_cm | \n",
- " SLI_SWE_cm | \n",
- " dayl_s | \n",
- " prcp_mm_day | \n",
- " srad_W_m2 | \n",
- " swe_cm | \n",
- " tmax_C | \n",
- " ... | \n",
- " Developed,_Medium_Intensity | \n",
- " Developed,_High_Intensity | \n",
- " Barren_Land_Rock_Sand_Clay | \n",
- " Deciduous_Forest | \n",
- " Evergreen_Forest | \n",
- " Mixed_Forest | \n",
- " Shrub_Scrub | \n",
- " Grassland_Herbaceous | \n",
- " Woody_Wetlands | \n",
- " Emergent_Herbaceous_Wetlands | \n",
- "
\n",
- " \n",
- " | Date | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 2021-09-12 | \n",
- " 11274790 | \n",
- " 0.236728 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 44482.49 | \n",
- " 0.0 | \n",
- " 455.38 | \n",
- " 0.0 | \n",
- " 22.28 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2021-09-13 | \n",
- " 11274790 | \n",
- " 0.302990 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 44332.18 | \n",
- " 0.0 | \n",
- " 486.88 | \n",
- " 0.0 | \n",
- " 22.73 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2021-09-14 | \n",
- " 11274790 | \n",
- " 0.275239 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 44181.67 | \n",
- " 0.0 | \n",
- " 447.48 | \n",
- " 0.0 | \n",
- " 22.50 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2021-09-15 | \n",
- " 11274790 | \n",
- " 0.251170 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 44031.00 | \n",
- " 0.0 | \n",
- " 424.99 | \n",
- " 0.0 | \n",
- " 21.18 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- " | 2021-09-16 | \n",
- " 11274790 | \n",
- " 0.223986 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 43880.19 | \n",
- " 0.0 | \n",
- " 420.08 | \n",
- " 0.0 | \n",
- " 19.71 | \n",
- " ... | \n",
- " 0.008978 | \n",
- " 0.006413 | \n",
- " 8.326386 | \n",
- " 0.01026 | \n",
- " 37.994588 | \n",
- " 0.002565 | \n",
- " 45.493722 | \n",
- " 5.055856 | \n",
- " 0.638715 | \n",
- " 1.233824 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5 rows × 45 columns
\n",
- "
"
- ],
- "text/plain": [
- " site_no flow_cms TUM_SWE_cm DAN_SWE_cm SLI_SWE_cm dayl_s \\\n",
- "Date \n",
- "2021-09-12 11274790 0.236728 0.0 0.0 0.0 44482.49 \n",
- "2021-09-13 11274790 0.302990 0.0 0.0 0.0 44332.18 \n",
- "2021-09-14 11274790 0.275239 0.0 0.0 0.0 44181.67 \n",
- "2021-09-15 11274790 0.251170 0.0 0.0 0.0 44031.00 \n",
- "2021-09-16 11274790 0.223986 0.0 0.0 0.0 43880.19 \n",
- "\n",
- " prcp_mm_day srad_W_m2 swe_cm tmax_C ... \\\n",
- "Date ... \n",
- "2021-09-12 0.0 455.38 0.0 22.28 ... \n",
- "2021-09-13 0.0 486.88 0.0 22.73 ... \n",
- "2021-09-14 0.0 447.48 0.0 22.50 ... \n",
- "2021-09-15 0.0 424.99 0.0 21.18 ... \n",
- "2021-09-16 0.0 420.08 0.0 19.71 ... \n",
- "\n",
- " Developed,_Medium_Intensity Developed,_High_Intensity \\\n",
- "Date \n",
- "2021-09-12 0.008978 0.006413 \n",
- "2021-09-13 0.008978 0.006413 \n",
- "2021-09-14 0.008978 0.006413 \n",
- "2021-09-15 0.008978 0.006413 \n",
- "2021-09-16 0.008978 0.006413 \n",
- "\n",
- " Barren_Land_Rock_Sand_Clay Deciduous_Forest Evergreen_Forest \\\n",
- "Date \n",
- "2021-09-12 8.326386 0.01026 37.994588 \n",
- "2021-09-13 8.326386 0.01026 37.994588 \n",
- "2021-09-14 8.326386 0.01026 37.994588 \n",
- "2021-09-15 8.326386 0.01026 37.994588 \n",
- "2021-09-16 8.326386 0.01026 37.994588 \n",
- "\n",
- " Mixed_Forest Shrub_Scrub Grassland_Herbaceous Woody_Wetlands \\\n",
- "Date \n",
- "2021-09-12 0.002565 45.493722 5.055856 0.638715 \n",
- "2021-09-13 0.002565 45.493722 5.055856 0.638715 \n",
- "2021-09-14 0.002565 45.493722 5.055856 0.638715 \n",
- "2021-09-15 0.002565 45.493722 5.055856 0.638715 \n",
- "2021-09-16 0.002565 45.493722 5.055856 0.638715 \n",
- "\n",
- " Emergent_Herbaceous_Wetlands \n",
- "Date \n",
- "2021-09-12 1.233824 \n",
- "2021-09-13 1.233824 \n",
- "2021-09-14 1.233824 \n",
- "2021-09-15 1.233824 \n",
- "2021-09-16 1.233824 \n",
- "\n",
- "[5 rows x 45 columns]"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"Hydro_df.tail()"
]
@@ -2887,7 +445,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Data Exploration Exercise #1\n",
+ "## Data Exploration Exercise\n",
"\n",
"Use the combined data frame you created for a **USGS NWIS site other than the example** to explore different data and relationships. Select a single water year (October - September) to explore the following relationships:\n",
"* Streamflow and SWE (e.g., Daymet and SWE from Snotel)\n",
@@ -2898,20 +456,6 @@
"In markdown below each figure, write a few sentences describing the relationships and anything that is unexpected. This exercise prepares you for HW#2.\n"
]
},
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Data Exploration Exercise #2\n",
- "\n",
- "Develop a Python script (.py) that you can run in the terminal that collects, processes, and saves your dataframes and a few select figures of interest."
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
diff --git a/cache/aiohttp_cache.sqlite b/cache/aiohttp_cache.sqlite
index 0323d3e..6917d56 100644
Binary files a/cache/aiohttp_cache.sqlite and b/cache/aiohttp_cache.sqlite differ
diff --git a/supporting_scripts/getData.py b/supporting_scripts/getData.py
index a456764..6956986 100644
--- a/supporting_scripts/getData.py
+++ b/supporting_scripts/getData.py
@@ -1,5 +1,6 @@
import os
import sys
+from urllib import response
import pytz
import urllib3
import datetime
@@ -22,9 +23,14 @@ def getSNOTELData(SiteName, SiteID, StateAbb, StartDate, EndDate, OutputFolder):
url = url1+url2+url3+url4
print(f'Start retrieving data for {SiteName}, {SiteID} \n {url}')
- http = urllib3.PoolManager()
- response = http.request('GET', url)
- data = response.data.decode('utf-8')
+ # http = urllib3.PoolManager()
+ # response = http.request('GET', url)
+ # data = response.data.decode('utf-8')
+
+ response = requests.get(url, timeout=60)
+ response.raise_for_status()
+ data = response.text
+
i=0
for line in data.split("\n"):
if line.startswith("#"):
@@ -109,6 +115,64 @@ def getCaliSNOTELData(SiteName, SiteID, StartDate, EndDate, OutputFolder):
df.to_csv(f'./{OutputFolder}/df_{SiteID}_{StateAbb}_SNTL.csv', index=False)
+
+def get_Landsat_NDSI(basin_polygon_coords, StartDate, EndDate):
+ import ee
+ import pandas as pd
+
+ ee.Authenticate()
+ ee.Initialize()
+
+ basin = ee.Geometry.Polygon(basin_polygon_coords)
+
+ col = (
+ ee.ImageCollection("LANDSAT/LC08/C02/T2_L2")
+ .filterBounds(basin)
+ .filterDate(StartDate, EndDate)
+ .sort("CLOUD_COVER")
+ )
+
+ n = col.size().getInfo()
+ img_list = col.toList(n)
+
+ records = []
+
+ for i in range(n):
+ img = ee.Image(img_list.get(i))
+
+ qa = img.select("QA_PIXEL")
+ cloud_mask = (
+ qa.bitwiseAnd(1 << 1).eq(0)
+ .And(qa.bitwiseAnd(1 << 2).eq(0))
+ .And(qa.bitwiseAnd(1 << 3).eq(0))
+ .And(qa.bitwiseAnd(1 << 4).eq(0))
+ )
+
+ green = img.select("SR_B3").multiply(2.75e-05).add(-0.2)
+ swir1 = img.select("SR_B6").multiply(2.75e-05).add(-0.2)
+
+ ndsi = green.subtract(swir1).divide(green.add(swir1)).rename("NDSI")
+ ndsi = ndsi.updateMask(cloud_mask)
+
+ stat = ndsi.reduceRegion(
+ reducer=ee.Reducer.mean(),
+ geometry=basin,
+ scale=30,
+ maxPixels=1e9,
+ ).getInfo()
+
+ if stat and stat.get("NDSI") is not None:
+ records.append({
+ "Date": pd.to_datetime(img.date().format("YYYY-MM-dd").getInfo()),
+ "NDSI": stat["NDSI"],
+ })
+
+ df = pd.DataFrame(records)
+ if not df.empty:
+ df = df.sort_values("Date").set_index("Date")
+ return df
+
+
def convert_latlon_to_yx(lat, lon, input_crs, ds, output_crs):
"""
This function takes latitude and longitude values along with