#! /usr/bin/env python3
# -*- coding: iso-8859-15 -*-
from astropy.io import fits
import numpy as np
import matplotlib.pyplot as plt
import glob
import argparse
import sys
import os

##
# Search for issue in a table
def check_table(hdu,name):
    time  = hdu.data.field('TIME')
    delta = time[1:] - time[0:-1]

    # Get median delta
    med = np.median (delta[1:10000])

    if (med == 0):
        print(('%s    median step is 0.0 ??'%name))
        return None

    # Get the ids when step is too large
    for i,d in enumerate(delta):
        if d > 1.5*med:
            print(("%s    %i    %i"%(name,int(d/med), time[i])))
            
    return None

##
# Implement options and help

usage = """
description:
  Dump timing issues of RMN tables
"""
examples = """
examples:
 
"""

parser = argparse.ArgumentParser(description=usage, epilog=examples,formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('filelist', nargs='*',help="Input file(s)")

##
## Main code
if __name__ == "__main__":
    
    # Parse arguments
    argoptions = parser.parse_args()
        
    for file in argoptions.filelist:
        print ('# ---------------------------------------------------------')
        print ('# File                             Table   Miss  Time [us]')
        
    
        # Open file
        hdulist = fits.open(file)
    
        check_table (hdulist['OPDC'], file+' OPDC')
        check_table (hdulist['METROLOGY'], file+' MET ')
        check_table (hdulist['FDDL'], file+' FDDL')
        check_table (hdulist['IMAGING_DATA_FT'], file+' FT   ')
    
        hdulist.close()
        
