def summary(file_path,Project,FW,Date):

    filelist = getDataFile(file_path)
    for file in filelist:
        name=(file.split('\\')[-1]).split('.')[0]
        img = cv2.imread(file)
        imgRotation.imgRotate(img)
        ImgDict=getLocation.getLocation()
        imgsize=ImgSize.getImgSize()
        er=ER.getER(ImgDict)
        penToPen=PenToPen.getAlignmentData(ImgDict)
        resolution=Resolution.getResolution(ImgDict)
        labValue=LAB.getLAB(ImgDict)
        with open('..\\data\\PQ.csv', 'a+', newline='') as f:
            csv_write = csv.writer(f)
            # csv_write.writerow([Project,FW,Date,name,imgsize[0],imgsize[1],np.mean(er[0]),np.mean(er[1]),penToPen[0],penToPen[1],penToPen[2],penToPen[3],penToPen[4],penToPen[5],resolution[0][0],resolution[0][1],resolution[0][2],resolution[1][0],resolution[1][1],resolution[1][2],labValue[0],labValue[1],labValue[2],labValue[3],labValue[4],labValue[5],labValue[6],labValue[7],labValue[8],labValue[9],labValue[10],labValue[11],labValue[12],labValue[13],labValue[14],labValue[15]])
            csv_write.writerow([Project,FW,Date,name,imgsize[0],imgsize[1],np.mean(er[0]),np.mean(er[1]),penToPen[0],penToPen[1],penToPen[2],penToPen[3],penToPen[4],penToPen[5],resolution[0][0][0],resolution[0][0][1]-2.06,resolution[0][1][0],resolution[0][1][1]-2.06,resolution[0][2][0],resolution[0][2][1]-2.06,resolution[1][0][0],resolution[1][0][1]-2.06,resolution[1][1][0],resolution[1][1][1]-2.06,resolution[1][2][0],resolution[1][2][1]-2.06,max(labValue[0:4]),max(labValue[4:8]),max(labValue[8:12]),max(labValue[12:16])])

    df=pd.read_csv('..\\data\\PQ.csv')
    columns=['Project','FW','Date','Name','ImgHieghtDiff','ImgWidthDiff','ER_H','ER_V','KtoC_H','KtoM_H','KtoY_H','KtoC_V','KtoM_V','KtoY_V','Res200_H','Res200_H_score','Res300_H','Res300_H_score','Res400_H','Res400_H_score','Res200_V','Res200_V_score','Res300_V','Res300_V_score','Res400_V','Res400_V_score','maxDeltaE_K','maxDeltaE_C','maxDeltaE_M','maxDeltaE_Y']

    if df.columns[0]==columns[0]:

        df.to_csv('..\\data\\PQ.csv',index=False)
    else:
        df = pd.read_csv('..\\data\\PQ.csv',header=None)
        df.columns=columns
        df.to_csv('..\\data\\PQ.csv', index=False)

    gc.collect()
Exemple #2
0
def createNewResolution(committeeId, index, topic, ownerId):
    conn, cursor = _getCursor()
    spanishResString = None
    englishResString = None
    language = getCommitteeLanguage(committeeId)
    if language in [ENGLISH, BILINGUAL]:
        englishResString = json.dumps(Resolution.getEmptyResolution())
    if language in [SPANISH, BILINGUAL]:
        spanishResString = json.dumps(Resolution.getEmptyResolution())
    cursor.execute("SELECT id FROM CommitteeTopics WHERE committeeId=%s AND `index`=%s", (committeeId, topic))
    topicRow = cursor.fetchone()
    if not topicRow:
        raise NoSuchTopicError()
    topicId = topicRow[0]
    cursor.execute("INSERT INTO Resolutions (serializedResolutionObjectEnglish, serializedResolutionObjectSpanish, `status`, `index`, topicId, ownerId) VALUES (%s, %s, %s, %s, %s, %s)", (englishResString, spanishResString, NEW_DRAFT, index, topicId, ownerId))
    cursor.close()
    conn.commit()
