This is an old revision of the document!


def sliding_window(ts,wsz=10):
    '''calculate sliding window time histogram
 
    Parameters
    ----------
    ts:  array time points
    wsz: window size
    '''
    tw = ts[0]-wsz
    i0 = 0
    i1 = 0
    lt = len(ts)
    tts = [tw]
    rrs = [0]
    while i0<lt:
        if i1<lt and ts[i1]<ts[i0]+wsz:
            if tw<ts[i1]-wsz: # output only when window moves
                tn = ts[i1]-wsz
                if rrs[-1]==i1-i0: tts[-1]=tn # merge with previous interval
                else:
                    tts.extend((tw,tn))
                    rrs.extend((i1-i0,i1-i0))
                tw = tn
            i1 += 1
        else:
            if tw<ts[i0]: # output only when window moves
                tn = ts[i0]
                if rrs[-1]==i1-i0: tts[-1]=tn # merge with previous interval
                else:
                    tts.extend((tw,tn))
                    rrs.extend((i1-i0,i1-i0))
                tw = tn
            i0 += 1
    tts.append(tw)
    rrs.append(0)
    return np.array(tts)+wsz/2,np.array(rrs)/bsize