import pandas as pd
import numpy as np
import os
import matplotlib.pyplot as plt

# Experimental data
mt_exp_path = os.path.join('Tray', 'ExpCHRISTIFIRE', 'MT3.csv')
mt_exp_raw = pd.read_csv(mt_exp_path, header=0)

# sim with Arrhenius parameters from CHRISTIFIRE
mt_ArrCH_path = os.path.join('Tray', 'MT3_ArrCHRISTIFIRE',
                             'Cable219MT3_ArrCHRISTIFIRE_hrr.csv')
mt_ArrCH_raw = pd.read_csv(mt_ArrCH_path, header=1)

# sim 8f with FDS 6.3.2
mt_8f632_path = os.path.join('Tray', '8f_632',
                             'Cable219MultipleTrayTest8f_hrr.csv')
mt_8f632_raw = pd.read_csv(mt_8f632_path, header=1)

# sim 8f with FDS 6.5.3
mt_8f653_path = os.path.join('Tray', '8f_653',
                             'Cable219MultipleTrayTest8f_hrr.csv')
mt_8f653_raw = pd.read_csv(mt_8f653_path, header=1)


data_plot = [[mt_exp_raw['Time'], mt_exp_raw['HRR']],
             [mt_ArrCH_raw['Time'], mt_ArrCH_raw['HRR']],
             [mt_8f632_raw['Time'], mt_8f632_raw['HRR']],
             [mt_8f653_raw['Time'], mt_8f653_raw['HRR']]]

legend_labels = ['CHRISTIFIRE Experiment',
                 'CHRISTIFIRE Parameter',
                 'Best Para. Set, FDS 6.3.2',
                 'Best Para. Set, FDS 6.5.3',]

n_colors = 3

plot_file_names_jpg = ['CompareMultiTray.jpg']

plot_titles = ['Cable 219 in MT3, Experiment and Simulation.']


###############
#
# Plot for comparison of different MT-3 tests, as jpg.
fig = plt.figure(figsize=(6, 4.5), dpi=350)

ax = fig.add_subplot(111)

for j in range(len(data_plot)):
    plt.plot(data_plot[j][0], data_plot[j][1])

colormap = plt.get_cmap('viridis')
ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, n_colors)])

ax.set_xticks([0, 900, 1800, 2700])

ax.tick_params(direction='in',
               length=4,
               width=1,
               colors='k')

ax.tick_params(top="on")
ax.tick_params(bottom="on")
ax.tick_params(right="on")
ax.tick_params(left="on")

ax.legend(legend_labels)

plt.rc('grid', linestyle="--", color='black', alpha=0.5)
plt.grid()

plt.xlabel('Time (s)')
plt.ylabel('Heat Release Rate (kW)')

plt.xlim([0, 2700])
plt.ylim([0, 300])

plt.tight_layout()

fig.savefig(plot_file_names_jpg[0])
