5.4.1.3. eqcorrscan.utils.clustering.cluster

eqcorrscan.utils.clustering.cluster(template_list, show=True, corr_thresh=0.3, allow_shift=False, shift_len=0, save_corrmat=False, cores=u'all', debug=1)[source]

Cluster template waveforms based on average correlations.

Function to take a set of templates and cluster them, will return groups as lists of streams. Clustering is done by computing the cross-channel correlation sum of each stream in stream_list with every other stream in the list. Scipy.cluster.hierachy functions are then used to compute the complete distance matrix, where distance is 1 minus the normalised cross-correlation sum such that larger distances are less similar events. Groups are then created by clustering the distance matrix at distances less than 1 - corr_thresh.

Will compute the distance matrix in parallel, using all available cores

Parameters:
  • stream_list List of templates to compute clustering for
  • show (bool) plot linkage on screen if True, defaults to True
  • corr_thresh (float) Cross-channel correlation threshold for grouping
  • allow_shift (bool) Whether to allow the templates to shift when correlating
  • shift_len (int) How many samples to allow the templates to shift in time
  • save_corrmat (bool) If True will save the distance matrix to dist_mat.npy in the local directory.
  • cores (int) number of cores to use when computing the distance matrix, defaults to ‘all’ which will work out how many cpus are available and hog them.
  • debug (int) Level of debugging from 1-5, higher is more output, currently only level 1 implimented.
Returns:

List of groups with each group a list of streams making up that group.