{ "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)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Name: Sign. Wave Height\n", "Dimensions: (24,)\n", "Time: 2004-01-01 01:00:00 - 2004-01-03 12:00:10\n", "-- Non-equidistant calendar axis --" ] }, "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": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "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\"].to_numpy(),'k*',label=\"Observation\")\n", "plt.plot(dsi.time, dsi[\"Sign. Wave Height\"][:,1,0].to_numpy(),'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": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0008009996575613816" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mae = np.nanmean(np.abs(ts[\"Sign. Wave Height\"].to_numpy() - dsi[\"Sign. Wave Height\"][:,1,0].to_numpy()))\n", "mae" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Clean up" ] }, { "cell_type": "code", "execution_count": 13, "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.9.6" } }, "nbformat": 4, "nbformat_minor": 4 }