# -*- coding: utf-8 -*-
"""
Created on Thu Sep 19 16:07:51 2024

@author: chuffard
"""

#SES 2024 MARS data
# -*- coding: utf-8 -*-
"""
Created on Mon May 13 13:39:04 2024

@author: chuffard
"""
# libraries
import seaborn as sns
import matplotlib.pyplot as pl
import math
import pandas as pd
from shapely.geometry import Polygon
import datetime
import seaborn as sns
import statistics
import matplotlib.pyplot as plt
import os
import re
from scipy.cluster.hierarchy import dendrogram, linkage
import plotly.figure_factory as ff
import pandas as pd
import numpy as np
import scipy.cluster.hierarchy
from scipy.cluster.hierarchy import ward, dendrogram, leaves_list
from scipy.spatial.distance import pdist
import numpy.ma as ma
from scipy import stats
from scipy.stats import zscore
from numpy.lib.stride_tricks import as_strided
import scipy.stats
from numpy.lib import pad
import tanglegram as tg
import warnings


#import attenuance
SES_RAW_sorted = pd.read_csv("G:/Analyses/2024 MARS deployment/SES_RAW_sorted.csv", parse_dates=True)


#Current meter path

Current_meter = pd.read_csv("G:/Deployments/MARS-2024/Current meters/SES current meter 2024/2212301_MARS2024SES_(0)_Current.csv", parse_dates=True)

Current_meter.dtypes
# ISO 8601 Time         object
# Speed (cm/s)         float64
# Heading (degrees)    float64
# Velocity-N (cm/s)    float64
# Velocity-E (cm/s)    float64
Current_meter["date_time"] = pd.to_datetime(Current_meter["ISO 8601 Time"])
Current_meter = Current_meter[(Current_meter['date_time'] > '2024-06-21') & (Current_meter['date_time'] < '2024-09-17')]

#decimate
Decimated_Current_meter = Current_meter.iloc[::10, :]
HourlyCurrents=  Current_meter.groupby([pd.Grouper(key='date_time', freq='H')]).mean() 
HourlyCurrents = HourlyCurrents.reset_index()
DailyCurrents=  Current_meter.groupby([pd.Grouper(key='date_time', freq='D')]).mean() 
DailyCurrents = DailyCurrents.reset_index()


pHsensor = pd.read_csv("G:/Deployments/MARS-2024/pH sensors/SES pH sensor/2024-06-19_114930_SES2024.txt" ,sep="\t", header=23, encoding='utf-8')

pHTemp = pHsensor.iloc[:, [0,1,3,13]]
pHTemp.rename(columns={ pHTemp.columns[0]: "date" }, inplace = True)
pHTemp.rename(columns={ pHTemp.columns[1]: "time" }, inplace = True)
pHTemp.rename(columns={ pHTemp.columns[2]: "pH" }, inplace = True)

#could not convert string to float: '<6.5'
pHTemp =   pHTemp[pHTemp["pH"].str.contains("<") == False]
pHTemp['pH'] = pHTemp['pH'].astype(float, errors = 'raise')


pHTemp.rename(columns={ pHTemp.columns[3]: "TempC" }, inplace = True)
pHTemp['date_time'] = pd.to_datetime(pHTemp['date'] + ' ' + pHTemp['time'])
pHTemp = pHTemp[(pHTemp['date_time'] > '2024-06-21') & (pHTemp['date_time'] < '2024-09-17')]

HourlypHTemp=  pHTemp.groupby([pd.Grouper(key='date_time', freq='H')]).mean() 
HourlypHTemp = pHTemp.reset_index()
HourlypHTemp['date_time'] = pd.to_datetime(HourlypHTemp['date_time'])
DailypHTemp=  pHTemp.groupby([pd.Grouper(key='date_time', freq='D')]).mean() 
DailypHTemp = DailypHTemp.reset_index()
DailypHTemp['date_time'] = pd.to_datetime(DailypHTemp['date_time'])
WeeklypHTemp=  pHTemp.groupby([pd.Grouper(key='date_time', freq='W')]).mean() 
WeeklypHTemp = WeeklypHTemp.reset_index()
WeeklypHTemp['date_time'] = pd.to_datetime(WeeklypHTemp['date_time'])

#__________________________________________________PLOTS__________________________________________


currentplotvars = ['Speed (cm/s)', 'Heading (degrees)', 'Velocity-N (cm/s)', 'Velocity-E (cm/s)']

x_col ='date_time'

fig, ax = plt.subplots(len(currentplotvars),1, figsize = (8, 12), dpi = 300)
plt.subplots_adjust(hspace=0.75)


for idx, col in enumerate(currentplotvars, 0):
    ax[idx].scatter(Decimated_Current_meter['date_time'], Decimated_Current_meter[col], color = 'black', alpha = 0.05)
    ax[idx].plot(HourlyCurrents['date_time'], HourlyCurrents[col], color = 'lightblue')
    ax[idx].plot(DailyCurrents['date_time'], DailyCurrents[col], color = 'red')
    ax[idx].set_title(col)


plt.savefig('G:/Deployments/MARS-2024/Data/Current meters/SES current meter 2024/SES_currents.pdf')
HourlyCurrents.to_csv('G:/Deployments/MARS-2024/Data/Current meters/SES current meter 2024/HourlyCurrents.csv') 
Decimated_Current_meter.to_csv('G:/Deployments/MARS-2024/Data/Current meters/SES current meter 2024/Decimated_Current_meter.csv') 
DailyCurrents.to_csv('G:/Deployments/MARS-2024/Data/Current meters/SES current meter 2024/DailyCurrents.csv') 




pHplotvars = ['pH', 'TempC']

fig, ax = plt.subplots(len(pHplotvars),1, figsize = (8, 12), dpi = 300)
plt.subplots_adjust(hspace=0.75)


for idx, col in enumerate(pHplotvars, 0):
    ax[idx].scatter(pHTemp['date_time'], pHTemp[col], color = 'black', alpha = 0.05)
    ax[idx].plot(HourlypHTemp['date_time'], HourlypHTemp[col], color = 'lightblue')
    ax[idx].plot(DailypHTemp['date_time'], DailypHTemp[col], color = 'red')
    ax[idx].set_title(col)
