#!/usr/bin/env python
"""
rawplot : plots raw data
"""
import argparse
import numpy as np
import os
import matplotlib.pyplot as plt
[docs]def get_word_type(wtype):
    if wtype == 'int16':
        return np.int16
    elif wtype == 'int32':
        return np.int32
    else:
        print("ERROR, undefined word type {}".format(wtype))
        exit(1) 
[docs]def plot(args, chx):
    for ch in range(0, args.pchan):
        plt.plot(chx[:,ch])
    plt.title("channels extracted from raw {}".format(args.binfiles[0]))
    plt.show() 
    
[docs]def load_and_plot(args):
    print("load_and_plot")
    raw = np.fromfile(args.binfiles[0], get_word_type(args.word))
    rc = (np.shape(raw)[0]//args.nchan, args.nchan)
    chx = np.reshape(raw[:rc[0]*rc[1]], rc)
    plot(args, chx) 
    
[docs]def get_parser():
    parser = argparse.ArgumentParser(description='rawplot')
    parser.add_argument('--nchan', default=1, type=int, help="number of channels")
    parser.add_argument('--pchan', default=1, type=int, help="number of channels to plot")
    parser.add_argument('--word', default='int16', help="int16|int32")
    parser.add_argument('binfiles', nargs='+', help="file[s] to convert")
    return parser 
    
# execution starts here
if __name__ == '__main__':
    load_and_plot(get_parser().parse_args())