How k-periodic/polylaue works
PolyLaue is a desktop application for viewing and analyzing Laue X-ray diffraction scans. The principal workflow is to load a reflections file and scan series, inspect scan images, define mapping regions, and run analysis such as grain-orientation/CSL calculations. Its domain model organizes projects, sections, series, and scans; a useful internal layer provides serialization and editable parameter validation. The README documents the fork’s grain-orientation capability, while the source excerpts do not expose all analysis wiring, so uncertain links are omitted.
Main entry points: main_window.py Main window · roi_manager.py ROI manager · hkl_provider.py HKL provider · dialog.py Region mapping
Components 27
Application UI
- Application launcher
polylaue/ui/main.py - Main window
polylaue/ui/main_window.py - Scan image view
polylaue/ui/image_view.py - Project navigator
polylaue/ui/project_navigator - Region navigator
polylaue/ui/regions_navigator - HKL region navigator
polylaue/ui/hkl_regions_navigator - Region mapping
polylaue/ui/region_mapping/dialog.py - Grain orientation dialog
polylaue/ui/grain_orientation_dialog.py
Project and scans
- Project manager
polylaue/model/project_manager.py - Project model
polylaue/model/project.py - Section model
polylaue/model/section.py - Scan series
polylaue/model/series.py - Scan model
polylaue/model/scan.py - Scan and project I/O
polylaue/model/io.py - Editable parameters
polylaue/model/editable.py - Serialization
polylaue/model/serializable.py
Regions and reflections
- ROI manager
polylaue/model/roi_manager.py - HKL provider
polylaue/model/hkl_provider.py - External reflections
polylaue/model/reflections/external.py - Reflections table editor
utils/reflections_table_editor/reflections_table_editor.py
Diffraction analysis
- Reflection finding
polylaue/model/core/find.py - Burn reflections
polylaue/model/core/burn_reflections.py - Grain tracking
polylaue/model/core/track.py - Angular shift
polylaue/model/core/angular_shift.py - Diffraction geometry
polylaue/model/core/geometry.py - Orientation relationship
polylaue/model/core/orientation_relationship.py
Other components
- Scientist
Connections 36
- Scientist → Application launcher: launches
polylaue/ui/main.py - Application launcher → Main window: creates
polylaue/ui/main.py - Main window → Project navigator: uses
polylaue/ui/main_window.py - Main window → Scan image view: uses
polylaue/ui/main_window.py - Main window → Region navigator: opens
polylaue/ui/main_window.py - Main window → HKL region navigator: opens
polylaue/ui/main_window.py - Main window → Region mapping: opens
polylaue/ui/main_window.py - Main window → Grain orientation dialog: opens
polylaue/ui/main_window.py - Main window → Project manager: uses
polylaue/ui/main_window.py - Main window → Project model: uses
polylaue/ui/main_window.py - Main window → Section model: uses
polylaue/ui/main_window.py - Main window → Scan series: loads
polylaue/ui/main_window.py - Main window → Scan model: uses
polylaue/ui/main_window.py - Main window → Scan and project I/O: uses
polylaue/ui/main_window.py - Main window → ROI manager: uses
polylaue/ui/main_window.py - Main window → HKL provider: uses
polylaue/ui/main_window.py - Grain orientation dialog → Orientation relationship: calculates
- Region navigator → ROI manager: edits
polylaue/ui/regions_navigator/dialog.py - HKL region navigator → ROI manager: edits
polylaue/ui/hkl_regions_navigator/dialog.py - HKL region navigator → HKL provider: resolves HKL
polylaue/ui/hkl_regions_navigator/dialog.py - Region mapping → ROI manager: reads regions
polylaue/ui/region_mapping/dialog.py - Region mapping → HKL provider: resolves HKL
polylaue/ui/region_mapping/dialog.py - Region mapping → Scan series: reads scan data
polylaue/ui/region_mapping/dialog.py - Project manager → Project model: serializes
polylaue/model/project_manager.py - Project model → Section model: uses
polylaue/model/project.py - Section model → Scan series: organizes
polylaue/model/section.py - Scan series → Scan model: contains
polylaue/model/series.py - HKL provider → External reflections: queries
polylaue/model/hkl_provider.py - ROI manager → HKL provider: uses HKL type
polylaue/model/roi_manager.py - Editable parameters → Serialization: extends
polylaue/model/editable.py - Project model → Editable parameters: uses
polylaue/model/project.py - Reflections table editor → External reflections: edits table format
- Main window → Reflection finding: launches analysis
- Main window → Burn reflections: launches analysis
- Main window → Grain tracking: launches analysis
- Main window → Angular shift: launches analysis