def getCost(self, state, action): """ Given a state and an action, returns associated cost, which is the incremental cost of expanding to that successor. """ distance = util.getDist(state, action) safety = (self.safety.get(action)).get(self.time) return distance * safety
def closestNode(coord, nodeDict): nodes = nodeDict.keys() bestDist = None bestNode = None for node in nodes: dist = util.getDist(coord, node) if bestNode == None: bestNode = node bestDist = dist elif dist < bestDist: bestNode = node bestDist = dist return bestNode #nodes = cc.update(cc.getNodedata()) #print(closestNode((40.7, -74.0), nodes))
def calcRisk(node, crimedict): nodelat = node[0] nodelon = node[1] timedict = {} for t in range(24): timedict[t] = 1 #for lat in [nodelat]: # for lon in [nodelon]: for lat in [nodelat - 0.001, nodelat, nodelat + 0.001]: for lon in [nodelon - 0.001, nodelon, nodelon + 0.001]: rlat = round(lat, 3) rlon = round(lon, 3) crimes = crimedict[(rlat, rlon)] for crime in crimes: dist = 5280 * util.getDist((nodelat, nodelon), (crime[0], crime[1])) hour = crime[3][0] for t in range(24): dt = min(abs(hour - t), abs(24 - (hour - t))) timedict[t] += crime[2] * np.exp(-dist * dist / 125000) * ( .5 * np.exp(-dt * dt / 30) + .5) return timedict
def MaxHeuristic(state, problem): return util.getDist(state, problem.goal)
if len(event_que) == 10: angle_change = int(event_que[9][1]) dist_change = int(event_que[9][0]) event_que.pop(0) if abs(dist_change) > 0 or abs(angle_change) > 30: msg = str(dist_change) gesFound = 10 if dist_change > 200: k1.tap_key('-', n=2) #msg+=' Z out' else: k1.tap_key(k1.numpad_keys['Add'], n=2) #msg+=' Z in' event_que.append((ut.getDist(l[0], l[1]), ut.getSlope(l[0], l[1]))) cv2.putText( img, 'que-> ' + str(len(event_que)) + ' ' + str(len(l)) + ' ' + str(press_count), (300, 50), font, 1, (255, 255, 255), 2, cv2.LINE_AA) if gesFound > 0: cv2.putText(img, msg, (100, 100), font, 2, (255, 255, 255), 10, cv2.LINE_AA) gesFound -= 1 #fps calc fps = int(1 / (time.time() - t)) cv2.putText(img, "FPS: " + str(fps), (50, 50), font, 1, (255, 255, 255), 2, cv2.LINE_AA) cv2.imshow('Frame', img)
if abs(dist_change)>0 or abs(angle_change)>30: msg=str(dist_change) gesFound=10 if dist_change>200: k1.tap_key('-',n=2) #msg+=' Z out' else: k1.tap_key(k1.numpad_keys['Add'],n=2) #msg+=' Z in' event_que.append((ut.getDist(l[0],l[1]),ut.getSlope(l[0],l[1]))) cv2.putText(img,'que-> '+str(len(event_que))+' '+str(len(l))+' '+str(press_count),(300,50), font,1,(255,255,255),2,cv2.LINE_AA) if gesFound>0: cv2.putText(img,msg,(100,100), font,2,(255,255,255),10,cv2.LINE_AA) gesFound-=1 #fps calc fps=int(1/(time.time()-t)) cv2.putText(img,"FPS: "+str(fps),(50,50), font,1,(255,255,255),2,cv2.LINE_AA) cv2.imshow('Frame',img) #key press events k = 0xFF & cv2.waitKey(10)