obspy.signal.cross_correlation.correlate_stream_template

correlate_stream_template(stream, template, template_time=None, **kwargs)[source]

Calculate cross-correlation of traces in stream with traces in template.

Only matching seed ids are correlated, other traces are silently discarded. The template stream and data stream might have traces of different length and different start times. The data stream must not have gaps and will be sliced as necessary.

Parameters:
  • stream – Stream with data traces.

  • template – Stream with template traces (should be shorter than data).

  • template_time – UTCDateTime associated with template event (e.g. origin time, default is the start time of the template stream). The start times of the returned Stream will be shifted by the given template time minus the template start time.

  • kwargs – kwargs are passed to correlate_template() function.

Returns:

Stream with cross-correlations.

Note

Use correlation_detector() for detecting events based on their similarity. The returned stream of cross-correlations is suitable for use with coincidence_trigger(), though.

Example

>>> from obspy import read, UTCDateTime
>>> data = read().filter('highpass', freq=5)
>>> pick = UTCDateTime('2009-08-24T00:20:07.73')
>>> template = data.slice(pick, pick + 10)
>>> ccs = correlate_stream_template(data, template)
>>> print(ccs)  
3 Trace(s) in Stream:
BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 2000 samples
BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 2000 samples
BW.RJOB..EHZ | ... - 2009-08-24T00:20:22.990000Z | 100.0 Hz, 2000 samples