Comparing directional data requires a little extra care and needs different axis on the plots.
import modelskill as ms
import mikeio
fn = "../tests/testdata/wave_dir.dfs0"
ds = mikeio.read(fn)
ds
<mikeio.Dataset> dims: (time:9026) time: 2006-12-20 22:00:00 - 2007-12-31 23:00:00 (9026 records) geometry: GeometryUndefined() items: 0: China_Model: Sign. Wave Height <Significant wave height> (meter) 1: China_Measured: Sign. Wave Height <Significant wave height> (meter) 2: China_Model: Mean Wave Direction <Mean Wave Direction> (degree) 3: China_Measured: Mean Wave Direction <Mean Wave Direction> (degree)
cmp = ms.from_matched(ds, obs_item=3, mod_items=[2])
cmp
<Comparer> Quantity: Mean Wave Direction [degree] Observation: China_Measured: Mean Wave Direction, n_points=9026 Model: China_Model: Mean Wave Direction, rmse=71.358
cmp.plot.timeseries();
We need to tell the plotter that the data is directional and that it should be plotted on a circular axis.
cmp.plot.is_directional = True
cmp.plot.timeseries();
cmp.plot.kde(); # note: the KDE estimate is not directional! (yet)
cmp.plot.scatter(); # note: regression line and Q-Q are not shown