#!/opt/local/bin/python

import numpy
from gwpy.plot import Plot
from gwpy import frequencyseries
import matplotlib as mpl
mpl.use('agg')
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,
                               AutoMinorLocator)

majorFormatter = FormatStrFormatter('%d')

mpl.rc('axes', labelsize=20, edgecolor='k')
mpl.rc('xtick', labelsize=20)
mpl.rc('ytick', labelsize=20)
mpl.rc('font', family='Times New Roman')

H1data = frequencyseries.FrequencySeries.read('2017-06-10_DCH_C02_H1_O2_Sensitivity_strain_asd.txt')
L1data = frequencyseries.FrequencySeries.read('2017-08-06_DCH_C02_L1_O2_Sensitivity_strain_asd.txt')
V1data = frequencyseries.FrequencySeries.read('Hrec_hoft_V1O2Repro2A_16384Hz.txt')

plot = Plot(figsize=(10, 6.18))
ax = plot.gca(xscale='log', xlim=(10, 5000), xlabel='Frequency [Hz]',
              yscale='log', ylim=(3e-24, 5e-20),
              ylabel=r'Strain noise [1/\rtHz]')

ax.xaxis.set_major_formatter(majorFormatter)

#kw = {'marker': '.', 'markersize': 1, 'linestyle': ''}

for i, (data, label) in enumerate([
        (H1data, 'LIGO-Hanford'),
        (L1data, 'LIGO-Livingston'),
        (V1data, 'Virgo'),
]):
    color = 'gwpy:{}'.format(label.lower())
    ax.plot([0], label=label, color=color)  # dummy for labelling
    ax.plot(data.frequencies, data.value,
            color=color)

#plot.show()
ax.grid(color='darkgrey', linewidth=1, linestyle='--')

plot.save('o2catalog-asd.pdf')
plot.save('o2catalog-asd.png')
