aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/datatemplate.c
AgeCommit message (Collapse)Author
2023-07-28Initialise det->top_groupThomas White
2023-07-28data_template_free: Free the groups as wellThomas White
2023-07-28Implement data_template_group_info()Thomas White
2023-07-28Re-define geometry group labelling schemeThomas White
The old version was totally broken. The serial numbers have to contain the complete hierarchy information, otherwise they aren't unique.
2023-07-28Move rotate2d to utilsThomas White
2023-07-28detgeom: Add panel group center coordinatesThomas White
2023-07-28Avoid segfault if geometry file doesn't have groupsThomas White
2023-07-28detgeom: Add references from children to parentsThomas White
This allows us to start from the panel and work upwards to the top-level group, which makes hierarchical gradient calculation much easier.
2023-07-28Remove debugging messagesThomas White
2023-07-28Fix incorrect rotationsThomas White
2023-07-28Rename top-level panel group to 'all'Thomas White
Rationale: 'top' sounds kind of geometrical
2023-07-28Implement data_template_write_to_file()Thomas White
2023-07-28DataTemplate: Track which values came from top levelThomas White
2023-07-28Make 'clen' a top-level geometry property, instead of per-panelThomas White
This makes huge simplifications in a lot of areas, and in practice should not be noticed by anyone.
2023-07-28Implement data_template_rotate_group()Thomas White
2023-07-28Implement data_template_translate_group_{px,m}()Thomas White
2023-07-28Add data_template_show_hierarchy()Thomas White
2023-07-28Transfer detector hierarchy to detgeomThomas White
2023-07-28DataTemplate: Parse hierarchical groupsThomas White
2023-07-28Strip out old rigid_group APIThomas White
2023-07-27Fix some more memory leaksThomas White
2023-05-11Remove warning 'Cannot use adu_per_eV without image'Thomas White
The warning isn't helpful for users, but commit c2574910 causes it to appear many times on almost every indexamajig run. The best option is just to remove it.
2023-03-31Reject mask if good/bad bits are specified without locationThomas White
This should avoid surprises if the location is accidentally missed out.
2023-03-31Factorise p->masks[j]Thomas White
Just to avoid repetition
2023-03-31Reject unrecognised mask directivesThomas White
2023-02-08indexamajig: Use static clen as --camera-length-estimate, if givenThomas White
This makes it work the same way as --wavelength-estimate.
2022-10-05data_template_get_2d_detgeom_if_possible: Avoid segfault with adu_per_eVThomas White
2022-09-22all_panels_reference_same_clen: Handle missing unitsThomas White
2022-09-22Implement data_template_get_2d_detgeom_if_possibleThomas White
It is horrible. But it's contained inside the DataTemplate module.
2022-09-21create_detgeom: Return detgeom structure rather than altering image argumentThomas White
2022-09-21Move create_detgeom to DataTemplate moduleThomas White
It seems to make more sense here, because it's all about interpreting the contents of the DataTemplate structure.
2022-03-08Fix slabbiness assumptionsThomas White
This adds a new routine, data_template_slabby_file_to_panel_coords, to be used (only!) in places where external forces require assumptions of slabbiness: pixel maps and MsgPack/HDF5 peak lists (including CXI-style). This also fixes the prototype of data_template_file_to_panel_coords to make the panel number strictly an input parameter. This was an oversight in the implementation of DataTemplate, and caused problems when reading non-slabby streams. Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/66
2021-10-28Add 'mask_panel_edges' to geometry fileThomas White
Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/27
2021-10-28Add a commentThomas White
2021-10-26Remove detector rail direction altogetherThomas White
This got missed out by accident in the conversion to DataTemplate, but absolutely no-one noticed. In the meantime, my views on how the geometry files should work have changed somewhat. I don't want to maintain the extra complexity here when it isn't even clear that it will eliminate the need to re-refine geometry for each camera length. This commit just takes the rail direction stuff out of the documentation and the geometry file parser. Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/50
2021-10-20Reject geometry file if wavelength isn't specifiedThomas White
2021-09-07lookup_panel: Check that panel name is not NULLThomas White
2021-09-03Fix typo and failing tests from previous commitThomas White
2021-09-03Reject geometry file if fs and ss directions are not specifiedThomas White
2021-07-22Clean up shadowed variablesThomas White
2021-07-21Reduce variable scope where possibleThomas White
2021-07-15Fix an incorrect error messageThomas White
2021-05-11Set panel for bad region when there is only one panelThomas White
When there is only one panel, we can safely assume that fs/ss bad regions refer to it without it being stated in the geometry file. This allows some older Pilatus geometry files to be used without complaints. A further improvement would be to determine the panel when all the data comes from one "slab" so the panel is still ambiguous. However, on further thought it seems like a lot of work to do this reliably in all cases. I'm not even sure that this case in particular is causing anyone problems. Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/32
2021-04-27Complain if there are unused defaults in geometry fileThomas White
This will help to avoid mistakes when people put statements at the end of the geometry file, rather than the top. Closes https://gitlab.desy.de/thomas.white/crystfel/-/issues/20.
2021-04-27Rename libcrystfel's config.h to libcrystfel-config.hThomas White
This removes the big potential for confusion, which has happened several times (see e.g. 095cbebaf6). It also fixes in-tree builds with CMake (but seriously, always use out-of-tree builds). Fixes #2.
2021-04-16Remove requirement for data path to contain "/"Thomas White
For data formats other than HDF5, the location can be anything.
2021-03-30Add header caching layerThomas White
This simultaneously implements --copy-header/--copy-hdf5-field and gives access to metadata (e.g. detector position or wavelength) when loading from a stream with header-specified values.
2021-03-11indexamajig: Use static wavelength from DataTemplate as estimateThomas White
If the geometry file contains a literal wavelength, then let's use it. That's better than nagging the user for a --wavelength-estimate.
2021-03-09Add the ability to use multiple bad pixel masks at onceThomas White
2021-03-05Mass update of copyright dates in source code commentsThomas White