Online Dynamic Processing

Simulates an online processor handling a continuous stream of data and topology change events.

Dynamic Stream Processing
from sgwt import DyConvolve
from sgwt import DELAY_USA as L

scales = np.geomspace(0.1, 10.0, 10)
poles  = 1.0 / scales

avg_signal_magnitudes = []

with DyConvolve(L, poles) as conv:
    for t, f_t, event in get_incoming_data():
        if event:
            u, v, w = event
            conv.addbranch(*event)
            print(f"[{t:04d}] EVENT | Topology Update: Edge ({u} <-> {v}) added")

        # Compute wavelet coefficients
        W = conv.bandpass(f_t)
        avg_signal_magnitudes.append(np.mean(np.abs(f_t))) # Record average signal magnitude
        
        if not event: print(f"[{t:04d}] STATUS | Stream processing active")
Dynamic Stream Processing Example