#This utility is meant to read data from the CSV file containing RFI count and Total Count from the real-time BB RFI filtering in GWB #It reads the CSV file and provides bar charts and a file containing #Percentage values of all antennae and polarization #Percentage values of single antenna indivudually over time #Average percentage flagging. #**************************************** Updated by Kshitija on 01/11/2019***************************************************** #command to run this code python3 ./rfi_counter_flagging_v6_1to2.py #eg: python3 ./rfi_counter_flagging_v3.py rfi_test_19_09_2019.csv out2.csv 17 97 1 #*********************************************************** THIS PYTHON CODE IS FOR RFI TESTS 1:2 DIGITAL COPY MODE****************************************************************************# # ************************************************For analysing multiple csv files simultaneously******************************* #When observation crosses the boundary of midnight counter data is stored datewise in two different files. In order to analyze these files can be appended using following command. #Use command : awk 'FNR==1 && NR!=1{next;}{print}' file1.csv file2.csv > output.csv #Files will get appended in the order of input files provided by user. import csv import math import sys import numpy as np from operator import truediv import matplotlib.pyplot as plt; plt.rcdefaults() import numpy as np import matplotlib.pyplot as plt import itertools import statistics if (len(sys.argv)<5): print ("------------------------------------------------------------------------------------------------------------------------------------------- \n\n * This utility is meant to read data from the CSV file containing RFI count and Total Count from the real-time BB RFI filtering in GWB. \n * It reads the CSV file and provides bar charts as well as a file containing percentage values per antenna and polarization \n \n * Command to run this code python3 ./rfi_counter_flagging.py \n \n * Example : python3 ./rfi_counter_flagging.py rfi2_test_12_09_2018.csv out.csv 17 321 1 \n\n ------------------------------------------------------------------------------------------------------------------------------------------") if (len(sys.argv)==6 or len(sys.argv)==5): f_name=str(sys.argv[1]) #Define system arguments f_out=str(sys.argv[2]) start=int(sys.argv[3]) stop=int(sys.argv[4]) if (len(sys.argv)==6): y_lim=float(sys.argv[5]) a=[] b=[] c=[] d=[] e=[] f_1=[] g=[] h=[] a2=[] b2=[] c2=[] d2=[] e2=[] f2_1=[] g2=[] h2=[] header=[] header1=[] header2=[] par7=[] par8=[] apar=[] apar1=[] apar2=[] apar3=[] choice = int(input("Enter your choice from following list :\n 1. Percentage flagging for all antennae \n 2. Percentage flagging for Single antenna \n 3. Average Percentage flagging for all antennae \n : ")) if (choice == 1): #For percentage flagging for all antennae over time print ("*****--------------------------Your results are getting ready!!!--------------------------------*****") print ("*****-------------------------------------------------------------------------------------------*****") with open(f_name, "r") as csv_file: #read the csv file csv_reader = csv.reader(csv_file, delimiter='\t') for lines in csv_reader: header.append(lines[1]) #Reading columnwise data a.append(lines[2]) b.append(lines[3]) c.append(lines[4]) d.append(lines[5]) e.append(lines[6]) f_1.append(lines[7]) g.append(lines[8]) h.append(lines[9]) for i in range(start,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i:i+16],dtype=np.float) b1=np.asarray(b[i:i+16],dtype=np.float) c1=np.asarray(c[i:i+16],dtype=np.float) d1=np.asarray(d[i:i+16],dtype=np.float) e1=np.asarray(e[i:i+16],dtype=np.float) f_2=np.asarray(f_1[i:i+16],dtype=np.float) g1=np.asarray(g[i:i+16],dtype=np.float) h1=np.asarray(h[i:i+16],dtype=np.float) par=(b1/a1)*100 #Calculate percentage for each ROUCH for two poles par1=(d1/c1)*100 par2=(f_2/e1)*100 par3=(h1/g1)*100 par4=list(itertools.chain(par,par1,par2,par3)) for j in range(i,i+8):#Header for output file for pole-1 header1.append(header[j]) header1.append(header[j]) header1.append(header[j]) header1.append(header[j]) for j1 in range(i+8,i+16):#Header for output file for pole-2 header2.append(header[j1]) header2.append(header[j1]) header2.append(header[j1]) header2.append(header[j1]) par5=[par[0],par2[0],par[1],par2[1],par[2],par2[2],par[3],par2[3],par[4],par2[4],par[5],par2[5],par[6],par2[6],par[7]] par6=[par[8],par2[8],par[9],par2[9],par[10],par2[10],par[11],par2[11],par[12],par2[12],par[13],par2[13],par[14],par2[14],par[15]] #p=['C00','C02','C04','C06','C09','C11','C13','EO2','E04','E06','S02','S04','W01','W03','W05','W06'] #p1=['C00-P1','C02-P1','C04-P1','C06-P1','C09-P1','C11-P1','C13-P1','EO2- P1','E04-P1','E06-P1','S02-P1','S04-P1','S06-P1','W02-P1','W04-P1','W06-P1'] #p2=['C00-p2','C02-p2','C04-p2','C06-p2','C09-p2','C11-p2','C13-p2','EO2- p2','E04-p2','E06-p2','S02-p2','S04-p2','S06-p2','W02-p2','W04-p2','W06-p2'] p=['C00','C02','C04','C06','C09','C11','C13','EO2','E04','E06','S02','S04','W01','W03','W05'] p1=['C00-P1','C02-P1','C04-P1','C06-P1','C09-P1','C11-P1','C13-P1','EO2- P1','E04-P1','E06-P1','S02-P1','S04-P1','W01-P1','W03-P1','W05-P1'] p2=['C00-p2','C02-p2','C04-p2','C06-p2','C09-p2','C11-p2','C13-p2','EO2- p2','E04-p2','E06-p2','S02-p2','S04-p2','W01-p2','W03-p2','W05-P1'] with open(f_out, 'a') as f: #Writing into output file writer = csv.writer(f, delimiter='\t') writer.writerows(zip(header1,p1,par5,header2,p2,par6)) plt.figure(figsize=(12,10)) hdr=str(header[i]) hdr1="_" hdr2=hdr[4:6]+hdr1+hdr[7:9]+hdr1+hdr[10:12]+hdr1+hdr[13:15]+hdr1+hdr[16:18]+hdr1+hdr[19:21]+hdr1+hdr[22:27] plt.bar(np.arange(len(par5)),par5, width =0.3,color='r',alpha=1,label='pol1') #Plot bar chart plt.bar(np.arange(len(par6))+0.3,par6, width =0.3,color='b',alpha=1,label='pol2') plt.xticks(np.arange(len(par5))+0.3, p,rotation=90,fontsize=12) #plt.xticks(np.arange((16))+0.3, p,rotation=90,fontsize=12) #plt.ylabel('Percentage Flagging') plt.title(header[i]) if(len(sys.argv)==6): plt.ylim(0,y_lim)# Customized y-lim plt.legend() plt.savefig('Percentage_Flagging_{0}.jpg'.format(hdr2))#Save figure in jpg format plt.tight_layout() if (choice == 2):#Antenna wise bar chart p=['C00','C02','C04','C06','C09','C11','C13','EO2','E04','E06','S02','S04','W01','W03','W05','W06'] ant = int(input("Select the antenna number from following list :\n ----------------------------------------------------------------\n C00 : 0 \t C02 : 1 \t C04 : 2 \t C06 : 3 \n C09 : 4 \t C11 : 5 \t C13 : 6 \t E02 : 7 \n E04 : 8 \t E06 : 9 \t S02 : 10 \t S04 : 11 \n W01 : 12 \t W03 : 13 \t W05 : 14 \n ---------------------------------------------------------------- \n :")) # Table for selecting antenna number print (p[ant]) print ("\n*****--------------------------Your results are getting ready!!!--------------------------------*****") print ("*****-------------------------------------------------------------------------------------------*****") a=[] b=[] c=[] d=[] e=[] f_1=[] g=[] h=[] header=[] header1=[] header2=[] par7=[] par8=[] var=[] var1=[] with open(f_name, "r") as csv_file: #read the csv file csv_reader = csv.reader(csv_file, delimiter='\t') for lines in csv_reader: header.append(lines[1]) #Read columnwise data a.append(lines[2]) b.append(lines[3]) c.append(lines[4]) d.append(lines[5]) e.append(lines[6]) f_1.append(lines[7]) g.append(lines[8]) h.append(lines[9]) for i in range(start,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i:i+16],dtype=np.float) b1=np.asarray(b[i:i+16],dtype=np.float) c1=np.asarray(c[i:i+16],dtype=np.float) d1=np.asarray(d[i:i+16],dtype=np.float) e1=np.asarray(e[i:i+16],dtype=np.float) f_2=np.asarray(f_1[i:i+16],dtype=np.float) g1=np.asarray(g[i:i+16],dtype=np.float) h1=np.asarray(h[i:i+16],dtype=np.float) par=(b1/a1)*100 #Calculate percentage for each ROUCH for two poles par1=(d1/c1)*100 par2=(f_2/e1)*100 par3=(h1/g1)*100 par4=list(itertools.chain(par,par1,par2,par3)) #print(len(par4)) for j in range(i,i+8):#Header for output file for pole-1 header1.append(header[j]) header1.append(header[j]) header1.append(header[j]) header1.append(header[j]) for j1 in range(i+8,i+16):#Header for output file for pole-2 header2.append(header[j1]) header2.append(header[j1]) header2.append(header[j1]) header2.append(header[j1]) #print(len(header1)) par5=[par[0],par2[0],par[1],par2[1],par[2],par2[2],par[3],par2[3],par[4],par2[4],par[5],par2[5],par[6],par2[6],par[7]] par6=[par[8],par2[8],par[9],par2[9],par[10],par2[10],par[11],par2[11],par[12],par2[12],par[13],par2[13],par[14],par2[14],par[15]] #p=['C00','C02','C04','C06','C09','C11','C13','EO2','E04','E06','S02','S04','W01','W03','W05','W06'] #p1=['C00-P1','C02-P1','C04-P1','C06-P1','C09-P1','C11-P1','C13-P1','EO2- P1','E04-P1','E06-P1','S02-P1','S04-P1','S06-P1','W02-P1','W04-P1','W06-P1'] #p2=['C00-p2','C02-p2','C04-p2','C06-p2','C09-p2','C11-p2','C13-p2','EO2- p2','E04-p2','E06-p2','S02-p2','S04-p2','S06-p2','W02-p2','W04-p2','W06-p2'] p=['C00','C02','C04','C06','C09','C11','C13','EO2','E04','E06','S02','S04','W01','W03','W05'] p1=['C00-P1','C02-P1','C04-P1','C06-P1','C09-P1','C11-P1','C13-P1','EO2- P1','E04-P1','E06-P1','S02-P1','S04-P1','W01-P1','W03-P1','W05-P1'] p2=['C00-p2','C02-p2','C04-p2','C06-p2','C09-p2','C11-p2','C13-p2','EO2- p2','E04-p2','E06-p2','S02-p2','S04-p2','W01-p2','W03-p2','W05-P1'] var.append(par5[ant]) var1.append(par6[ant]) with open(f_out, 'a') as f: #Writing into output file writer = csv.writer(f, delimiter='\t') writer.writerows(zip(header1,var,header2,var1)) plt.figure(figsize=(12,12)) plt.bar(np.arange(len(var)),var, width =0.3,color='r',alpha=1,label='pol1') #Plot bar chart plt.bar(np.arange(len(var1))+0.3,var1, width =0.3,color='b',alpha=1,label='pol2') #plt.xticks(np.arange(len(var)), header1,rotation=-30,fontsize=9, ha="left") plt.ylabel('Percentage Flagging') plt.title(p[ant]) if(len(sys.argv)==6): plt.ylim(0,y_lim)#Cutsomized y-lim plt.legend() plt.savefig('Percentage_Flagging_{0}.jpg'.format(p[ant]))#Save figure in jpg format plt.tight_layout() if (choice == 3):#Average flagging for all antenna for defined period of time print ("*****--------------------------Your results are getting ready!!!--------------------------------*****") print ("*****-------------------------------------------------------------------------------------------*****") k=0 q=0 i=0 a=[] b=[] c=[] d=[] e=[] f_1=[] g=[] h=[] a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 header=[] header1=[] header2=[] par7=[] par8=[] par=[] par1=[] par2=[] par3=[] x=[] with open(f_name, "r") as csv_file: #read the csv file csv_reader = csv.reader(csv_file, delimiter='\t') for lines in csv_reader: header.append(lines[1]) #Read columnwise data a.append(lines[2]) b.append(lines[3]) c.append(lines[4]) d.append(lines[5]) e.append(lines[6]) f_1.append(lines[7]) g.append(lines[8]) h.append(lines[9]) for i in range(start,stop-1, 32): #Eliminating the zeroes present in the file a1=float(a[i]) b1=float(b[i]) c1=float(c[i]) d1=float(d[i]) e1=float(e[i]) f_2=float(f_1[i]) g1=float(g[i]) h1=float(h[i]) #print(a1) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+1,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+2,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+3,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+4,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+5,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+6,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+7,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+8,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+9,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+10,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+11,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+12,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+13,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+14,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) a2=0 b2=0 c2=0 d2=0 e2=0 f2_1=0 g2=0 h2=0 for i in range(start+15,stop-1, 32): #Eliminating the zeroes present in the file a1=np.asarray(a[i],dtype=np.float) b1=np.asarray(b[i],dtype=np.float) c1=np.asarray(c[i],dtype=np.float) d1=np.asarray(d[i],dtype=np.float) e1=np.asarray(e[i],dtype=np.float) f_2=np.asarray(f_1[i],dtype=np.float) g1=np.asarray(g[i],dtype=np.float) h1=np.asarray(h[i],dtype=np.float) a2=a2+a1 b2=b2+b1 c2=c2+c1 d2=d2+d1 e2=e2+e1 f2_1=f2_1+f_2 g2=g2+g1 h2=h2+h1 #print (a2) s=int(((stop-1)/32)-((start-17)/32)) a3=a2/s b3=b2/s c3=c2/s d3=d2/s e3=e2/s f3_1=f2_1/s g3=g2/s h3=h2/s par.append((b3/a3)*100) #Calculate percentage for each ROUCH for two poles par1.append((d3/c3)*100) par2.append((f3_1/e3)*100) par3.append((h3/g3)*100) par5=[par[0],par2[0],par[1],par2[1],par[2],par2[2],par[3],par2[3],par[4],par2[4],par[5],par2[5],par[6],par2[6],par[7]] par6=[par[8],par2[8],par[9],par2[9],par[10],par2[10],par[11],par2[11],par[12],par2[12],par[13],par2[13],par[14],par2[14],par[15]] p=['C00','C02','C04','C06','C09','C11','C13','EO2','E04','E06','S02','S04','W01','W03','W05','W06'] p1=['C00-P1','C02-P1','C04-P1','C06-P1','C09-P1','C11-P1','C13-P1','EO2- P1','E04-P1','E06-P1','S02-P1','S04-P1','S06-P1','W02-P1','W04-P1','W06-P1'] p2=['C00-p2','C02-p2','C04-p2','C06-p2','C09-p2','C11-p2','C13-p2','EO2- p2','E04-p2','E06-p2','S02-p2','S04-p2','S06-p2','W02-p2','W04-p2','W06-p2'] i=int(start) with open(f_out, 'a') as f: #Writing into output file writer = csv.writer(f, delimiter='\t') writer.writerows(zip(p1,par5,p2,par6)) avg="Average flagging from " v=str(header[i]) k=str(header[i+(16*(s-1))]) to=" to " st=avg+v+to+k plt.figure(figsize=(12,10)) plt.bar(np.arange(len(par5)),par5, width =0.3,color='r',alpha=1,label='pol1') #Plot bar chart plt.bar(np.arange(len(par6))+0.3,par6, width =0.3,color='b',alpha=1,label='pol2') plt.xticks(np.arange(len(p))+0.3, p,rotation=90,fontsize=12) plt.ylabel('Average Percentage Flagging') plt.title(st) if(len(sys.argv)==6): plt.ylim(0,y_lim) #plt.ylim(0,y_lim) plt.legend() plt.savefig('Percentage_Flagging_Average.jpg')#Save figure in jpg format plt.tight_layout()