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%|                                       | 13.3k/104M [00:00<16:16, 107kB/s]
  0%|                                       | 59.4k/104M [00:00<06:02, 287kB/s]
  0%|                                        | 138k/104M [00:00<03:32, 489kB/s]
  0%|                                        | 299k/104M [00:00<01:57, 888kB/s]
  1%|▏                                      | 614k/104M [00:00<01:03, 1.64MB/s]
  1%|▍                                     | 1.27M/104M [00:00<00:32, 3.17MB/s]
  2%|▉                                     | 2.56M/104M [00:00<00:16, 6.11MB/s]
  4%|█▍                                    | 3.89M/104M [00:00<00:12, 8.15MB/s]
  5%|█▉                                    | 5.47M/104M [00:00<00:09, 10.3MB/s]
  7%|██▌                                   | 6.91M/104M [00:01<00:08, 11.3MB/s]
  8%|███                                   | 8.50M/104M [00:01<00:07, 12.4MB/s]
 10%|███▋                                  | 10.0M/104M [00:01<00:07, 13.0MB/s]
 11%|████▏                                 | 11.6M/104M [00:01<00:06, 13.6MB/s]
 13%|████▊                                 | 13.2M/104M [00:01<00:06, 14.0MB/s]
 14%|█████▎                                | 14.7M/104M [00:01<00:06, 14.3MB/s]
 16%|█████▉                                | 16.3M/104M [00:01<00:06, 14.5MB/s]
 17%|██████▌                               | 17.8M/104M [00:01<00:05, 14.5MB/s]
 19%|███████                               | 19.4M/104M [00:01<00:05, 14.6MB/s]
 20%|███████▋                              | 21.0M/104M [00:02<00:05, 14.6MB/s]
 22%|████████▏                             | 22.6M/104M [00:02<00:05, 14.7MB/s]
 23%|████████▊                             | 24.1M/104M [00:02<00:05, 14.8MB/s]
 25%|█████████▎                            | 25.7M/104M [00:02<00:05, 14.9MB/s]
 26%|█████████▉                            | 27.3M/104M [00:02<00:05, 14.9MB/s]
 28%|██████████▌                           | 28.9M/104M [00:02<00:05, 14.9MB/s]
 29%|███████████                           | 30.4M/104M [00:02<00:04, 14.9MB/s]
 31%|███████████▋                          | 32.0M/104M [00:02<00:04, 14.9MB/s]
 32%|████████████▏                         | 33.6M/104M [00:02<00:04, 14.7MB/s]
 34%|████████████▊                         | 35.2M/104M [00:02<00:04, 14.8MB/s]
 35%|█████████████▎                        | 36.6M/104M [00:03<00:04, 14.5MB/s]
 37%|█████████████▉                        | 38.2M/104M [00:03<00:04, 14.7MB/s]
 38%|██████████████▍                       | 39.7M/104M [00:03<00:04, 14.4MB/s]
 40%|███████████████                       | 41.2M/104M [00:03<00:04, 14.6MB/s]
 41%|███████████████▌                      | 42.7M/104M [00:03<00:04, 14.3MB/s]
 42%|████████████████▏                     | 44.3M/104M [00:03<00:04, 14.4MB/s]
 44%|████████████████▋                     | 45.8M/104M [00:03<00:04, 14.4MB/s]
 45%|█████████████████▏                    | 47.2M/104M [00:03<00:05, 10.0MB/s]
 47%|█████████████████▋                    | 48.7M/104M [00:04<00:05, 11.0MB/s]
 48%|██████████████████▏                   | 50.0M/104M [00:04<00:04, 10.9MB/s]
 49%|██████████████████▋                   | 51.4M/104M [00:04<00:04, 11.8MB/s]
 51%|███████████████████▎                  | 52.9M/104M [00:04<00:04, 12.5MB/s]
 52%|███████████████████▊                  | 54.5M/104M [00:04<00:03, 13.2MB/s]
 54%|████████████████████▍                 | 56.1M/104M [00:04<00:03, 13.8MB/s]
 55%|█████████████████████                 | 57.7M/104M [00:04<00:03, 14.2MB/s]
 57%|█████████████████████▌                | 59.3M/104M [00:04<00:03, 14.4MB/s]
 58%|██████████████████████▏               | 60.9M/104M [00:04<00:02, 14.6MB/s]
 60%|██████████████████████▊               | 62.5M/104M [00:05<00:02, 14.8MB/s]
 61%|███████████████████████▎              | 64.1M/104M [00:05<00:02, 15.0MB/s]
 63%|███████████████████████▉              | 65.7M/104M [00:05<00:02, 15.0MB/s]
 65%|████████████████████████▌             | 67.3M/104M [00:05<00:02, 15.1MB/s]
 66%|█████████████████████████             | 68.9M/104M [00:05<00:02, 15.1MB/s]
 68%|█████████████████████████▋            | 70.5M/104M [00:05<00:02, 15.1MB/s]
 69%|██████████████████████████▎           | 72.1M/104M [00:05<00:02, 15.1MB/s]
 71%|██████████████████████████▊           | 73.7M/104M [00:05<00:02, 15.1MB/s]
 72%|███████████████████████████▍          | 75.3M/104M [00:05<00:01, 15.2MB/s]
 74%|████████████████████████████          | 76.9M/104M [00:05<00:01, 15.2MB/s]
 75%|████████████████████████████▌         | 78.5M/104M [00:06<00:01, 15.3MB/s]
 77%|█████████████████████████████▏        | 80.2M/104M [00:06<00:01, 15.3MB/s]
 78%|█████████████████████████████▊        | 81.8M/104M [00:06<00:01, 15.3MB/s]
 80%|██████████████████████████████▍       | 83.4M/104M [00:06<00:01, 15.2MB/s]
 82%|██████████████████████████████▉       | 85.0M/104M [00:06<00:01, 15.4MB/s]
 83%|███████████████████████████████▌      | 86.7M/104M [00:06<00:01, 15.4MB/s]
 85%|████████████████████████████████▏     | 88.3M/104M [00:06<00:01, 15.4MB/s]
 86%|████████████████████████████████▊     | 89.9M/104M [00:06<00:00, 15.4MB/s]
 88%|█████████████████████████████████▎    | 91.5M/104M [00:06<00:00, 15.4MB/s]
 89%|█████████████████████████████████▉    | 93.2M/104M [00:07<00:00, 15.4MB/s]
 91%|██████████████████████████████████▌   | 94.8M/104M [00:07<00:00, 15.5MB/s]
 92%|███████████████████████████████████▏  | 96.4M/104M [00:07<00:00, 15.5MB/s]
 94%|███████████████████████████████████▋  | 98.1M/104M [00:07<00:00, 15.4MB/s]
 96%|████████████████████████████████████▎ | 99.7M/104M [00:07<00:00, 15.4MB/s]
 97%|█████████████████████████████████████▉ | 101M/104M [00:07<00:00, 15.5MB/s]
 99%|██████████████████████████████████████▌| 103M/104M [00:07<00:00, 15.5MB/s]
  0%|                                               | 0.00/104M [00:00<?, ?B/s]
