Clustering Vectors#

This can be used to segment a 4-D STEM dataset into different clusters based on the diffraction pattern at each real space position.

import pyxem as pxm
from scipy.ndimage import gaussian_filter
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

# Getting the vectors for some dataset
s = pxm.data.mgo_nanocrystals(allow_download=True)
s.data[s.data < 120] = 1
s.filter(gaussian_filter, sigma=(0.5, 0.5, 0, 0), inplace=True)  # only in real space
s.template_match_disk(disk_r=3, subtract_min=False, inplace=True)
vectors = s.get_diffraction_vectors(threshold_abs=0.5, min_distance=3)

# Now we can convert the vectors into a 2D array of rows/columns
flat_vectors = (
    vectors.flatten_diffraction_vectors()
)  # flatten the vectors into a 2D array
scan = DBSCAN(eps=1.0, min_samples=2)
  0%|                                               | 0.00/104M [00:00<?, ?B/s]
  0%|                                       | 14.3k/104M [00:00<16:32, 105kB/s]
  0%|                                       | 42.0k/104M [00:00<09:19, 186kB/s]
  0%|                                        | 117k/104M [00:00<04:15, 407kB/s]
  0%|                                        | 256k/104M [00:00<02:19, 748kB/s]
  1%|▏                                      | 535k/104M [00:00<01:14, 1.40MB/s]
  1%|▍                                     | 1.07M/104M [00:00<00:39, 2.62MB/s]
  2%|▊                                     | 2.19M/104M [00:00<00:19, 5.14MB/s]
  4%|█▎                                    | 3.77M/104M [00:00<00:12, 8.20MB/s]
  5%|█▉                                    | 5.34M/104M [00:00<00:09, 10.2MB/s]
  7%|██▌                                   | 6.92M/104M [00:01<00:08, 11.6MB/s]
  8%|███                                   | 8.49M/104M [00:01<00:07, 12.6MB/s]
 10%|███▋                                  | 10.1M/104M [00:01<00:07, 13.2MB/s]
 11%|████▏                                 | 11.6M/104M [00:01<00:06, 13.7MB/s]
 13%|████▊                                 | 13.2M/104M [00:01<00:06, 14.0MB/s]
 14%|█████▍                                | 14.8M/104M [00:01<00:06, 14.2MB/s]
 16%|█████▉                                | 16.4M/104M [00:01<00:06, 14.4MB/s]
 17%|██████▌                               | 17.9M/104M [00:01<00:05, 14.4MB/s]
 19%|███████                               | 19.5M/104M [00:01<00:05, 14.5MB/s]
 20%|███████▋                              | 21.1M/104M [00:02<00:05, 14.6MB/s]
 22%|████████▎                             | 22.7M/104M [00:02<00:05, 14.6MB/s]
 23%|████████▊                             | 24.2M/104M [00:02<00:05, 14.7MB/s]
 25%|█████████▍                            | 25.8M/104M [00:02<00:05, 14.7MB/s]
 26%|█████████▉                            | 27.4M/104M [00:02<00:05, 14.7MB/s]
 28%|██████████▌                           | 29.0M/104M [00:02<00:05, 14.7MB/s]
 29%|███████████▏                          | 30.5M/104M [00:02<00:05, 14.7MB/s]
 31%|███████████▋                          | 32.1M/104M [00:02<00:04, 14.7MB/s]
 32%|████████████▎                         | 33.7M/104M [00:02<00:04, 14.8MB/s]
 34%|████████████▊                         | 35.3M/104M [00:03<00:04, 14.7MB/s]
 35%|█████████████▍                        | 36.8M/104M [00:03<00:04, 14.7MB/s]
 37%|█████████████▉                        | 38.4M/104M [00:03<00:04, 14.7MB/s]
 38%|██████████████▌                       | 40.0M/104M [00:03<00:04, 14.7MB/s]
 40%|███████████████▏                      | 41.6M/104M [00:03<00:04, 14.7MB/s]
 41%|███████████████▋                      | 43.2M/104M [00:03<00:04, 14.8MB/s]
 43%|████████████████▎                     | 44.7M/104M [00:03<00:04, 14.8MB/s]
 44%|████████████████▉                     | 46.3M/104M [00:03<00:03, 14.8MB/s]
 46%|█████████████████▍                    | 47.9M/104M [00:03<00:03, 14.8MB/s]
 47%|██████████████████                    | 49.5M/104M [00:03<00:03, 14.8MB/s]
 49%|██████████████████▌                   | 51.1M/104M [00:04<00:03, 14.8MB/s]
 50%|███████████████████▏                  | 52.7M/104M [00:04<00:03, 14.8MB/s]
 52%|███████████████████▊                  | 54.2M/104M [00:04<00:03, 14.8MB/s]
 54%|████████████████████▎                 | 55.8M/104M [00:04<00:03, 14.9MB/s]
 55%|████████████████████▉                 | 57.4M/104M [00:04<00:03, 14.8MB/s]
 57%|█████████████████████▌                | 59.0M/104M [00:04<00:03, 14.8MB/s]
 58%|██████████████████████                | 60.6M/104M [00:04<00:02, 14.9MB/s]
 60%|██████████████████████▋               | 62.2M/104M [00:04<00:02, 14.9MB/s]
 61%|███████████████████████▏              | 63.8M/104M [00:04<00:02, 14.9MB/s]
 63%|███████████████████████▊              | 65.3M/104M [00:05<00:02, 14.9MB/s]
 64%|████████████████████████▍             | 66.9M/104M [00:05<00:02, 14.8MB/s]
 66%|████████████████████████▉             | 68.5M/104M [00:05<00:02, 14.9MB/s]
 67%|█████████████████████████▌            | 70.1M/104M [00:05<00:02, 14.9MB/s]
 69%|██████████████████████████            | 71.7M/104M [00:05<00:02, 14.8MB/s]
 70%|██████████████████████████▋           | 73.3M/104M [00:05<00:02, 14.8MB/s]
 72%|███████████████████████████▎          | 74.9M/104M [00:05<00:01, 14.9MB/s]
 73%|███████████████████████████▊          | 76.5M/104M [00:05<00:01, 14.8MB/s]
 75%|████████████████████████████▍         | 78.0M/104M [00:05<00:01, 14.8MB/s]
 76%|█████████████████████████████         | 79.6M/104M [00:06<00:01, 14.8MB/s]
 78%|█████████████████████████████▌        | 81.2M/104M [00:06<00:01, 14.9MB/s]
 79%|██████████████████████████████▏       | 82.8M/104M [00:06<00:01, 14.8MB/s]
 81%|██████████████████████████████▊       | 84.4M/104M [00:06<00:01, 14.9MB/s]
 83%|███████████████████████████████▎      | 86.0M/104M [00:06<00:01, 14.8MB/s]
 84%|███████████████████████████████▉      | 87.6M/104M [00:06<00:01, 15.1MB/s]
 86%|████████████████████████████████▌     | 89.3M/104M [00:06<00:00, 15.1MB/s]
 87%|█████████████████████████████████     | 90.9M/104M [00:06<00:00, 15.2MB/s]
 89%|█████████████████████████████████▋    | 92.5M/104M [00:06<00:00, 15.0MB/s]
 90%|██████████████████████████████████▎   | 94.1M/104M [00:06<00:00, 15.1MB/s]
 92%|██████████████████████████████████▊   | 95.7M/104M [00:07<00:00, 15.0MB/s]
 93%|███████████████████████████████████▍  | 97.3M/104M [00:07<00:00, 15.0MB/s]
 95%|████████████████████████████████████  | 98.9M/104M [00:07<00:00, 15.0MB/s]
 96%|█████████████████████████████████████▌ | 100M/104M [00:07<00:00, 15.0MB/s]
 98%|██████████████████████████████████████▏| 102M/104M [00:07<00:00, 15.0MB/s]
 99%|██████████████████████████████████████▊| 104M/104M [00:07<00:00, 14.9MB/s]
  0%|                                               | 0.00/104M [00:00<?, ?B/s]
