{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Time interpolation" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "dx: 50.00000\n", "dy: 50.00000\n", "Items:\n", " 0: Sign. Wave Height (meter)\n", " 1: Peak Wave Period (second)\n", " 2: Mean Wave Direction (degree)\n", "Time: 3 steps\n", "Start time: 2004-01-01 00:00:00" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "from mikeio import Dfs2\n", "\n", "dfs2 = Dfs2(\"../tests/testdata/waves.dfs2\")\n", "dfs2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Dimensions: (3, 31, 31)\n", "Time: 2004-01-01 00:00:00 - 2004-01-03 00:00:00\n", "Items:\n", " 0: Sign. Wave Height (meter)\n", " 1: Peak Wave Period (second)\n", " 2: Mean Wave Direction (degree)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds = dfs2.read()\n", "ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpolate to specific timestep" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Dimensions: (49, 31, 31)\n", "Time: 2004-01-01 00:00:00 - 2004-01-03 00:00:00\n", "Items:\n", " 0: Sign. Wave Height (meter)\n", " 1: Peak Wave Period (second)\n", " 2: Mean Wave Direction (degree)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds_h = ds.interp_time(3600)\n", "ds_h" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "dfs2.write(\"waves_3h.dfs2\",ds_h)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpolate to time axis of another dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read some non-equidistant \"observations\"." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Dimensions: (24,)\n", "Time: 2004-01-01 01:00:00 - 2004-01-03 12:00:10\n", "-- Non-equidistant calendar axis --\n", "Items:\n", " 0: Sign. Wave Height (undefined)\n", " 1: Peak Wave Period (undefined)\n", " 2: Mean Wave Direction (undefined)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from mikeio import Dfs0\n", "\n", "dfs0 = Dfs0(\"../tests/testdata/waves.dfs0\")\n", "ts = dfs0.read()\n", "ts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The observed timeseries is longer than the modelled data. Default is to fill values with NaN." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "dsi = ds.interp_time(ts.time)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.06543457, 0.06661261, 0.06779064, 0.06896868, 0.07014672,\n", " 0.07132475, 0.07250279, 0.07368083, 0.09135137, 0.09252941,\n", " 0.09108364, 0.08963786, 0.08819209, 0.08674632, 0.08530055,\n", " 0.08385478, 0.082409 , 0.08096323, 0.07951746, 0.06361397,\n", " 0.0621682 , 0.05927665, 0.05783088, nan])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsi[\"Sign. Wave Height\"][:,1,0]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(24, 31, 31)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsi[\"Sign. Wave Height\"].shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot(ts.time,ts[\"Sign. Wave Height\"],'k*',label=\"Observation\")\n", "plt.plot(dsi.time, dsi[\"Sign. Wave Height\"][:,1,0],'r+-',label=\"Model\")\n", "plt.gcf().autofmt_xdate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mean absolute error\n", "Use `np.nanmean` to skip NaN." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0008009996575613816" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mae = np.nanmean(np.abs(ts[\"Sign. Wave Height\"] - dsi[\"Sign. Wave Height\"][:,1,0]))\n", "mae" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Clean up" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.remove(\"waves_3h.dfs2\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }