Skip to main content

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

laue_index-0.2.0.tar.gz (100.4 kB view details)

Uploaded Source

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

Hashes for laue_index-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ff339fd0760e3a4ed7b75c3ff22c42e3c6d641701be2a65984a7753fc7f092bf
MD5 03613b0cfc4dd258b487da2f7a41272d
BLAKE2b-256 cb5c5c2a32b71c3ac2a0421ef7592a123e8d954312c657554945d075343e1630

See more details on using hashes here.

Provenance

The following attestation bundles were made for laue_index-0.2.0.tar.gz:

Publisher: python-packages.yml on AdvancedPhotonSource/LaueMatching

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

Release history Release notifications | RSS feed

0.7.1

1 file

0.7.0

1 file

0.6.1

1 file

0.6.0

1 file

0.5.0

1 file

0.4.0

1 file

0.3.3

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

This release

0.2.0 This release

1 file

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page