Skip to content

Latest commit

 

History

History
1201 lines (771 loc) · 60.5 KB

CHANGELOG.rst

File metadata and controls

1201 lines (771 loc) · 60.5 KB

DIALS 3.21.1 (2024-08-23)

Bugfixes

  • Stop dxtbx.image_average shuffling panel positions for segmented detectors. (#752)

dxtbx 3.21.0 (2024-08-20)

Features

  • Add Nonius KappaCCD format. (#741)

Bugfixes

  • FormatMRC: Relax restrictive check on the overloaded MZ header value, which caused failures to read files where MZ == 1. (#740)
  • FormatCBFMini: When parsing header lines for a timestamp, avoid clashes with Windows paths. (#742)
  • FormatPy: Add fix for pickle files. (#744)
  • FormatSMVRigakuSaturnNoTS: Fix a bug in reading the image pedestal from headers. (#746)

Misc

dxtbx 3.20.0 (2024-06-19)

Features

  • The template handling mechanism is extended so that a template with a single # is expanded to match non-zero padded sequential numbers. For example, image_#.cbf will match image_1.cbf, image_2.cbf, ..., image_10.cbf and so on.

    Using a single # to match up to 10 images _within_ a zero-padded sequence continues to work as before. For example, dials.import template=insulin_1_01#.img will match the files insulin_1_010.img, insulin_1_011.img, ..., insulin_1_019.img, and no others. (#705)

  • Allows stepping through XTC streams at specific indices provided by a text file. (#709)

  • Compatibility with Python 3.12. (#725)

  • Add dxtbx.any2nexus program, to convert any file dxtbx can read to a NeXus file. (#735)

Bugfixes

  • FormatROD: set the beam probe to "electron" for 3D ED experiments. (#728)
  • Raise an error if geometry.goniometer.axis= is set with a multi-axis goniometer. In that case geometry.goniometer.axes= must be set instead. (#730)
  • Update goniometer for FormatISISSXD to allow for different ways the goniometer angle can be stored. (#731)
  • Fix Scan.get_property key type. (#734)

Misc

DIALS 3.19.1 (2024-05-23)

Bugfixes

  • Fix case where old I03 Eiger nexus data (pre-2020) would fail to process. (#737)

dxtbx 3.19.0 (2024-04-17)

Features

  • Add format reader for Jungfrau4M serial images from beamline ID29 at ESRF. (#659)
  • Better handle spectra calibration for bad data in XTC format using new parameter: spectrum_required=. (#674)
  • Add Bruker and miniCBF format readers for the ELDICO ED-1 electron diffractometer with DECTRIS QUADRO detector. (#682)
  • FormatSMVTimePix_SU: Always mask out the central cross of virtual pixels. (#683)
  • Add format reader for ISIS SXD detector. (#687)
  • Detector distance can now be manually overridden for multi-panel detectors. (#698)
  • Add format reader to read time of flight Laue data from MANDI. (#703)
  • Additional features for FormatXTCRayonix (#723)

Bugfixes

  • Importing the (deprecated and removed) dxtbx.datablock module failed to display warning properly. (#665)
  • Fix scan comparison for scan properties changes (#669)
  • Eiger Support: Invert the module dimensions, only for older firmware versions. See https://media.dectris.com/230203-Release_Notes-DECTRIS_EIGER2.pdf for reference. (#676)
  • FormatMRC: Better handling of extended headers. (ccpem/mrcfile#50), and extended headers are ignored if they contain junk values. (#679)
  • Fixed some properties not being correctly parsed in Scan.from_dict. (#688)
  • Negative rotation angles are now allowed, the goniometer axis will be inverted if necessary. (#690)
  • dials.import now uses natural sorting on input data, instead of strict sorting. (#697)
  • Fix setting detector distance for single panel detectors that have a hierarchy. (#699)
  • Better recognition for SMV images from MLFSOM and other simulators from James Holton. (#708)
  • Fix error introduced in FormatSMVJHSim causing test failures. (#710)
  • PolychromaticBeam can now be copied with copy.deepcopy. (#711)
  • Add missing argument to PolychromaticBeamPickleSuite.getinitargs. (#714)

Misc

dxtbx 3.17.0 (2023-11-03)

Features

  • Add nxmx_writer, a tool for converting any data dxtbx can read to NeXus data. (#615)
  • Remove circular dependencies between dxtbx and cctbx.xfel, by using the new serialtbx. (#627)
  • Set the beam probe to electron in both FormatNXmxED and FormatSER. (#661)

Bugfixes

  • dxtbx.image_average: Better handle detector gain and pixel data type. (#660)
  • Beam.probe is no longer reset if any geometrical override is provided at import. (#661)
  • Pilatus 4: Do not invert module size that is correctly written in master file. (#663)
  • dxtbx.plot_detector_models: Use noninteractive matpotlib backend, if using the pdf_file= option. (#664)

Deprecations and Removals

  • Legacy Datablock support has been removed, after being deprecated for several years. If you have any experiments that use these, they will need to be re-imported. (#504)

Misc

Dxtbx 3.17 (2023-11-03)

Features

  • Add nxmx_writer, a tool for converting any data dxtbx can read to NeXus data (#615)
  • Remove circular dependencies between dxtbx and cctbx.xfel by using the new serialtbx. (#627)
  • Set the beam probe to electron in both FormatNXmxED and FormatSER. (#661)

Bugfixes

  • Bugfix for dxtbx.image_average: handle detector gain and pixel data type better (#660)
  • The beam probe is no longer reset if any geometrical override is provided at import. (#661)
  • Pilatus 4: do not invert module size (is written correctly in master file) (#663)
  • dxtbx.plot_detector_models: use noninteractive matpotlib backend if using the pdf_file option (#664)

Deprecations and Removals

  • dxtbx: remove legacy datablock object (obsolete for several years) (#504)

Misc

DIALS 3.16.1 (2023-09-05)

Bugfixes

  • Fix situation where a bad Beam.probe could cause undefined behaviour. (#656)
  • Fix performance regression loading large experiment lists containing profile/scaling models. (#658)

dxtbx 3.16.0 (2023-08-14)

Features

  • Add new Beam class dxtbx.model.PolychromaticBeam, for polychromatic/multi-wavelength/wide bandpass experiments. (#621)
  • Formats: Reflect move of Eiger detector from PETRA P14 to P13. (#626)
  • The model.Beam object now has a probe value to keep track of the type of radiation. (#647)
  • Formats: CBFMini support for the EIGER2 16M detector at CHESS beamline ID7B2, which has an inverted rotation axis. (#649)
  • Formats: Support for Eiger 9M on ESRF ID23-2, which has an undeclared vertical goniometer. (#651)
  • Formats: Partial support for the Rigaku Oxford Diffraction file format, including support for multi-axis goniometers and faster decompression. (#645) (#653)

Bugfixes

  • Panel geometry definitions in PHIL are merged by panel id before constructing panels. (#299)
  • flumpy: Fix case where incorrect flex.vec2, flex.vec3 could be generated. (#439)
  • NXmx files with multidimensional arrays (images, modules, or both) are now handled. (#612)
  • Slicing of imageset objects is now consistently 0-based, including for the sliced data accessor. Previously, the data accessor had to be accessed with the original index offsets. (#633)
  • Formats: Add fix for Eiger / NXmx data from DLS i19-2, to correctly assign the image bit depth. (#652)

Misc

DIALS 3.15.1 (2023-06-29)

Bugfixes

  • dxtbx.dlsnxs2cbf: Fix import overwritten by local variable. (#641)

dxtbx 3.15.0 (2023-06-13)

Features

  • Support for Bruker Photon detectors has been extended to include Photon-III. (#637)

Bugfixes

  • Rigaku Saturn SMV images with multi-axis crystal goniometers are now handledi, instead of being silently ignored. With thanks to James Hester for this contribution. (#617)
  • FormatCBFFull: If rotation angles are decreasing, then invert the rotation axis as well as the angles, to be consistent. (#623)
  • Bugfix for CCTBX bootstrapped environments, without conda. (#630)

Misc

DIALS 3.14.2 (2023-05-16)

Bugfixes

  • Compatibility fix for the DECTRIS Eiger FileWriter. Recent FileWriter versions split bit depth metadata into two separate items, bit_depth_readout from the NXmx standard, and the new bit_depth_image field. This adds support for the latter, and now passes the metadata through into image conversion. (#632)

dxtbx 3.14.0 (2023-04-12)

Features

  • flumpy: Add support for conversion of flex.miller_index arrays to/from numpy. (#618)

Bugfixes

  • Flumpy: Prefer returning flex.int instead of flex.long when they are the same size. This solves ambiguous behaviour when reading images on Windows platforms. (#607)
  • dxtbx.plot_detector_models: Fix display of multiple single-panel detector models. (#610)

Misc

dxtbx 3.13.0 (2023-01-26)

Features

  • FormatNXmxED: Format support for electron diffraction images converted to be compatible with NXmx by nexgen. (#583)
  • FormatNXmxEDeBIC: Including a mask specific for the SINGLA that is temporarily installed at eBIC, through to early 2023. (#589)

Bugfixes

  • dxtbx.image_average: Fix a crash from using more processors than images when using MPI. (#571)
  • dxtbx.plot_detector_models now works with newer versions of matplotlib. (#574)
  • FormatNXmxDLS: Don't process electron diffraction images collected at eBIC that have been converted by nexgen. (#579)
  • Correct maximum value of Rayonix trusted range. (#590)
  • Read underload from CBF files. (#592)
  • NXmx: Ensure integer data types get converted to flex.int on all platforms. (#594)
  • Fix trusted range in FormatCBFMultiTile and FormatCBFMultiTileHierarchy. (#595)
  • FullCBFWriter: Fix writing of the newly consistent trusted_range values. (#601)

Misc

Dxtbx 3.13 (2023-01-12)

Features

  • FormatNXmxED: Format support for electron diffraction images converted to be compatible with NXmx by nexgen. (#583)
  • FormatNXmxEDeBIC: Including a mask specific for the SINGLA that is temporarily installed at eBIC, through to early 2023. (#589)

Bugfixes

  • dxtbx.image_average: Fix a crash from using more processors than images when using MPI. (#571)
  • dxtbx.plot_detector_models now works with newer versions of matplotlib. (#574)
  • FormatNXmxDLS: Don't process electron diffraction images collected at eBIC that have been converted by nexgen. (#579)
  • Correct maximum value of Rayonix trusted range. (#590)
  • Read underload from CBF files (#592)
  • NXmx: Ensure integer data types get converted to flex.int on all platforms. (#594)
  • Fix trusted range in FormatCBFMultiTile and FormatCBFMultiTileHierarchy. (#595)

Misc

Dxtbx 3.13 (2023-01-12)

Features

  • FormatNXmxED: a new format class for electron diffraction images converted to be compatible with NXmx by nexgen (https://github.com/dials/nexgen) (#583)
  • Add FormatNXmxEDeBIC, which includes a mask specific for the SINGLA that is temporarily installed at eBIC, through to early 2023. (#589)

Bugfixes

  • dxtbx.image_average: fix a crash from using more processors than images when using MPI. (#571)
  • Fix dxtbx.plot_detector_models for new versions of matplotlib (#574)
  • FormatNXmxDLS no longer recognises electron diffraction images collected at eBIC that have been converted by nexgen. (#579)
  • Corrected maximum value of Rayonix trusted range. (#590)
  • Read underload from CBF files (#592)
  • NXmx: Ensure integer data types get converted to flex.int, i.e. int C-type, on all platforms (#594)
  • Fix trusted range in FormatCBFMultiTile and FormatCBFMultiTileHierarchy. (#595)

Misc

DIALS 3.12.1 (2022-12-05)

Bugfixes

  • NXmx: eliminate potential divide-by-zero warning (#572)
  • Fallback on legacy FormatNexus to workaround issues reading datasets written by the Dectris filewriter with FormatNXmx(#582) (#584)
  • Fix support for datasets generated by the DECTRIS EIGER filewriter (#586)
  • FormatCBFFull: trusted range bug fix - use the minimum valid pixel value rather than the undefined value (#587)
  • NXmx: fallback on explicit beam_center_{x,y} if the x,y components of the detector origin are zero (#588)

dxtbx 3.12.0 (2022-10-31)

Features

  • Improve XTC handling from LCLS. Includes better spectrum support, parallax for the ePix, binning for the Rayonix, and radial_averge fixes. (#517)
  • Add spectrum support to FormatNXmx. (#538)
  • NXmx: Add support for @equipment_component for forming logical groupings of transformations to reduce the number of levels in the detector hierarchy. Note: .expt files will not be backwards compatible for users of the JF16M detector at SwissFEL, or the AGIPD detector at EuXFEL. (#561)

Bugfixes

  • trusted_range is now defined consistently as the _inclusive_ range between the minimum and maximum trusted values, i.e. valid pixels are those less than or equal to the maximum trusted value and greater than or equal to the minimum trusted value. (#536)
  • Improved speed of reading many-panel Nexus images. (#565)
  • Remove unintended error message escalation when passing multiple image ranges to import.
  • Remove stray and unhelpful error message display when passing multiple image ranges to import. (#567)
  • Added Diamonds VMXm Eiger CdTe 9M to "legacy" list where the fast, slow dimensions are reversed. (#569)

Deprecations and Removals

  • The deprecated set_slow_fast_beam_centre_mm function has been removed. Please use set_fast_slow_beam_centre_mm instead. (#544)

Misc

DIALS 3.11.2 (2022-09-27)

Bugfixes

  • NXmx: Cope more gracefully with scalar NXtransformations values. (#546)
  • dxtbx.dlsnxs2cbf: Fix distance and pixel size bugs. (#548)
  • NXmx reading: Handle cases where the detector is read as between the sample and source. This is to compensate for an incorrect definition in the Dectris Eiger file writer. (#550)

Misc

DIALS 3.11.1 (2022-09-02)

Bugfixes

  • dxtbx.dlsnxs2cbf: Fix bug introduced by #572. (#545)

dxtbx 3.11.0 (2022-08-24)

Features

  • Replace use of legacy FormatNexusEiger with new FormatNXmx format class. (#455)

Bugfixes

  • DXTBX now uses the median oscillation width from across the entire scan. This resolved issues where the goniometer scan positions were read-back values instead of set-point values, and a slow rotation start across the first two images would cause the oscillation width for the whole scan to be calculated incorrectly. (#526)
  • FormatNXmx: Support NXmx files with one wavelength per image. (#527)
  • ExperimentList.append(): No longer O(N²) with experiment identifiers. (#528)
  • FormatNXmx: Ignore empty pixel masks, instead of printing a confusing error. (#529)
  • Correct assumptions about interpreting multi-axis goniometer axes from full-CBF files. Previously, it was assumed the axis and diffrn_scan_axis categories listed axes in the same order, and that this matched a standard diffractometer axis order. The goniometer model is now build correctly, regardless of the order specified in the file. (#539)

Misc

DIALS 3.10.3 (2022-08-02)

Bugfixes

  • Fix mask_untrusted_circle() crash when untrusted circle extends outside detector. This affected dials.generate_mask. (#525)
  • FormatNXmx: Allow empty saturation_value field when importing data. (#534)

DIALS 3.10.1 (2022-07-12)

Features

  • Updated bad pixel mask for DLS I23 PILATUS 12M for 2022 run 3 (#530)

Bugfixes

  • dxtbx.install_format: Handle case on MacOS .pkg installations where URL-formats could not be installed. (#524)

dxtbx 3.10.0 (2022-06-09)

Features

  • Recognise NXmx standard data from the Diamond Light Source DIAD beamline. (#506)
  • When installed as a libtbx module, dxtbx will not install python packages into conda_base/. (#511)
  • Added flex_table.h and flex_table_suite.h objects from DIALS. These contain the C++ classes backing the dials.array_family.flex.reflection_table object, and allow a collection of array_family.flex arrays to be grouped together into a multi-columnar, row-addressable format. They are moved here to allow extension of the dxtbx models in this form. (#521)

Bugfixes

  • Fixed Panel.projection_2d not being serialized. (#509)
  • dxtbx.dlsnxs2cbf: Fix image oscillation for screening images (#514)
  • Fix dxtbx.image_average for raster scans. (#522)

Deprecations and Removals

  • Remove disused FormatEigerStream format class. This was used internally at Diamond Light Source as an intermediate solution before implementing SWMR support. (#499)

Misc

dxtbx DIALS 3.9.2 (2022-05-09)

Bugfixes

  • FormatCBFFullPilatus: Handle detector information better in cases of multiple or missing panels. (#508)
  • Remove check for beam/normalization orthogonality in Beam.rotate_around_origin. This could stop processing of older, incorrectly configured data. (#510)
  • Correct a unicode error reading Bruker .sfrm files. With thanks to Dennis Brookner for this change. (#518)

dxtbx 3.8.4 (2022-04-01)

Bugfixes

  • FormatNXmxI19_2: Allow data from beamline I19-2 at Diamond Light Source to be processed with optional masking of the beamline's standard diamond anvil pressure cell with a 76° aperture. (#481)

dxtbx 3.9.1 (2022-03-31)

Features

  • Windows support for the CMake build. (#507)

dxtbx 3.9.0 (2022-03-14)

Features

  • Add get_spectrum to FormatXTC (#484)
  • Add filtering by event code for processing LCLS data (#489)
  • Beam flux is now written to, and read from, CBF files. (#493)

Bugfixes

  • Reduce, in some cases drastically, memory usage of ImageSet objects. (#438)
  • Make FormatPY abstract so that dxtbx doesn't try to read .pickle reflection files as images. (#464)
  • Add method ersatz_uuid4 which gives an implementation of a random 128 bit UUID4 (#477)
  • FormatNXmxI19_2: Allow data from beamline I19-2 at Diamond Light Source to be processed with optional masking of the beamline's standard diamond anvil pressure cell with a 76° aperture. (#481)
  • Correctly handle slicing ImageSequences made from images starting with 0 (#485)
  • The Beam object constructor no longer discards "transmission" and "flux". (#488)
  • Fix wavelength bug in FormatXTC for older datasets (#490)
  • Fixed inconsistency in dxtbx.model.Scan default constructor that gave different results when loading from Python dictionary. (#496)

Misc

DIALS 3.8.3 (2022-02-22)

Bugfixes

  • FormatNXmx: Open nexus files in SWMR mode. (#478)

DIALS 3.8.2 (2022-02-07)

Bugfixes

  • dxtbx.dlsnxs2cbf: Provide more general support for correctly formatted NXmx-flavoured NeXus data. Previously, only a very limited subset of experiment geometries and data formats were supported. (#453)
  • More robustly handle different ways of recording single-value NXmx detector metadata. (#460)
  • Fix dxtbx.plot_detector_models running on newer matplotlib versions. (#475)

DIALS 3.8.1 (2022-01-25)

Features

  • Updated bad pixel mask for DLS I23 PILATUS 12M for 2022 run 1 (#469)

dxtbx 3.8.0 (2022-01-11)

Features

  • dxtbx can be optionally used without cbflib_adaptbx. (#368)
  • Experimental support for building dxtbx with CMake. (#449)
  • Track dxtbx version explicitly, with bump2version. (#458)

Bugfixes

  • Fix an arithmetic mistake in dxtbx.model.Goniometer.rotate_around_origin, which was mangling the addition of a new rotation to the goniostat rotation operator \mathbf{R}. (#451)
  • Correct pedestal handling for simulated images from simtbx. (#456)
  • Ensure FormatTIFF only understands images with the expected basic TIFF header. (#457)
  • Get CI builds working again by restricting setuptools<60. (#459)

Improved Documentation

  • Update the documentation of the in-house convention for representing the goniostat rotation operator \mathbf{R}, to match the conventions page of the online DIALS documentation. (#450)

Deprecations and Removals

  • Remove ImageToEwaldSphere, which was used in a now-removed utility. (#446)
  • The deprecated function dxtbx.model.detector_helpers.project_2d has been removed. The deprecation warning on usage of DataBlock has been made more visible. (#448)

Misc

DIALS 3.7.0 (2021-11-01)

Features

  • New function Crystal.clone(), to get a new Crystal object of the same type. (#420)
  • New fast_slow_beam_centre= parameter for detector models allows setting the beam centre using fast, slow [panel] value ordering. (#421)
  • Added dlstbx.nexus.nxmx module that provides a high-level read-only interface to HDF5 files adhering to the NeXus/NXmx standard, and support for Diamond Light Source's I19-2 EIGER detector. (#423)
  • Allow importing experiment lists from single-file templates. (#425)
  • Support NeXus data from the Tristan event-mode detector on beamline I19 at Diamond Light Source. (#428)

Bugfixes

  • Fix installation using Python 3.7 on Windows. (#441)
  • Better support for detector SMV ADSC SN442. (#445)

Deprecations and Removals

  • The function dxtbx.model.detector_helpers.project_2d has been renamed get_detector_projection_2d_axes. Usage of the function project_2d is deprecated and will be removed after DIALS 3.7. (#422)
  • Drop support for Python 3.6. (#424)

Misc

DIALS 3.6.2 (2021-09-21)

Bugfixes

  • Fix broken dxtbx.install_format command. (#434)

DIALS 3.6.0 (2021-08-16)

Features

  • Add experimental dxtbx.flumpy.to_numpy, .from_numpy, .vec_from_numpy and .mat3_from_numpy for zero-copy conversions between numpy and scitbx.array_family.flex` arrays. There is also a lower-level class Scuffer that allows exposing of flex arrays via generic python buffer interfaces for e.g. Cython interoperability. (#377)
  • ExperimentListFactory.from_filenames(...), Format.get_imageset(...), and ImageSetFactory.new(...) now accept objects implementing the Python file system path protocol (PEP-519). (#386)

Bugfixes

  • Fix support of older FormatSMVADSCSN442 images (#369)
  • More detailed error messages are now printed after internal H5Dread calls fail (#374)
  • Fix error reading BioMAX data with H5py 3.3 (#389)
  • Fix potential problem where mask geometry was unfixable (#411)
  • Handle installing dxtbx as a "real" package when the conda_base/ is read-only (#413)
  • Check for empty beams in XTC streams (#419)

Deprecations and Removals

  • The previously deprecated ExperimentListTemplateImporter has been removed. Please use ExperimentList.from_templates instead. (#333)

Misc

DIALS 3.5.4 (2021-07-27)

Bugfixes

  • Allow reading of new SACLA hdf5 data (#408)

DIALS 3.5.2 (2021-06-28)

Bugfixes

  • End the I03 "bad mask" duration, since it is now masked at the file level. (#385)
  • dxtbx.dlsnxs2cbf: Handle missing chi/phi axis entries. (#387)

DIALS 3.5.1 (2021-06-14)

Bugfixes

  • Extend duration of bad module mask for Diamond I03 EIGER 2XE 16M detector indefinitely. This will be updated in a future release. (#370)
  • Handle scan data which wraps through 0° instead of >=360° (#379)

DIALS 3.5.0 (2021-05-27)

Features

  • Add FormatMRC.py for electron diffraction images and image stacks recorded on Thermo Fisher microscopes (#335)
  • Improved support for Gatan DM4 format images and stacks (#338)
  • Improved support for TIA (Emispec) .ser files (#345)
  • Improved support for .emi sidecar files in FormatSER (#354)
  • Add support for Python 3.9. (#365)

Bugfixes

  • Bug fixes for extended header reading in FormatMRC.py (#343)
  • dxtbx.dlsnxs2cbf: Fixed on Windows using hdf5plugin (#344)
  • Mask temporarily bad modules on the Diamond I03 EIGER 2XE 16M detector (#348)
  • Fix rare error during CBF compression (#352)
  • Extend duration of bad module mask for Diamond I03 EIGER 2XE 16M detector (#355)

Deprecations and Removals

  • Remove legacy HDF5 plugin handling. Please update your conda environment if you still have issues. (#340)
  • Remove classes and functions deprecated in the previous release: dxtbx.datablock.*Diff, dxtbx.model.experiment_list.SequenceDiff, dxtbx.serialize.load.imageset_from_string. (#347)
  • Removed unused support for reading experiments from pickle files (#361)
  • Remove the ability to save experiments in pickle format (#363)

Misc

DIALS 3.4.1 (2021-03-31)

Bugfixes

  • Nexus: Diamond Light Source beamlines are now properly identified (#339)

DIALS 3.4.0 (2021-03-15)

Features

  • FormatHDF5SaclaMPCCD is now a "Lazy load" format (#227)
  • Show image counts when displaying Scan objects (e.g. dials.show) (#271)
  • The Scan.append default tolerance is increased to 3% of the image width, to accommodate electron diffraction datasets with poor rotation stages. (#277)
  • Preliminary support for images derived from Timepix 2M detector in NeXus / NXmx format (#298)
  • Add function dxtbx.util.get_url_scheme, to identify URL-style image paths in a cross-platform way (#301)
  • Add support for raw data from the SwissFEL Jungfrau 16M detector, including some estimates of pixel errors (#303)
  • CBF decompression: Validate expected image size, and the cbf_decompress function now accepts the output array size, and returns the number of items read. (#313)
  • Include test for equality of PxMmStrategy in Panel equality operator. (#319)
  • Format support for Eiger 16M XE at Diamond - recognise legacy and updated beamline names. (#323)
  • The function ExperimentList.from_templates has been added for construction convenience (#333)

Bugfixes

  • Fix Gatan DM4 format reader. (#297)
  • Fix dxtbx. commands crashing on Windows when unicode output is directed to a file (#306)
  • dxtbx.dlsnxs2cbf: Properly display help message when passed -h (#309)
  • Check for existence of certain numpy types before using them. (#318)
  • Correctly link to HDF5 shared libraries on Windows (#329)

Deprecations and Removals

  • The main development branch of dxtbx was renamed from 'master' to 'main'. (#281)
  • DataBlock is now deprecated. Please use ExperimentList instead. (#288)
  • Remove obsolete format FormatNexusExternalDataFile (#328)
  • The previously deprecated ScanFactory.single has been removed. Use ScanFactory.single_file instead. (#332)
  • ExperimentListTemplateImporter is now deprecated. Please use ExperimentList.from_templates. (#333)

Misc

DIALS 3.3.4 (2021-03-05)

Bugfixes

  • Fix error corrupting data when writing CBF files with large pixel values. This affected dxtbx.dlsnxs2cbf and dials.merge_cbf (#314)

DIALS 3.3.3 (2021-02-15)

Bugfixes

  • Fix for missing SENSOR_THICKNESS= in XDS.INP generated for EIGER datasets introduced in 3.3.1 (#296)

DIALS 3.3.2 (2021-02-01)

Bugfixes

  • Don't interpret windows paths as URIs, causing failure to import images (#284)
  • Fix bug in nexus.DataFactory that allowed access to twice as many images as available on disk for VDS nexus files. (#285)
  • Bug fix for live per-image analysis of HDF5/SWMR files, ensuring that a process can see data for images written after a process first sees a given data file. (#289)
  • Bug fix for generating XDS.INP for eiger datasets - ensure that DETECTOR=EIGER (not PILATUS) (#292)

DIALS 3.3.1 (2021-01-18)

Features

  • NeXus files are now opened in SWMR mode. (#270)

DIALS 3.3.0 (2021-01-04)

Features

  • FormatMultiImage: When constructing an imageset with the indices of some (not all) single images in the container, we skip reading models for the images that were not requested. In some cases this speeds up imageset construction by 8x. (#210)
  • Read detector distance from the XTC streams for LCLS Jungfrau data (#246)
  • Set the per-shot gain for the ePix and Jungfrau detectors at LCLS. (#250)
  • Allow format classes to be marked as @abstract. This means that they will be considered and returned by the Registry search if they are the best match, but are intended to represent an incomplete "category" of format class that other classes build on, so cannot be instantiated. (#255)

Bugfixes

  • When creating "Lazy" ImageSets the static mask from the image file was not being properly applied (#227)
  • Be more robust when handling nexus scan axes (#252)
  • Improve error message when attempting to import data-only h5 files (#261)
  • Fix finding HDF5 plugins when using dials-installer (#265)
  • Prevent errors reading eiger data, if h5py is imported before dxtbx (#266)
  • Fix errors introduced by moving to h5py 3.1+ (#267)
  • Improve error message when attempting to import unsupported files (#1220)

Deprecations and Removals

  • Deprecate ScanFactory.single. Please use ScanFactory.single_file without the format= argument, which has been removed. ScanFactory.single will be removed in a future version. (#233)
  • Remove deprecated dxtbx.serialize.dump.experiment_list, dxtbx.serialize.filename.load_path, and as_str argument to dxtbx.serialize.xds.to_xds().XDS_INP() (#248)
  • The ignore() functionality on Format classes has been removed. Such classes should be marked as @abstract instead. (#255)
  • Deprecate the HDF5 plugin discovery patch that is applied when dxtbx is imported before h5py. Please update your HDF5 plugins package. (#258)
  • Remove FormatHDF5RawData format class. This was only ever used experimentally, and caused confusion when incorrectly importing nexus side files. (#261)
  • The deprecated dxtbx.datablock.DataBlockDumper and serialize.dump have been removed. (#269)

Misc

DIALS 3.2.0 (2020-10-27)

Features

  • Add clear_cache() method to clear internal imageset cache (#218)
  • Add dxtbx.model.detector_helpers.project_2d function, which calculates a 2D projection of the detector panels into a frame aligned to the image. This is intended for use in display tasks for mostly co-planar detectors. (#224)
  • image template: add support for nameNNNN e.g. image1234 as a valid name (#234)
  • BeamFactory.simple will now return an unpolarised beam for >~247 KeV beams (e.g. Electron diffraction) (#243)

Bugfixes

  • Fix reading of legacy pickle-image files created from Python 3 (#205)
  • Allow importing filenames with special format characters like % (#214)
  • dxtbx.dlsnxs2cbf: strip timezone when making CBF file timestamps (#235)
  • Fix error reading nexus files when using hardlinks to detector models (#240)
  • SMV Formats: Use header gain values if present, rather than guessing (#242)

Misc

  • We have moved the pytest launchers from cctbx_project to dxtbx. If you run into libtbx.configure errors make sure both repositories are up to date (#231)
  • #209, #211, #212, #217, #225, #226, #230

DIALS 3.1.4 (2020-10-12)

Bugfixes

  • Handle more errors using Eiger-Nexus files

DIALS 3.1.3 (2020-09-28)

Bugfixes

  • dxtbx.image_average: Better use of MPI to avoid errors and increase performance (#207)
  • Update DLS I23 bad pixel mask after detector has been cleaned, fixing previously bad modules. (#220)
  • Change default bit depth for DLS eigers where header information is missing

DIALS 3.1.1 (2020-09-01)

Bugfixes

  • Don't crash handling FormatSMVADSC images with floating-point pedestal values (#216)
  • Allow importing filenames with special format characters like % (#214)

DIALS 3.1 (2020-08-17)

Features

  • Add generic multi-panel support for FormatCBFMiniPilatus and subclasses. Data matching format classes inheriting from FormatCBFMiniPilatus can now be imported with the option multi_panel=True to treat the detector as multiple panels, instead of a single panel comprising the whole detector. (#177)
  • New tool dxtbx.show_mask_info to show the number of masked pixels for each module (#198)
  • Experimental - Alpha API: Add Spectrum as a read-only class obtainable from an imageset, and implement reading spectra from NeXus files. (#201)

Bugfixes

  • Better handle string conversion when NeXus files (#190)
  • HDF5 / NeXus: Correctly use the mask if available. (#198)

DIALS 3.0.4 (2020-07-20)

  • HDF5 / NeXus: Read image dimensions directly from dataset shape instead of reported image_size, as latter can sometimes be backwards (#189)
  • Support image_range when importing images into an ImageSet so only a subset of the images are used
  • Diamond-specific Eiger/Nexus: Fix handling of masked pixels in the image so that module join regions are no longer marked as overloaded (i.e. yellow) in the image viewer (#180)

DIALS 3.0.2 (2020-06-23)

Bugfixes

  • Fix sensor-material handling for Jungfrau 4M and 16M detectors

DIALS 3.0.1 (2020-06-11)

Bugfixes

  • Account for beam centre record changing with ADSC 442 move from 8.3.1 to 5.0.1 (#171)
  • Fix handling for hierarchical NeXus detectors (#175)
  • Prevent mangling of URL-based filenames via abspath (#176)
  • Fix incorrect axis detection on MAX IV Eiger and Spring8 (#178)

DIALS 3.0 (2020-05-18)

Features

  • A new recalculated unit cell attribute is added to the Crystal model, for use by post-integration cell refinement methods, such as that of dials.two_theta_refine. (#142)
  • Add ExperimentList.change_basis() convenience method. (#166)
  • Allow creation of Format classes that accept URLs instead of files (#173)

Bugfixes

  • Fix a bug whereby reading a single-image data set from an Eiger detector would lead to an error. (#156)
  • Fix formatting of unit cell parameters with negligible standard uncertainties (#165)
  • New Eiger FileWriter (20.1.16.56035) produces NeXus compliant files, which exposed a bug in finding axis sample depends on, now fixed. (#168)

Misc

DIALS 2.2 (2020-03-15)

Bugfixes

  • Fix spot-finding on images with file names ending in '0000.cbf' (#133)
  • Fixed imageset slicing for image sets starting from image 0 (#141)

DIALS 2.1 (2019-12-16)

Features

  • With changes in dials.import sequences of stills are imported as individual experiments all dereferencing one image set - this is the change set to support this on load. (#118)

Bugfixes

  • Reinstate support for historic VMXi EIGER 1 images (#119)
  • Fix crash when opening dataset containing many .h5 files (#126)

Deprecations and Removals

  • dxtbx extensions can no longer be imported from dxtbx and must now be imported from dxtbx.ext (#29)

Misc

DIALS 2.0 (2019-10-23)

Features

  • Change dxtbx format registry to using entry points

    dxtbx now discovers format classes during configuration time instead of at runtime. Format classes can either be added into the dxtbx/format directory as usual, registered by other python packages using the 'dxtbx.format' entry point, or installed by the user via the 'dxtbx.install_format' command.

    To register format classes stored in ~/.dxtbx you need to run 'dxtbx.install_format -u' whenever you add or remove format classes.

    Changes for library users: * A number of registry lookup methods were deprecated or removed. * Exceptions from format .understand() methods are no longer discarded.

    Similarly, when no matching format was found the datablock find_format() methods now return 'None' and no longer raise exceptions. In both cases the caller will need to deal with the situation appropriately.

    • Format classes must be named 'Format*', and must inherit either from other format classes or from the top-level format class, 'Format'. Base classes must be given as their original name and must therefore not contain '.'s. (#34)
  • Reading compressed FullCBF files - .gz or .bz2 - is now supported (#72)

  • Add an optional Format.get_static_mask() method

    This allows format classes to define a static mask to be used across all images in an imageset. (#73)

  • Add new command dxtbx.dlsnxs2cbf which converts Nexus files created at Diamond Light Source to .cbf files. (#81)

  • Added ExperimentList.from_file for easily loading data. This means that experiment lists and reflection tables can now load the same way. (#100)

Bugfixes

  • Replace h5py visititems with local_visit implementation to work around using soft links in Eiger / hdf5 files. (#75)

  • Fix FormatNexusEigerDLS16M.understand() for 2019/run4 datasets (#85)

  • Reduce number of redundant file operations in dxtbx

    This includes a change in the DataBlock() construction semantics: sequences from identical detectors are merged into a single DataBlock() object regardless of their position in the call order. Since DataBlock() is deprecated and any reliance on order would have to be handled explicitly downstream anyway this should not have any impact on users or developers. (#89)

  • Fix setting a per-panel pedestal

    Per-panel pedestals are now respected when the corrected data is used. (#108)

Misc