#!/usr/bin/env python3

import numpy as np
import matplotlib.pyplot as plt
import argparse, sys, math
import itertools
from astropy.time import Time


parser = argparse.ArgumentParser()

parser.add_argument('-rate', '--rate', help="Plot Rate", action="store_true")
parser.add_argument('-f', '-freq', '--freq', help="Observing Frequency (MHz)", type=float)
parser.add_argument('-r', '-refant', '--refant', help="Reference antenna")
parser.add_argument('file')

args = parser.parse_args()

c = 1
scale = 1
ylabel = 'Delay (usec)'

#if args.freq is not None:
#    scale *= args.freq*1e6*360/1e6
#    ylabel = 'Phase (deg)'

#if args.rate:
#    c = 2
#    if args.freq is not None:
#        ylabel = 'Fringe Rate (Deg/sec)'
#    else:
#        ylabel= 'Delay Rate (psec/sec)'
#        scale = 1e6


cabb_data = [ [[],[]] for _ in range(6) ]

with open(args.file) as f_in:
    data = np.genfromtxt(itertools.islice(f_in, 0, None, 4), dtype=('S31',float,float,float,'S1',float,float,float,float), usecols=(0,1))

    for d in data:
        time_baseline = str(d[0],'utf-8').split('::Bsl')
        mjd = Time(time_baseline[0].replace('_',' ')).mjd
        ant = int(time_baseline[1].split('x')[1])

        cabb_data[ant-1][0].append(mjd)
        cabb_data[ant-1][1].append(d[1])

mjd0 = cabb_data[0][0][0]

for i, a in enumerate(cabb_data):
    plt.plot((a[0] - mjd0)*24,np.array(a[1])/4096,label="CA{:02d}".format(i+1))

plt.ylabel('Delay (uSec)')
plt.xlabel('Time (hrs)')

plt.legend()
plt.show()
