obspy.core.stream.Stream.slice

Stream.slice(starttime=None, endtime=None, keep_empty_traces=False, nearest_sample=True)[source]

Return new Stream object cut to the given start and end time.

Parameters:
  • starttime (UTCDateTime) Specify the start time of all traces.
  • endtime (UTCDateTime) Specify the end time of all traces.
  • keep_empty_traces (bool, optional) Empty traces will be kept if set to True. Defaults to False.
  • nearest_sample (bool, optional)

    If set to True, the closest sample is selected, if set to False, the inner (next sample for a start time border, previous sample for an end time border) sample containing the time is selected. Defaults to True.

    Given the following trace containing 6 samples, “|” are the sample points, “A” is the requested starttime:

    |         |A        |         |       B |         |
    1         2         3         4         5         6
    

    nearest_sample=True will select samples 2-5, nearest_sample=False will select samples 3-4 only.

Returns:

Stream

Note

The basic idea of slice() is to avoid copying the sample data in memory. So sample data in the resulting Stream object contains only a reference to the original traces.

Example

>>> st = read()
>>> print(st)  
3 Trace(s) in Stream:
BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples
BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples
BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples
>>> dt = UTCDateTime("2009-08-24T00:20:20")
>>> st = st.slice(dt, dt + 5)
>>> print(st)  
3 Trace(s) in Stream:
BW.RJOB..EHZ | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples
BW.RJOB..EHN | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples
BW.RJOB..EHE | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples