import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

from datetime import datetime

df0 = pd.read_csv("./Test Precession Export.txt", sep = "\t", dtype = np.float32, header = [0,1])

T = np.array(df0["t"])
X = np.array(df0["V"])

Xmax = X.max()

Xmin = X.min()



Liste_vitesse_long = (((301-T)**(1/2)*2-5)*580/30+300)[X>Xmax-1e-3]

Liste_vitesse = [Liste_vitesse_long[0]]

for i in Liste_vitesse_long :
    if abs(Liste_vitesse[-1]-i)>1:
        Liste_vitesse.append(i)



Liste_wpropre = [i*2*np.pi/60 for i in Liste_vitesse]

# plt.plot(T,X)
# 
# plt.show()

Liste_temps_long = T[X>Xmax-(Xmax-Xmin)/10]

Liste_temps = [Liste_temps_long[0]]

for i in Liste_temps_long :
    if abs(Liste_temps[-1]-i)>5:
        Liste_temps.append(i)


Liste_omega = []

for i in range(1,len(Liste_temps)-1):
    Liste_omega.append(2*np.pi/(Liste_temps[i+1]-Liste_temps[i-1]))
    
Liste_omega = [Liste_omega[0]] + Liste_omega + [Liste_omega[-1]]

plt.plot(Liste_temps,Liste_omega), plt.show()

plt.plot(Liste_wpropre,1/np.array(Liste_omega),"*"),plt.show()


df1 = pd.DataFrame({"Rotation" : Liste_wpropre, "Precession" : Liste_omega})

now = datetime.now()
hour = now.strftime("%H%M%S")

df1.to_csv("Precession_{}.txt".format(hour), "\t")