ALPSS: Automated Analysis of PDV Spall Signals

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:

  1. Spall Domain of Interest (DOI) finding

    • Manual selection: user-defined

    • Otsu algorithm: variance-based thresholding

    • CUSUM algorithm: detects abrupt changes using cumulative sums

  2. Carrier frequency analysis

    • Determines dominant oscillations in the signal

  3. Carrier filtering

    • Gaussian notch: removes carrier band in the frequency domain

    • Sin-fit subtract: fits sinusoid and subtracts it from the trace

  4. Velocity calculation

    • Converts filtered PDV signal to particle velocity

  5. 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

⚙️ Example Config File

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