Hola a todos...

Alguien puede decirme de qué se trata este error?

rolando@rolando-MS-7815:~/ipoco-0.1.1$ plot_auto_arte.py
config_scripts/i4_c1024_arte.config

Parsing config file config_scripts/i4_c1024_arte.config...OK
Connecting to IBOB on port 23.
Connecting to IBOB on ip 169.254.128.32.
Grabbing spectrum number 1
Traceback (most recent call last):
  File "/usr/local/bin/plot_auto_arte.py", line 80, in updatefig
    self_reord.append (numpy.concatenate((inputs[input][512:1024],
inputs[input][0:512])))
TypeError: unhashable type

Estoy tratando de graficar unas señales en un rango de 0 a 1024 puntos en
el eje X.

Agradeceré cualquier sugerencia.

Saludos

RP
#!/usr/bin/python
'''
Plots the auto correlations for all four inputs.
'''
import gtk, gobject, poco, time, numpy, struct, sys, math, matplotlib
matplotlib.use('GTKAgg')
from matplotlib import rcParams
import pylab
from optparse import OptionParser
#import pdb

bram_map=['xengine/aa/real','xengine/bb/real','xengine/cc/real','xengine/dd/real']

p = OptionParser()
p.set_usage('plot_auto.py CONFIG FILE')
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', '--freq', dest='freq', action='store_true', default=False,
    help='''Plot the input frequency on the X-axis rather than the channel 
number.''')

opts, args = p.parse_args(sys.argv[1:])


if args==[]:
    print 'Please specify a configuration file! \nExiting.'
    exit()

config = poco.cn_conf.CorrConf(args[0], type='poco')
config_status = config.read_all()
print '\nParsing config file %s...%s'%(args[0],config_status)
sys.stdout.flush()
if not config_status == 'OK': exit()

#pdb.set_trace()
port = config['port']
ip = config['ibob_ip']
n_chans = config['n_chans']
cen_freq = config['adc_clk']*1000.*config['ddc_mix_freq']
bandwidth = config['adc_clk']*1000./config['ddc_decimation']
HOST = ip
PORT = 23

print 'Connecting to IBOB on port %s.'%PORT
print 'Connecting to IBOB on ip %s.'%HOST

brd = poco.tcp_client.TCPClient(HOST,PORT)

fig = pylab.figure(1)
manager = pylab.get_current_fig_manager()
cnt = 0

if opts.freq:
    channel_size=float(bandwidth)/n_chans
    print 'Bandwidth: %f. Cent freq: %f. Channel size: 
%f'%(bandwidth,cen_freq,channel_size)
    x=((numpy.array(range(0,n_chans))*channel_size)+cen_freq-bandwidth/2)
    xlab=('Input Frequency (MHz)')
else:
    x=range(0,n_chans)
    xlab=('Input channel number')


def updatefig(*args):
    global cnt
    cnt += 1
    print 'Grabbing spectrum number %i'%cnt
    #get the data...    
    inputs=[[],[],[],[]]
    self_reord=[]
    for input in range(4):
        inputs[input] = brd.read_ui(bram_map[input], size=n_chans)

    pylab.figure(num=1,figsize=(10,10))
    pylab.ioff()
    ymax=0
    ax=[]
    for input in range(4):
        self_reord.append (numpy.concatenate((inputs[input][512:1024], 
inputs[input][0:512])))
        ax.append(pylab.subplot(411+input))
        pylab.hold(opts.hold)

        if opts.log:
            pylab.semilogy(x,self_reord[input])
            pylab.ylabel('Power (log scale, arbitrary units)')

        else:
            pylab.plot(self_reord[input])
            pylab.ylabel('Power (linear scale, arbitrary units)')

        pylab.grid()
        #pylab.setp(ax[input].get_xticklabels(),visible=False)
        pylab.ylabel('Power (arbitrary units)')
        pylab.title('Power: Input %i. Spectrum number %i'%(input,cnt))
        if ymax<(ax[input].axes.yaxis.get_data_interval()[-1]): 
            ymax=(ax[input].axes.yaxis.get_data_interval()[-1])

    for i in range(4):
        ax[i].set_ylim(0,ymax*1.1)

    pylab.setp(ax[input].get_xticklabels(),visible=True)
    pylab.xlabel(xlab)
    pylab.xlim(x[0],x[n_chans-1])
    print 'Ymax: %i'%ymax
        
    pylab.draw()
    return True

gobject.idle_add(updatefig)
pylab.show()
print 'Done with all' 

_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a