Exemple #3
0
 def deplacerJoueur(self):
     """
     fonction ecoutant les entrees clavier et redirigeant vers les fonctions de deplacement du joueur
     
     @type self: Objet
     @param self: instance du jeu
        
     @rtype:None
     @return:None
     """
     finDeEtape=False
     clock = pygame.time.Clock()
     #écoute des touches des touches du clavier pour le déplacement du joueur
     while finDeEtape != True :
         clock.tick(60)
         for event in pygame.event.get():   #On parcours la liste de tous les évènements reçus
             if event.type == pygame.KEYUP :
                 #si c'est une des flèches du clavier alors on prend en consideration le deplacement
                 if event.key in [pygame.K_UP,pygame.K_DOWN,pygame.K_RIGHT,pygame.K_LEFT]:
                     self.deplacer(event.key)
                 #Ctrl+a (ou Ctrl+q) met fin au jeu
                 if pygame.key.get_mods() & pygame.KMOD_LCTRL and event.key == pygame.K_q:
                     sysexit()
                 #si on appuit sur entré on valide le parcours souhaité par le joueur
                 if event.key == pygame.K_RETURN:
                     finDeEtape=self.ValiderChemin()
                     
                 #en appuyant sur espace on utilise le joker qui optimise le deplacement
                 if event.key == pygame.K_SPACE:
                     #generation de la racine de l'arbre des chemins 
                     positionDuJoueur = list(self.listeJoueur[self.listeJoueur['joueurActif']].position)
                     Case = self.plateauDeJeu[positionDuJoueur[0]][positionDuJoueur[1]]
                     initArbreChemin = ArbreChemin(list([positionDuJoueur]),Resolution.calculeValeur(Case,self.fantomePouvantEtreMange,self.listeJoueur[self.listeJoueur['joueurActif']]))
                     
                     #generation complete de l'arbre des chemins
                     arbreChemin = Resolution.generationArbre(self.plateauDeJeu,positionDuJoueur,initArbreChemin,copy(self.fantomePouvantEtreMange,self.listeJoueur[self.listeJoueur['joueurActif']]))
                     
                     #recherche du meilleur chemin dans l'arbre
                     self.liste_deplacement,gain = Resolution.meilleurChemin(arbreChemin)
                     for position in self.liste_deplacement:
                         self.graph.ajouter_rouge (position)
                         sleep(0.1)
                     print "si vous utilisez ce chemin vous gagnerez ",gain
                     
             if event.type == pygame.QUIT:     #Si un de ces évènements est de type QUIT
                 sysexit()     #On arrête la boucle
Exemple #4
0
    def deplacer(self,_direction) :
        """
        fonction generant une liste de deplacement du joueur
        
        @type self: Objet
        @param self: instance du jeu
        @type _direction: String
        @param _direction: direction du déplacement
           
        @rtype:None
        @return:None
        """
        #on récupère la carte sur laquelle le joueur se trouve
        cartePositionDeDepart = self.plateauDeJeu[self.liste_deplacement[-1][0]][self.liste_deplacement[-1][1]].Carte

        #modification de la nouvelle position en fonction de l'ancienne et de la direction demandée
        nouvelleposition=list(self.liste_deplacement[-1])
        if _direction == pygame.K_UP :
            nouvelleposition[0] = (nouvelleposition[0]-1)%self.configuration['nbCase']
        elif _direction == pygame.K_DOWN :
            nouvelleposition[0] = (nouvelleposition[0]+1)%self.configuration['nbCase']
        elif _direction == pygame.K_RIGHT :
            nouvelleposition[1] = (nouvelleposition[1]+1)%self.configuration['nbCase']
        elif _direction == pygame.K_LEFT:
            nouvelleposition[1] = (nouvelleposition[1]-1)%self.configuration['nbCase']

        #recuperation de la carte sur laquelle le joueur veut aller
        cartePositionDeArrivee = self.plateauDeJeu[nouvelleposition[0]][nouvelleposition[1]].Carte

        #s'il y a un mur sur le chemin alors on annule le mouvement
        if not Resolution.mouvementPossible(cartePositionDeDepart,_direction-pygame.K_UP,cartePositionDeArrivee) :
            nouvelleposition=list(self.liste_deplacement[-1])
        
        #le joueur ne peut pas passer deux fois sur une case lors d'un deplacement alors s'il revient sur une case on supprime le chemin intermediaire
        indice=0
        doublon=False
        for position in self.liste_deplacement:
            indice+=1
            if nouvelleposition == position and doublon ==False:
                self.liste_deplacement=self.liste_deplacement[:indice-1]
                doublon=True
            if doublon==True:
                #si le joueur est repasse par une meme case alors la suite du chemin est reinitialise 
                self.graph.remplir_une_case(self.listeJoueur, self.plateauDeJeu, position)
        self.liste_deplacement.append(nouvelleposition)
        self.graph.ajouter_rouge (nouvelleposition)
