{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# D-Score Suite (v1) Benchmark -- Usage Examples\n", "\n", "\n", ":::{note}\n", "_This notebook adapted from originals by Timothy Hodson and Rich Signell. See that upstream work at:_\n", "* https://github.com/thodson-usgs/dscore\n", "* https://github.com/USGS-python/hytest-evaluation-workflows/\n", ":::\n", "\n", "This notebook will demonstrate how to call the specific functions defined in the D-Score Suite\n", "notebook, using a small demonstration dataset." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sample Data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12145 Records\n" ] } ], "source": [ "sampleData = pd.read_csv(r\"../nwm_streamflow/NWM_Benchmark_SampleData.csv\", index_col='date', parse_dates=True).dropna()\n", "print(len(sampleData.index), \" Records\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A quick look at the table shows that this data contains time-series streamflow values for\n", "observed ('obs'), the NWM data model ('nwm'), and the NHM model ('nhm'). This demonstration\n", "dataset limits to a single gage (\"`site_no` = 1104200\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
site_noobsnwmnhm
date
1983-10-0111042001.1213476.1754171.469472
1983-10-0211042001.2147936.2504171.848861
1983-10-0311042000.8721596.2158332.169456
1983-10-0411042000.4190896.1050002.200083
1983-10-0511042000.8495055.9525001.931588
\n", "
" ], "text/plain": [ " site_no obs nwm nhm\n", "date \n", "1983-10-01 1104200 1.121347 6.175417 1.469472\n", "1983-10-02 1104200 1.214793 6.250417 1.848861\n", "1983-10-03 1104200 0.872159 6.215833 2.169456\n", "1983-10-04 1104200 0.419089 6.105000 2.200083\n", "1983-10-05 1104200 0.849505 5.952500 1.931588" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sampleData.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import Benchmark Functions\n", "The metric functions are defined and described in\n", "{doc}`/evaluation/Metrics_DScore_Suite_v1`.\n", "They are imported here by running that notebook from within the following cell:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "%run ../../Metrics_DScore_Suite_v1.ipynb\n", "# This defines the same functions in this notebook's namespace." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The functions are now available here, to run against our sample data:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "55.73589185136414" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Mean Square Error\n", "mse(sampleData['obs'], sampleData['nwm'])" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "winter 13.205368\n", "spring 11.135375\n", "summer 14.120221\n", "fall 17.274927\n", "dtype: float64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "seasonal_mse(sampleData['obs'], sampleData['nwm'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create Composite Benchmark\n", "It is useful to combine several of these metrics into a single benchmark routine, which returns a pandas Series of the assembled metrics.\n", "\n", "This 'wrapper' composite benchmark also handles any transforms of the data before calling the metric functions. In this case, we will log transform the data. " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def compute_benchmark(df):\n", " \"\"\"\n", " Runs several metrics against the data table in 'df'. \n", "\n", " NOTE: the 'obs' and 'nwm' columns must exist in df, and that nan's have already been removed. \n", " \"\"\"\n", " obs = np.log(df['obs'].clip(lower=0.01)) # clip to remove zeros and negative values\n", " sim = np.log(df['nwm'].clip(lower=0.01)) \n", " \n", " mse_ = pd.Series(\n", " [ mse(obs, sim) ], \n", " index=[\"mse\"], \n", " dtype='float32'\n", " )\n", " return pd.concat([\n", " mse_,\n", " bias_distribution_sequence(obs, sim), \n", " seasonal_mse(obs, sim),\n", " quantile_mse(obs, sim)\n", " ],\n", " )" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "mse 0.874842\n", "e_bias 0.409683\n", "e_dist 0.224187\n", "e_seq 0.241010\n", "winter 0.057879\n", "spring 0.033822\n", "summer 0.396487\n", "fall 0.386654\n", "low 0.653889\n", "below_avg 0.127766\n", "above_avg 0.052214\n", "high 0.040973\n", "dtype: float64" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compute_benchmark(sampleData)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Score-Cards\n", "The DScore functions include an ILAMB-style scorecard function to produce a graphic scorecard from these metrics.\n", "Note that a scorecard such as this is typically applied to a composite of DScore metrics computed for many gages.\n", "This demos the scorecard for a single gage **as if** it were the mean of all gages in an evaluation analysis. " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NWM
mse100
e_bias47
e_dist26
e_seq28
winter7
spring4
summer45
fall44
low75
below_avg15
above_avg6
high5
\n", "
" ], "text/plain": [ " NWM\n", "mse 100\n", "e_bias 47\n", "e_dist 26\n", "e_seq 28\n", "winter 7\n", "spring 4\n", "summer 45\n", "fall 44\n", "low 75\n", "below_avg 15\n", "above_avg 6\n", "high 5" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Compute benchmark and 'score' each decomp as percent of total MSE\n", "bm = compute_benchmark(sampleData)\n", "percentage_card = pd.DataFrame(data={\n", " 'NWM' : ((bm / bm['mse']) * 100).round().astype(int)\n", " })\n", "percentage_card.name=\"Percent\" ## NOTE: `name` is a non-standard attribute for a dataframe. We use it to stash\n", " ## metadata for this dataframe which the ilamb_card_II() func will use to label things.\n", "percentage_card" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_cards=1\n", "fig, ax = plt.subplots(1, n_cards, figsize=(0.5+(1.5*n_cards), 3.25), dpi=150)\n", "ax = ilamb_card_II(percentage_card, ax)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## if the score card has columns for multilple models..... \n", "# fictitious example:\n", "percentage_card['XYZ'] = pd.Series([100, 20, 30, 20, 10, 50, 60, 70, 20, 10, 40, 50], index=percentage_card.index)\n", "fig, ax = plt.subplots(1, n_cards, figsize=(0.5+(1.5*n_cards), 3.25), dpi=150)\n", "ax = ilamb_card_II(percentage_card, ax)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.8" }, "vscode": { "interpreter": { "hash": "d7ebce313f85fb1ac8949e834c83f371584cb2422d845bf1570c1220fdedc716" } } }, "nbformat": 4, "nbformat_minor": 4 }