{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Combine comparers\n", "ModelSkill comparers can be combined using `merge`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import modelskill as ms" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Observations" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "o1 = ms.PointObservation('../tests/testdata/SW/HKNA_Hm0.dfs0', item=0, x=4.2420, y=52.6887, name=\"HKNA\")\n", "o2 = ms.PointObservation(\"../tests/testdata/SW/eur_Hm0.dfs0\", item=0, x=3.2760, y=51.9990, name=\"EPL\")\n", "o3 = ms.TrackObservation(\"../tests/testdata/SW/Alti_c2_Dutch.dfs0\", item=3, name=\"c2\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Model Results" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ ": CMEMS\n", "Time: 2017-10-28 00:00:00 - 2017-10-29 18:00:00\n", "Quantity: Spectral significant wave height (Hm0) [m]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fn = \"../tests/testdata/SW/CMEMS_DutchCoast_*.nc\"\n", "mr1 = ms.model_result(fn, name='CMEMS', item='VHM0')\n", "mr1" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "mr2 = ms.model_result('../tests/testdata/SW/HKZN_local_2017_DutchCoast.dfsu', name='MIKE21SW', item=0)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Match\n", "Notice that the two ModelResults doesn't cover the exact same period." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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1xcZGRnw8fGx9HCIiIjIzqnNHrxJOBERERGpxvBIRERERKoxPBIRERGRagyPRERERKQawyMRERERqcbwSERERESqMTwSERERkWoMj0RERESkGsMjEREREanG8EhEREREqjE8EhEREZFqDI9EREREpBrDIxERERGpxvBIRERERKoxPBIRERGRagyPRERERKQawyMRERERqcbwSERERESqMTwSERERkWoMj0RERESkGsMjEREREanG8EhEREREqjE8EhEREZFqDI9EREREpJrdh8eBAwfi2WefLdK+Y8cOaDQapKenm/3fJDU1FaGhoXjssceQkZGh9GnevDkMBoPZvCpXrozPP/+8yHNMnz4dzs7OmDlzZhlXRURERGQZdh8eS+P06dPo1KkT6tSpg82bN8PX11d57MyZM1i+fLmq+SxduhRjxozB0qVLy2uoRERERBWK4fE+R48eRadOndChQwd899138PDwMHv8rbfewqRJk6DX6x84n507dyI7OxtTp06FTqfDnj17ynPYRERERBXCxdIDsCZ79uxB//790b9/f8yfPx8ajaZIn5EjR+Krr77C/PnzMXr06BLntWTJErz00ktwdXXFSy+9hCVLlqBjx44l9tfr9WaBVKfTPVoxD5B2Nw3Jt5NxPvM8zqSfwZWsK8jMzUSeIU/po4EGAiky7cO2uzm7QSBm8y7r57C2dtZsHWNyxJq93LxQtVJVBHgEoLpnddT2qY1GVRrhZvZNHEo7hKt3ruJG9g1k5GQgMzcT+YZ8m6/Zntfno7S7OrvC280bWmctNBoNRAracww5yv7e3mpW0+7l5gV3Z3fkGHIAAO7O7tA6a5FjyEGuIVeZJteQqywXa6jBtD4ru1dGXd+6aObfDI2qNEJgpcAi01UEhwiPmzZtgpeXl1nb/dctAkDv3r3Rr18/LFiwoMR5VapUCZMmTcK4ceMwePBgs1PaJjqdDmvWrMGvv/4KABgwYAA6d+6MefPmFRmHyfTp0zFlypSHKavUVievxqLfF1XIcxGRZQ0NG4r9V/fjwLUDlh4KEZWhoWFDERceZ5Hndojw2LVrVyxaZB6W9u3bhwEDBpi1/f3vf8e3336L3bt3o3PnziXOLzY2FrNnz8aMGTPw4YcfFnl85cqVaNCgAcLCwgAA4eHhqFOnDr755hvExsYWO8/4+HiMGjVK+V2n0yE4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RKQawyMRERERqcbwSERERESqMTwSERERkWoMj0RERESkGsMjEREREanG8EhEREREqjE8EhEREZFqDI9EREREpBrDIxERERGpxvBIRERERKoxPBIRERGRagyPRERERKQawyMRERERqcbwSERERESqMTwSERERkWoMj0RERESkGsMjEREREanG8EhEREREqjE8EhEREZFqVh8eL168iHfeeQdNmzZFpUqV4Ofnh/bt22P69OkQEfTo0QMajQYajQZPPfWU2bRpaWkICAhQHh8zZgwAwGg0wtvbW2kv/OPk5ITbt28DAGbOnKm0e3t7w2AwKPMWEXTp0kV5vF27dspj6enpmDJlCkJDQ+Hj4wMvLy/Uq1cPzzzzDI4dO1YBS42IiIiofLhYegAPsmLFCgwePBjZ2dlwdnZG06ZNodPp8Ntvv+HatWuIj4/HoUOHlP579uyBwWCAs7MzAGDEiBG4efOm8njr1q0BAMnJycjKygIAhISEwN/fX+lTs2ZNVKlSBQBw8OBBpT0rKwuHDh1CREQEAGDx4sXYtWtXkXlnZmaiffv2SE5OhouLC5o2bYqcnBycP38e586dw8cff1ymy4iIqDARQXae4a87EtEj8XB1hkajsfQwLMJqw+P333+PV155BSKCv/3tb1i2bBlq1KgBALh06RK2bduG1NRUXL16FQCg1Wqh0+lw5MgRtGnTBps2bcKqVaug1WqRk5MDAGjTpg0AmAXOpUuXonPnzsWOwdTPNI9du3YhIiICly9fxpgxY4qd95dffonk5GS4uroiOTkZdevWBQDcuXMH33//PUJCQop9Lr1eD71er/yu0+lKtdyIyLFl5xnQbOJmSw+DyO4dn/okKrlZbYwqV1Z52jovLw/Dhg2DiKBRo0b47rvvlOAIALVq1cKrr75qdmRwwIABAICdO3ciMzMTQ4cOhaenJ5599lkAgI+PjxLcCk/XtGnTYseg0+mQkpJSZN4AEBcXB51Op7QD9448Xrt2TanhP//5D06ePAkA8PT0xAsvvFBizdOnT4evr6/yExwc/FeLiYiIiKjCWWVk3rlzJ86fPw8AGDZsGDw8PIrtZzoy6OXlhSFDhuCzzz7Drl27kJKSgkuXLmHevHnYtGkTACA8PFw5vFz4yGNgYKDyf9P1jj4+Pjh8+DBEBAAQGxuLtWvX4ueff8aqVauwYcMG9O7d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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ms.plotting.temporal_coverage(obs=[o1,o2,o3], mod=[mr1,mr2], limit_to_model_period=False)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "cc1 = ms.match(obs=[o1,o2,o3], mod=mr1)#, name='SW')\n", "cc2 = ms.match(obs=[o1,o2,o3], mod=mr2)# , name='SW')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nbiasrmseurmsemaeccsir2
observation
HKNA242-0.7243890.8645530.4719240.7244290.9064460.1266750.251523
EPL43-0.4331370.5116350.2723290.4357820.9206540.0893020.460214
c239-0.3021170.4722800.3630060.3976940.9352870.0916030.745605
\n", "
" ], "text/plain": [ " n bias rmse urmse mae cc si \\\n", "observation \n", "HKNA 242 -0.724389 0.864553 0.471924 0.724429 0.906446 0.126675 \n", "EPL 43 -0.433137 0.511635 0.272329 0.435782 0.920654 0.089302 \n", "c2 39 -0.302117 0.472280 0.363006 0.397694 0.935287 0.091603 \n", "\n", " r2 \n", "observation \n", "HKNA 0.251523 \n", "EPL 0.460214 \n", "c2 0.745605 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cc1.skill()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nbiasrmseurmsemaeccsir2
observation
HKNA386-0.2024130.3551950.2918770.2558660.9717080.0939670.903554
EPL67-0.0712380.2249230.2133440.1894550.9697600.0824820.931793
c2113-0.0047010.3524700.3524390.2947580.9750500.1280100.899121
\n", "
" ], "text/plain": [ " n bias rmse urmse mae cc si \\\n", "observation \n", "HKNA 386 -0.202413 0.355195 0.291877 0.255866 0.971708 0.093967 \n", "EPL 67 -0.071238 0.224923 0.213344 0.189455 0.969760 0.082482 \n", "c2 113 -0.004701 0.352470 0.352439 0.294758 0.975050 0.128010 \n", "\n", " r2 \n", "observation \n", "HKNA 0.903554 \n", "EPL 0.931793 \n", "c2 0.899121 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cc2.skill()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Merge the two Comparers" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "cc = cc1.merge(cc2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nbiasrmseurmsemaeccsir2
modelobservation
CMEMSHKNA242-0.7243890.8645530.4719240.7244290.9064460.1266750.251523
EPL43-0.4331370.5116350.2723290.4357820.9206540.0893020.460214
c239-0.3021170.4722800.3630060.3976940.9352870.0916030.745605
MIKE21SWHKNA242-0.2397750.4148220.3385040.3003890.9497000.0908620.827687
EPL43-0.0843240.2072530.1893230.1752960.9729580.0620830.911427
c2390.3199750.4014420.2424290.3501640.9660300.0611760.816197
\n", "
" ], "text/plain": [ " n bias rmse urmse mae cc \\\n", "model observation \n", "CMEMS HKNA 242 -0.724389 0.864553 0.471924 0.724429 0.906446 \n", " EPL 43 -0.433137 0.511635 0.272329 0.435782 0.920654 \n", " c2 39 -0.302117 0.472280 0.363006 0.397694 0.935287 \n", "MIKE21SW HKNA 242 -0.239775 0.414822 0.338504 0.300389 0.949700 \n", " EPL 43 -0.084324 0.207253 0.189323 0.175296 0.972958 \n", " c2 39 0.319975 0.401442 0.242429 0.350164 0.966030 \n", "\n", " si r2 \n", "model observation \n", "CMEMS HKNA 0.126675 0.251523 \n", " EPL 0.089302 0.460214 \n", " c2 0.091603 0.745605 \n", "MIKE21SW HKNA 0.090862 0.827687 \n", " EPL 0.062083 0.911427 \n", " c2 0.061176 0.816197 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cc.skill()" ] } ], "metadata": { "kernelspec": { "display_name": "modelskill", "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.13.0" }, "orig_nbformat": 2 }, "nbformat": 4, "nbformat_minor": 2 }