def analyzeCircles(self, C1X, C1Y, C2X, C2Y, C3X, C3Y, minRSSIPoint): C = Calculator() nearSet1X = [] nearSet1Y = [] nearSet1Z = [] nearSet2X = [] nearSet2Y = [] nearSet2Z = [] distances = [] d = [] for x1, y1 in zip(C1X, C1Y): for x2, y2 in zip(C2X, C2Y): if (abs(x1 - x2) < 0.25) and (abs(y1 - y2) < 0.25): nearSet1X.append(x1) nearSet1Y.append(y1) nearSet1Z.append(200) distance = C.calculateEuclideanDistance( minRSSIPoint, [x1, y1]) distances.append([x1, y1, distance]) d.append(distance) for x1, y1 in zip(C1X, C1Y): for x3, y3 in zip(C3X, C3Y): if (abs(x1 - x3) < 0.25) and (abs(y1 - y3) < 0.25): nearSet2X.append(x3) nearSet2Y.append(y3) nearSet2Z.append(200) distance = C.calculateEuclideanDistance( minRSSIPoint, [x3, y3]) distances.append([x3, y3, distance]) d.append(distance) nearSet1X.extend(nearSet2X) nearSet1Y.extend(nearSet2Y) nearSet1Z.extend(nearSet2Z) try: minDistanceIndex = d.index(min(d)) APCoordinates = distances[minDistanceIndex] except ValueError: APCoordinates = [0, 0, 0] return [nearSet1X, nearSet1Y, nearSet1Z, APCoordinates]
def calculateDistanceMatrix(X_Mid_Points, Y_Mid_Points, Pose_X, Pose_Y): Distance_Matrix = [] C = Calculator() for X, Y in zip(X_Mid_Points, Y_Mid_Points): DistanceFromOneGridToAllPoints = [] for x, y in zip(Pose_X, Pose_Y): DistanceFromOneGridToAllPoints.append( C.calculateEuclideanDistance([X, Y], [x, y])) Distance_Matrix.append(DistanceFromOneGridToAllPoints) return Distance_Matrix
def calculateDistanceFromCenterPointsToEachPoseReturningXYs(self): Distance_Matrix = [] (Xs, Ys, Zs, XYs, XYZs) = self.middlePointsInTheGrid() global XY C = Calculator() for pointA in XYs: GridPointDistance = [] for pointB in XY: GridPointDistance.append(C.calculateEuclideanDistance(pointA, pointB)) Distance_Matrix.append(GridPointDistance) return Distance_Matrix, Xs, Ys