示例#1
0
    def process(self):
        """!
        @brief Performs cluster analysis in line with rules of DBSCAN algorithm.
        
        @see get_clusters()
        @see get_noise()
        
        """

        if self.__ccore is True:
            (self.__clusters,
             self.__noise) = wrapper.dbscan(self.__pointer_data, self.__eps,
                                            self.__neighbors, self.__data_type)

        else:
            if self.__data_type == 'points':
                self.__kdtree = kdtree(self.__pointer_data,
                                       range(len(self.__pointer_data)))

            for i in range(0, len(self.__pointer_data)):
                if self.__visited[i] is False:

                    cluster = self.__expand_cluster(i)
                    if cluster is not None:
                        self.__clusters.append(cluster)
                    else:
                        self.__noise.append(i)
                        self.__belong[i] = True
示例#2
0
    def process(self):
        """!
        @brief Performs cluster analysis in line with rules of DBSCAN algorithm.
        
        @see get_clusters()
        @see get_noise()
        
        """

        if (self.__ccore is True):
            (self.__clusters,
             self.__noise) = wrapper.dbscan(self.__pointer_data, self.__eps,
                                            self.__neighbors, True)

        else:
            for i in range(0, len(self.__pointer_data)):
                if (self.__visited[i] == False):

                    cluster = self.__expand_cluster(i)
                    # Fast mode
                    if (cluster != None):
                        self.__clusters.append(cluster)
                    else:
                        self.__noise.append(i)
                        self.__belong[i] = True
示例#3
0
    def process(self):
        """!
        @brief Performs cluster analysis in line with rules of DBSCAN algorithm.
        
        @see get_clusters()
        @see get_noise()
        
        """
        
        if self.__ccore is True:
            (self.__clusters, self.__noise) = wrapper.dbscan(self.__pointer_data, self.__eps, self.__neighbors, self.__data_type)
            
        else:
            if self.__data_type == 'points':
                self.__kdtree = kdtree(self.__pointer_data, range(len(self.__pointer_data)))

            for i in range(0, len(self.__pointer_data)):
                if self.__visited[i] is False:
                    cluster = self.__expand_cluster(i)
                    if cluster is not None:
                        self.__clusters.append(cluster)

            for i in range(0, len(self.__pointer_data)):
                if self.__belong[i] is False:
                    self.__noise.append(i)
示例#4
0
    def process(self):
        """!
        @brief Performs cluster analysis in line with rules of DBSCAN algorithm.

        @return (dbscan) Returns itself (DBSCAN instance).

        @see get_clusters()
        @see get_noise()
        
        """

        if self.__ccore is True:
            (self.__clusters,
             self.__noise) = wrapper.dbscan(self.__pointer_data, self.__eps,
                                            self.__neighbors, self.__data_type)

        else:
            if self.__data_type == 'points':
                self.__kdtree = kdtree_balanced(
                    self.__pointer_data, range(len(self.__pointer_data)))

            self.__visited = [False] * len(self.__pointer_data)
            self.__belong = [False] * len(self.__pointer_data)

            self.__neighbor_searcher = self.__create_neighbor_searcher(
                self.__data_type)

            for i in range(0, len(self.__pointer_data)):
                if self.__visited[i] is False:
                    cluster = self.__expand_cluster(i)
                    if cluster is not None:
                        self.__clusters.append(cluster)

            for i in range(0, len(self.__pointer_data)):
                if self.__belong[i] is False:
                    self.__noise.append(i)

        return self