Exemple #5
0
 def utiliserJoker(self,_erreur = 0):
     """
     fonction fesant appel au joker puis realisant les instructions donne par le joker
     @type self: Objet
     @param self: instance du jeu
     @type _erreur: int
     @param _erreur: l'erreur correspond a la probabilite de choisir un chemin s'il n'est pas le chemin optimal
        
     @rtype:None
     @return:None
     """
     
     self.liste_deplacement,fonction,position,rotation = Resolution.joker(self,_erreur)
     
     #realisation des instruction donnee par le joker
     self.CaseRestante.Carte.orientation = self.CaseRestante.Carte.orientation +(90*rotation)
     self.CaseRestante.Carte.rotation90(rotation)
     fonction(position["ligne"],position["colonne"],True)
     #suppression du joker du joueur
     joueurActif = self.listeJoueur[self.listeJoueur['joueurActif']]
     joueurActif.suppJoker()
     self.plateauDeJeu[joueurActif.position[0]][joueurActif.position[1]].Joueur.suppJoker()
Exemple #6
0
def resolve_references(ast):
    return Resolution.resolve_references(ast)
Exemple #7
0
print ('RStar:', RStar/U.RSun,', LStar:', LStar/U.LSun, ', TStar:', TStar)

#---------------
#GRID Definition
#---------------
#Cubic grid, each edge ranges [-500, 500] AU.

sizex = sizey = sizez = 500 * U.AU
Nx = Ny = Nz = 150 #Number of divisions for each axis
GRID = Model.grid([sizex, sizey, sizez], [Nx, Ny, Nz])
NPoints = GRID.NPoints #Number of nodes in the grid

#--------
#DENSITY
#--------
Rho0 = Res.Rho0(MRate, Rd, MStar)
Arho = 24.1 #Disc-envelope density factor
Renv = 500 * U.AU #Envelope radius
Cavity = 40 * np.pi/180 #Cavity opening angle 
density = Model.density_Ulrich(RStar, Rd, Rho0, Arho, GRID, discFlag = True, envFlag = True, 
                               renv_max = Renv, ang_cavity = Cavity)

#-----------
#TEMPERATURE
#-----------
T10Env = 375. #Envelope temperature at 10 AU
BT = 5. #Adjustable factor for disc temperature. Extra, or less, disc heating.
temperature = Model.temperature(TStar, Rd, T10Env, RStar, MStar, MRate, BT, None, density, GRID,
                                ang_cavity = Cavity)

#--------
Exemple #8
0
def resolve_references(ast):
    return Resolution.resolve_references(ast)
ActiveVoltage = 10 # V

## These are set to generate the initial signal
MainActiveFrequencyHz = 0.5 # Hz
MainActiveFrequency = MainActiveFrequencyHz*2*math.pi       # This converts the signal from Hz to rads/sec

#############################################################################

## Empty Matrices

