from brian import *
def ircam_plot_count(hrtfset, count, index=None, showbest=True, absolute=False,
vmin=None, vmax=None, I=None, ms=20, mew=2, indexcol='k', bestcol='w'):
count = array(count, dtype=float)
num_indices = hrtfset.num_indices
count = sum(count, axis=0)
if I is None: I = arange(num_indices)
img = zeros((10, 24))
for i, c in enumerate(count):
if i in I:
elev = hrtfset.coordinates['elev'][i]
azim = hrtfset.coordinates['azim'][i]
if elev<60:
w = 1
elif elev==60:
w = 2
elif elev==75:
w = 4
elif elev==90:
w = 24
azim = -180
if azim>=180: azim -= 360
x = int((azim+180)/15)
y = int((elev+45)/15)
img[y, x:x+w] = c
if absolute:
imshow(img, origin='lower left', interpolation='nearest', extent=(-180-7.5, 180-7.5, -45-7.5, 90+7.5),
vmin=vmin, vmax=vmax)
axis('tight')
else:
imshow(img, origin='lower left', interpolation='nearest', extent=(-180-7.5, 180-7.5, -45-7.5, 90+7.5))
axis('tight')
if index is not None:
azim = hrtfset.coordinates['azim'][index]
elev = hrtfset.coordinates['elev'][index]
if azim>=180: azim -= 360
plot([azim], [elev], '+', ms=ms, mew=mew, color=indexcol)
if showbest:
i = argmax(count)
azim = hrtfset.coordinates['azim'][i]
elev = hrtfset.coordinates['elev'][i]
if azim>=180: azim -= 360
plot([azim], [elev], 'x', ms=ms, mew=mew, color=bestcol)
return img