def set_parent(list_of_nodes, new_node, PARENT_FOUND, node_count): parent_number = 0 """linalg.norm returns length of vector (2-Norm)""" min_cost = np.linalg.norm(list_of_nodes[0, :2] - new_node[:2]) for n in range(node_count): direction_vector = new_node[:2] - list_of_nodes[n, :2] orientation = list_of_nodes[n, 3:5] """TODO: Punishment for hard steering or changing direction""" temp = np.linalg.norm(direction_vector) if not temp > min_cost: min_cost = temp parent_number = n """fehler im prgramm""" if cos_angle(direction_vector, orientation) > COS_ANGLE: #at least one valid parent node PARENT_FOUND = 1 #print "Parent found!" parent = list_of_nodes[parent_number] new_node[5] = parent_number #project new_node to parent node radius (stepsize) new_node = project(parent, new_node) #costs new_node[2] = parent[2] + STEPSIZE return new_node, PARENT_FOUND
def random_pw(): alphabet = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" pw_length = 8 mypw = "" for i in range(pw_length): next_index = random.randrange(len(alphabet)) mypw = mypw + alphabet[next_index] return mypw
def viewsurveys(request,survey_id=0,dept_id=0): try: request.session['user_login_data'] dept_data=SuUserDepartment.objects.filter(org=request.session['user_login_data']['org']) dept=SuUserDepartment.objects.get(id=dept_id) if request.method == 'POST': user_count=request.POST.get('Users','') for i in range(0,int(user_count)): user_data=SuUser(username=random_username(8),password=random_pw(),is_emp=1,is_active=1,user_id=request.session['user_login_data']['id'],date_join=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),org=request.session['user_login_data']['org'],dept=dept) try: user_data.full_clean() user_data.save(True,False,None, None) suuser_date=SuUser.objects.get(pk=user_data.id) surey_data=SuSurey.objects.get(pk=survey_id) user_surey_date=SuSureyAndUser(surey=surey_data,user=suuser_date,create_by=request.session['user_login_data']['id'],create_date=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) try: user_surey_date.full_clean() user_surey_date.save(True,False,None, None) except ValidationError as e: messages={'error':e.messages} surey_data=SuSurey.objects.get(id=survey_id) return render(request, 'pages/forms/publish.html',{'dept_data':dept_data,'surey_data':surey_data ,'messages': messages,'survey_id':survey_id,'dept_id':dept_id},context_instance=RequestContext(request)) except ValidationError as e: messages={'error':e.messages} surey_data=SuSurey.objects.get(id=survey_id) return render(request, 'pages/forms/publish.html',{'dept_data':dept_data,'surey_data':surey_data ,'messages': messages,'survey_id':survey_id,'dept_id':dept_id},context_instance=RequestContext(request)) messages={'success':'Successfuly data added'} surey_data=SuSurey.objects.get(id=survey_id) #return render(request, 'pages/forms/publishSurveys.html',{'survey_id': survey_id,'dept_id': dept_id ,'messages': messages},context_instance=RequestContext(request)) url = reverse('publishSurveys', kwargs={'survey_id': survey_id,'dept_id': dept_id }) return HttpResponseRedirect(url) else: surey_data=SuSurey.objects.get(id=survey_id) return render_to_response("pages/forms/publish.html",{'dept_data':dept_data,'surey_data':surey_data, 'survey_id':survey_id,'dept_id':dept_id },context_instance=RequestContext(request)) except KeyError, e: messages={'alert':'No activity within 120 minutes; please log in again'} return render(request, 'index.html',{'messages': messages},context_instance=RequestContext(request))
def publishSurveys(request,survey_id=0,dept_id=0): try: request.session['user_login_data'] if request.method == 'POST': # if(survey_id==0,dept_id==0): # dept_id=request.POST.get('dept_id','') # survey_id=request.POST.get('Surey_ID','') try: #dept_id=request.POST.get('dept','') #survey_id=request.POST.get('Surey_ID','') surey_data=SuSurey.objects.get(id=request.POST.get('Surey_ID','')) dept=SuUserDepartment.objects.get(id=request.POST.get('dept','')) allusers=SuUser.objects.filter(org=request.session['user_login_data']['org'],dept=dept) survey_count=SuUser.objects.filter(org=request.session['user_login_data']['org'],dept=dept).count() return render(request, 'pages/forms/publishSurveys.html',{'surey_data': surey_data,'dept_id': dept_id,'allusers':allusers,'survey_count':survey_count},context_instance=RequestContext(request)) except ValueError, e: if request.method == 'POST': post_data_vales=request.POST.values() post_data_keys=request.POST.keys() post_data_all=request.POST.items() Post_data=request.POST checked_list = request.POST.getlist('checks[]') survey=SuSurey.objects.get(id=survey_id) for i in range(0, len(checked_list)): user_date=SuUser.objects.get(id=checked_list[i]) surveyanduser=SuSureyAndUser(surey=survey,user=user_date,create_date=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),create_by=request.session['user_login_data']['id']) try: surveyanduser.full_clean() surveyanduser.save(True,False,None, None) except ValidationError as e: print "Error", e.messages surey_data=SuSurey.objects.get(id=survey_id) dept=SuUserDepartment.objects.get(id=dept_id) allusers=SuUser.objects.filter(org=request.session['user_login_data']['org'],dept=dept) survey_count=SuUser.objects.filter(org=request.session['user_login_data']['org'],dept=dept).count() return render(request, 'pages/forms/publishSurveys.html',{'surey_data': surey_data,'dept_id': dept_id,'allusers':allusers,'survey_count':survey_count},context_instance=RequestContext(request)) else: surey_data=SuSurey.objects.get(id=survey_id) dept=SuUserDepartment.objects.get(id=dept_id) allusers=SuUser.objects.filter(org=request.session['user_login_data']['org'],dept=dept) survey_count=SuUser.objects.filter(org=request.session['user_login_data']['org'],dept=dept).count() return render(request, 'pages/forms/publishSurveys.html',{'surey_data': surey_data,'dept_id': dept_id,'allusers':allusers,'survey_count':survey_count},context_instance=RequestContext(request)) else:
def rewiring(list_of_nodes, node_count, new_node, pygame, screen): #node_count is the last added node ticks = time.time() node_number = node_count white = 200, 200, 200 black = 200, 20, 40 while not node_number == 0: tticks = time.time() for n in range(node_count): parent = list_of_nodes[n] direction_vector = new_node[:2] - parent[:2] dist = np.linalg.norm(direction_vector) # print dist, RADIUS, parent[2]+dist,new_node[2],cos_angle(direction_vector, parent[3:5]) if dist < RADIUS: if parent[2] + dist < new_node[2]: if cos_angle(direction_vector, parent[3:5]) > COS_ANGLE: drawtime = time.time() #new parent found! #erase old line pygame.draw.line(screen, white, new_node[:2], list_of_nodes[int(new_node[5]), :2]) pygame.display.update() #update costs new_node[2] = parent[2] + dist #allocate new parent and draw new line new_node[5] = n new_node[3:5] = set_orientation(new_node, parent) #update list of nodes list_of_nodes[node_number] = new_node pygame.draw.line(screen, black, new_node[:2], parent[:2]) pygame.display.update() #next node to examine: parent of last examined node node_number = int(new_node[5]) new_node = list_of_nodes[node_number] #print "Time for Node: " + str(1000*(time.time()-ticks)) + "ms, Node " + str(node_number) #print "Time for Rewiring: " + str(1000*(time.time()-ticks)) + "ms" return list_of_nodes
def surveyAnswred(request,survey_id=0): try: request.session['user_login_data'] if request.method == 'POST': survey_data=SuSurey.objects.get(id=survey_id) survey_question_data=SuSureyFactorsAndQuestions.objects.filter(surey=survey_data) count=SuSureyFactorsAndQuestions.objects.filter(surey=survey_data).count() post_data=request.POST #post_data.pop('csrfmiddlewaretoken') #del post_data['csrfmiddlewaretoken'] post_data_vales=request.POST.values() post_data_keys=request.POST.keys() post_data_all=request.POST.items() #del post_data_keys['csrfmiddlewaretoken'] #del post_data_vales['csrfmiddlewaretoken'] #post_data_keys.pop() #post_data_vales.pop() #post_data.pop() # for key,value in post_data: # ss=key # sss=value for i in range(0, len(post_data_keys)): try: question_data=SuQuestions.objects.get(id=post_data_keys[i]) survey_question_data1 = SuSureyFactorsAndQuestions.objects.get(surey_id=survey_id, question_id=post_data_keys[i]) user_answer_date=SuUserAndAnswers(surey=survey_data, question=question_data, catorgory=survey_question_data1, answered_date=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), answer_by=request.session['user_login_data']['id'], answer=post_data_vales[i]) try: user_answer_date.full_clean() user_answer_date.save(True,False,None, None) except ValidationError as e: print "Error", e.messages if survey_question_data1.subfactor_id != None: try: sb=SuSubFactors.objects.get(id=survey_question_data1.subfactor_id) try: obj= SuSubFactorAvarage.objects.get(survey=survey_data, subfactor=sb) obj.number_of_emp = obj.number_of_emp + 1 obj.sum = obj.sum + float(post_data_vales[i]) obj.avarage = float(obj.sum) / obj.number_of_emp if obj.avarage > 3: obj.critical= 1 else: obj.critical= 0 obj.save() except SuSubFactorAvarage.DoesNotExist as e: ct = 0 if float(post_data_vales[i]) > 3: ct = 1 data=SuSubFactorAvarage(survey=survey_data, subfactor=sb, number_of_emp=1, sum=post_data_vales[i], avarage=float(post_data_vales[i]), critical= ct) data.full_clean() data.save(True,False,None, None) except ValidationError as e: print "Error", e.messages except UnboundLocalError,e: print "error" messages={'success':'Successfuly answer the Survey'} return render_to_response("empAnswresfrom.html",{'messages':messages,'survey_question_data':survey_question_data,'survey_data':survey_data,'count':count},context_instance=RequestContext(request)) else:
def random_username(length): return ''.join(random.choice(string.lowercase + datetime.datetime.now().strftime("%Y%m%d%H%M%S") ) for i in range(length))
def main(): #initialize and prepare screen """TODO always giving list_of_nodes as parameter neccessary?""" pygame.init() screen = pygame.display.set_mode(WINSIZE) pygame.display.set_caption('RRTstar') white = 255, 255, 255 black = 20, 20, 40 screen.fill(white) obs_draw(pygame, screen) list_of_nodes = np.zeros((NUM_NODES, ROWS)) #to be defined: delete invalid list_of_nodes or safe them for later? startticks = time.time() list_of_nodes[0] = START_NODE counter = 0 iteraterationticks = time.time() for node_count in range(list_of_nodes.shape[0] - 1): PARENT_FOUND = 0 while not PARENT_FOUND: """not random, but gauss-verteilt between start and goal (start-goal line expectationvalue)""" x_coor = int(random.random() * XDIM) y_coor = int(random.random() * YDIM) #for beginning [x,y] sufficent, better arithmetic performance? Check cost of slicing, node || node[:2] new_node = np.array([x_coor, y_coor, 0.0, 0.0, 0.0, 0.0]) #project new node to parent """PARENT_FOUND needed because of possible invalid nodes""" new_node, PARENT_FOUND = set_parent(list_of_nodes, new_node, PARENT_FOUND, node_count + 1) #set orientation new_node[3:5] = set_orientation(new_node, list_of_nodes[int(new_node[5])]) #append new node list_of_nodes[node_count + 1] = new_node pygame.draw.line(screen, black, [ list_of_nodes[int(new_node[5]), 0], list_of_nodes[int(new_node[5]), 1] ], [int(new_node[0]), int(new_node[1])]) pygame.display.update() if is_in_area(new_node, area): drawSolutionPath(new_node, list_of_nodes, pygame, screen) pygame.display.update() goal_node = new_node break for e in pygame.event.get(): if e.type == QUIT or (e.type == KEYUP and e.key == K_ESCAPE): sys.exit("Leaving because you requested it.") if counter == 10: list_of_nodes = rewiring(list_of_nodes, node_count, new_node, pygame, screen) counter = 0 counter = counter + 1 if node_count % 500 == 0: print "Time for " + str(node_count) + " iteration:" + str( (time.time() - iteraterationticks)) + "s" iteraterationticks = time.time() #print list_of_nodes[:10] print "Time for full algorithm: " + str(time.time() - startticks) + " seconds." """ Approach