JupyterLab
equser ships with bundled Jupyter notebooks and interactive widgets for
exploring EQ Wave power quality data. Install the [jupyter] extra to get
the full environment:
pip install equser[jupyter]
This installs JupyterLab, DuckDB, ipywidgets, and all analysis dependencies.
Bundled notebooks
equser includes six reference notebooks organized into two categories.
Tutorials
Step-by-step introductions to each data access method:
| Notebook | Description |
|---|---|
01-parquet-files | Load and plot PMon and CPOW data directly from Parquet files |
02-backend-api | Query historical data through the EQ Synapse REST API (DuckDB-backed) |
03-live-streaming | Real-time waveform and spectral streaming via WebSocket |
Analysis templates
Ready-to-use analysis workflows:
| Notebook | Description |
|---|---|
harmonic-analysis | FFT-based harmonic spectrum, THD calculation, and spectrograms |
power-trends | Long-term voltage, frequency, and power factor trends across multiple files |
delta-analysis | Equipment-specific configuration (wye vs. delta), interactive file selection |
Listing and copying notebooks
Notebooks are bundled inside the installed package. Use the Python API or CLI to copy them to a working directory where you can edit and run them.
CLI
# List all bundled notebooks
equser notebooks list
# Copy all notebooks to a working directory
equser notebooks copy --dest ./my-notebooks
# Copy only tutorials
equser notebooks copy --dest ./my-notebooks --category tutorials
Python API
from equser.notebooks import list_notebooks, copy_notebooks
# See what is available
for nb in list_notebooks():
print(nb)
# Copy to a working directory
copied = copy_notebooks('./my-notebooks')
print(f"Copied {len(copied)} notebooks")
# Copy only analysis templates
copy_notebooks('./my-notebooks', category='analysis')
File selector widget
The equser.widgets module provides an interactive file selector for
browsing Parquet files inside notebooks. It displays a searchable list
with file metadata (size, timestamps parsed from filenames).
from equser.widgets import create_file_selector
# Create a selector for a directory of CPOW files
selector = create_file_selector('/path/to/cpow/')
display(selector)
# After selecting a file interactively:
selected = selector.get_selected()
The widget includes:
- Text search box for filtering by filename
- Scrollable file list
- Detail pane showing file size, path, and start time (parsed from the
YYYYMMDD_HHMMfilename convention)
Launching JupyterLab
# Copy notebooks and start JupyterLab
equser notebooks copy --dest ./eq-notebooks
cd eq-notebooks
jupyter lab
From there, open any notebook and follow the instructions in its markdown cells. The tutorials are numbered in recommended order.