Skip to main content

XPCS Viewer: A python-based interactive tool to visualize and model XPCS dataset

Project description

Python-based XPCS data analysis and visualization tool.

CI Status Python Version License Ruff

Features:

  • G2 correlation analysis with fitting

  • SAXS 1D/2D visualization

  • Two-time correlation analysis

  • HDF5 data support (NeXus format)

GUI Features:

  • Light/dark theme support with system detection

  • Session persistence (resume where you left off)

  • Command palette (Ctrl+Shift+P) for quick access

  • Toast notifications for status updates

  • Keyboard shortcut management

  • Drag-and-drop file handling

  • Theme-aware plots (PyQtGraph & Matplotlib)

UI notes

  • Menu-driven header (no quick-access toolbar); all actions live under the menus/shortcuts.

  • Starts maximized with a rectangular layout and a minimum-size floor to prevent cramped controls.

  • PySide6 GUI interface with modern theming

  • Performance optimizations

Installation

Requirements: Python 3.12+

# Basic installation
pip install xpcsviewer

# Complete installation with all features and tools
pip install xpcsviewer[all]

# Install with specific optional dependencies
pip install xpcsviewer[dev]        # Development tools
pip install xpcsviewer[docs]       # Documentation building
pip install xpcsviewer[validation] # Profiling and validation tools
pip install xpcsviewer[performance] # Performance analysis tools

Usage

GUI (Interactive):

# Launch GUI with data path
xpcsviewer-gui /path/to/hdf/data

# Launch from current directory
xpcsviewer-gui

# With debug logging
xpcsviewer-gui --log-level DEBUG

CLI (Batch Processing):

# Show available commands
xpcsviewer --help

# Generate twotime plots for all phi angles at q=0.05
xpcsviewer twotime --input /data --output /results --q 0.05

# Generate high-resolution PDF plots
xpcsviewer twotime -i /data -o /results --phi 45 --dpi 300 --format pdf

Citation

Chu et al., “pyXPCSviewer: an open-source interactive tool for X-ray photon correlation spectroscopy visualization and analysis”, Journal of Synchrotron Radiation, (2022) 29, 1122–1129.

Development

# Clone and install
git clone https://github.com/imewei/XPCSViewer.git
cd XPCSViewer
pip install -e .[dev]

# Run tests
make test

# Build docs
make docs

Data Formats

  • NeXus HDF5 (APS-8IDI beamline)

  • SAXS 2D/1D data

  • G2 correlation functions

  • Time series data

Testing

make test              # Run tests
make test-unit         # Unit tests
make test-integration  # Integration tests
make coverage          # Coverage report

Documentation

make docs              # Build docs
make docs-autobuild    # Live reload docs

Configuration

Environment variables for customization:

Variable

Description

Default

XPCS_LOG_LEVEL

Logging verbosity (DEBUG, INFO, WARNING, ERROR)

INFO

XPCS_CACHE_SIZE_MB

Maximum cache size in MB

512

XPCS_THEME

UI theme (light, dark, system)

system

Project Structure

xpcsviewer/
├── module/            # Analysis modules
├── fileIO/            # HDF5 I/O
├── gui/               # GUI modernization
│   ├── theme/         # Light/dark theming
│   ├── state/         # Session & preferences
│   ├── shortcuts/     # Keyboard shortcuts
│   └── widgets/       # Modern UI widgets
├── plothandler/       # Theme-aware plotting
├── threading/         # Async workers
├── utils/             # Utilities
└── xpcs_file.py       # Core data class

Analysis Features

  • Multi-tau G2 correlation with fitting

  • Two-time correlation analysis

  • SAXS 2D pattern visualization

  • SAXS 1D radial averaging

  • Sample stability monitoring

  • File averaging tools

License

MIT License. See CONTRIBUTING.rst for development guidelines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpcsviewer_gui-0.1.1.tar.gz (5.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xpcsviewer_gui-0.1.1-py3-none-any.whl (3.7 MB view details)

Uploaded Python 3

File details

Details for the file xpcsviewer_gui-0.1.1.tar.gz.

File metadata

  • Download URL: xpcsviewer_gui-0.1.1.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xpcsviewer_gui-0.1.1.tar.gz
Algorithm Hash digest
SHA256 60a766294c25c5c280cc32d51d91266d908e4777bc5845d9bd66fbe30021f275
MD5 c0b8016a288e2430710fed808ad8f3a2
BLAKE2b-256 1848141c708a29b8f341e1d627834fd3bfe1b57739b6cf89bbabf11b951450d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpcsviewer_gui-0.1.1.tar.gz:

Publisher: release.yml on imewei/xpcsviewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpcsviewer_gui-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: xpcsviewer_gui-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xpcsviewer_gui-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 877576b95a5bb0fec4bce5a489b52c2f398404dc2973625ff0ffeb87541b3c96
MD5 80b67dc3f27d69999274d3ee52e6a214
BLAKE2b-256 8b3bf153028534a105d19b8808076dac1c08d72ac1ea5a33047866b64add47c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpcsviewer_gui-0.1.1-py3-none-any.whl:

Publisher: release.yml on imewei/xpcsviewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page