#!/usr/bin/env python3

import numpy as np
import matplotlib.pyplot as plt
#import matplotlib.cm as cm
#import scipy
#from scipy.signal import firwin
import argparse, sys, math

parser = argparse.ArgumentParser()
#parser.add_argument('-n', '--nspec', '-nspec', help="Number of spectral points", type=int, default=512)
#parser.add_argument('-B', '--bandwidth', '-bandwidth', help="Channel bandwidth", type=float, default=128)
#parser.add_argument('--forwardback', '-forwardback', help="Forward/back FFT ", action="store_true")
#parser.add_argument('-W', '--window', '-window', help="FFT Windowing to use", type=str)
#parser.add_argument('-F', '--outfile', '-outfile', help="output file to save plot as")
#parser.add_argument('--dpi', help="Resolution to save output as", type=int, default=300)
#parser.add_argument('-s', '--show', '-show', help="Display plot to screen", action="store_true")
parser.add_argument('radarfile', help="Radar Spectrum")
args = parser.parse_args()

radarfile = args.radarfile

fd = open(radarfile, 'rb')

(version, nchan, nTotal, firstChan, nIF, bandwidth, mjd, seconds) = np.fromfile(fd, dtype=np.uint32, count=8)
(tInt) = np.fromfile(fd, dtype=np.float32, count=1)
(LO) = np.fromfile(fd, dtype=np.float64, count=1)

print("Version=", version)
print("Nchan=", nchan)
print("nTotal=", nTotal)
print("firstChan=", firstChan)
print("nIF=", nIF)
print("bandwidth=", bandwidth)
print("LO=", LO)
print("MJD=", mjd)
print("Seconds=", seconds)
print("tInt=", tInt)

data = np.fromfile(fd, dtype='f4')

spec = data.reshape(-1,nIF,nchan)

nInt = spec.shape[0] # Number of integrations in this file

specAv = np.mean(spec, axis=0).astype('float64')

for i in range(nIF):
    plt.plot(specAv[i,:])

plt.show()
