#!/usr/bin/python

# task to resort AIPS AN tables into a format for plotting and averaging
# Enno Middelberg, January 2003

import string, fileinput, sys

if len(sys.argv)<4:
    print "\n Usage: AN-resort.py filename no_IFs no_antennas [-long]\n"
    sys.exit()

infile=sys.argv[1]
noifs=int(sys.argv[2])
noantennas=int(sys.argv[3])

list=[]
dowrite=0
for x in fileinput.input(infile):
    parts=string.split(x)
    if "***END*PASS***" in parts:
        dowrite=0
    if dowrite==1:
        list.append(x)
    if "***BEGIN*PASS***" in parts:
        dowrite=1

if "-long" in sys.argv:
    for x in range(noifs):
        print "\t\t\t  IF "+`x+1`+"\t\t\t ",
    print
    for x in range(noifs):
        print "\t  Rrrrriiiiggghhhtt    Lllleeeffffttt  ",
    print "\n\t",
    print
    for x in range(noifs):
        print "\t   Re        Im        Re        Im\t",
else:
    print "\t         Rrrrriiiiggghhhtt    Lllleeeffffttt  "
    print "\t            Re        Im        Re        Im"   

print

dterms=[]
for x in range(0, noantennas*noifs*2, noifs*2):
    antenna_name=list[x][10:12]
    if "-long" in sys.argv:
        print antenna_name,
    dterms.append([antenna_name])
    for y in range(0, noifs*2, 2):
        real_R=float(list[x+y][130:143])
        real_L=float(list[x+y][168:182])
        imag_R=float(list[x+y+1][130:143])
        imag_L=float(list[x+y+1][168:182])
        dterms[x/(noifs*2)].append([real_R, imag_R, real_L, imag_L])
        if "-long" in sys.argv:
            print "\t% 7.6f % 7.6f % 7.6f % 7.6f   " % (real_R, imag_R, real_L, imag_L),
        else:
            print antenna_name+"\t IF #%i  % 7.6f % 7.6f % 7.6f % 7.6f" % (y/2, real_R, imag_R, real_L, imag_L)
    print

