Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-01-12 | indexamajig: Implement --max-mille-level | Thomas White | |
2024-01-12 | align_detector: Enumerate directory contents if necessary | Thomas White | |
2024-01-05 | get_hkl: Read MTZ files | Thomas White | |
There are still some rough edges, e.g. it only works with a simple I/SIGI column (not I+/I-), and can't yet interpret the symmetry information in the file. However, it's still better than the old mtz2hkl script. Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/7 | |||
2023-12-19 | Check for duplicate member in panel group | Thomas White | |
Example: group_all = q0,q1,q2,q2 | |||
2023-12-19 | index_pattern: Gracefully handle image with no peaks | Thomas White | |
2023-09-23 | indexamajig: Re-use the image data arrays | Thomas White | |
We noticed that constant freeing and re-allocating the (potentially quite large) arrays resulted in much lower performance. Since we know that all images have the same data layout, we can safely re-use the arrays. This gives a large speedup. | |||
2023-09-23 | image_create_dp_bad_sat: Don't worry about "sat" | Thomas White | |
The saturation array is created by create_satmap when needed, which takes care that all panels get an array (so we only have to check image->sat != NULL). The array created by image_create_dp_bad_sat was actually leaked! In any case, saturation maps are rarely used. We can do without the extra allocations. The routine name has been changed accordingly, to prevent future confusion. | |||
2023-09-23 | Fix a couple of profiling memory errors | Thomas White | |
The "children" array was the wrong size, and not freed. Also, some formatting fussiness. | |||
2023-09-22 | Don't complain about missing 'all' group until it's actually needed | Thomas White | |
2023-09-20 | Fix inappropriate use of r_dev | Thomas White | |
These should be get_exerr. Following 1ae9a4582, the r_dev values are no longer useful physical quantities, only a refinement target function. This was causing the last few Git versions to not predict any reflections at all! | |||
2023-09-19 | Prediction refinement: Weaken restraint and reduce number of iterations | Thomas White | |
The restraint was way too strong, after the last round of tweaking. With a weaker restraint, the algorithm converges very quickly - it's practically linear - so ten iterations is way too much. | |||
2023-09-18 | Use a*a instead of pow(a, 2) | Thomas White | |
2023-09-18 | Build EXC_WEIGHT into r_dev | Thomas White | |
This avoids weird weighting factors everywhere and much confusion. Since Millepede doesn't have an easy way of weighting measurements (only via altering the ESD values), treating it as a units conversion seems to be easier. | |||
2023-09-18 | pred_residual: Remove vestigial conversion to metres | Thomas White | |
We want the residual in pixels, as described in the comment for EXC_WEIGHT. This routine is only used for displaying the total residuals, not for the real minimisation maths. However, we need to be clear. | |||
2023-09-18 | Prediction refinement: Record excitation error and distance residuals separately | Thomas White | |
2023-09-18 | Prediction refinement: Record initial residual and total shifts | Thomas White | |
2023-09-18 | Merge branch 'millepede' | Thomas White | |
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/3 Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/29 | |||
2023-09-12 | Fix nominal space group when exporting MTZ in PG 2 | Thomas White | |
2023-09-12 | Fix sense of panel rotations | Thomas White | |
Should always be a right-hand grip rotation around positive axis direction. | |||
2023-09-12 | Seedee: Handle format i4< | Thomas White | |
2023-08-30 | Add excitation error to Millepede data (local-only measurement) | Thomas White | |
2023-08-30 | Fussiness | Thomas White | |
2023-08-29 | Meson: Simplify Millepede build system | Thomas White | |
There are no dependencies, only a subproject via wrap. | |||
2023-08-29 | Automatically add top-level group for single-panel detectors | Thomas White | |
2023-08-24 | Use built-in Mille writer instead of wrapping C++ version | Thomas White | |
2023-07-28 | Tweak sigmas | Thomas White | |
2023-07-28 | align_detector: Decode labels and apply geometry corrections | Thomas White | |
2023-07-28 | Don't attempt to write Mille data without geometry groups | Thomas White | |
2023-07-28 | Unconditionally compile crystfel-mille.c | Thomas White | |
We need mille_label() for align_detector, even if we don't have Millepede. Some of this complexity can be removed later by re-implementing "mille()". The build system and wrapper code is already longer than a pure C implementation would be. | |||
2023-07-28 | Initialise det->top_group | Thomas White | |
2023-07-28 | data_template_free: Free the groups as well | Thomas White | |
2023-07-28 | detgeom_free: Free the groups as well | Thomas White | |
2023-07-28 | Fix some memory leaks | Thomas White | |
2023-07-28 | Adjust refinement weights and restraints | Thomas White | |
2023-07-28 | Fix sigmas | Thomas White | |
2023-07-28 | Fix parameter refinement units | Thomas White | |
The *parameters* will be in metres, radians, m^-1 for translation, rotation and cell parameters respectively. The *residuals*, however, are in pixels. | |||
2023-07-28 | Avoid repetitive code | Thomas White | |
2023-07-28 | Fix incorrectly-sized array | Thomas White | |
2023-07-28 | Implement data_template_group_info() | Thomas White | |
2023-07-28 | Re-define geometry group labelling scheme | Thomas White | |
The old version was totally broken. The serial numbers have to contain the complete hierarchy information, otherwise they aren't unique. | |||
2023-07-28 | Rotation centre coordinates need to be in metres (not pixels) | Thomas White | |
2023-07-28 | Add rotation gradients for Mille | Thomas White | |
2023-07-28 | Add detgeom_group_center | Thomas White | |
2023-07-28 | Fix iterate() for prediction refinement | Thomas White | |
I was confused when I wrote acd0de4e4a21, and completely broke the maths. To fix it, I copied the guts of iterate() back from the old version and re-created the intermediate steps - switching x/y to fs/ss, calculating fs/ss gradients together and the hooks for Minv. | |||
2023-07-28 | Redefine ray vector without trigonometry | Thomas White | |
This makes the gradients very simple! | |||
2023-07-28 | Implement rotation gradients (with test) | Thomas White | |
2023-07-28 | Move rotate2d to utils | Thomas White | |
2023-07-28 | Separate gradients into "panel" and "physics" parts | Thomas White | |
2023-07-28 | Factorise matrix operations | Thomas White | |
This makes the code much clearer. Note that two opposing sign errors have been fixed in the gradient calculation. | |||
2023-07-28 | Add show_vector() | Thomas White | |