100%|████████████████████████████████████████| 104M/104M [00:00<00:00, 306GB/s]

[                                        ] | 0% Completed | 152.35 us
[                                        ] | 0% Completed | 100.50 ms
[                                        ] | 0% Completed | 201.21 ms
[                                        ] | 0% Completed | 301.62 ms
[                                        ] | 0% Completed | 402.00 ms
[                                        ] | 0% Completed | 502.34 ms
[                                        ] | 0% Completed | 602.79 ms
[                                        ] | 0% Completed | 703.18 ms
[                                        ] | 0% Completed | 803.76 ms
[                                        ] | 0% Completed | 904.18 ms
[                                        ] | 0% Completed | 1.00 s
[                                        ] | 0% Completed | 1.11 s
[                                        ] | 0% Completed | 1.21 s
[                                        ] | 0% Completed | 1.31 s
[#                                       ] | 4% Completed | 1.41 s
[###                                     ] | 8% Completed | 1.51 s
[###                                     ] | 8% Completed | 1.61 s
[###                                     ] | 8% Completed | 1.71 s
[###                                     ] | 8% Completed | 1.81 s
[###                                     ] | 8% Completed | 1.91 s
[###                                     ] | 8% Completed | 2.01 s
[###                                     ] | 8% Completed | 2.11 s
[###                                     ] | 8% Completed | 2.21 s
[###                                     ] | 8% Completed | 2.31 s
[###                                     ] | 8% Completed | 2.41 s
[###                                     ] | 8% Completed | 2.51 s
[###                                     ] | 8% Completed | 2.61 s
[###                                     ] | 8% Completed | 2.71 s
[####                                    ] | 12% Completed | 2.81 s
[######                                  ] | 16% Completed | 2.91 s
[######                                  ] | 16% Completed | 3.01 s
[######                                  ] | 16% Completed | 3.11 s
[######                                  ] | 16% Completed | 3.21 s
[######                                  ] | 16% Completed | 3.31 s
[######                                  ] | 16% Completed | 3.41 s
[######                                  ] | 16% Completed | 3.52 s
[######                                  ] | 16% Completed | 3.62 s
[######                                  ] | 16% Completed | 3.72 s
[######                                  ] | 16% Completed | 3.82 s
[######                                  ] | 16% Completed | 3.92 s
[######                                  ] | 16% Completed | 4.02 s
[######                                  ] | 16% Completed | 4.12 s
[########                                ] | 20% Completed | 4.22 s
[#########                               ] | 24% Completed | 4.32 s
[#########                               ] | 24% Completed | 4.42 s
[#########                               ] | 24% Completed | 4.52 s
[#########                               ] | 24% Completed | 4.62 s
[#########                               ] | 24% Completed | 4.72 s
[#########                               ] | 24% Completed | 4.82 s
[#########                               ] | 24% Completed | 4.92 s
[#########                               ] | 24% Completed | 5.02 s
[#########                               ] | 24% Completed | 5.12 s
[#########                               ] | 24% Completed | 5.22 s
[#########                               ] | 24% Completed | 5.32 s
[#########                               ] | 24% Completed | 5.43 s
[#########                               ] | 24% Completed | 5.53 s
[###########                             ] | 28% Completed | 5.63 s
[############                            ] | 32% Completed | 5.73 s
[############                            ] | 32% Completed | 5.83 s
[############                            ] | 32% Completed | 5.93 s
[############                            ] | 32% Completed | 6.03 s
[############                            ] | 32% Completed | 6.13 s
[############                            ] | 32% Completed | 6.23 s
[############                            ] | 32% Completed | 6.33 s
[############                            ] | 32% Completed | 6.43 s
[############                            ] | 32% Completed | 6.53 s
[############                            ] | 32% Completed | 6.63 s
[############                            ] | 32% Completed | 6.73 s
[############                            ] | 32% Completed | 6.83 s
[############                            ] | 32% Completed | 6.93 s
[############                            ] | 32% Completed | 7.03 s
[################                        ] | 40% Completed | 7.13 s
[################                        ] | 40% Completed | 7.23 s
[################                        ] | 40% Completed | 7.33 s
[################                        ] | 40% Completed | 7.43 s
[################                        ] | 40% Completed | 7.54 s
[################                        ] | 40% Completed | 7.64 s
[################                        ] | 40% Completed | 7.74 s
[################                        ] | 40% Completed | 7.84 s
[################                        ] | 40% Completed | 7.94 s
[################                        ] | 40% Completed | 8.04 s
[################                        ] | 40% Completed | 8.14 s
[################                        ] | 40% Completed | 8.24 s
[################                        ] | 40% Completed | 8.34 s
[################                        ] | 40% Completed | 8.44 s
[###################                     ] | 48% Completed | 8.54 s
[###################                     ] | 48% Completed | 8.64 s
[###################                     ] | 48% Completed | 8.74 s
[###################                     ] | 48% Completed | 8.84 s
[###################                     ] | 48% Completed | 8.94 s
[###################                     ] | 48% Completed | 9.04 s
[###################                     ] | 48% Completed | 9.14 s
[###################                     ] | 48% Completed | 9.24 s
[###################                     ] | 48% Completed | 9.34 s
[###################                     ] | 48% Completed | 9.44 s
[###################                     ] | 48% Completed | 9.54 s
[###################                     ] | 48% Completed | 9.64 s
[###################                     ] | 48% Completed | 9.74 s
[###################                     ] | 48% Completed | 9.84 s
[######################                  ] | 56% Completed | 9.95 s
[######################                  ] | 56% Completed | 10.05 s
[######################                  ] | 56% Completed | 10.15 s
[######################                  ] | 56% Completed | 10.25 s
[######################                  ] | 56% Completed | 10.35 s
[######################                  ] | 56% Completed | 10.45 s
[######################                  ] | 56% Completed | 10.55 s
[######################                  ] | 56% Completed | 10.65 s
[######################                  ] | 56% Completed | 10.75 s
[######################                  ] | 56% Completed | 10.85 s
[######################                  ] | 56% Completed | 10.95 s
[######################                  ] | 56% Completed | 11.05 s
[######################                  ] | 56% Completed | 11.15 s
[######################                  ] | 56% Completed | 11.25 s
[#########################               ] | 64% Completed | 11.35 s
[#########################               ] | 64% Completed | 11.45 s
[#########################               ] | 64% Completed | 11.55 s
[#########################               ] | 64% Completed | 11.65 s
[#########################               ] | 64% Completed | 11.75 s
[#########################               ] | 64% Completed | 11.85 s
[#########################               ] | 64% Completed | 11.95 s
[#########################               ] | 64% Completed | 12.05 s
[#########################               ] | 64% Completed | 12.15 s
[#########################               ] | 64% Completed | 12.26 s
[#########################               ] | 64% Completed | 12.36 s
[#########################               ] | 64% Completed | 12.46 s
[#########################               ] | 64% Completed | 12.56 s
[#########################               ] | 64% Completed | 12.66 s
[###########################             ] | 68% Completed | 12.76 s
[############################            ] | 72% Completed | 12.86 s
[############################            ] | 72% Completed | 12.96 s
[############################            ] | 72% Completed | 13.06 s
[############################            ] | 72% Completed | 13.16 s
[############################            ] | 72% Completed | 13.26 s
[############################            ] | 72% Completed | 13.36 s
[############################            ] | 72% Completed | 13.46 s
[############################            ] | 72% Completed | 13.56 s
[############################            ] | 72% Completed | 13.66 s
[############################            ] | 72% Completed | 13.76 s
[############################            ] | 72% Completed | 13.86 s
[############################            ] | 72% Completed | 13.96 s
[############################            ] | 72% Completed | 14.06 s
[##############################          ] | 76% Completed | 14.16 s
[################################        ] | 80% Completed | 14.26 s
[################################        ] | 80% Completed | 14.36 s
[################################        ] | 80% Completed | 14.47 s
[################################        ] | 80% Completed | 14.57 s
[################################        ] | 80% Completed | 14.67 s
[################################        ] | 80% Completed | 14.77 s
[################################        ] | 80% Completed | 14.87 s
[################################        ] | 80% Completed | 14.97 s
[################################        ] | 80% Completed | 15.07 s
[################################        ] | 80% Completed | 15.17 s
[################################        ] | 80% Completed | 15.27 s
[################################        ] | 80% Completed | 15.37 s
[################################        ] | 80% Completed | 15.47 s
[#################################       ] | 84% Completed | 15.57 s
[###################################     ] | 88% Completed | 15.67 s
[###################################     ] | 88% Completed | 15.77 s
[###################################     ] | 88% Completed | 15.87 s
[###################################     ] | 88% Completed | 15.97 s
[###################################     ] | 88% Completed | 16.07 s
[###################################     ] | 88% Completed | 16.17 s
[###################################     ] | 88% Completed | 16.27 s
[###################################     ] | 88% Completed | 16.37 s
[###################################     ] | 88% Completed | 16.47 s
[###################################     ] | 88% Completed | 16.57 s
[###################################     ] | 88% Completed | 16.67 s
[###################################     ] | 88% Completed | 16.77 s
[###################################     ] | 88% Completed | 16.88 s
[####################################    ] | 92% Completed | 16.98 s
[######################################  ] | 96% Completed | 17.08 s
[######################################  ] | 96% Completed | 17.18 s
[######################################  ] | 96% Completed | 17.28 s
[######################################  ] | 96% Completed | 17.38 s
[######################################  ] | 96% Completed | 17.48 s
[######################################  ] | 96% Completed | 17.58 s
[########################################] | 100% Completed | 17.68 s

[                                        ] | 0% Completed | 163.19 us
[                                        ] | 0% Completed | 100.44 ms
[                                        ] | 0% Completed | 200.80 ms
[                                        ] | 0% Completed | 301.20 ms
[                                        ] | 0% Completed | 401.51 ms
[                                        ] | 0% Completed | 501.94 ms
[                                        ] | 0% Completed | 602.38 ms
[                                        ] | 0% Completed | 702.79 ms
[                                        ] | 0% Completed | 803.10 ms
[###                                     ] | 8% Completed | 903.49 ms
[###                                     ] | 8% Completed | 1.00 s
[###                                     ] | 8% Completed | 1.10 s
[###                                     ] | 8% Completed | 1.20 s
[###                                     ] | 8% Completed | 1.31 s
[###                                     ] | 8% Completed | 1.41 s
[###                                     ] | 8% Completed | 1.51 s
[###                                     ] | 8% Completed | 1.61 s
[###                                     ] | 8% Completed | 1.71 s
[####                                    ] | 12% Completed | 1.81 s
[####                                    ] | 12% Completed | 1.91 s
[####                                    ] | 12% Completed | 2.01 s
[####                                    ] | 12% Completed | 2.11 s
[####                                    ] | 12% Completed | 2.21 s
[####                                    ] | 12% Completed | 2.31 s
[####                                    ] | 12% Completed | 2.41 s
[####                                    ] | 12% Completed | 2.51 s
[####                                    ] | 12% Completed | 2.61 s
[####                                    ] | 12% Completed | 2.71 s
[######                                  ] | 16% Completed | 2.81 s
[######                                  ] | 16% Completed | 2.91 s
[######                                  ] | 16% Completed | 3.01 s
[######                                  ] | 16% Completed | 3.11 s
[######                                  ] | 16% Completed | 3.21 s
[######                                  ] | 16% Completed | 3.32 s
[######                                  ] | 16% Completed | 3.42 s
[########                                ] | 20% Completed | 3.52 s
[########                                ] | 20% Completed | 3.62 s
[#########                               ] | 24% Completed | 3.72 s
[#########                               ] | 24% Completed | 3.82 s
[#########                               ] | 24% Completed | 3.92 s
[#########                               ] | 24% Completed | 4.02 s
[#########                               ] | 24% Completed | 4.12 s
[#########                               ] | 24% Completed | 4.22 s
[###########                             ] | 28% Completed | 4.32 s
[###########                             ] | 28% Completed | 4.42 s
[###########                             ] | 28% Completed | 4.52 s
[############                            ] | 32% Completed | 4.62 s
[############                            ] | 32% Completed | 4.72 s
[############                            ] | 32% Completed | 4.82 s
[############                            ] | 32% Completed | 4.93 s
[############                            ] | 32% Completed | 5.03 s
[############                            ] | 32% Completed | 5.13 s
[############                            ] | 32% Completed | 5.23 s
[############                            ] | 32% Completed | 5.33 s
[############                            ] | 32% Completed | 5.43 s
[############                            ] | 32% Completed | 5.53 s
[############                            ] | 32% Completed | 5.63 s
[############                            ] | 32% Completed | 5.73 s
[################                        ] | 40% Completed | 5.83 s
[################                        ] | 40% Completed | 5.93 s
[################                        ] | 40% Completed | 6.03 s
[################                        ] | 40% Completed | 6.13 s
[################                        ] | 40% Completed | 6.23 s
[################                        ] | 40% Completed | 6.33 s
[################                        ] | 40% Completed | 6.43 s
[################                        ] | 40% Completed | 6.53 s
[#################                       ] | 44% Completed | 6.63 s
[###################                     ] | 48% Completed | 6.73 s
[###################                     ] | 48% Completed | 6.83 s
[###################                     ] | 48% Completed | 6.93 s
[###################                     ] | 48% Completed | 7.03 s
[###################                     ] | 48% Completed | 7.14 s
[###################                     ] | 48% Completed | 7.24 s
[###################                     ] | 48% Completed | 7.34 s
[###################                     ] | 48% Completed | 7.44 s
[###################                     ] | 48% Completed | 7.54 s
[###################                     ] | 48% Completed | 7.64 s
[####################                    ] | 52% Completed | 7.74 s
[####################                    ] | 52% Completed | 7.84 s
[####################                    ] | 52% Completed | 7.94 s
[####################                    ] | 52% Completed | 8.04 s
[####################                    ] | 52% Completed | 8.14 s
[######################                  ] | 56% Completed | 8.24 s
[######################                  ] | 56% Completed | 8.34 s
[######################                  ] | 56% Completed | 8.44 s
[######################                  ] | 56% Completed | 8.54 s
[######################                  ] | 56% Completed | 8.64 s
[######################                  ] | 56% Completed | 8.74 s
[######################                  ] | 56% Completed | 8.84 s
[######################                  ] | 56% Completed | 8.94 s
[########################                ] | 60% Completed | 9.04 s
[########################                ] | 60% Completed | 9.15 s
[########################                ] | 60% Completed | 9.25 s
[########################                ] | 60% Completed | 9.35 s
[########################                ] | 60% Completed | 9.45 s
[#########################               ] | 64% Completed | 9.55 s
[#########################               ] | 64% Completed | 9.65 s
[#########################               ] | 64% Completed | 9.75 s
[#########################               ] | 64% Completed | 9.85 s
[#########################               ] | 64% Completed | 9.95 s
[#########################               ] | 64% Completed | 10.05 s
[#########################               ] | 64% Completed | 10.15 s
[#########################               ] | 64% Completed | 10.25 s
[#########################               ] | 64% Completed | 10.35 s
[###########################             ] | 68% Completed | 10.45 s
[###########################             ] | 68% Completed | 10.55 s
[###########################             ] | 68% Completed | 10.65 s
[###########################             ] | 68% Completed | 10.75 s
[###########################             ] | 68% Completed | 10.85 s
[############################            ] | 72% Completed | 10.95 s
[############################            ] | 72% Completed | 11.06 s
[############################            ] | 72% Completed | 11.16 s
[############################            ] | 72% Completed | 11.26 s
[############################            ] | 72% Completed | 11.36 s
[############################            ] | 72% Completed | 11.46 s
[############################            ] | 72% Completed | 11.56 s
[############################            ] | 72% Completed | 11.66 s
[############################            ] | 72% Completed | 11.76 s
[##############################          ] | 76% Completed | 11.86 s
[##############################          ] | 76% Completed | 11.96 s
[##############################          ] | 76% Completed | 12.06 s
[################################        ] | 80% Completed | 12.16 s
[################################        ] | 80% Completed | 12.26 s
[################################        ] | 80% Completed | 12.36 s
[################################        ] | 80% Completed | 12.46 s
[################################        ] | 80% Completed | 12.56 s
[################################        ] | 80% Completed | 12.66 s
[################################        ] | 80% Completed | 12.76 s
[################################        ] | 80% Completed | 12.87 s
[################################        ] | 80% Completed | 12.97 s
[#################################       ] | 84% Completed | 13.07 s
[#################################       ] | 84% Completed | 13.17 s
[#################################       ] | 84% Completed | 13.27 s
[#################################       ] | 84% Completed | 13.37 s
[###################################     ] | 88% Completed | 13.47 s
[###################################     ] | 88% Completed | 13.57 s
[###################################     ] | 88% Completed | 13.67 s
[###################################     ] | 88% Completed | 13.77 s
[####################################    ] | 92% Completed | 13.87 s
[####################################    ] | 92% Completed | 13.97 s
[####################################    ] | 92% Completed | 14.07 s
[####################################    ] | 92% Completed | 14.17 s
[######################################  ] | 96% Completed | 14.27 s
[######################################  ] | 96% Completed | 14.37 s
[########################################] | 100% Completed | 14.47 s

[                                        ] | 0% Completed | 158.02 us
[                                        ] | 0% Completed | 105.57 ms
[########################################] | 100% Completed | 205.95 ms

Clustering the Vectors#

It is very important that we first normalize the real and reciprocal space distances The column scale factors map the real space and reciprocal space distances to the same scale Here this means that the clustering algorithm operates on 10 nm in real space and .1 nm^-1 in reciprocal space based on the units for the vectors.

clustered = flat_vectors.cluster(
    scan,
    column_scale_factors=[10, 10, 0.05, 0.05],
    columns=[0, 1, 2, 3],
    min_vectors=40,
)
m, p = clustered.to_markers(s, alpha=0.8, get_polygons=True)
s.plot()
s.add_marker(m)
s.add_marker(p, plot_on_signal=False)
  • MgO Nano-Crystals Navigator
  • MgO Nano-Crystals Signal
[                                        ] | 0% Completed | 161.38 us
[                                        ] | 0% Completed | 100.49 ms
[                                        ] | 0% Completed | 200.92 ms
[                                        ] | 0% Completed | 301.34 ms
[                                        ] | 0% Completed | 401.76 ms
[                                        ] | 0% Completed | 502.20 ms
[                                        ] | 0% Completed | 602.62 ms
[                                        ] | 0% Completed | 718.96 ms
[########################################] | 100% Completed | 819.39 ms
vect = clustered.map_vectors(
    pxm.utils.vectors.column_mean,
    columns=[0, 1],
    label_index=-1,
    dtype=float,
    shape=(2,),
)
plt.figure()
plt.scatter(vect[:, 1], vect[:, 0])
clustering vectors
/home/docs/checkouts/readthedocs.org/user_builds/pyxem/envs/v0.19.1/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3504: RuntimeWarning: Mean of empty slice.
  return _methods._mean(a, axis=axis, dtype=dtype,
/home/docs/checkouts/readthedocs.org/user_builds/pyxem/envs/v0.19.1/lib/python3.10/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(

<matplotlib.collections.PathCollection object at 0x7f636e52a740>
clusterer = DBSCAN(min_samples=2, eps=20)

clustered2 = clustered.cluster_labeled_vectors(method=clusterer)
m, p = clustered2.to_markers(s, alpha=0.8, get_polygons=True)
7 : Clusters Found!

Visualizing the Clustering#

This clustering is decent. It shows that there might be some small tilt boundaries in the data which segment some of the nano-crystals into different clusters. It also shows the effect of using a phosphor screen which has some pretty severe after glow. This results in a smearing of the features and elongated clusters along the scan direction.

s.plot()
s.add_marker(m)
s.add_marker(p, plot_on_signal=False)
  • MgO Nano-Crystals Navigator
  • MgO Nano-Crystals Signal
# sphinx_gallery_thumbnail_number = 3

Total running time of the script: (0 minutes 52.123 seconds)

Gallery generated by Sphinx-Gallery