size = 1111
MATRIX = np.zeros((size,5), dtype = float)

#############################################################################

Res = R.ResolutionFunc(UpperVoltage, LowerVoltage, BitNumber)
VoltFrac = VF.VoltageFractionFunc(ActiveVoltage, UpperVoltage, LowerVoltage)

## Loop for solving
for x in range(size):
    t = x/100 # generates time step
    MAIN = FG.MainVoltageSignal(ActiveVoltage, MainActiveFrequency, t) # generates main signal
    NOISE = random.uniform(-1,1)/10 # generates some noise
    TotalSignal = MAIN+NOISE # saves total signal
    FilteredSignal = FS.FilteredSignalFunc(TotalSignal, VoltFrac, BitNumber, Res, LowerVoltage, UpperVoltage)
    Error = abs(TotalSignal-FilteredSignal)

    MATRIX[x,0] = t
    MATRIX[x,1] = TotalSignal
    MATRIX[x,2] = FilteredSignal
    MATRIX[x,3] = Error
Exemple #10
0
def resolve_references(ast, allow_forward):
    return Resolution.resolve_references(ast, allow_forward)
    def ContractionMI(self, contraction_statement):
        """Performs contraction on a given KB"""
        # This method takes only CNF input for all its operations, uses a list of sets to represent the KB internally amd perform operations.
        # Uses Entrenchment for cases where the random decision are to be made.
        # The entrenchment used is the position of the given letter in the alphabet.
        # Z has more priority over A.
        KB_rep = [set(string.split(sep = '|')) for string in self.KB]
        res = Resolution.Resolution()
        contraction_statement_raw = contraction_statement.upper()
        contraction_statement_raw = contraction_statement_raw.replace(' ', '')
        and_count = contraction_statement_raw.count('&')
        or_count = contraction_statement_raw.count('|')
        if '&' in contraction_statement_raw:
            contraction_statement = contraction_statement_raw.split(sep = '&')
            contraction_statement_rep = [string.split(sep = '|') for string in contraction_statement if string != '~']
        else:
            contraction_statement_rep = contraction_statement_raw.split(sep = '|')
        

        solo, statement_check = False, False

        if len(contraction_statement_raw) == 2:
            contraction_statement_rep = [contraction_statement_rep]

        
        if and_count == 0 and or_count != 0:
            contraction_statement_rep = [contraction_statement_rep]
        
        
        if res.resolveKB(self.KB, contraction_statement_raw):           # Performs contraction only if the entire CNF contraction statement is true.
            for index in range(len(contraction_statement_rep)):
                statement = contraction_statement_rep[index]
                statement = sorted(statement, key = lambda x: ord(x) if len(x) < 2 else len(x))
                KB_statement = '|'.join(statement)
                truth_value = res.resolveKB(self.KB, KB_statement)
                single_literal = False
                if truth_value:
                    if solo:
                            single_literal = True
                    else:
                        try:
                            [statement] = statement
                            single_literal = True
                        except ValueError:
                            single_literal = False
                
                    if single_literal:
                        for location, sentence in enumerate(KB_rep):
                            literal = statement
                            if literal in sentence:
                                KB_rep[location].remove(literal)
                                break
                    else:
                        truth = [res.resolveKB(self.KB, literal) for literal in statement]
                        pos = [i for i, x in enumerate(truth) if not x]
                        for position in pos:
                            literal = statement[position]
                            for location, sentence in enumerate(KB_rep):
                                if literal in sentence:
                                    KB_rep[location].remove(literal)
                                    break
                            break
            
                while True:
                    try:
                        KB_rep.remove(set())
                    except ValueError:
                        break

                self.KB = ['|'.join(sentence) for sentence in KB_rep]
            
            if len(self.KB) == 0:
                print(self.KB)
                return False
            else:
                print(self.KB)
                return True

        else:
            # new belief follows KB therefore can directly be added into the KB if performing revision.
            print(self.KB)
            return True