VisualizationΒΆ

pyecsca uses holoviews, bokeh, datashader and matplotlib to visualize traces.

First load an example trace set containing one trace.

[ ]:
from pyecsca.sca.trace.plot import plot_trace, plot_traces
from pyecsca.sca.trace_set import PickleTraceSet
import holoviews as hv
[ ]:
trace_set = PickleTraceSet.read("example_traces.pickle")
len(trace_set)

Then setup the interactive bokeh session.

[ ]:
hv.extension("bokeh")

Plot a trace, filling available width. This uses datashader and will not work on a static rendering of a notebook. This is necessary to deal with large traces (millions of samples), which bokeh or matplotlib would not handle.

[ ]:
plot_trace(trace_set[0]).opts(width=950, height=600)

Process the trace by a lowpass and highpass filters and plot the two resulting traces.

[ ]:
from pyecsca.sca.trace.filter import filter_lowpass, filter_highpass
low = filter_lowpass(trace_set[0], 12_500_000, 50_000)
high = filter_highpass(trace_set[0], 12_500_000, 2_250_000)
[ ]:
plot_traces(high, low).opts(width=950, height=600)
[ ]: