ALPSS: Automated Analysis of PDV Spall Signals#
ALPSS (Analysis of Photonic Doppler velocimetry Signals of Spall) automates the analysis of PDV traces generated in laser shock experiments.
Scientific Background#
ALPSS processes PDV voltage signals through several key steps:
Spall Domain of Interest (DOI) finding
Manual selection: user-defined
Otsu algorithm: variance-based thresholding
CUSUM algorithm: detects abrupt changes using cumulative sums
Carrier frequency analysis
Determines dominant oscillations in the signal
Carrier filtering
Gaussian notch: removes carrier band in the frequency domain
Sin-fit subtract: fits sinusoid and subtracts it from the trace
Velocity calculation
Converts filtered PDV signal to particle velocity
Uncertainty quantification
Point-by-point instantaneous uncertainty
Spall strength and strain-rate uncertainty propagation
Software Usage#
ALPSS is distributed as both a Python package and a Docker container. You can run it in several ways depending on your workflow.
📦 Python Package (Pip)#
Install via pip:
pip install alpss
Run from the command line using the provided CLI entrypoint:
alpss path/to/config.json
Or, call it directly from a Python script:
from alpss import alpss_main
config = {
"filepath" : "path/to/file",
"out_files_dir": "path/to/output/folder",
"start_time_user": "otsu",
"carrier_filter_type": "gaussian_notch",
"save_data": "yes",
"display_plots": "no"
# ... other parameters ...
}
fig, items = alpss_main(**config)
🐳 Docker Container#
Pull the container image:
docker pull openmsi/alpss:latest
To run, mount your input directory and configuration file.
The config must specify a filepath pointing to your input data, e.g., input_data/[FILENAME].csv.
docker run --rm \
-v [path/to/input/folder]:/workspace/input_data \
-v [path/to/config/file]:/workspace/config.json:ro \
-w /workspace \
openmsi/alpss:latest \
alpss config.json
Outputs generated by ALPSS include:
Figures: processed PDV traces and spall annotations
Data files: velocity, uncertainty, and derived quantities
Logs: full runtime details and step-by-step diagnostics