-
Notifications
You must be signed in to change notification settings - Fork 0
/
mapViewer.py
62 lines (49 loc) · 1.81 KB
/
mapViewer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import numpy as np
import sys
import matplotlib.pyplot as plt
def usage():
print("USAGE: python mapViewer.py <mapFile> OPTIONAL: <x> <y>")
# Function that draws a square with a value of 50
def square(costMap,row,col,rad):
for i in range(rad*2):
for j in range(rad*2):
reRow = row - rad + i
reCol = col - rad + j
if reRow<0 or reCol <0 or reRow>np.shape(costMap)[0] or reCol>np.shape(costMap)[1]:
continue
costMap[reRow,reCol]+=5
return costMap
def locator(file,x,y):
data = np.load(file)
channel0 = data['channel0']
xBounds = data['xBounds']
yBounds = data['yBounds']
pixelsPerMeter = data['pixelsPerMeter']
xWidth = int((xBounds[1] - xBounds[0]) * pixelsPerMeter)
yWidth = int((yBounds[1] - yBounds[0]) * pixelsPerMeter)
reMap = np.resize(channel0, (yWidth,xWidth))
col=int(round((x- xBounds[0])*pixelsPerMeter))
row=int(round((y- yBounds[0])*pixelsPerMeter))
reMap = square(reMap,row,col,5)
plt.imshow(reMap, extent = [xBounds[0],xBounds[1],yBounds[0],yBounds[1]])
plt.colorbar()
plt.show()
def main(file):
data = np.load(file)
channel0 = data['channel0']
xBounds = data['xBounds']
yBounds = data['yBounds']
pixelsPerMeter = data['pixelsPerMeter']
xWidth = int((xBounds[1] - xBounds[0]) * pixelsPerMeter)
yWidth = int((yBounds[1] - yBounds[0]) * pixelsPerMeter)
reMap = np.resize(channel0, (yWidth,xWidth))
plt.imshow(reMap, extent = [xBounds[0],xBounds[1],yBounds[0],yBounds[1]])
plt.colorbar()
plt.show()
if __name__ == '__main__':
if len(sys.argv) < 2 or len(sys.argv) > 4 or len(sys.argv) == 3:
usage()
elif len(sys.argv) == 4:
locator(sys.argv[1],float(sys.argv[2]),float(sys.argv[3]))
else:
main(sys.argv[1])