コード例 #1
0
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
コード例 #2
0
ファイル: views.py プロジェクト: nuwan600/attsoc-openshift
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
コード例 #3
0
ファイル: views.py プロジェクト: nuwan600/attsoc-openshift
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))   
コード例 #4
0
ファイル: views.py プロジェクト: nuwan600/attsoc-openshift
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:
コード例 #5
0
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
コード例 #6
0
ファイル: views.py プロジェクト: nuwan600/attsoc-openshift
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:
コード例 #7
0
ファイル: views.py プロジェクト: nuwan600/attsoc-openshift
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))  
コード例 #8
0
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