A tool to project X-ray diffraction cones on a detector screen at different geometries (tilt, rotation, offset) and X-ray energies.
Project description
xrdPlanner
A tool to project X-ray diffraction cones on a detector screen at different geometries (tilt, rotation, offset) and X-ray energies
- Main application is to visualize the maximum achievable resolution at a given geometry.
- Is able to project diffraction cones for standard samples or directly from cif files.
- Can turn out valuable when planning beamtimes at synchrotron facilities (e.g. DanMAX).
- Helps in deciding on the geometry of an experiment.
- The math used is not meant to bring people to the moon but to provide a quick and simple preview.
- The module building code is designed for Dectris PILATUS3 / EIGER2 or SACLA MPCCD Detectors (central hole geometry) but one-module systems like the Bruker Photon II and Rayonix MX-HS are possible as well.
- It uses python3, numpy, pyqt6, pyqtgraph, pyFAI and Dans_Diffraction.
Short how-to:
- pip install xrdPlanner.
- Type xrdPlanner in a terminal and hit enter.
- Choose a detector and a model from the Detector menu.
- Pick a reference from the Reference menu to plot its contours (pyFAI).
- Drop a .cif file onto the window to draw its contours (Dans_Diffraction), click a contour to get a hkl tooltip.
- Use the units from the Units menu you are the most comfortable with.
- Hover over the grey line at the top to show the sliders. Click it to make it stay open.
- Drag the sliders to change energy and geometry.
Customisation:
- Edit the settings.json file and the detector_db.json files.
- Use Settings -> Edit Settings or Edit Detector db.
- A click on Apply Changes lets you see the difference.
- "geo" determines the startup defaults.
- "plo" customises the general layout and visuals.
- "lmt" sets the limiting values of the geometry/energy sliders.
- Add all the missing detectors to the detector_db.json.
- I hope the variable naming is self-explanatory.
Known Bugs:
- Current menu checkmark is not updated/reset when applying changes.
Latest updates:
- 2023-06-21 Update: Settings files accessible from menu, changes can be applied on the fly.
- 2023-06-14 Update: Big speed update.
- 2023-06-01 Update: countourpy was dropped, the conics are now calculated directly instead of being evaluated on a grid.
- 2023-05-25 Update: Dans_Diffraction is used in favour of gemmi as it allows the direct calculation of intensities from the cif.
- 2023-04-26 Update: A hkl tooltip is shown on click on a contour (only for cif contours).
- 2023-04-25 Bugfix: Segmented contours are now drawn properly.
- 2023-04-20 Bugfix: Confined slider window mobility to main window area.
- 2023-04-10 Bugfix: Main window aspect ratio on Windows (menu bar within window).
- 2023-04-10 Bugfix: Label size could not be adjusted.
- 2023-04-10 Bugfix: Large angle (2-Theta > 90) contour label positions.
- 2023-04-09 Update: Drop a cif file onto the window to draw its contours (uses Dans_Diffraction).
- 2023-04-05 Update: Uses pyqt6, pyqtgraph and contourpy, dropped matplotlib backend.
Older updates
- 2023-03-23 Update: Settings are saved to (if doesn't exist) or loaded from (if exists) a 'settings.json' file.
- 2023-03-23 Update: Added horizontal offset support and slider.
- 2022-06-07 Update: Added functionality to plot Standard (LaB6, CeO2, ...) contours (needs pyFAI).
- 2022-04-28 Update: Changed contour line generation to accept a list of 2-theta values as input.
- 2022-04-27 Update: Added support for SACLA MPCCD Detectors (central hole geometry).
- 2022-04-25 Bugfix: Calculation of the beamcenter (rotation and tilt).
Examples
A PILATUS3 2M detector and a Silicon sample.
A rotated EIGER2 4M detector and a Aluminium sample (darkmode).
I hope this turns out to be useful for someone!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
xrdPlanner-1.0.1.tar.gz
(73.9 kB
view hashes)
Built Distribution
xrdPlanner-1.0.1-py3-none-any.whl
(72.8 kB
view hashes)
Close
Hashes for xrdPlanner-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56d925d7b03a1eb74b1d3c9ec3005fc692bb6675b204fd4477d7e1514b00df7b |
|
MD5 | 345cecc0940c133c2fd8aeeb13231060 |
|
BLAKE2b-256 | 44c56223b4067755b1e3ba17d3deb896faae5c1d01807fc255b815bdd10b8fd0 |