import numlos
import matplotlib.pyplot as plt
from tools import edit_list as ed, vinkelfart as vf, file_handling as dtr
from scipy.optimize import curve_fit
import numpy as np

def kvadrat(a,x):
    return a*(x**2)*(x/abs(x))



def vinkelfart_mot_numerikk(): #plotter eksperimentell vinkelfart mot numerisk vinkelfart
    t,theta = dtr.file_to_tTheta('gjennomsnitt.txt')
    theta_sving,t_sving = ed.svingningsfinner(theta,t)

    for i in range(4,5):
        print(i)
        t_sving[i] = ed.adjust_t0(t_sving[i])
        fart = (vf.vinkelfart(t_sving[i],theta_sving[i]))
        #fart = [fart[i] - fart[1] for i in range(len(fart))]

        n_theta,n_turb_w,n_a,n_t = numlos.gen_list(theta_sving[i][0],fart[0],turb=0.001)
        n_theta, n_lam_w, n_a, n_t = numlos.gen_list(theta_sving[i][0], fart[0], turb=3)

        n_t = n_t[70:]
        n_t = ed.adjust_t0(n_t)

        plt.plot(n_t,n_turb_w[70:], label='Turbulent')
        plt.plot(n_t,n_lam_w[70:], label = 'Laminær')
        plt.plot(t_sving[i][1:-20], fart[1:-20], label='Data')

        plt.xlabel('Tid [s]')
        plt.ylabel('Vinkelfart [1/s]')

        plt.xlim(0,2)
        plt.ylim(-0.25,0.25)
        plt.legend(loc='best')

        plt.savefig('plots/fart_mot_numerikk_5')
        plt.show()

def plot_eksperimentell_mot_lam_turb(): #plotter eksperimentelt vinkelutslag mot laminær og turbulent modell, for en svingning av gangen
    t, theta = dtr.file_to_tTheta('gjennomsnitt.txt')

    theta_sving, t_sving = ed.svingningsfinner(theta, t)
    t_sving = [ed.adjust_t0(t_list) for t_list in t_sving]

    for i in range(5,6):
        n_turb_theta, n_turb_w, n_turb_a, n_turb_tid = numlos.gen_list(theta_sving[i][0], 0, turb=0.1)
        plt.plot(n_turb_tid, n_turb_theta, label='Turbulent numerikk')

        n_lam_theta, n_lam_w, n_lam_a, n_lam_tid = numlos.gen_list(theta_sving[i][0], 0, turb=1)
        plt.plot(n_lam_tid, n_lam_theta, label='Laminær numerikk')

        plt.plot(t_sving[i], theta_sving[i], label='Eksperimentell')

        plt.xlim(0, 2)
        plt.ylim(-0.2, 0.2)

        plt.xlabel('Tid [s]')
        plt.ylabel('Vinkelutslag (radianer)')

        plt.legend(loc='lower left')
        #plt.savefig('plots/theta_mot_lam_turb_' + str(i))
        plt.show()

plot_eksperimentell_mot_lam_turb()