# 5.4.1.8. eqcorrscan.utils.clustering.empirical_svd

`eqcorrscan.utils.clustering.``empirical_svd`(stream_list, linear=True)

  Empirical subspace detector generation function.

  Takes a list of templates and computes the stack as the first order subspace detector, and the differential of this as the second order subspace detector following the empirical subspace method of Barrett & Beroza, 2014 - SRL.

  Parameters: | stream_list (list) list of streams to compute the subspace detectors from, where streams are `obspy.core.stream.Stream` objects. linear (bool) Set to true by default to compute the linear stack as the first subspace vector, False will use the phase-weighted stack as the first subspace vector.
  Returns: | list of two `obspy.core.stream.Stream` s