Advisor-Scattering — Advanced Visual Scattering Toolkit for Reciprocal-space
Advisor-Scattering is a PyQt5 desktop app for X-ray scattering/diffraction experiments. It helps you convert scattering angles ↔ momentum transfer (HKL), explore scattering geometry, and visualize structure factors—all with interactive plots. Full docs on Read the Docs.
or use the link below to view the demo video.
▶ Demo video (MP4)
Features
- Convert scattering angles to momentum transfer (HKL) and vice versa.
- Visualize scattering geometry and unit cells
- Compute and visualize structure factors in reciprocal space.
- CIF file drop-in support
- Import crystal orientation from diffraction test data
Install
- Python 3.8+ with PyQt5, numpy, scipy, matplotlib, Dans_Diffraction (see
requirements.txt).
It is recommened to install from PyPI:
pip install advisor-scattering
Run
advisor
# or
advisor-scattering
# or
python -m advisor
Note: the install command is pip install advisor-scattering, and the import is import advisor.
Minimal workflow (60 seconds)
- Launch the app.
- Enter lattice constants/angles and beam energy, or drop a CIF file.
- Click Initialize.
- Use the feature tabs (Scattering Geometry / Structure Factor) to calculate and visualize.
Using the app
1. Initialization window
- Enter lattice constants (a, b, c) and angles (alpha, beta, gamma); beam energy auto-updates wavelength/|k|.
- Optional: drop a CIF to autofill lattice parameters and preview the unit cell.
- Adjust Euler angles (roll, pitch, yaw) to orient the lattice/sample relative to the goniometer.
- New: Use Import from Diffraction Test to automatically determine Euler angles from known diffraction measurements.
- Click Initialize to load the main interface and pass parameters to all tabs.
2. Scattering Geometry tab
- Angles → HKL: enter 2θ/θ/χ/φ, compute HKL.
- HKL → Angles: enter HKL, compute feasible angles.
- HK to Angles (fixed 2θ) and HKL scan (fixed 2θ) subtabs for trajectory planning.
3. Structure Factor tab
- Requires a CIF (from init) and an energy in the tab.
- HKL plane: explore a 3D HKL cube with linked HK/HL/KL slices.
- Customized plane: choose U/V vectors and a center to sample an arbitrary plane in reciprocal space.
4. Resetting
Use the toolbar button or File → Reset Parameters to return to the init window, clear the CIF lock, and re-enter parameters.
Project structure (at a glance)
advisor/ application package
app.py bootstrap
controllers/ app/feature coordinators
domain/ math and geometry helpers (no PyQt)
features/ per-feature domain/controller/ui code
ui/ shared UI pieces (init window, main window, base tab, visualizers)
resources/ QSS, icons, config JSON, sample data
docs/ Sphinx sources and assets
Documentation
- Full Sphinx docs live in
docs/and on Read the Docs. - Appendix covers scattering angle definitions and HKL conventions.
Contributing
Bug reports, feature requests, and pull requests are welcome — see CONTRIBUTING.md for dev setup, testing, and architecture pointers. This project follows the Contributor Covenant Code of Conduct.
Metadata
Release files for advisor-scattering 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| advisor_scattering-1.0.1.tar.gz | 344.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| advisor_scattering-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 712.6 kB
Release files / advisor_scattering-1.0.1.tar.gz
| Download URL | advisor_scattering-1.0.1.tar.gz |
|---|---|
| Size | 344.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d3feb4f3903724eff3d2bd1600523b830bddd9d5d2a00e10002e2d306ae246d
|
|
BLAKE2b-256 checksum How to use checksums |
2d1c2ed4e88304216e6b7234411b5b1372eeb987b46d0bff05c2d54ece7b26f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / advisor_scattering-1.0.1-py3-none-any.whl
| Download URL | advisor_scattering-1.0.1-py3-none-any.whl |
|---|---|
| Size | 367.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0ad6534ca6b861bd7c8a8a055b9aae9107c512ab30fe84a36217780b5e3064ef
|
|
BLAKE2b-256 checksum How to use checksums |
474e2c9a014e090230c5fbc622bdf7c882ca4fc3e2cc2eb0153a6a196645f472
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|