☠ 07-Árapály

Vizsgáljuk meg az ../data/arapaly fileban található adatokat, melyek egy idilli kis tengerparti angol falu, Heysham, atomerőművének tengerszintmérő berendezésének a méréseit tartalmazza. Az adatsor két oszlopból áll: az első oszlop az idő napban mérve, a második oszlop az aktuális tengerszint méterben.

  • Fizikai meggondolások alapján milyen domináns frekvenciát vársz az adatsortól?
  • Készíts ábrát az első 3 nap adatai alapján a tengerszint ingadozásáról!
  • Készíts ábrát a jel Fourier-transzformáltjáról! Megjelenik a várt frekvencia?

Megoldás

Először betöltjü a szükséges csomagokat

In [1]:
%pylab inline
from numpy.fft import *
Populating the interactive namespace from numpy and matplotlib

Majd beolvassuk a fájlt, és ábrázoljuk a tartalmát az első három napon:

In [2]:
adatok = loadtxt("../data/arapaly.txt")
plot(adatok[:288,0], adatok[:288,1])
xlabel("Napok", size=12)
ylabel("Tengerszint magasság [m]", size=12)
title("A tengerszint ingadozása az idö függvényében", size=18, y=1.05)
Out[2]:
<matplotlib.text.Text at 0x7fd9bcd18f28>

Az égitestek tömegvonzása, és a Föld pályája következtében létrejövő potenciál olyan módon alakul ki, hogy a Föld környezetében az ekvipotenciális felületek nem pontosan gömb alakúak. A Földön lévő nagy víztömegek felszíne ezek mentén próbál beállni, de mivel a Föld forog, a Földön lévő megfigyelű azt érzékeli, hogy a tengerszint fel-le jár.

Mivel az ideális óceánfelület egy elnyújtott alakzat lenne, ezért a tengerszint naponta kétszer lesz alacsonyabb, és kétszer magasabb az átlagnál, tehát napi kétszer kell apálynak és dagálynak lennie. Ezek alapján tehát egy árapály periódus nagyjából 12 órás, így tehát a várt frekvencia $2 \frac{1}{nap}$ Nagyjából ez olvasható le fenti grafikonból is (3 nap alatt 6 periódus).

Transzformálva a jelet, és ábrázolva, meghatározható a domináns frekvencia

In [3]:
Fjel = fft(adatok[:,1] - mean(adatok[:, 1])) # Az átlagot levonjuk, hogy a 0 Hz-es frekvencia ne zavarjon be
freq = fftfreq(len(adatok[:,0]), d=adatok[1,0] - adatok[0,0])
In [4]:
print("A domináns frekvencia: {} 1/nap".format(freq[abs(Fjel).argmax()]))
plot(abs(freq), abs(Fjel), label="Transzformált jel")
plot(freq[abs(Fjel).argmax()], max(abs(Fjel)), "ro", label="A maximum, 1,93 1/nap-nál")
xlabel("Frekvencia", size=12)
ylabel("Transzformált jelerösség", size=12)
title("A transzformált jel", size=18, y=1.05)
legend()
A domináns frekvencia: 1.932420091324201 1/nap
Out[4]:
<matplotlib.legend.Legend at 0x7fd9bdfc9f60>

A domináns frekvencia $1,93 \frac{1}{nap}$, ami 12 órás, 25 perces periódusidőnek felel meg. Ez nagyjából megegyezik a várt frekvenciával, bár annál valamivel lassabb, hiszen az árapály-jelenséget leginkább befolyásoló égitest, a Hold is mozog, ami szintén módosítja a frekvenciát, de a periódusosság fő oka a Föld forgása.