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)