Note
Go to the end to download the full example code.
Operations on vectors#
This example shows how to perform some basic operations slicing and selecting vectors. This is designed to be very flexible and powerful. Many operations such as slicing with a boolean array are supported.
Additionally, lazy operations are supported and can be chained together. These are often faster
than their non-lazy counterparts as dask
very effectively prunes the computation graph.
import pyxem as pxm
import hyperspy.api as hs
hs.set_log_level("ERROR")
s = pxm.data.tilt_boundary_data()
temp = s.template_match_disk(disk_r=5, subtract_min=False)
vectors = s.get_diffraction_vectors(threshold_abs=0.4, min_distance=5)
# Plotting all the vectors
s.plot()
all_vectors = vectors.to_markers(color="red", sizes=10, alpha=0.5)
s.add_marker(all_vectors)
[ ] | 0% Completed | 141.63 us
[ ] | 0% Completed | 100.50 ms
[ ] | 0% Completed | 200.87 ms
[ ] | 0% Completed | 301.34 ms
[########################################] | 100% Completed | 401.69 ms
[ ] | 0% Completed | 136.40 us
[ ] | 0% Completed | 100.45 ms
[ ] | 0% Completed | 200.75 ms
[ ] | 0% Completed | 301.18 ms
[ ] | 0% Completed | 401.48 ms
[ ] | 0% Completed | 501.85 ms
[ ] | 0% Completed | 602.16 ms
[ ] | 0% Completed | 702.56 ms
[########################################] | 100% Completed | 802.93 ms
[ ] | 0% Completed | 128.16 us
[########################################] | 100% Completed | 100.41 ms
[ ] | 0% Completed | 401.77 us
[########################################] | 100% Completed | 102.66 ms
slic_vectors = (vectors.ivec[:, vectors.ivec[0] < 10]).to_markers(
color="green", sizes=5, alpha=0.5
)
s.plot()
s.add_marker([all_vectors, slic_vectors])
[ ] | 0% Completed | 142.81 us
[########################################] | 100% Completed | 100.49 ms
[ ] | 0% Completed | 134.36 us
[########################################] | 100% Completed | 100.44 ms
[ ] | 0% Completed | 132.75 us
[########################################] | 100% Completed | 100.43 ms
[ ] | 0% Completed | 127.71 us
[########################################] | 100% Completed | 100.43 ms
slic_vectors = (
vectors.ivec[:, (vectors.ivec[0] > 0) * (vectors.ivec[0] < 10)]
).to_markers(color="w", sizes=5, alpha=0.5)
s.plot()
s.add_marker([all_vectors, slic_vectors])
[ ] | 0% Completed | 154.68 us
[########################################] | 100% Completed | 100.50 ms
[ ] | 0% Completed | 144.29 us
[########################################] | 100% Completed | 100.45 ms
[ ] | 0% Completed | 139.78 us
[########################################] | 100% Completed | 100.44 ms
[ ] | 0% Completed | 145.58 us
[########################################] | 100% Completed | 100.46 ms
[ ] | 0% Completed | 144.57 us
[########################################] | 100% Completed | 100.44 ms
[ ] | 0% Completed | 233.83 us
[########################################] | 100% Completed | 100.56 ms
vect_magnitudes = (vectors.ivec[0] ** 2 + vectors.ivec[1] ** 2) ** 0.5
slic_vectors = vectors.ivec[:, vect_magnitudes < 20].to_markers(
color="w", sizes=5, alpha=0.5
)
s.plot()
s.add_marker([all_vectors, slic_vectors])
s.add_marker([all_vectors, slic_vectors])
[ ] | 0% Completed | 141.41 us
[########################################] | 100% Completed | 100.47 ms
[ ] | 0% Completed | 136.13 us
[########################################] | 100% Completed | 100.42 ms
[ ] | 0% Completed | 147.47 us
[########################################] | 100% Completed | 100.45 ms
[ ] | 0% Completed | 139.65 us
[########################################] | 100% Completed | 100.46 ms
[ ] | 0% Completed | 141.84 us
[########################################] | 100% Completed | 100.47 ms
slic_vectors = (vectors.ivec[:, vectors.ivec["intensity"] < 0.5]).to_markers(
color="w", sizes=5, alpha=0.5
)
s.plot()
s.add_marker([all_vectors, slic_vectors])
s.add_marker([all_vectors, slic_vectors])
[ ] | 0% Completed | 140.93 us
[########################################] | 100% Completed | 100.46 ms
[ ] | 0% Completed | 135.76 us
[########################################] | 100% Completed | 100.41 ms
[ ] | 0% Completed | 140.92 us
[########################################] | 100% Completed | 100.42 ms
[ ] | 0% Completed | 115.98 us
[########################################] | 100% Completed | 100.42 ms
Total running time of the script: (0 minutes 8.399 seconds)