laue_index
The Python orchestration for LaueMatching, packaged as typed pipeline stages
around the C/CUDA indexer (REFACTOR_PLAN). Mirrors the in-repo laue_torch
conventions (curated __init__, single-responsibility modules, typed records)
but stays independent of the paper-tied packages (laue_torch / laue_jax
/ jax_cpfem) — shared pure math is duplicated with # TODO(unify-after-publish).
Modules
| Module | Responsibility |
|---|---|
records.py |
Solution typed record + parse_solutions(source, fmt) + SolutionFormat column maps (runimage / stream) — replaces positional column "magic numbers". |
geometry.py |
Pure CSL/disorientation helpers (disorientation_deg_axis, is_csl_related, cubic ops, CSL table). |
filtering.py |
calculate_unique_spots, filter_orientations, filter_orientations_robust + OrientationFilter strategies (LegacyUniqueSpotFilter, RobustCSLAwareFilter). Single source of truth. |
thresholds.py |
ThresholdStrategy classes (NoiseFloorThreshold/adaptive, Percentile, Otsu, Fixed) + apply_threshold dispatch. |
preprocess.py |
Image pipeline (background → threshold → components → blur) + Preprocessor. |
indexer.py |
Thin wrapper around the C indexing binary (run_indexer). |
postprocess.py |
PostProcessor: unique-spots → sort → filter → spot-filter. |
output.py |
HDF5 result writer. |
config_schema.py |
One declarative SCHEMA table driving config parse + write. |
cli.py |
laue-index console entry: parse (summarise a solutions table) and filter (re-run post-processing on existing C output, no re-indexing). |
Relationship to scripts/
The legacy scripts/laue_stream_utils.py is now a thin shim that re-exports
from this package, so RunImage.py, laue_postprocess.py, and
laue_image_server.py keep working unchanged while the implementation lives
here. RunImage.py is the orchestrator wiring the stages together.
Testing
pytest (from the repo root) runs the unit suite — golden-anchored
characterization tests pin behaviour through the refactor. The full end-to-end
test (tests/test_char_e2e.py) is opt-in: set LAUE_E2E=1 with the orientation
DB, the built C binary, and a prebuilt forward cache present; otherwise it skips,
so CI is safe with SKIP_DOWNLOAD=1 (no 6.7 GB database needed for units).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file laue_index-0.2.0.tar.gz.
File metadata
- Download URL: laue_index-0.2.0.tar.gz
- Upload date:
- Size: 100.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff339fd0760e3a4ed7b75c3ff22c42e3c6d641701be2a65984a7753fc7f092bf
|
|
| MD5 |
03613b0cfc4dd258b487da2f7a41272d
|
|
| BLAKE2b-256 |
cb5c5c2a32b71c3ac2a0421ef7592a123e8d954312c657554945d075343e1630
|
Provenance
The following attestation bundles were made for laue_index-0.2.0.tar.gz:
Publisher:
python-packages.yml on AdvancedPhotonSource/LaueMatching
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
laue_index-0.2.0.tar.gz -
Subject digest:
ff339fd0760e3a4ed7b75c3ff22c42e3c6d641701be2a65984a7753fc7f092bf - Sigstore transparency entry: 2629694068
- Sigstore integration time:
-
Permalink:
AdvancedPhotonSource/LaueMatching@06c5af5a0252f48561be093146324f334507062c -
Branch / Tag:
refs/tags/laue-index-v0.2.0 - Owner: https://github.com/AdvancedPhotonSource
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@06c5af5a0252f48561be093146324f334507062c -
Trigger Event:
push
-
Statement type: