Commit e7513f77 authored by MEULE Samuel's avatar MEULE Samuel
Browse files

ajout de la théorie linéaire dans spectral analysis

# Historique
* [X] Modif TD7 vierge
* [X] Ajout TD lecture aquadopp
* [X] script NKE: Modification de la figure avec le temps pour que cela fontionne sur une ancienne version de matplotlib (sur les serveurs AMU)
* [X] Ajout package latex pour Mybinder dans requirements: ne marche pas
* [X] Ajout du fichier .ipynb pour TD NKE + fichier NKE
* [X] TD lecture de fichier NKE
* [X] Mise en place sous gitlab.osupytheas.fr
* [X] Ajout d'un debut de script TD7 (a remplir) + ajout des fichiers 2 à 10.txt (différentes series temporelles)
* [X] Ajout des notebooks TD2 à TD8 + ajout des fichiers
* [X] Ajout de requirements.txt pour gestion des dépendances
* [X] Ajout du fichier .py et du notebook jupyter .ipynb pour TD1
* [X] Création d'un git pour Stat
parent 557506b4
Modif TD7 vierge
ajout de la théorie linéaire dans spectral analysis
# Historique
* [X] Modif TD7 vierge
* [X] Ajout TD lecture aquadopp
* [X] script NKE: Modification de la figure avec le temps pour que cela fontionne sur une ancienne version de matplotlib (sur les serveurs AMU)
* [X] Ajout package latex pour Mybinder dans requirements: ne marche pas
......
......@@ -98,7 +98,7 @@ class TDNKE():
if Tf=='yes':
# Correction with transfer function (linear theory)
Tff=func_lineartheory(Pxx, freqs, prof, altmes)
Tff=self._lineartheory(Pxx, freqs, prof, self.altmes)
Pxx =Pxx/Tff
Pxx2=0.5*Pxx**2/df
......@@ -249,10 +249,61 @@ class TDNKE():
print (message)
return Hs_wind, Hs_swell, Hs_infra, Hs_VLF, 1/fmax, Tm_wind, Tm_swell, Tm_infra, Tm_VLF
################################################
def _lineartheory(self,Pxx, freqs, prof, altmes):
################
# Linear theory
###############
# wave number wn
np.seterr(divide='ignore') # Ignore warning division by inf or 0
Tff=[]
for i in prof:
Tfi=[]
for j in freqs:
k=self._nbrond(1/j, i)
Tf=np.cosh(altmes*k)/ np.cosh(i*k)
Tfi.append(Tf)
Tff.append(Tfi)
Tff=np.asarray(Tff)
message='{:.<40}{:.>20}'.format('linear theory', 'Ok')
print (message)
return Tff
#################################################################################################################
def _nbrond(self,period,depth):
'''Wave number using the newton-Raphson method'''
# Variables:
# T is the Wave peak period
# h is the depth
g=9.81
limite=0.00000001
gerr=100
# Calcul
if period<=0:
period=np.nan
if depth<=0:
depth=np.nan
w=2*np.pi/period
gko=(w**2)*(depth/g)
gd=gko # 1st part of the curve
if (gko>0.5)and(gko<=2):
gd=1+16*(gko-0.75)/19 # 2nde part of the curve
if gko <0.5:
gd=1.5*gko # 3rd part of the curve
i=0
while gerr>limite:
i=i+1
np.seterr(all='ignore') # Suppress warning (divide, floating point error...)
gmo=gd+(gko-gd*np.tanh(gd))/(np.tanh(gd)+gd*(1-(np.tanh(gd))**2))
gerr=abs(gko-gmo*np.tanh(gmo))
gd=gmo
k=gmo/depth
return k
#################################################################################################################
def fig2D(self,t,y,ly='labely',figname='figure.png', datef='%d %Hh'):
def _fig2D(self,t,y,ly='labely',figname='figure.png', datef='%d %Hh'):
""" Create a 2D plot = time x variable (Hs, Pression, depth...)"""
# Figure creation
......@@ -305,31 +356,32 @@ os.chdir('../../../workspace/marseille')
data_NKE.filename='Sonde standard_30098_20190309_102905.txt'
data_NKE.Sample_Frequency=4
data_NKE.burst=2400 # Nombre de point pour l'analyse spectrale
data_NKE.altmes=0.01
##########################################################
### OPEN FILE ###
##########################################################
# READ .TXT FILE
data_NKE._load() # Pressure in m
##########################################################
### SPECTRAL ANALYSIS #####
##########################################################
data_NKE._spectralanalysis()
##########################################################
### OUTPUT #####
##########################################################
# FIGURES
############################################################
##### SPECTRAL ANALYSIS #####
############################################################
data_NKE._spectralanalysis('yes')
############################################################
##### OUTPUT #####
############################################################
### FIGURES
##
figname=data_NKE.filename[:-4] + '_Pressure.png'
data_NKE.fig2D(data_NKE.mydata.index, data_NKE.mydata.level,'Pressure (bar)', figname, '%y/%m/%d')
data_NKE._fig2D(data_NKE.mydata.index, data_NKE.mydata.level,'Pressure (bar)', figname, '%y/%m/%d')
figname=data_NKE.filename[:-4] + '_Temperature.png'
data_NKE.fig2D(data_NKE.mydata.index,data_NKE.mydata.Temperature,'Temperature (degree C)', figname, '%y/%m/%d ')
data_NKE._fig2D(data_NKE.mydata.index,data_NKE.mydata.Temperature,'Temperature (degree C)', figname, '%y/%m/%d ')
figname=data_NKE.filename[:-4] + '_Hs2_fft.png'
data_NKE.fig2D(dt.date2num(data_NKE.FFT.index),data_NKE.FFT.Hs2,"Significant wave height (m)", figname, '%y/%m/%d')
data_NKE._fig2D(dt.date2num(data_NKE.FFT.index),data_NKE.FFT.Hs2,"Significant wave height (m)", figname, '%y/%m/%d')
figname=data_NKE.filename[:-4]+ '_Tp.png'
data_NKE.fig2D(dt.date2num(data_NKE.FFT.index),data_NKE.FFT.Tp,"Peak period(s) fft method", figname, '%y/%m/%d')
data_NKE._fig2D(dt.date2num(data_NKE.FFT.index),data_NKE.FFT.Tp,"Peak period(s) fft method", figname, '%y/%m/%d')
data_NKE._savepickle()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment