Fast PRSoXR data reduction for ALS Beamline 11.0.1.2.
This repository contains the Python package, Rust acceleration layer, and tooling for PRSoXR beamtime ingestion and reduction.
python/pyref- User-facing Python API for loading, reduction, and analysis.src- Rust backend for high-throughput IO and performance-critical paths.tests- Python test suite and integration checks.AGENTS.md- Full project architecture, conventions, and contributor guide.- Documentation Site - Hosted docs and API references.
Install:
pip install pyrefPython >=3.12 is required.
Load a beamtime and inspect reduced data:
from pathlib import Path
from pyref.loader import PrsoxrLoader
loader = PrsoxrLoader(Path("/path/to/beamtime"))
refl = loader.refl
meta = loader.meta
loader.plot_data()Optional interactive tools:
loader.mask_image()
loader.check_spot()All development commands use uv for Python and cargo for Rust:
git clone https://github.com/WSU-Carbon-Lab/pyref.git
cd pyref
uv sync
uv run pytestBuild the experiment browser TUI:
cargo browser