def create_cluster_set(self, vcl):
        """
        For a given catalogue and list of cluster IDs this function splits
        the catalogue into a dictionary containing an individual catalogue
        of events within each cluster

        :param numpy.ndarray vcl:
            Cluster ID list
        :returns:
            Dictionary of instances of the :class:
            openquake.hmtk.seismicity.catalogue.Catalogue, where each instance
            if the catalogue of each cluster
        """
        num_clust = np.max(vcl)
        cluster_set = []
        for clid in range(0, num_clust + 1):
            idx = np.where(vcl == clid)[0]
            cluster_cat = deepcopy(self.catalogue)
            cluster_cat.select_catalogue_events(idx)
            cluster_set.append((clid, cluster_cat))
        return dict(cluster_set)