-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add simulations of Kikuchi band positions on an EBSD detector #204
Conversation
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
I'm soon wrapping this PR up, it is a lot! Basically, with the correct crystal structure, unit cell orientation and a calibrated detector-sample geometry, we get this: @friedkitteh, the |
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
This commit was made so that this state of the PR is stored. Will now mess things up (more than now...) to compute a simulated pattern per orientation with dask, as is done for pattern processing. It can be argued that computing dot products with multiple orientations at a time is faster... But I don't know. I think the algorithmic architecture is simpler to handle when calculations of band coordinates is done per orientation/pattern. It should also be easier to scale up to many cores...? And, we can provide the user with a simple progress bar via dask's diagnostics. |
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Actually decided against dask for now, since I found an OK way to simulate multiple sets of bands per orientation at once... Getting there! |
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Due to anticipated near future rapid development in kikuchipy, I've decided to add the |
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
I'm going to merge this into |
Signed-off-by: Håkon Wiik Ånes <hwaanes@gmail.com>
Signed-off-by: Håkon Wiik Ånes hwaanes@gmail.com
Description
Lot's of additions in this PR... The main outcome is a geometrical model for simulation of Kikuchi band center positions on an EBSD detector, based on the supplementary material by Aimo Winkelmann (@wiai) from Britton et al. (2016) (doi: https://doi.org/10.1016/j.matchar.2016.04.008).
kikuchipy.detectors
module and anEBSDDetector
class to handle projection center and gnomonic projectionskikuchipy.projections
module with projections from the above supplementary material, notably crystal planes and zone axes onto the detector. The Hesse normal form of a plane trace is also included here.kikuchipy.crystallography
module to compute the direct structure matrix from a crystal lattice. This should be included intodiffpy.structure
as part of thediffpy.structure.Lattice
object (Can one obtain the direct and reciprocal structure matrices from a Lattice object? diffpy/diffpy.structure#46).kikuchipy.draw
module with convenience functions to create lists of simulation features as HyperSpy markers (line segments, points, text).kikuchipy.generators.ebsd_simulation.EBSDSimulationGenerator
class, with ageometrical_simulation()
method.kikuchipy.simulations
module with aGeometricalEBSDSimulation
class to storeKikuchiBand
andZoneAxes
features with gnomonic and cartesian coordinates.The last two points should be moved to
diffsims
in the future.Due to anticipated near future rapid development in kikuchipy, I've decided to add the
ReciprocalLatticePoint
class in thekikuchipy.crystallography
module to get this PR in now. This class and functions it uses will be removed when it is merged into diffsims.Checklist
All this will be done in separate PRs, as we need this in now.
kikuchipy.simulations.features.KikuchiBand
class with different navigation shapes and docstringskikuchipy.simulations.features.ZoneAxis
class with changes made inKikuchiBand
EBSDDetector.pc
projection center propertyMinimal example of the bug fix or new feature
Visual result of this PR (note that the dynamical simulations to the right are generated with EMsoft):
For reviewers
later.
__init__.py
.the unreleased section in
doc/changelog.rst
.