import dependencies
import pandas as pd
import numpy as np
from nummath import graphing
fp = '../data/power.csv'
mydateparser = lambda x: pd.datetime.strptime(x, "%d/%m/%Y %H:%M:%S 0msec")
df_raw = pd.read_csv(fp, parse_dates=[['Date', 'Time']], date_parser = mydateparser)
df_raw
PF_grid = 0.96
tan_PF_grid = np.tan(np.arccos(PF_grid))
tan_PF_grid
df_power = df_raw[['Active Power Total Max', 'PF Classic Total Min']]
df_power = df_power.rename(columns={"Active Power Total Max": "P 3f", "PF Classic Total Min": "PF"})
df_power
Vereist 3-fasig reactief vermogen van de condensatorbatterij
df_power['tan(PF)'] = np.tan(np.arccos(df_power['PF']))
df_power['Q 3f'] = df_power['P 3f'] * (df_power['tan(PF)'] - tan_PF_grid)
df_power.index = df_raw['Date_Time']
df_power
Q_comb = [11844.714, 23689.428, 35534.142, 47378.856, 59223.571, 71068.285]
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
graph = graphing.Graph(fig_size=[12, 8], dpi=96)
graph.add_data_set(name='Q 3f', x=df_power.index, y=df_power['Q 3f'], marker='o', linestyle='none')
for i, Q in enumerate(Q_comb):
graph.add_data_set(name=f'comb {i + 1}', x=[df_power.index[0], df_power.index[-1]], y=[Q, Q])
graph.add_legend()
graph.turn_grid_on()
graph.set_axis_titles(x_title='time', y_title='3ph reactive power [VAR]')
graph.draw_graph()
graph.show_graph()
bin_brackets = pd.IntervalIndex.from_breaks(Q_comb, closed='left')
bins = pd.cut(df_power['Q 3f'], bin_brackets)
bins = pd.value_counts(bins)
bins
np.sum(bins.iloc[0:])