Commit Graph

160 Commits

Author SHA1 Message Date
bb87ed2df4 BraggPredictionRot: Work in progress 2026-01-30 14:02:09 +01:00
af3fea3e66 XtalOptimizer: Bring back standard loss function for least squares 2026-01-30 14:02:09 +01:00
45ca48cc01 BraggPredictionRotation: New implementation - looks OK, but accuracy is terrible (+/- 10 images wrong) 2026-01-30 14:02:09 +01:00
d3f311dc97 BraggPrediction: Rotation settings removed from BraggPredictionSettings 2026-01-30 14:02:08 +01:00
c0fa5c9467 BraggIntegrate: Lorentz-Polarization correction consistent (roughly) with XDS 2026-01-30 14:02:07 +01:00
4a6085c721 CBOR/HDF5: Save Lorentz-Polarization correction for reflections 2026-01-30 14:02:07 +01:00
7da28b5c9a IndexAndRefine: Fix using lattice at zero deg for refinement 2026-01-30 14:02:05 +01:00
3e721dc476 IndexAndRefine: Minor change in sign...tbd how it should go 2026-01-30 14:02:05 +01:00
7a1355df23 BraggPredictionRotation: Work in progress 2026-01-30 14:02:05 +01:00
9c5a3f5c12 IndexAndRefine: Stabilize profile radius and mosaicity, by using moving average 2026-01-30 14:02:04 +01:00
30783d4849 RotationIndexer: Refine detector angles 2026-01-30 14:02:04 +01:00
11b1857a35 XtalOptimizer: Use robust loss function (Cauchy) for least squares 2026-01-30 14:02:03 +01:00
a31065f6ae CreateBraggPrediction: No rotation for now 2026-01-30 14:02:03 +01:00
0a19acb900 IndexAndRefine: Generate predictions based on refined geometry 2026-01-30 14:02:02 +01:00
71f85b294d RotationIndexer: Remove SetLattice() - not sure why it was necessary in the first place 2026-01-30 14:02:02 +01:00
69cd7b551d IndexAndRefine: Use "standard predictor", just with rotated axis 2026-01-30 14:02:02 +01:00
1353748a2e MXAnalysis: Generate rotation prediction properly 2026-01-30 14:02:01 +01:00
ffb4fa3b29 BraggPredictionRotation: Minor fixes to improve readability 2026-01-30 14:02:00 +01:00
fae05a5cfe BraggPrediction: Minor improvements - predict from -max_hkl to +max_hkl (incl. +max_hkl); small fixed in notation 2026-01-30 14:01:59 +01:00
68e99afc9e BraggPredictionRotation: Guard for negative rotation direction 2026-01-30 14:01:59 +01:00
c2559ed510 BraggIntegrate2D: Fix missing return statement 2026-01-30 14:01:59 +01:00
1926431f7c ScaleAndMerge: Add (very much work in progress) 2026-01-30 14:01:59 +01:00
25f068e111 BraggIntegrate: Add Lorentz factor (1/sin(2*theta)) for rotation measurment 2026-01-30 14:01:58 +01:00
2971b20b87 AnalyzeIndexing: Move mosaicity to a dedicated function + for rotation indexing always consider as indexed 2026-01-30 14:01:58 +01:00
84237d0e38 BraggPrediction: Work in progress 2026-01-30 14:01:58 +01:00
2ba69d37c5 BraggPredictionRotation: Work in progress 2026-01-30 14:01:58 +01:00
20224a01c3 BraggPrediction: Work in progress 2026-01-30 14:01:57 +01:00
319aa0265a BraggIntegrate2D: Take const vector of predictions and return new vector 2026-01-30 14:01:57 +01:00
e27c09833e IndexAndRefine: Fix wrong vector being used for predicted reflections 2026-01-30 14:01:56 +01:00
a71e1f16e7 Indexing: Fixes to better handling ice ring spots 2026-01-30 14:01:56 +01:00
88dba761e4 Indexing: fix indexing tolerance square data type 2026-01-30 14:01:56 +01:00
58cd091273 Indexing: use squared norm to avoid sqrt() in checking indexing solution quality 2026-01-30 14:01:56 +01:00
d5ba5fc3c4 AnalyzeIndexing: Handle ice rings in counting percentage of indexed spots 2026-01-30 14:01:55 +01:00
a23fe329aa BraggIntegrate2D: fix missing break in switch statement 2026-01-30 14:01:55 +01:00
7162db87bd BraggPrediction: Fix to path 2026-01-30 14:01:55 +01:00
734506ec6a Cmake: Add missing subdirectory 2026-01-30 14:01:55 +01:00
6bee563356 IndexAndRefine: Integration operates in place (prelude to general 3D routine) + fix a bit sorting 2026-01-30 14:01:55 +01:00
752a3323e6 BraggPrediction: Split into a separate directory 2026-01-30 14:01:54 +01:00
71ea7a659c IndexAndRefine: split into three functions 2026-01-30 14:01:54 +01:00
665f7e147c BraggIntegrate2D: predictions are calculated externally (to make it easier to make a more general 3D routine) 2026-01-30 14:01:54 +01:00
1c4dfd03e2 v1.0.0-rc.123 (#30)
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 10m22s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m30s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 11m41s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 12m32s
Build Packages / Generate python client (push) Successful in 18s
Build Packages / Build documentation (push) Successful in 54s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m44s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m53s
Build Packages / build:rpm (rocky8) (push) Successful in 9m40s
Build Packages / build:rpm (rocky9) (push) Successful in 10m37s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m54s
Build Packages / Unit tests (push) Successful in 1h6m33s
This is an UNSTABLE release.

* jfjoch_broker: Use newer version of Google Ceres for (potential) CUDA 13 compatibility
* jfjoch_broker: Improve performance of generating preview images, especially for large detectors (9M-16M)
* jfjoch_viewer: Improve performance of displaying images, especially for large detectors (9M-16M)
* jfjoch_viewer: Add more color schemes for better image readability
* HDF5: Common mutex for reading and writing HDF5 if both operations were to happen in the same executable
* HDF5: suppress warning if path (upstream group) doesn't exists when checking if leaf exists

Reviewed-on: #30
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2026-01-30 13:43:09 +01:00
27496b8207 v1.0.0-rc.122 (#29)
All checks were successful
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 7m57s
Build Packages / Generate python client (push) Successful in 18s
Build Packages / Build documentation (push) Successful in 35s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9) (push) Successful in 8m28s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m6s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 8m9s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 8m44s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 7m56s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m25s
Build Packages / Unit tests (push) Successful in 1h11m19s
Build Packages / build:rpm (rocky8) (push) Successful in 6m31s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 6m40s
This is an UNSTABLE release.

* jfjoch_broker: Add thresholding to prefer shorter vectors after FFT
* jfjoch_broker: Add experimental mosaicity estimation for rotation experiments (this is work in progress)
* jfjoch_viewer: Display file opening errors
* jfjoch_viewer: When loading files over DBus add retry/back-off till the file is available

Reviewed-on: #29
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-12-16 15:27:40 +01:00
b02c412d59 v1.0.0-rc.118 (#25)
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 8m22s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 8m37s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m15s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 9m39s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m17s
Build Packages / Generate python client (push) Successful in 21s
Build Packages / Build documentation (push) Successful in 43s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 7m51s
Build Packages / build:rpm (rocky9) (push) Successful in 8m45s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m55s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m22s
Build Packages / Unit tests (push) Failing after 1h5m51s
This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).

* jfjoch_viewer: Fix issue when HTTP sync silently disconnected when it was enabled when the broker was starting measurement.
* jfjoch_broker: Add protections on time of geometry optimization and reduce rotation recalculations

Reviewed-on: #25
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-12-06 20:05:30 +01:00
31a357fa57 v1.0.0-rc.113 (#19)
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m0s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 11m2s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m54s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m20s
Build Packages / Generate python client (push) Successful in 24s
Build Packages / Build documentation (push) Successful in 56s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 8m51s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m9s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m53s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m21s
Build Packages / build:rpm (rocky9) (push) Successful in 9m47s
Build Packages / Unit tests (push) Successful in 1h13m38s
This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).

* jfjoch_broker: Improve handling of rotation indexing
* jfjoch_broker: More information saved in CBOR end message (WIP)
* jfjoch_writer: Save rotation indexing lattice parameters and Niggli class
* jfjoch_viewer: Remove (for now) primitive cell information

Reviewed-on: #19
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-12-02 09:29:22 +01:00
06949caf1a v1.0.0-rc.112 (#18)
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 8m53s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 9m40s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 8m25s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m17s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m5s
Build Packages / Generate python client (push) Successful in 34s
Build Packages / Build documentation (push) Successful in 42s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 8m35s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m2s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m40s
Build Packages / build:rpm (rocky9) (push) Successful in 9m14s
Build Packages / Unit tests (push) Successful in 1h15m9s
This is an UNSTABLE release and not recommended for production use (please use rc.11 instead).

* jfjoch_broker: Experimental rotation (3D) indexing
* jfjoch_broker: Minor fix to error in optimizer potentially returning NaN values

Reviewed-on: #18
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-11-30 17:39:22 +01:00
f44c6520a8 v1.0.0-rc.107 (#12)
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 7m33s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 8m46s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m19s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 7m50s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m8s
Build Packages / Generate python client (push) Successful in 17s
Build Packages / Build documentation (push) Successful in 43s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 8m25s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m39s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m13s
Build Packages / build:rpm (rocky9) (push) Successful in 9m33s
Build Packages / Unit tests (push) Successful in 1h14m4s
This is an UNSTABLE release.

* jfjoch_viewer: Minor polishing of new functionality
* jfjoch_broker: User NaN for empty azimuthal bins

Reviewed-on: #12
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-11-24 07:07:32 +01:00
4dbbf0e365 v1.0.0-rc.97
Some checks failed
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m11s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 9m9s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 9m18s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 10m14s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 10m3s
Build Packages / Generate python client (push) Successful in 15s
Build Packages / Build documentation (push) Successful in 50s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 8m31s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m21s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m42s
Build Packages / build:rpm (rocky9) (push) Successful in 9m11s
Build Packages / Unit tests (push) Failing after 1h13m19s
This is an UNSTABLE release and not recommended for production use (please use rc.96 instead).

* jfjoch_broker: For DECTRIS detectors add dark data collection during initialization for bad pixel mask
* jfjoch_broker: Refactor of calibration logic for more clear code (likely to introduce problems)
* jfjoch_viewer: Add option to handle user pixel mask (experimental)
* jfjoch_viewer: More options for ROI
* jfjoch_viewer: Add window to display calibration

Reviewed-on: #2
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-11-09 12:42:27 +01:00
8b356a7001 v1.0.0-rc.96 (#1)
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 7m47s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 7m20s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 8m13s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m10s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 7m53s
Build Packages / build:rpm (rocky8) (push) Successful in 7m57s
Build Packages / Generate python client (push) Successful in 13s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 7m39s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 36s
Build Packages / build:rpm (rocky9) (push) Successful in 9m0s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 6m55s
Build Packages / Unit tests (push) Successful in 1h10m44s
This is an UNSTABLE release.

* Fixes in CI pipeline
* jfjoch_broker: Remove PNG preview, no dependency on libpng
* jfjoch_writer: Fix UTC timestamp being generated wrong (mix between milli- and microseconds)
* jfjoch_viewer: Show data collection time in dataset tooltip
* jfjoch_viewer: Allow to choose the calibrant (presets for LaB6 and silver behenate)
* jfjoch_viewer: Auto foreground value
* Use external libjpeg-turbo and libtiff: simpler build stack, these are built and linked statically in automated Docker builds
* Remove OpenBLAS dependency

Reviewed-on: #1
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2025-11-02 13:45:57 +01:00
b2abb0f92b v1.0.0-rc.94 2025-10-25 22:05:47 +02:00
fb9462f67b v1.0.0-rc.92 2025-10-23 09:05:11 +02:00