In [ ]:
import numpy as np
def maresint(N):
r"""Create a synthetic tidal signal for N days."""
deg2rad = np.pi / 180
Nhours = N * 24
series = np.arange(1, Nhours + 1)
# Tidal constituents.
Sa = 1 * np.cos(0.000717 * series + 201 * deg2rad)
Ssa = 2 * np.cos(0.001434 * series + 202 * deg2rad)
MM = 3 * np.cos(0.009501 * series + 203 * deg2rad)
MF = 4 * np.cos(0.019164 * series + 204 * deg2rad)
MSF = 5 * np.cos(0.017731 * series + 205 * deg2rad)
Q1 = 6 * np.cos(0.233851 * series + 6 * deg2rad)
O1 = 17 * np.cos(0.243352 * series + 107 * deg2rad)
M1 = 8 * np.cos(0.252934 * series + 298 * deg2rad)
P1 = 9 * np.cos(0.261083 * series + 99 * deg2rad)
K1 = 10 * np.cos(0.262516 * series + 10 * deg2rad)
J1 = 1 * np.cos(0.272017 * series + 311 * deg2rad)
OO1 = 12 * np.cos(0.281680 * series + 212 * deg2rad)
MNS2 = 3 * np.cos(0.478636 * series + 9 * deg2rad)
N22 = 6 * np.cos(0.486866 * series + 111 * deg2rad) # 2N2
MU2 = 1 * np.cos(0.488137 * series + 181 * deg2rad)
N2 = 4 * np.cos(0.496367 * series + 22 * deg2rad)
NU2 = 15 * np.cos(0.497638 * series + 356 * deg2rad)
M2 = 60 * np.cos(0.505868 * series + 104 * deg2rad)
L2 = 17 * np.cos(0.515369 * series + 100 * deg2rad)
T2 = 21 * np.cos(0.522882 * series + 16 * deg2rad)
S2 = 43 * np.cos(0.523599 * series + 137 * deg2rad)
K2 = 12 * np.cos(0.525032 * series + 308 * deg2rad)
MO3 = 1 * np.cos(0.749220 * series + 109 * deg2rad)
M3 = 22 * np.cos(0.758802 * series + 210 * deg2rad)
MK3 = 3 * np.cos(0.768384 * series + 111 * deg2rad)
MN4 = 14 * np.cos(1.002235 * series + 131 * deg2rad)
M4 = 5 * np.cos(1.011736 * series + 132 * deg2rad)
SN4 = 26 * np.cos(1.019966 * series + 333 * deg2rad)
MS4 = 17 * np.cos(1.029467 * series + 134 * deg2rad)
return (Sa + Ssa + MM + MF + MSF + Q1 + O1 + M1 + P1 + K1 + J1 + OO1 +
MNS2 + N22 + MU2 + N2 + NU2 + M2 + L2 + T2 + S2 + K2 + MO3 + M3 +
MK3 + MN4 + M4 + SN4 + MS4)
In [ ]:
import matplotlib.pyplot as plt
tide = maresint(60)
fig, ax = plt.subplots()
ax.plot(tide)