# -*- coding: utf-8 -*-
"""
Created on Mon Jun 10 13:15:13 2024

@author: chuffard
"""

# -*- coding: utf-8 -*-
"""
Created on Tue Jan 16 15:47:46 2024

@author: chuffard
"""

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 13 09:34:42 2023

@author: chuffard
"""

import numpy as np

import pandas as pd

#import spectrum #doesn't want to install...tried everything I can find

import matplotlib.pyplot as plt

#from spectrum import Periodogram, data_cosine

from datetime import datetime

import scipy as SP

import scipy.signal as signal

import seaborn as sns
import statistics
#import endaq as endaq

import statsmodels.tsa.stattools as sts

from statsmodels.tsa.stattools import acf

import pyflakes as pyf

#import lzip as lz

from pandas import read_csv

from statsmodels.graphics.tsaplots import plot_acf

from statsmodels.graphics.tsaplots import plot_pacf

import itertools

import ephem

import pygam

import re

import numpy as np
from scipy import stats

import d3heatmap

from matplotlib.backends.backend_pdf import PdfPages

#TRIGGERS ONCE< AT END
# read in data; use first line as header
#Main_Hourly_SES_MARS = pd.read_csv('G:/Analyses/MainSES_fluoro_atn_moon_sun_current.csv', parse_dates=True, index_col="datetime")

# read in data; use first line as header
MOCK_data_Trigger = pd.read_csv('G:/Analyses/triggering/trigger testing TT/SESdata_MOCK_TRIGGER_TRIM.csv', parse_dates=True, index_col="Date_time")

#find the rolling mean= 150 samples, minimum sample size 23.
MOCK_data_Trigger['rm150'] = MOCK_data_Trigger['atn'].rolling(150, min_periods=23).mean()

#Find the difference (slope)
MOCK_data_Trigger['Slope_rm_150'] = MOCK_data_Trigger['rm150'].diff()

#drop the first 150 samples
MOCK_data_Trigger_USE = MOCK_data_Trigger.iloc[151:, ]

trigger = 0.01110322671999997

#make that new max the trigger
MOCK_data_Trigger_USE["trigger150slopeAdf"] = np.where(MOCK_data_Trigger_USE['Slope_rm_150'] >= trigger, 'TriggerSlope', 'WaitSlope')


#DOESN"T TRIGGER 
# read in data; use first line as header
#Main_Hourly_SES_MARS = pd.read_csv('G:/Analyses/MainSES_fluoro_atn_moon_sun_current.csv', parse_dates=True, index_col="datetime")

# read in data; use first line as header
MOCK_data_NO_Trigger = pd.read_csv('G:/Analyses/triggering/trigger testing TT/SESdata_MOCK_NO_TRIGGER_TRIM.csv', parse_dates=True, index_col="Date_time")

#find the rolling mean= 150 samples, minimum sample size 23.
MOCK_data_NO_Trigger['rm150'] = MOCK_data_NO_Trigger['atn'].rolling(150, min_periods=23).mean()

#Find the difference (slope)
MOCK_data_NO_Trigger['Slope_rm_150'] = MOCK_data_NO_Trigger['rm150'].diff()

#drop the first 150 samples
MOCK_data_NO_Trigger_USE = MOCK_data_NO_Trigger.iloc[151:, ]

trigger = 0.01110322671999997

#make that new max the trigger
MOCK_data_NO_Trigger_USE["trigger150slopeAdf"] = np.where(MOCK_data_NO_Trigger_USE['Slope_rm_150'] >= trigger, 'TriggerSlope', 'WaitSlope')
