Repository navigation
A minor release. The big ones: building reciprocal-space grids live while a scan runs, a much friendlier RSM parameter IOC setup, and a lot less noise in the logs.
Highlights
-
RSM grid, live — watch a reciprocal-space volume fill in as the scan runs. A new Grid Control panel in the HKL 3D Viewer lets you set the bounds and bin counts, estimate the extent from the data coming in, start and stop the accumulation whenever you like, and save the result without stopping the scan.
-
RSM parameter IOC — setting up your scan geometry is much easier. Sections fold away and remember how you left them, detector setup is edited field by field, and the UB matrix and detector distance can read from PVs again. Your edits now stick instead of being quietly thrown away. There's also a new sample orientation guide covering circle order, direction signs, and what your profile actually turns into on the IOC.
-
RSM Volume Builder — pick your resolution in voxels or pixels, one number for all three axes or a separate one for each, and either set an HKL range or let it work one out from the data. A preview sketch shows the grid sitting inside the box it will fill, and a memory estimate updates as you type so you don't kick off something that won't fit in RAM.
-
A smoother live view — the 2D viewer keeps only the newest frame instead of working through a backlog, skips redrawing an image that has not changed, and caps how much memory a single preview can take. Picking points for the HKL 3D view samples just the points it needs rather than converting a whole detector image and discarding most of it.
-
Fewer dropped frames, quieter logs — metadata handling is substantially faster (roughly 8 ms per frame saved on a setup with ~47 channels), and several messages that used to flood the log with thousands of lines are gone.
Changes
-
Detector calibration honours the units you declare — the length, energy and angle units in your detector setup are finally read, per field where you need them, instead of millimetres and keV being assumed no matter what the beamline said. A unit the software doesn't recognise is reported rather than quietly guessed at.
-
Detector tilt, rotation and frame-axis order are configurable — tilt, tilt azimuth and detector rotation are now part of the profile, and the detector's axis-0 convention is declared rather than baked in, so a transposed volume is a profile edit instead of a source change.
-
A dropdown for simulations on the Sim Server tab — pick the simulation type from a list instead of pointing at a processor file by hand. Choose the probe server and a probe-shape dropdown appears alongside it.
-
Consumer stats fit on one line — consumer, channel, rates, frame counts and grid state, colour-coded so you can tell at a glance whether frames are actually landing.
-
The Metadata Associator checks itself before starting — it rereads the current profile and refuses to start if a channel needed to compute Q is missing, naming the ones it can't find, rather than coming up half-configured. Change the configuration while one is running and you get a notice that a restart is needed, instead of acquisition being stopped and restarted underneath you mid-scan.
-
Foldable sections for Static geometry and Detector setup, open by default, and they remember whether you left them open.
-
The
SPEC motor namefield is gone. It was a duplicate of the Label field in every config we ship and nothing ever read it. -
Full BSD license headers are now on every source file.
Fixes
- Binned scans no longer come out at the wrong scale in reciprocal space. Pixel size was being worked out from the frame that arrived, so a 2×-binned detector produced a volume off by a factor of two with nothing to signal it. Calibration is now the unbinned full-frame geometry, with binning and any ROI passed through to the conversion, and a calibration that disagrees with the incoming frame is rejected instead of quietly rescaling.
- Static geometry PVs with unchanging timestamps are no longer discarded on every frame.
- MCA readings taken at the very start of a scan now match their frames — previously the monitors started too late and early frames were always missed.
- The RSM Volume Builder checks your range values before running.
- The live RSM grid workflow works again, and axis names survive the trip into HDF5.
- The axis table had a leftover "SPEC motor name" column that shifted everything after Label — a motor typed under "Record name" was being saved as the wrong field, and Units was never read at all.
- HKL 3D Viewer: the Start/Stop buttons and PV box line up properly, and the PV text is centred.
- Controls no longer get cropped on macOS.
- Errors from a processor go to the log with full detail, instead of into a console box that scrolls away and can't be searched.
- A frame that fails to decode is now rejected and counted instead of being swallowed, so the viewer no longer keeps showing the previous image as though nothing went wrong.
- A frame arriving without RSM metadata no longer inherits the previous frame's coordinates. Pixels were being plotted at the wrong place in reciprocal space with nothing to indicate it.
- The RSM geometry cache refreshes when the detector shape or codec changes, not only when the metadata changes.
Install
git clone https://github.com/AdvancedPhotonSource/DashPVA.git
cd DashPVA
bash install.shCLI
DashPVA run # Launcher menu
DashPVA detector # Area Detector Viewer
DashPVA hkl3d # HKL 3D Viewer
DashPVA rsmgrid # RSM Volume Builder
DashPVA workbench # Data Analysis Tool
DashPVA h5viewer # HDF5 Viewer
DashPVA pyfai # pyFAI integration viewer
DashPVA phasefitter # XRD Phase Fitter
DashPVA bayesian # Bayesian 2D Scan Viewer
DashPVA ioc # RSM-parameter IOC simulator