Releases: HEXRD/hexrd
Release 0.9.6
Overview
HEXRD 0.9.6 introduces a few new features compared to the last version. A few highlights are listed below:
- Allow Euler angle convention to be specified for the calibration workflows (it was fixed to intrinsic ZXZ before - but some workflows need other conventions such as extrinsic XYZ)
- Added support for a new (optional) image series format: EigerStreamV1, which is the current file format we are streaming off the Eiger detector at CHESS
- Added a new image series adapter for arbitrary functions
- A few improvements to WPPF refinements
What's Changed
- Allow Euler convention setting for calibration by @psavery in #637
- Run dbscan in parallel by @psavery in #638
- Add eiger-stream-v1 imageseries format by @psavery in #639
- updated documentation for rotations.misorientation by @donald-e-boyce in #644
- redefining goodness of fit for wppf module by @saransh13 in #646
- Rietveld phase fraction fix by @saransh13 in #645
- Add an imageseries adapter for arbitrary functions by @psavery in #642
- Add back osx-arm64 build by @psavery in #641
Full Changelog: 0.9.5...0.9.6
Release 0.9.5
Overview
HEXRD 0.9.5 introduces numerous features and improvements. A few highlights are listed below:
- Refactored instrument, powder, and laue calibrators to use lmfit (including boundary conditions)
- Added pressure and temperature calculations for adjusting lattice parameters
- Added detector and instrument templates
- Improvements to the GE inverse distortion function performance
- Several performance improvements and bug fixes
The full list of changes are provided below.
What's Changed
- Change "hexrd-prerelease" label to "prerelease" by @psavery in #572
- Remove urllib3 version pinning by @psavery in #574
- import angs_to_dvec as well by @saransh13 in #576
- Only include "roi" in the config if it is not None by @psavery in #579
- Inverse distortion by @ZackAttack614 in #584
- Install pybind11 if it is missing by @psavery in #587
- Add yaml dumper that converts numpy to native by @psavery in #588
- Add option to set eta_step size for eta omega maps by @psavery in #573
- Update README.md install instructions by @psavery in #583
- Add property for point group number to material by @psavery in #585
- fixed bug in GrainData.load and added rotation_matrices attribute by @donald-e-boyce in #589
- Add matplotlib as a dependency to HEXRD by @psavery in #590
- Add support for detector "group" key by @bnmajor in #591
- Add pressure and temperature calculations for lattice parameters by @psavery in #593
- Add initial detector templates by @bnmajor in #594
- Remove transform section from these detectors by @psavery in #597
- numba accelerated findDuplicateVectors by @saransh13 in #596
- Remove unused "calibration" directory by @psavery in #598
- Update rawimage.py by @darrencpagan in #601
- ProcessedImageseries with frame_list automatically updates omega metadata by @donald-e-boyce in #603
- Add initial pre-configured instrument by @bnmajor in #602
- Frame cache writer by @donald-e-boyce in #605
- Imagefiles yaml text by @donald-e-boyce in #604
- Remove tbb requirement for non-intel machines by @psavery in #606
- cleans up rawimage _get_length() and get_item() functions by @donald-e-boyce in #610
- Make getitem for raw imageseries threadsafe by @psavery in #611
- Add xtensor support, remove Eigen by @psavery in #607
- Add a test for gvec_to_xy by @psavery in #613
- Move projections into their own module by @psavery in #614
- fixes stiffness matrix typo by @donald-e-boyce in #618
- Add additional detector templates by @bnmajor in #617
- Add hedm_intensity to PlaneData by @psavery in #619
- fix arguments to cylindrical detector. by @saransh13 in #621
- Imageseries docs by @donald-e-boyce in #620
- Do not set values to 0 that are not referenced. by @ZackAttack614 in #624
- Fix hexrd misspelling, resolves #622 by @ZackAttack614 in #627
- Stacking fault wppf by @saransh13 in #626
- Refactor calibrators to work with lmfit by @psavery in #628
- Remove panel buffers from detector templates by @psavery in #629
- Use scipy's
convolve
for snip1d by @psavery in #630 - Update ca certificates for centos Linux build by @psavery in #632
- Update numpy and qt in Ryan's pinhole script by @psavery in #633
- Invalidate sample layer past critical beta by @psavery in #635
- Fix integer overflow issue in fabio by @psavery in #623
- Downgrade packaging macos to 12 by @psavery in #636
Full Changelog: 0.9.4...0.9.5
Release 0.9.4
- Added support for Python3.11, resulting in noticeable performance improvements
- Added conda packages for osx-arm64 (Apple computers after 2019)
- Implemented build time optimization that results in performance improvements
- Added ability to cancel fit-grains programmatically
- Changed PXRDIP default polar angle to 67.5
- Improved TARDIS distance between plates constraint
- Implemented a few bug fixes, including one with memoization
Release 0.9.3
A variety of new features have been added, including:
- support for a cylindrical detector (used primarily in TARDIS currently)
- new Rygg pinhole distortion method (used primarily for TARDIS and PXRDIP)
- new structureless calibration class
- support for GEL files
For the HEDM workflow:
- large performance improvements to fit-grains (including through the use of updated C transforms, and a major reduction in the amount of memory used)
- namedtuple grains output
- fixed an HKL reset issue in fit-grains
- new options for selecting which HKLs to exclude when running from the CLI
Minor updates for LLNL pinhole camera utilities
Release for FY23Q1 LLNL tutorials
What's Changed
- modified Y translations per JHE's TBSep=23.13mm by @joelvbernier in #482
- added notch to back IP by @joelvbernier in #483
Full Changelog: 0.9.1...0.9.2
Running changes for hexrdgui 0.9.0 compatability
What's Changed
- Create NOTICE by @joelvbernier in #473
- script to calculate pinhole 2theta by @joelvbernier in #474
- added a simple form for pinhole line tth distortion by @joelvbernier in #475
- Add calculating symmetric vectors in cartesian space. by @saransh13 in #476
- Added ability to import HDF5 imageseries with 2-d data by @joelvbernier in #477
- fixed the bad choice of always casting as array by @joelvbernier in #478
- WPPF -- Rietveld fixes by @saransh13 in #479
- add missing colon. by @saransh13 in #481
- Nf chunking by @rachelelim in #469
Full Changelog: 0.9.0...0.9.1
API change and pinhole camera distortion tools
Major release
In addition to the API change in the ff-HEDM config object and associated η-ω maps, the PowderCalibrator
class can now accept an xrdutil.phutil.SampleLayerDistortion
class to apply the 2θ distortion associated with an offset sample layer in a pinhole camera instrument (e.g., TARDIS, PXRDIP). The corresponding class for actual pinhole lines themselves is not yet implemented (staged, using functions from @ryanrygg). Below is a simulated TARDIS image with the cyan and orange overlays coming from 5μm thick layers at 150μm and 250μm offsets, respectively; the aforementioned distortion caused the nominal 2θ values to appear curved (note the simulation captures the distortion effect on account of being voxelated, while the correction follows @ryanrygg's Eq 10 from the TARDIS paper.
As for the ff-HEDM config API, now the hkls used for constructing the η-ω maps are specified by the explicit list of (h, k, l) indices (any symmetric equivalent) or the list of global G-vector ids from the material (less preferred). This removes the ambiguity associated with the previous convention of using indices into the reduced hkl list. For example,:
find_orientations:
orientation_maps:
# A file name must be specified. If it doesn't exist, one will be created
file: null
threshold: 250 # threshold on raw images to build maps
bin_frames: 1 # how many successive frames to bin. default is 1
# specify which hkls to use
# "all", or a list of hkl indices. Note that the default value of "all"
# means all hkls that are not marked as excluded in the material definition.
# can be a list of indices or a list of [h, k, l].
# !!! used to be active_hkls: [0,1,2,3,4,5]
# !!! this was really [0,1,2,4,6,7] considering the material parameters above
active_hkls:
- [0, 1, 2]
- [1, 0, 4]
- [1, 1, 0]
- [1, 1, 3]
- [0, 2, 4]
- [1, 1, 6]
What's Changed
- replacing "if" with "elif" in line 604 of materials.py. by @saransh13 in #465
- Guard against unicode when saving HDF5 imageseries by @psavery in #466
- Pinhole distortion by @joelvbernier in #446
- changed hkl specification for indexing to master hklID by @joelvbernier in #454
- Update test.yml by @joelvbernier in #467
- change default source_distance to inf by @joelvbernier in #468
- NF chunking by @rachelelim in #461
- Additional modifications to make tth_distortion for pinhole camera instruments functional by @joelvbernier in #470
- API change to tth_corr_map_sample_layer by @joelvbernier in #471
- Add missing init.py files by @psavery in #472
New Contributors
- @rachelelim made their first contribution in #461
Full Changelog: 0.8.21...0.9.0
Minor bug fix to multi-wedge indexing
There was a check added to the multi-wedge capability in the ff-HEDM indexing workflow that was throwing a TypeError
in hexrd 0.8.20
. This release resolved that issue. There was also an issue in the CI with fabio
relating to the lack of a wheel for the latest.
What's Changed
Full Changelog: 0.8.20...0.8.21
Stability and performance upgrades.
What's Changed
- density fix for ruby by @saransh13 in #436
- Plane data updates by @joelvbernier in #437
- Material load by @saransh13 in #438
- some tweaks to the HEDM calibration by @joelvbernier in #439
- restore functionality with array-like tth input by @joelvbernier in #440
- Material speedup by @saransh13 in #431
- Spectrum fitting fixes by @joelvbernier in #442
- add pinhole util module by @joelvbernier in #443
- LP split by @saransh13 in #444
- Unitcell fixes by @saransh13 in #445
- Add support for Python 3.10 by @cjh1 in #447
- Fix use of collections.Sequence by @cjh1 in #448
- Fix use of collections.abc.Iterator by @cjh1 in #449
- Remove duplicate atom sync by @saransh13 in #450
- Bump pinned numpy version to 1.22 by @psavery in #458
- Force cast input to ndarray in GE distortion functions by @joelvbernier in #456
- multiwedge tolerance fix on delta omega by @joelvbernier in #459
- Remove hkl_indices comparison from testing by @psavery in #460
- Update spectrum fitting utils to support wildcards in parameter name matching by @joelvbernier in #455
Full Changelog: 0.8.19...0.8.20
New features and performance enhancements
Some salient updates
- HEDM indexer can now handle discontinuities in ω range ("broken scans")
- Robustness added to powder line fitting via
lmfit
models with constraints - Various bug fixes and platform-specific stablility fixes.
What's Changed
- Bump numpy version by @psavery in #397
- Fix multiprocessing context for ProcessPoolExecutor by @joelvbernier in #398
- Check shape of hkl array before write by @saransh13 in #400
- add tqdm package dependency by @joelvbernier in #401
- Fitting fixes jvb by @joelvbernier in #389
- Use logger for InstrumentCalibrator by @psavery in #402
- fix atomic weight of berkelium (Bk) by @saransh13 in #405
- catch None in hdf5 write as TypeError by @joelvbernier in #403
- Powder line extraction by @joelvbernier in #407
- Catch for flat patch data by @joelvbernier in #406
- Update nfutil.py by @darrencpagan in #408
- Update nfutil.py by @darrencpagan in #409
- Downgrade windows CI to windows-2019 by @psavery in #412
- Fix spot export error for multiple grains by @psavery in #429
- Set default dmin to None in load_materials_hdf5() by @psavery in #428
- Update rotations.py by @joelvbernier in #433
- Add a gaussian laplace op to ProcessedImageSeries by @psavery in #430
- attribute for picks and logging by @joelvbernier in #404
Full Changelog: 0.8.18...0.8.19