100%|████████████████████████████████████████| 104M/104M [00:00<00:00, 276GB/s]

[                                        ] | 0% Completed | 173.51 us
[                                        ] | 0% Completed | 119.28 ms
[                                        ] | 0% Completed | 219.59 ms
[                                        ] | 0% Completed | 319.90 ms
[                                        ] | 0% Completed | 426.94 ms
[                                        ] | 0% Completed | 527.26 ms
[                                        ] | 0% Completed | 627.61 ms
[                                        ] | 0% Completed | 728.09 ms
[                                        ] | 0% Completed | 828.41 ms
[                                        ] | 0% Completed | 928.72 ms
[                                        ] | 0% Completed | 1.03 s
[                                        ] | 0% Completed | 1.13 s
[                                        ] | 0% Completed | 1.23 s
[                                        ] | 0% Completed | 1.33 s
[                                        ] | 0% Completed | 1.43 s
[                                        ] | 0% Completed | 1.53 s
[                                        ] | 0% Completed | 1.63 s
[                                        ] | 0% Completed | 1.74 s
[###                                     ] | 8% Completed | 1.84 s
[###                                     ] | 8% Completed | 1.94 s
[###                                     ] | 8% Completed | 2.04 s
[###                                     ] | 8% Completed | 2.14 s
[###                                     ] | 8% Completed | 2.24 s
[###                                     ] | 8% Completed | 2.34 s
[###                                     ] | 8% Completed | 2.44 s
[###                                     ] | 8% Completed | 2.54 s
[###                                     ] | 8% Completed | 2.64 s
[###                                     ] | 8% Completed | 2.74 s
[###                                     ] | 8% Completed | 2.84 s
[###                                     ] | 8% Completed | 2.94 s
[###                                     ] | 8% Completed | 3.04 s
[###                                     ] | 8% Completed | 3.14 s
[###                                     ] | 8% Completed | 3.24 s
[###                                     ] | 8% Completed | 3.34 s
[###                                     ] | 8% Completed | 3.44 s
[####                                    ] | 12% Completed | 3.55 s
[######                                  ] | 16% Completed | 3.68 s
[######                                  ] | 16% Completed | 3.78 s
[######                                  ] | 16% Completed | 3.88 s
[######                                  ] | 16% Completed | 3.98 s
[######                                  ] | 16% Completed | 4.08 s
[######                                  ] | 16% Completed | 4.18 s
[######                                  ] | 16% Completed | 4.28 s
[######                                  ] | 16% Completed | 4.38 s
[######                                  ] | 16% Completed | 4.48 s
[######                                  ] | 16% Completed | 4.58 s
[######                                  ] | 16% Completed | 4.68 s
[######                                  ] | 16% Completed | 4.78 s
[######                                  ] | 16% Completed | 4.88 s
[######                                  ] | 16% Completed | 4.98 s
[######                                  ] | 16% Completed | 5.08 s
[######                                  ] | 16% Completed | 5.18 s
[########                                ] | 20% Completed | 5.29 s
[#########                               ] | 24% Completed | 5.39 s
[#########                               ] | 24% Completed | 5.49 s
[#########                               ] | 24% Completed | 5.59 s
[#########                               ] | 24% Completed | 5.70 s
[#########                               ] | 24% Completed | 5.80 s
[#########                               ] | 24% Completed | 5.90 s
[#########                               ] | 24% Completed | 6.00 s
[#########                               ] | 24% Completed | 6.10 s
[#########                               ] | 24% Completed | 6.20 s
[#########                               ] | 24% Completed | 6.30 s
[#########                               ] | 24% Completed | 6.40 s
[#########                               ] | 24% Completed | 6.50 s
[#########                               ] | 24% Completed | 6.60 s
[#########                               ] | 24% Completed | 6.70 s
[#########                               ] | 24% Completed | 6.80 s
[#########                               ] | 24% Completed | 6.90 s
[#########                               ] | 24% Completed | 7.00 s
[###########                             ] | 28% Completed | 7.10 s
[############                            ] | 32% Completed | 7.20 s
[############                            ] | 32% Completed | 7.30 s
[############                            ] | 32% Completed | 7.40 s
[############                            ] | 32% Completed | 7.50 s
[############                            ] | 32% Completed | 7.60 s
[############                            ] | 32% Completed | 7.70 s
[############                            ] | 32% Completed | 7.80 s
[############                            ] | 32% Completed | 7.90 s
[############                            ] | 32% Completed | 8.00 s
[############                            ] | 32% Completed | 8.10 s
[############                            ] | 32% Completed | 8.20 s
[############                            ] | 32% Completed | 8.30 s
[############                            ] | 32% Completed | 8.40 s
[############                            ] | 32% Completed | 8.51 s
[############                            ] | 32% Completed | 8.61 s
[############                            ] | 32% Completed | 8.71 s
[############                            ] | 32% Completed | 8.81 s
[##############                          ] | 36% Completed | 8.91 s
[################                        ] | 40% Completed | 9.01 s
[################                        ] | 40% Completed | 9.11 s
[################                        ] | 40% Completed | 9.21 s
[################                        ] | 40% Completed | 9.31 s
[################                        ] | 40% Completed | 9.41 s
[################                        ] | 40% Completed | 9.51 s
[################                        ] | 40% Completed | 9.61 s
[################                        ] | 40% Completed | 9.72 s
[################                        ] | 40% Completed | 9.82 s
[################                        ] | 40% Completed | 9.92 s
[################                        ] | 40% Completed | 10.02 s
[################                        ] | 40% Completed | 10.12 s
[################                        ] | 40% Completed | 10.22 s
[################                        ] | 40% Completed | 10.33 s
[################                        ] | 40% Completed | 10.43 s
[################                        ] | 40% Completed | 10.53 s
[#################                       ] | 44% Completed | 10.63 s
[###################                     ] | 48% Completed | 10.73 s
[###################                     ] | 48% Completed | 10.83 s
[###################                     ] | 48% Completed | 10.93 s
[###################                     ] | 48% Completed | 11.03 s
[###################                     ] | 48% Completed | 11.13 s
[###################                     ] | 48% Completed | 11.23 s
[###################                     ] | 48% Completed | 11.33 s
[###################                     ] | 48% Completed | 11.43 s
[###################                     ] | 48% Completed | 11.53 s
[###################                     ] | 48% Completed | 11.64 s
[###################                     ] | 48% Completed | 11.74 s
[###################                     ] | 48% Completed | 11.84 s
[###################                     ] | 48% Completed | 11.94 s
[###################                     ] | 48% Completed | 12.04 s
[###################                     ] | 48% Completed | 12.14 s
[###################                     ] | 48% Completed | 12.24 s
[###################                     ] | 48% Completed | 12.34 s
[####################                    ] | 52% Completed | 12.44 s
[######################                  ] | 56% Completed | 12.54 s
[######################                  ] | 56% Completed | 12.65 s
[######################                  ] | 56% Completed | 12.75 s
[######################                  ] | 56% Completed | 12.85 s
[######################                  ] | 56% Completed | 12.95 s
[######################                  ] | 56% Completed | 13.05 s
[######################                  ] | 56% Completed | 13.15 s
[######################                  ] | 56% Completed | 13.25 s
[######################                  ] | 56% Completed | 13.35 s
[######################                  ] | 56% Completed | 13.45 s
[######################                  ] | 56% Completed | 13.55 s
[######################                  ] | 56% Completed | 13.65 s
[######################                  ] | 56% Completed | 13.75 s
[######################                  ] | 56% Completed | 13.85 s
[######################                  ] | 56% Completed | 13.95 s
[######################                  ] | 56% Completed | 14.05 s
[########################                ] | 60% Completed | 14.15 s
[########################                ] | 60% Completed | 14.25 s
[#########################               ] | 64% Completed | 14.35 s
[#########################               ] | 64% Completed | 14.45 s
[#########################               ] | 64% Completed | 14.55 s
[#########################               ] | 64% Completed | 14.66 s
[#########################               ] | 64% Completed | 14.76 s
[#########################               ] | 64% Completed | 14.86 s
[#########################               ] | 64% Completed | 14.96 s
[#########################               ] | 64% Completed | 15.06 s
[#########################               ] | 64% Completed | 15.16 s
[#########################               ] | 64% Completed | 15.26 s
[#########################               ] | 64% Completed | 15.36 s
[#########################               ] | 64% Completed | 15.46 s
[#########################               ] | 64% Completed | 15.56 s
[#########################               ] | 64% Completed | 15.66 s
[#########################               ] | 64% Completed | 15.77 s
[#########################               ] | 64% Completed | 15.87 s
[###########################             ] | 68% Completed | 15.97 s
[###########################             ] | 68% Completed | 16.08 s
[############################            ] | 72% Completed | 16.18 s
[############################            ] | 72% Completed | 16.28 s
[############################            ] | 72% Completed | 16.38 s
[############################            ] | 72% Completed | 16.48 s
[############################            ] | 72% Completed | 16.58 s
[############################            ] | 72% Completed | 16.68 s
[############################            ] | 72% Completed | 16.78 s
[############################            ] | 72% Completed | 16.88 s
[############################            ] | 72% Completed | 16.98 s
[############################            ] | 72% Completed | 17.08 s
[############################            ] | 72% Completed | 17.18 s
[############################            ] | 72% Completed | 17.28 s
[############################            ] | 72% Completed | 17.38 s
[############################            ] | 72% Completed | 17.48 s
[############################            ] | 72% Completed | 17.59 s
[#############################           ] | 74% Completed | 17.70 s
[##############################          ] | 76% Completed | 17.80 s
[################################        ] | 80% Completed | 17.90 s
[################################        ] | 80% Completed | 18.00 s
[################################        ] | 80% Completed | 18.10 s
[################################        ] | 80% Completed | 18.20 s
[################################        ] | 80% Completed | 18.30 s
[################################        ] | 80% Completed | 18.40 s
[################################        ] | 80% Completed | 18.50 s
[################################        ] | 80% Completed | 18.60 s
[################################        ] | 80% Completed | 18.70 s
[################################        ] | 80% Completed | 18.80 s
[################################        ] | 80% Completed | 18.90 s
[################################        ] | 80% Completed | 19.00 s
[################################        ] | 80% Completed | 19.10 s
[################################        ] | 80% Completed | 19.20 s
[################################        ] | 80% Completed | 19.30 s
[################################        ] | 80% Completed | 19.40 s
[#################################       ] | 84% Completed | 19.50 s
[#################################       ] | 84% Completed | 19.60 s
[###################################     ] | 88% Completed | 19.70 s
[###################################     ] | 88% Completed | 19.80 s
[###################################     ] | 88% Completed | 19.94 s
[###################################     ] | 88% Completed | 20.04 s
[###################################     ] | 88% Completed | 20.14 s
[###################################     ] | 88% Completed | 20.24 s
[###################################     ] | 88% Completed | 20.34 s
[###################################     ] | 88% Completed | 20.44 s
[###################################     ] | 88% Completed | 20.54 s
[###################################     ] | 88% Completed | 20.65 s
[###################################     ] | 88% Completed | 20.75 s
[###################################     ] | 88% Completed | 20.85 s
[###################################     ] | 88% Completed | 20.95 s
[###################################     ] | 88% Completed | 21.05 s
[###################################     ] | 88% Completed | 21.15 s
[####################################    ] | 92% Completed | 21.25 s
[####################################    ] | 92% Completed | 21.35 s
[######################################  ] | 96% Completed | 21.45 s
[######################################  ] | 96% Completed | 21.55 s
[######################################  ] | 96% Completed | 21.65 s
[######################################  ] | 96% Completed | 21.75 s
[######################################  ] | 96% Completed | 21.85 s
[######################################  ] | 96% Completed | 21.95 s
[######################################  ] | 96% Completed | 22.05 s
[######################################  ] | 96% Completed | 22.15 s
[########################################] | 100% Completed | 22.25 s

[                                        ] | 0% Completed | 186.05 us
[                                        ] | 0% Completed | 122.31 ms
[                                        ] | 0% Completed | 222.69 ms
[                                        ] | 0% Completed | 323.04 ms
[                                        ] | 0% Completed | 423.37 ms
[                                        ] | 0% Completed | 530.16 ms
[                                        ] | 0% Completed | 630.46 ms
[                                        ] | 0% Completed | 730.76 ms
[                                        ] | 0% Completed | 838.16 ms
[                                        ] | 0% Completed | 938.49 ms
[###                                     ] | 8% Completed | 1.04 s
[###                                     ] | 8% Completed | 1.14 s
[###                                     ] | 8% Completed | 1.24 s
[###                                     ] | 8% Completed | 1.34 s
[###                                     ] | 8% Completed | 1.44 s
[###                                     ] | 8% Completed | 1.54 s
[###                                     ] | 8% Completed | 1.64 s
[###                                     ] | 8% Completed | 1.75 s
[###                                     ] | 8% Completed | 1.85 s
[###                                     ] | 8% Completed | 1.95 s
[###                                     ] | 8% Completed | 2.05 s
[####                                    ] | 12% Completed | 2.15 s
[####                                    ] | 12% Completed | 2.25 s
[####                                    ] | 12% Completed | 2.35 s
[####                                    ] | 12% Completed | 2.45 s
[####                                    ] | 12% Completed | 2.55 s
[####                                    ] | 12% Completed | 2.66 s
[####                                    ] | 12% Completed | 2.76 s
[####                                    ] | 12% Completed | 2.86 s
[####                                    ] | 12% Completed | 2.96 s
[######                                  ] | 16% Completed | 3.06 s
[######                                  ] | 16% Completed | 3.16 s
[######                                  ] | 16% Completed | 3.26 s
[######                                  ] | 16% Completed | 3.36 s
[######                                  ] | 16% Completed | 3.46 s
[######                                  ] | 16% Completed | 3.56 s
[######                                  ] | 16% Completed | 3.66 s
[######                                  ] | 16% Completed | 3.76 s
[######                                  ] | 16% Completed | 3.86 s
[########                                ] | 20% Completed | 3.97 s
[#########                               ] | 24% Completed | 4.07 s
[#########                               ] | 24% Completed | 4.18 s
[#########                               ] | 24% Completed | 4.28 s
[#########                               ] | 24% Completed | 4.39 s
[#########                               ] | 24% Completed | 4.49 s
[#########                               ] | 24% Completed | 4.59 s
[#########                               ] | 24% Completed | 4.69 s
[#########                               ] | 24% Completed | 4.79 s
[#########                               ] | 24% Completed | 4.89 s
[###########                             ] | 28% Completed | 5.00 s
[###########                             ] | 28% Completed | 5.10 s
[############                            ] | 32% Completed | 5.20 s
[############                            ] | 32% Completed | 5.30 s
[############                            ] | 32% Completed | 5.40 s
[############                            ] | 32% Completed | 5.50 s
[############                            ] | 32% Completed | 5.60 s
[############                            ] | 32% Completed | 5.70 s
[############                            ] | 32% Completed | 5.81 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
[##############                          ] | 36% Completed | 6.53 s
[################                        ] | 40% Completed | 6.63 s
[################                        ] | 40% Completed | 6.73 s
[################                        ] | 40% Completed | 6.84 s
[################                        ] | 40% Completed | 6.94 s
[################                        ] | 40% Completed | 7.05 s
[################                        ] | 40% Completed | 7.15 s
[################                        ] | 40% Completed | 7.25 s
[################                        ] | 40% Completed | 7.35 s
[################                        ] | 40% Completed | 7.45 s
[#################                       ] | 44% Completed | 7.55 s
[#################                       ] | 44% Completed | 7.65 s
[###################                     ] | 48% Completed | 7.75 s
[###################                     ] | 48% Completed | 7.85 s
[###################                     ] | 48% Completed | 7.95 s
[###################                     ] | 48% Completed | 8.05 s
[###################                     ] | 48% Completed | 8.15 s
[###################                     ] | 48% Completed | 8.25 s
[###################                     ] | 48% Completed | 8.35 s
[###################                     ] | 48% Completed | 8.45 s
[###################                     ] | 48% Completed | 8.55 s
[###################                     ] | 48% Completed | 8.66 s
[###################                     ] | 48% Completed | 8.76 s
[####################                    ] | 52% Completed | 8.86 s
[####################                    ] | 52% Completed | 8.96 s
[####################                    ] | 52% Completed | 9.06 s
[####################                    ] | 52% Completed | 9.16 s
[####################                    ] | 52% Completed | 9.26 s
[######################                  ] | 56% Completed | 9.36 s
[######################                  ] | 56% Completed | 9.47 s
[######################                  ] | 56% Completed | 9.57 s
[######################                  ] | 56% Completed | 9.67 s
[######################                  ] | 56% Completed | 9.77 s
[######################                  ] | 56% Completed | 9.87 s
[######################                  ] | 56% Completed | 9.97 s
[######################                  ] | 56% Completed | 10.07 s
[########################                ] | 60% Completed | 10.17 s
[########################                ] | 60% Completed | 10.27 s
[########################                ] | 60% Completed | 10.37 s
[########################                ] | 60% Completed | 10.47 s
[########################                ] | 60% Completed | 10.57 s
[########################                ] | 60% Completed | 10.67 s
[#########################               ] | 64% Completed | 10.77 s
[#########################               ] | 64% Completed | 10.87 s
[#########################               ] | 64% Completed | 10.98 s
[#########################               ] | 64% Completed | 11.08 s
[#########################               ] | 64% Completed | 11.18 s
[#########################               ] | 64% Completed | 11.28 s
[#########################               ] | 64% Completed | 11.38 s
[#########################               ] | 64% Completed | 11.48 s
[#########################               ] | 64% Completed | 11.58 s
[#########################               ] | 64% Completed | 11.68 s
[###########################             ] | 68% Completed | 11.79 s
[###########################             ] | 68% Completed | 11.89 s
[###########################             ] | 68% Completed | 11.99 s
[###########################             ] | 68% Completed | 12.10 s
[###########################             ] | 68% Completed | 12.20 s
[###########################             ] | 68% Completed | 12.30 s
[############################            ] | 72% Completed | 12.40 s
[############################            ] | 72% Completed | 12.50 s
[############################            ] | 72% Completed | 12.60 s
[############################            ] | 72% Completed | 12.70 s
[############################            ] | 72% Completed | 12.80 s
[############################            ] | 72% Completed | 12.90 s
[############################            ] | 72% Completed | 13.00 s
[############################            ] | 72% Completed | 13.10 s
[############################            ] | 72% Completed | 13.20 s
[##############################          ] | 76% Completed | 13.30 s
[##############################          ] | 76% Completed | 13.40 s
[##############################          ] | 76% Completed | 13.50 s
[##############################          ] | 76% Completed | 13.60 s
[################################        ] | 80% Completed | 13.70 s
[################################        ] | 80% Completed | 13.80 s
[################################        ] | 80% Completed | 13.90 s
[################################        ] | 80% Completed | 14.00 s
[################################        ] | 80% Completed | 14.10 s
[################################        ] | 80% Completed | 14.20 s
[################################        ] | 80% Completed | 14.30 s
[################################        ] | 80% Completed | 14.40 s
[################################        ] | 80% Completed | 14.50 s
[#################################       ] | 84% Completed | 14.60 s
[#################################       ] | 84% Completed | 14.70 s
[#################################       ] | 84% Completed | 14.80 s
[#################################       ] | 84% Completed | 14.91 s
[#################################       ] | 84% Completed | 15.01 s
[###################################     ] | 88% Completed | 15.11 s
[###################################     ] | 88% Completed | 15.21 s
[###################################     ] | 88% Completed | 15.31 s
[###################################     ] | 88% Completed | 15.41 s
[####################################    ] | 92% Completed | 15.51 s
[####################################    ] | 92% Completed | 15.61 s
[####################################    ] | 92% Completed | 15.71 s
[####################################    ] | 92% Completed | 15.82 s
[####################################    ] | 92% Completed | 15.92 s
[######################################  ] | 96% Completed | 16.02 s
[######################################  ] | 96% Completed | 16.12 s
[########################################] | 100% Completed | 16.22 s

[                                        ] | 0% Completed | 165.02 us
[                                        ] | 0% Completed | 112.92 ms
[                                        ] | 0% Completed | 218.32 ms
[########################################] | 100% Completed | 318.72 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 | 169.56 us
[                                        ] | 0% Completed | 107.80 ms
[                                        ] | 0% Completed | 208.12 ms
[                                        ] | 0% Completed | 308.41 ms
[                                        ] | 0% Completed | 408.69 ms
[                                        ] | 0% Completed | 508.98 ms
[                                        ] | 0% Completed | 609.26 ms
[                                        ] | 0% Completed | 709.55 ms
[                                        ] | 0% Completed | 809.84 ms
[                                        ] | 0% Completed | 910.12 ms
[                                        ] | 0% Completed | 1.02 s
[########################################] | 100% Completed | 1.12 s
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.0/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.0/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 0x7f5f689ad090>
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: (1 minutes 3.304 seconds)

Gallery generated by Sphinx-Gallery