The task is to combine current velocities from an oceanographic model without tides with tidal current.
import numpy as np
import matplotlib.pyplot as plt
from mikeio import Dfs2, Dfs1
dfs2 = Dfs2("../tests/testdata/uv_vertical_daily.dfs2")
ds_surge = dfs2.read()
ds_surge
<mikeio.Dataset> Dimensions: (3, 5, 11) Time: 2021-08-14 12:00:00 - 2021-08-16 12:00:00 Items: 0: eastward_sea_water_velocity <u velocity component> (meter per sec) 1: northward_sea_water_velocity <v velocity component> (meter per sec)
dfs1 = Dfs1("../tests/testdata/vu_tide_hourly.dfs1")
ds_tide = dfs1.read()
ds_tide
<mikeio.Dataset> Dimensions: (721, 11) Time: 2021-08-01 00:00:00 - 2021-08-31 00:00:00 Items: 0: Tidal current component (geographic North) <v velocity component> (meter per sec) 1: Tidal current component (geographic East) <u velocity component> (meter per sec)
ds_surge_h = ds_surge.interp_time(ds_tide.time)
ds_surge_h
<mikeio.Dataset> Dimensions: (721, 5, 11) Time: 2021-08-01 00:00:00 - 2021-08-31 00:00:00 Items: 0: eastward_sea_water_velocity <u velocity component> (meter per sec) 1: northward_sea_water_velocity <v velocity component> (meter per sec)
Note that the naming and order is inconsistent between the two data sources!
u_tide = ds_tide["Tidal current component (geographic East)"]
u_tide = np.expand_dims(u_tide, 1)
u_tide.shape
(721, 1, 11)
u_surge = ds_surge_h["eastward_sea_water_velocity"]
u_surge.shape
(721, 5, 11)
u_combined = u_tide + u_surge
u_combined.shape
(721, 5, 11)
v_tide = ds_tide["Tidal current component (geographic North)"]
v_tide = np.expand_dims(v_tide, 1)
v_surge = ds_surge_h["northward_sea_water_velocity"]
v_combined = v_tide + v_surge
from mikeio import Dataset
ds_combined = Dataset(data=[u_combined, v_combined],
time=ds_tide.time,
items=ds_surge.items)
ds_combined
<mikeio.Dataset> Dimensions: (721, 5, 11) Time: 2021-08-01 00:00:00 - 2021-08-31 00:00:00 Items: 0: eastward_sea_water_velocity <u velocity component> (meter per sec) 1: northward_sea_water_velocity <v velocity component> (meter per sec)
ds_combined = ds_combined.dropna()
ds_combined
<mikeio.Dataset> Dimensions: (49, 5, 11) Time: 2021-08-14 12:00:00 - 2021-08-16 12:00:00 Items: 0: eastward_sea_water_velocity <u velocity component> (meter per sec) 1: northward_sea_water_velocity <v velocity component> (meter per sec)
dfsnew = Dfs2()
dfsnew.write("uv_combined.dfs2", ds_combined)
c:\users\jan\code\mikeio\mikeio\dfs.py:255: UserWarning: No coordinate system provided warnings.warn("No coordinate system provided")
import os
os.remove("uv_combined.dfs2")
--------------------------------------------------------------------------- PermissionError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_21112/3311100923.py in <module> 1 import os ----> 2 os.remove("uv_combined.dfs2") PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'uv_combined.dfs2'