Esempio n. 1
0
    def splitDataAboveBelowMean(self, npIn, sensorsIn, returnType, n_tests = -1):
        above = []
        below = []
        restSensors = []
        extSensors = []
        mean = 0
        
        if returnType == 'm':
            mean = np.mean(npIn)
            above = npIn[npIn > mean]
            below = npIn[npIn < mean]
        else: #it's for points
            mean = Point.averagePoints(npIn).sqrMagnitude()
            
            for i, p in enumerate(npIn):
                if p.sqrMagnitude() > mean:
                    above.append(p)
                    extSensors.append(sensorsIn[i])
                else:
                    below.append(p)
                    restSensors.append(sensorsIn[i])
                    
#            above = [p for p in npIn if p.sqrMagnitude() > mean]
#            below = [p for p in npIn if p.sqrMagnitude() < mean]
        
        if n_tests >= 1:
            print("n_tests is used!")
            above, below, restSensors, extSensors = above[:n_tests], below[:n_tests], restSensors[:n_tests], extSensors[:n_tests]

        return np.array(above), np.array(below), Point.averagePoints(np.append(above,below)), np.array(extSensors), np.array(restSensors)
Esempio n. 2
0
    def generateFeatures(self, byValue, threshold):
        # Returns numpy arrays where possible
        
        self.plateaus = self.lookAheadForPlateau(by = byValue, varianceThreshold = threshold)
        self.plateauPoints = self.averagePlateauSections(self.plateaus, 'p')
        self.plateauSensorValues = self.extractData6Values(self.plateaus)
        self.plateauSensorAverages = self.avgSensorValues(self.plateauSensorValues)
        self.extensionPoints, self.restPoints, self.meanPoint, self.extensionSensors, self.restSensors = self.splitDataAboveBelowMean(self.plateauPoints, self.plateauSensorAverages, returnType = 'p') 
        self.meanRestPoint = Point.averagePoints(self.restPoints)
        
        self.trimLists()                  

        self.vectorsBetween = [self.extensionPoints[i] - self.restPoints[i] for i, val in enumerate(self.restPoints)]
        self.anglesBetween = [Point.angleBetween(self.extensionPoints[i] ,self.restPoints[i] ) for i, val in enumerate(self.restPoints)]
Esempio n. 3
0
    def averagePlateauSections(self, plateaus, returnType = 'm'):
        '''
        array to hold each flat part of the palteaus
        return array
        loop through through plateaus array
        if i is 0, 
            then we save the mean of avgFlat, 
            then clear avgFlat and move on
        else we save the length of the point to avgFlat
        
        then average any flat parts and append to return array
        return array
        '''
        avgFlat, returnArray = [],[]
        
        for i, num in enumerate(plateaus):
            if num == 0:
                if len(avgFlat) != 0: #we've reached the end of a plateau
                    if returnType == 'm':
                        returnArray.append(np.mean(avgFlat))
                    else:
                        returnArray.append(Point.averagePoints(avgFlat))
                    avgFlat.clear()
                continue
            if returnType == 'm': 
                avgFlat.append(self.copPoints[i].magnitude())
            else:
                avgFlat.append(self.copPoints[i])

        # Consider the code reaching the end of the list with items not yet averaged
        if len(avgFlat) != 0:
            if returnType == 'm':
                returnArray.append(np.mean(avgFlat))
            else:
                returnArray.append(Point.averagePoints(avgFlat))
        
        return np.array(returnArray)