#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

# Heatmap with datagaze

Hi guys, im having problem with the code for generating heatmap

```
def draw_heatmap(fixations, dispsize, imagefile=None, durationweight=True, alpha=0.5, savefilename=None):
# FIXATIONS
fix = parse_fixations(fixations)

# IMAGE
fig, ax = draw_display(dispsize, imagefile=imagefile)

# HEATMAP
# Gaussian
gwh = 200
gsdwh = gwh/6
gaus = gaussian(gwh,gsdwh)
# matrix of zeroes
strt = gwh/2
heatmapsize = dispsize[1] + 2*strt, dispsize[0] + 2*strt
heatmap = numpy.zeros(heatmapsize, dtype=float)
# create heatmap
for i in range(0,len(fix['dur'])):
# get x and y coordinates
#x and y - indexes of heatmap array. must be integers
x = strt + int(fix['x'][i]) - int(gwh/2)
y = strt + int(fix['y'][i]) - int(gwh/2)
# correct Gaussian size if either coordinate falls outside of
# display boundaries
if (not 0 < x < dispsize[0]) or (not 0 < y < dispsize[1]):
if 0 > x:
x = 0
elif dispsize[0] < x:
if 0 > y:
y = 0
elif dispsize[1] < y:
try:
except:
# fixation was probably outside of display
pass
else:
# add Gaussian to the current heatmap
heatmap[y:y+gwh,x:x+gwh] += gaus * fix['dur'][i]
# resize heatmap
heatmap = heatmap[strt:dispsize[1]+strt,strt:dispsize[0]+strt]
# remove zeros
lowbound = numpy.mean(heatmap[heatmap>0])
heatmap[heatmap<lowbound] = numpy.NaN
# draw heatmap on top of image
ax.imshow(heatmap, cmap='jet', alpha=alpha)

# FINISH PLOT
# invert the y axis, as (0,0) is top left on a display
ax.invert_yaxis()
# save the figure if a file name was provided
if savefilename != None:
fig.savefig(savefilename)

return fig
```

I don't understand variables 'gwh' , 'gsdwh', 'strt' , 'hadj', 'vadj' stand for. Why we need to use them

Can you share the link to the script that uses that function? Then I can try to figure out what they do based on the context. My guess is that `gwh` and `gwsdh` are needed to define a Gaussian kernel. `strt` is needed to extract the gaussian in one dimension, and `hadj` and `vadj` stand for horizontal and vertical adjustment, and are mark the border of the Gaussian in pixel coordinates.