Stream.slide(window_length, step, offset=0, include_partial_windows=False, nearest_sample=True)[source]

Generator yielding equal length sliding windows of the Stream.

Please keep in mind that it only returns a new view of the original data. Any modifications are applied to the original data as well. If you don’t want this you have to create a copy of the yielded windows. Also be aware that if you modify the original data and you have overlapping windows, all following windows are affected as well.

Not all yielded windows must have the same number of traces. The algorithm will determine the maximal temporal extents by analysing all Traces and then creates windows based on these times.


>>> import obspy
>>> st = obspy.read()
>>> for windowed_st in st.slide(window_length=10.0, step=10.0):
...     print(windowed_st)
...     print("---")  
3 Trace(s) in Stream:
... | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:13.000000Z | ...
... | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:13.000000Z | ...
... | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:13.000000Z | ...
3 Trace(s) in Stream:
... | 2009-08-24T00:20:13.000000Z - 2009-08-24T00:20:23.000000Z | ...
... | 2009-08-24T00:20:13.000000Z - 2009-08-24T00:20:23.000000Z | ...
... | 2009-08-24T00:20:13.000000Z - 2009-08-24T00:20:23.000000Z | ...
  • window_length (float) The length of each window in seconds.
  • step (float) The step between the start times of two successive windows in seconds. Can be negative if an offset is given.
  • offset (float) The offset of the first window in seconds relative to the start time of the whole interval.
  • include_partial_windows (bool) Determines if windows that are shorter then 99.9 % of the desired length are returned.
  • 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.