#!/usr/bin/env python

usage="""\
Usage example:
  plot_some_overpasses.py /net/fermion/mnt/data_drive/SpirentTest/DataDir/RX8-3220 0 3
where we only process overpass numbers 0-3 (or whatever).
Generates plots in current directory.

You'll need something like this to set up the python path:
  export PYTHONPATH=$HOME/GPSTools/pythonTools/
"""

from mutils import *
from ProcessResults import find_overpasses,bin_measurements,plot_meas_bins
import sys
import xmltodict
from glob import glob

def get_pp_filename(dir_name):
    for filename in glob(dir_name+'/*.xml'):
        x = xmltodict.parse(open(filename,'r').read())
        try:
            return x['data']['truth']['file']
        except:
            pass
    return None

if __name__ == '__main__':
    if len(sys.argv) < 4:
        print(usage)
        sys.exit(0)
    dir_name = sys.argv[1]
    n1 = int(sys.argv[2])
    n2 = int(sys.argv[3])

    if not 'meas' in globals():
        pp_filename = get_pp_filename(dir_name)
        if pp_filename is None:
            print("Can't get POSPac filename")
            sys.exit(1)
        pp = doload(pp_filename)
        meas = vd2cls(dir_name+'/*.T04','-d35:19')
    overpass_locs, events = find_overpasses( pp, False )
    events = sorted(events, key=lambda event: event.TIME[0])
    events = events[n1:n2+1]
    print("Processing following overpass event times:")
    for ev in events:
        print(" %.1f-%.1f"%(ev.TIME[0],ev.TIME[-1]))
    results = bin_measurements( meas, events, 10 )
    plot_meas_bins( '.', len(events), results )
