# IndexError: index 804 is out of bounds for axis 0 with size 800

i installed a self driving car project from superdatascience site , when i open the map using terminal after a while the map window close up or it closes directly after i maximize the map window and it gives me this error :

    [INFO   ] [Base        ] Leaving application in progress...
Traceback (most recent call last):
File "map.py", line 235, in <module>
CarApp().run()
File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 826, in run
runTouchApp()
File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 502, in runTouchApp
EventLoop.window.mainloop()
File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 727, in mainloop
self._mainloop()
File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 460, in _mainloop
EventLoop.idle()
File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 340, in idle
self.dispatch_input()
File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 325, in dispatch_input
post_dispatch_input(*pop(0))
File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 231, in post_dispatch_input
listener.dispatch('on_motion', etype, me)
File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 1360, in on_motion
self.dispatch('on_touch_down', me)
File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 1376, in on_touch_down
if w.dispatch('on_touch_down', touch):
File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 460, in on_touch_down
if child.dispatch('on_touch_down', touch):
File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "map.py", line 181, in on_touch_down
sand[int(touch.x),int(touch.y)] = 1
IndexError: index 620 is out of bounds for axis 1 with size 600


the code i have in the brain ( ai.py file ) is

    class Dqn():

def select_action(self, state):
probs = F.softmax(self.model(Variable(state, volatile = True))*100) # T=100
action = probs.multinomial(num_samples=1)
return action.data[0,0]


the code i have in the map ( map.py file ) is

class MyPaintWidget(Widget):

def on_touch_down(self, touch):
global length, n_points, last_x, last_y
with self.canvas:
Color(0.8,0.7,0)
d = 10.
touch.ud['line'] = Line(points = (touch.x, touch.y), width = 10)
last_x = int(touch.x)
last_y = int(touch.y)
n_points = 0
length = 0
sand[int(touch.x),int(touch.y)] = 1


what should i do or change ??

• Seems like you are gong out of bounds of an array somewhere
– Markiian Benovskyi
Nov 7 '18 at 10:06

One of the values being returned by touch.x or touch.y are bigger than the dimensions of the sand array.
You could try adding a try/except block around it and print a useful message - just as an example, as I have no idea what this programme is doing (in the on_touch_down function):
def on_touch_down(self, touch)