Dear Casperites I am working on Roach2 and 5Gsps ADC1x5000-8.
During data acquisition for 4 element interferometer I am having following issue in python code. I want to plot and record all the 6 baselines at a time from a single python file. please find the attached python code file. Kindly help me to sort out that issue. root@casper:~/4element_code# python corr_plotting_4element.py 192.168.100.192 30augc_12_cang 30augc_12_camp 30augc_13_cang 30augc_13_camp 30augc_14_cang 30augc_14_camp 30augc_23_cang 30augc_23_camp 30augc_24_cang 30augc_24_camp 30augc_34_cang 30augc_34_camp dumping file is missing Traceback (most recent call last): File "corr_plotting_4element.py", line 148, in updatefig rply[input] = map(eval, reply.arguments[1:n_chans/8+1]) IndexError: list assignment index out of range Done with all Thanks & Regards Nikita Rathore -- You received this message because you are subscribed to the Google Groups "casper@lists.berkeley.edu" group. To unsubscribe from this group and stop receiving emails from it, send an email to casper+unsubscr...@lists.berkeley.edu. To view this discussion on the web visit https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAOvmUY787FyLpGGLSDzEQAjZrg9-%2BKDLV1S11zTEk91B0oQEew%40mail.gmail.com.
#!/usr/bin/python #from katcp import BlockingClient, Message '''PLOTS CROSS AND AUTO CORRELATION FUNCTION OF WIDEBAND POCO n-CH DESIGN ON ROACH BOARD ''' import matplotlib from matplotlib import rcParams matplotlib.use('GTKAgg') import katcp, numpy, pylab import gtk, gobject, time, struct, sys, math f_1=str(sys.argv[2]) f_2=str(sys.argv[3]) f_3=str(sys.argv[4]) f_4=str(sys.argv[5]) f_5=str(sys.argv[6]) f_6=str(sys.argv[7]) f_7=str(sys.argv[8]) f_8=str(sys.argv[9]) f_9=str(sys.argv[10]) f_10=str(sys.argv[11]) f_11=str(sys.argv[12]) f_12=str(sys.argv[13]) def interleave(*args): x=[] for idx in range(0, max(len(arg) for arg in args)): for arg in args: try: #yield arg[idx] x.append(arg[idx]) except IndexError: continuie return x device_host = "192.168.100.192" # For Lab Testing #device_host = "192.168.4.91" # For Receiver Room Testing device_port = 7147 #acq_time = 2**27/(100.0*(10**6)) # 0.89 is 1 sync period time n_chans = 2048 #512 fft ants = 1 if __name__ == '__main__': from optparse import OptionParser p = OptionParser() p.set_usage('tut4_poco_plot.py <ROACH_HOSTNAME_or_IP> [options] ') p.set_description(__doc__) p.add_option('-l', '--log', dest='log', action='store_true', default=False, help='''Plot the power in logarithmic scale (requires some non-zero value signal).''') p.add_option('--hold', dest='hold', action='store_true', default=False, help='''Turn on hold. This will plot subsequent specra on top of each other.''') p.add_option('-f', '--file', action='store', type='string', dest='filename', help='''file dump the data in native tax format''', metavar='FILE') opts, args = p.parse_args(sys.argv[1:]) if args==[]: print 'Please specify a ROACH board. \nExiting.' exit() else: roach = args[0] client = katcp.BlockingClient(roach, device_port) client.start() bram_map=['s1_aa_real','s1_a1a1_real','s1_aa1_real','s1_a1a2_real','s2_aa_real','s2_a1a1_real','s2_aa1_real','s2_a1a2_real','c12_aa_real','c12_a1a1_real','c12_aa1_real','c12_a1a2_real','c12_aa_imag','c12_a1a1_imag','c12_aa1_imag','c12_a1a2_imag','s3_aa_real','s3_a1a1_real','s3_aa1_real','s3_a1a2_real','c13_aa_real','c13_a1a1_real','c13_aa1_real','c13_a1a2_real','c13_aa_imag','c13_a1a1_imag','c13_aa1_imag','c13_a1a2_imag','s4_aa_real','s4_a1a1_real','s4_aa1_real','s4_a1a2_real','c14_aa_real','c14_a1a1_real','c14_aa1_real','c14_a1a2_real','c14_aa_imag','c14_a1a1_imag','c14_aa1_imag','c14_a1a2_imag','c23_aa_real','c23_a1a1_real','c23_aa1_real','c23_a1a2_real','c23_aa_imag','c23_a1a1_imag','c23_aa1_imag','c23_a1a2_imag','c24_aa_real','c24_a1a1_real','c24_aa1_real','c24_a1a2_real','c24_aa_imag','c24_a1a1_imag','c24_aa1_imag','c24_a1a2_imag','c34_aa_real','c34_a1a1_real','c34_aa1_real','c34_a1a2_real','c34_aa_imag','c34_a1a1_imag','c34_aa1_imag','c34_a1a2_imag'] x=numpy.arange(0.0,299.70,0.2929) #x=range(0,n_chans/2) xlab=('Frequency in MHz') fig = pylab.figure(1) manager = pylab.get_current_fig_manager() cnt = 0 #creating file to dump data------------------------------------------------------------------------------------------- if (opts.filename != None): f_name = opts.filename #+ opts.filename #f_name = "phase" print "dumping File is %s" %f_name fptr = open (f_name,'w') else: print "dumping file is missing\n" #continuous loop def updatefig(*args): global cnt, ants cnt += 2 print 'Grabbing spectrum number %i'%cnt rply = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] Acomplex_0 = [] Acomplex_1 = [] Acomplex_2 = [] Bcomplex_0 = [] Bcomplex_1 = [] Bcomplex_2 = [] Ccomplex_0 = [] Ccomplex_1 = [] Ccomplex_2 = [] Ccomplex_3 = [] Ccomplex_4 = [] Ccomplex_5 = [] Ccomplex_6 = [] Ccomplex_7 = [] Ccomplex_8 = [] Ccomplex_9 = [] Ccomplex_10 = [] Ccomplex_11 = [] Ccomplex_12 = [] Ccomplex_13 = [] Ccomplex_14 = [] Ccomplex_15 = [] Ccomplex_16 = [] Ccomplex_17 = [] Ccomplex_18 = [] Ccomplex_19 = [] Ccomplex_20 = [] Ccomplex_21 = [] Ccomplex_22 = [] Ccomplex_23 = [] Ccomplex_24 = [] Ccomplex_25 = [] Ccomplex_26 = [] Ccomplex_27 = [] Ccomplex_28 = [] Ccomplex_29 = [] Ccomplex_30 = [] Ccomplex_31 = [] Ccomplex_32 = [] Ccomplex_33 = [] Ccomplex_34 = [] Ccomplex_35 = [] Ccomplex_36 = [] Ccomplex_37 = [] Ccomplex_38 = [] Ccomplex_39 = [] Ccomplex_40 = [] Ccomplex_41 = [] main_loop_t = time.time() # DATA GRABBING UTILITY----------------------------------------------------------------------------------------------------- for input in range(64): reply, inform = client.blocking_request(katcp.Message.request("wordread", bram_map[input], "0", "256")) #print "reply", numpy.size(reply) print"reply[%i]=%i"%(input, numpy.size(reply)) rply[input] = map(eval, reply.arguments[1:n_chans/8+1]) for i in range(256): # For 2's Complement interpretation :) if (rply[input][i] > 2147483647): rply[input][i] = rply[input][i] - 4294967296 # DATA Acomplex_0 =numpy.array(interleave(rply[0],rply[1]))#real part of 1st input after interleaving even odd Acomplex_1 =numpy.array(interleave(rply[2],rply[3])) Acomplex_2 =numpy.array(interleave(Acomplex_0,Acomplex_1)) Bcomplex_0 =numpy.array(interleave(rply[4],rply[5]))#real part of 1st input after interleaving even odd Bcomplex_1 =numpy.array(interleave(rply[6],rply[7])) Bcomplex_2 =numpy.array(interleave(Bcomplex_0,Bcomplex_1)) Ccomplex_0 =numpy.array(interleave(rply[8],rply[9]))#real part of 1st input after interleaving even odd Ccomplex_1 =numpy.array(interleave(rply[10],rply[11])) Ccomplex_2 =numpy.array(interleave(Ccomplex_0,Ccomplex_1)) Ccomplex_3 =numpy.array(interleave(rply[12],rply[13])) Ccomplex_4 =numpy.array(interleave(rply[14],rply[15])) Ccomplex_5 =numpy.array(interleave(Ccomplex_3,Ccomplex_4)) Ccomplex_6=numpy.copy(numpy.array(Ccomplex_2) + numpy.array(Ccomplex_5)*1j) Ccomplex_7 =numpy.array(interleave(rply[21],rply[22])) Ccomplex_8 =numpy.array(interleave(rply[23],rply[24])) Ccomplex_9 =numpy.array(interleave(Ccomplex_7,Ccomplex_8)) Ccomplex_10 =numpy.array(interleave(rply[25],rply[26])) Ccomplex_11 =numpy.array(interleave(rply[27],rply[28])) Ccomplex_12 =numpy.array(interleave(Ccomplex_10,Ccomplex_11)) Ccomplex_13=numpy.copy(numpy.array(Ccomplex_9) + numpy.array(Ccomplex_12)*1j) Ccomplex_14 =numpy.array(interleave(rply[33],rply[34])) Ccomplex_15 =numpy.array(interleave(rply[35],rply[36])) Ccomplex_16 =numpy.array(interleave(Ccomplex_14,Ccomplex_15)) Ccomplex_17 =numpy.array(interleave(rply[37],rply[38])) Ccomplex_18 =numpy.array(interleave(rply[39],rply[40])) Ccomplex_19 =numpy.array(interleave(Ccomplex_17,Ccomplex_18)) Ccomplex_20=numpy.copy(numpy.array(Ccomplex_16) + numpy.array(Ccomplex_19)*1j) Ccomplex_21 =numpy.array(interleave(rply[41],rply[42])) Ccomplex_22 =numpy.array(interleave(rply[43],rply[44])) Ccomplex_23 =numpy.array(interleave(Ccomplex_21,Ccomplex_22)) Ccomplex_24 =numpy.array(interleave(rply[45],rply[46])) Ccomplex_25 =numpy.array(interleave(rply[47],rply[48])) Ccomplex_26 =numpy.array(interleave(Ccomplex_24,Ccomplex_25)) Ccomplex_27=numpy.copy(numpy.array(Ccomplex_23) + numpy.array(Ccomplex_26)*1j) Ccomplex_28 =numpy.array(interleave(rply[49],rply[50])) Ccomplex_29 =numpy.array(interleave(rply[51],rply[52])) Ccomplex_30 =numpy.array(interleave(Ccomplex_28,Ccomplex_29)) Ccomplex_31 =numpy.array(interleave(rply[53],rply[54])) Ccomplex_32 =numpy.array(interleave(rply[55],rply[56])) Ccomplex_33 =numpy.array(interleave(Ccomplex_31,Ccomplex_32)) Ccomplex_34=numpy.copy(numpy.array(Ccomplex_30) + numpy.array(Ccomplex_33)*1j) Ccomplex_35 =numpy.array(interleave(rply[57],rply[58])) Ccomplex_36 =numpy.array(interleave(rply[59],rply[60])) Ccomplex_37 =numpy.array(interleave(Ccomplex_35,Ccomplex_36)) Ccomplex_38 =numpy.array(interleave(rply[61],rply[62])) Ccomplex_39 =numpy.array(interleave(rply[63],rply[64])) Ccomplex_40 =numpy.array(interleave(Ccomplex_38,Ccomplex_39)) Ccomplex_41=numpy.copy(numpy.array(Ccomplex_37) + numpy.array(Ccomplex_40)*1j) #DATA DUMPING UTILITY-------------------# if(opts.filename!= None): k=0 for k in range (512): fptr.write('%f\n'%numpy.angle(Rcomplex[k],deg=True)) k=0 for k in range (512): fptr.write('%f\n'%numpy.angle(Lcomplex[k],deg=True)) #creat files---------------------------------# outfile='file1' numpy.savetxt(outfile, Acomplex_0 , fmt='%.2f') outfile='file2' numpy.savetxt(outfile, Acomplex_1 , fmt='%.2f') outfile='file3' numpy.savetxt(outfile, Acomplex_2 , fmt='%.2f') #DATA PLOTTING UTILITY-------------- # y=numpy.abs(Acomplex_2) pylab.subplot(412) #plotting self amplitude of 1st element pylab.ioff() pylab.hold(False) print 'size of Acomplex = %i'%numpy.size(Acomplex_2) if opts.log: pylab.semilogy(x, numpy.abs(Acomplex_2)) pylab.ylabel('Power (log, arb units)') else: pylab.plot(x, numpy.abs(Acomplex_2)) pylab.ylabel('Power (linear, arb units)') pylab.xlim(x[0],x[1023]) #pylab.ylim(y[446],y[510]) pylab.grid() pylab.title('Power:antenna1 self Amplitude Spectrum number %i'%cnt) pylab.xlabel(xlab) pylab.draw() y=numpy.abs(Bcomplex_2) pylab.subplot(411) #plotting self amplitude of 1st element pylab.ioff() pylab.hold(False) print 'size of Acomplex = %i'%numpy.size(Bcomplex_2) if opts.log: pylab.semilogy(x, numpy.abs(Bcomplex_2)) pylab.ylabel('Power (log, arb units)') else: pylab.plot(x, numpy.abs(Bcomplex_2)) pylab.ylabel('Power (linear, arb units)') pylab.xlim(x[0],x[1023]) #pylab.ylim(y[446],y[510]) pylab.grid() pylab.title('Power:antenna1 self Amplitude Spectrum number %i'%cnt) pylab.xlabel(xlab) pylab.draw() y=numpy.abs(Ccomplex_6) pylab.subplot(413) #plotting self amplitude of 1st element pylab.ioff() pylab.hold(False) print 'size of Acomplex = %i'%numpy.size(Ccomplex_6) if opts.log: pylab.semilogy(x, numpy.abs(Ccomplex_6)) pylab.ylabel('Power (log, arb units)') else: pylab.plot(x, numpy.abs(Ccomplex_6)) pylab.ylabel('Power (linear, arb units)') pylab.xlim(x[0],x[1023]) #pylab.ylim(y[446],y[510]) pylab.grid() pylab.title('Power:antenna1 self Amplitude Spectrum number %i'%cnt) pylab.xlabel(xlab) pylab.draw() pylab.subplot(414) pylab.ioff() pylab.hold(opts.hold) pylab.plot(x,(numpy.angle(Ccomplex_6,deg=True))) # filename1 = "antenna1_auto.txt" # file =open(filename1,'w') # file.write(numpy.angle(Rcomplex,deg=True)) # file.close() pylab.xlim(x[0],x[1023]) pylab.ylim(-180,+180) pylab.ylabel('Phase in Deg') pylab.grid() pylab.title('Power: cross correlation of antenna one and two Phase Spectrum number %i'%cnt) f1=open(f_1,"a") numpy.savetxt(f1,(numpy.angle(Ccomplex_6,deg=True)),fmt='%.2f') f2=open(f_2,"a") numpy.savetxt(f2,(numpy.abs(Ccomplex_6)),fmt='%.2f') f3=open(f_3,"a") numpy.savetxt(f3,(numpy.angle(Ccomplex_13,deg=True)),fmt='%.2f') f4=open(f_4,"a") numpy.savetxt(f4,(numpy.abs(Ccomplex_13)),fmt='%.2f') f5=open(f_5,"a") numpy.savetxt(f5,(numpy.angle(Ccomplex_20,deg=True)),fmt='%.2f') f6=open(f_6,"a") numpy.savetxt(f6,(numpy.abs(Ccomplex_20)),fmt='%.2f') f7=open(f_7,"a") numpy.savetxt(f7,(numpy.angle(Ccomplex_27,deg=True)),fmt='%.2f') f8=open(f_8,"a") numpy.savetxt(f8,(numpy.abs(Ccomplex_27)),fmt='%.2f') f9=open(f_9,"a") numpy.savetxt(f9,(numpy.angle(Ccomplex_34,deg=True)),fmt='%.2f') f10=open(f_10,"a") numpy.savetxt(f10,(numpy.abs(Ccomplex_34)),fmt='%.2f') f11=open(f_11,"a") numpy.savetxt(f11,(numpy.angle(Ccomplex_41,deg=True)),fmt='%.2f') f12=open(f_12,"a") numpy.savetxt(f12,(numpy.abs(Ccomplex_41)),fmt='%.2f') return True gobject.idle_add(updatefig) pylab.show() client.stop() client.join() if(opts.filename != None): fptr.close() print 'Done with all'