.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/vectors/clustering_vectors.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_vectors_clustering_vectors.py: ================== 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. .. GENERATED FROM PYTHON SOURCE LINES 9-42 .. code-block:: Python 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() 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) # 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) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/vectors/images/sphx_glr_clustering_vectors_001.png :alt: MgO Nano-Crystals Navigator :srcset: /examples/vectors/images/sphx_glr_clustering_vectors_001.png :class: sphx-glr-multi-img * .. image-sg:: /examples/vectors/images/sphx_glr_clustering_vectors_002.png :alt: MgO Nano-Crystals Signal :srcset: /examples/vectors/images/sphx_glr_clustering_vectors_002.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none [ ] | 0% Completed | 160.49 us [ ] | 0% Completed | 100.62 ms [ ] | 0% Completed | 201.06 ms [ ] | 0% Completed | 301.65 ms [ ] | 0% Completed | 402.06 ms [ ] | 0% Completed | 502.64 ms [ ] | 0% Completed | 603.13 ms [ ] | 0% Completed | 703.47 ms [ ] | 0% Completed | 803.86 ms [ ] | 0% Completed | 904.34 ms [ ] | 0% Completed | 1.00 s [ ] | 0% Completed | 1.11 s [ ] | 0% Completed | 1.21 s [ ] | 0% Completed | 1.31 s [ ] | 0% 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 [### ] | 8% 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.42 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 [###### ] | 16% 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.42 s [######### ] | 24% Completed | 5.52 s [######### ] | 24% Completed | 5.62 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.53 s [################ ] | 40% Completed | 7.63 s [################ ] | 40% Completed | 7.73 s [################ ] | 40% Completed | 7.83 s [################ ] | 40% Completed | 7.93 s [################ ] | 40% Completed | 8.03 s [################ ] | 40% Completed | 8.13 s [################ ] | 40% Completed | 8.24 s [################ ] | 40% Completed | 8.34 s [################ ] | 40% Completed | 8.44 s [################# ] | 44% 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 [#################### ] | 52% Completed | 9.94 s [###################### ] | 56% Completed | 10.04 s [###################### ] | 56% Completed | 10.14 s [###################### ] | 56% Completed | 10.24 s [###################### ] | 56% Completed | 10.34 s [###################### ] | 56% Completed | 10.44 s [###################### ] | 56% Completed | 10.54 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 [###################### ] | 56% 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.25 s [######################### ] | 64% Completed | 12.35 s [######################### ] | 64% Completed | 12.45 s [######################### ] | 64% Completed | 12.55 s [######################### ] | 64% Completed | 12.65 s [######################### ] | 64% Completed | 12.75 s [############################ ] | 72% Completed | 12.85 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 [############################ ] | 72% Completed | 14.16 s [############################## ] | 76% Completed | 14.26 s [################################ ] | 80% Completed | 14.36 s [################################ ] | 80% Completed | 14.46 s [################################ ] | 80% Completed | 14.56 s [################################ ] | 80% Completed | 14.66 s [################################ ] | 80% Completed | 14.76 s [################################ ] | 80% Completed | 14.86 s [################################ ] | 80% Completed | 14.96 s [################################ ] | 80% Completed | 15.06 s [################################ ] | 80% Completed | 15.16 s [################################ ] | 80% Completed | 15.27 s [################################ ] | 80% Completed | 15.37 s [################################ ] | 80% Completed | 15.47 s [################################ ] | 80% Completed | 15.57 s [################################# ] | 84% 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.87 s [################################### ] | 88% Completed | 16.97 s [#################################### ] | 92% Completed | 17.07 s [###################################### ] | 96% Completed | 17.17 s [###################################### ] | 96% Completed | 17.27 s [###################################### ] | 96% Completed | 17.37 s [###################################### ] | 96% Completed | 17.47 s [###################################### ] | 96% Completed | 17.57 s [###################################### ] | 96% Completed | 17.68 s [########################################] | 100% Completed | 17.78 s [ ] | 0% Completed | 143.40 us [ ] | 0% Completed | 100.46 ms [ ] | 0% Completed | 200.85 ms [ ] | 0% Completed | 301.40 ms [ ] | 0% Completed | 401.90 ms [ ] | 0% Completed | 502.21 ms [ ] | 0% Completed | 602.68 ms [ ] | 0% Completed | 703.00 ms [ ] | 0% Completed | 803.35 ms [### ] | 8% Completed | 904.15 ms [### ] | 8% Completed | 1.00 s [### ] | 8% Completed | 1.11 s [### ] | 8% Completed | 1.21 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.31 s [###### ] | 16% Completed | 3.42 s [######## ] | 20% Completed | 3.52 s [######### ] | 24% 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.92 s [############ ] | 32% Completed | 5.02 s [############ ] | 32% Completed | 5.12 s [############ ] | 32% Completed | 5.22 s [############ ] | 32% Completed | 5.32 s [############ ] | 32% Completed | 5.42 s [############ ] | 32% Completed | 5.52 s [############ ] | 32% Completed | 5.62 s [############## ] | 36% 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 [################# ] | 44% 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.13 s [################### ] | 48% Completed | 7.23 s [################### ] | 48% Completed | 7.33 s [################### ] | 48% Completed | 7.43 s [################### ] | 48% Completed | 7.53 s [#################### ] | 52% Completed | 7.63 s [#################### ] | 52% Completed | 7.73 s [#################### ] | 52% Completed | 7.83 s [#################### ] | 52% Completed | 7.93 s [#################### ] | 52% Completed | 8.03 s [#################### ] | 52% Completed | 8.13 s [###################### ] | 56% Completed | 8.23 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 [######################## ] | 60% Completed | 8.84 s [######################## ] | 60% Completed | 8.94 s [######################## ] | 60% Completed | 9.04 s [######################## ] | 60% Completed | 9.14 s [######################## ] | 60% Completed | 9.24 s [######################## ] | 60% Completed | 9.34 s [######################## ] | 60% Completed | 9.44 s [######################### ] | 64% Completed | 9.54 s [######################### ] | 64% Completed | 9.64 s [######################### ] | 64% Completed | 9.74 s [######################### ] | 64% Completed | 9.84 s [######################### ] | 64% Completed | 9.94 s [######################### ] | 64% Completed | 10.04 s [######################### ] | 64% Completed | 10.14 s [########################### ] | 68% Completed | 10.24 s [########################### ] | 68% 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.05 s [############################ ] | 72% Completed | 11.15 s [############################ ] | 72% Completed | 11.25 s [############################ ] | 72% Completed | 11.35 s [############################ ] | 72% Completed | 11.45 s [############################ ] | 72% Completed | 11.55 s [############################## ] | 76% Completed | 11.65 s [############################## ] | 76% Completed | 11.75 s [############################## ] | 76% Completed | 11.85 s [############################## ] | 76% Completed | 11.95 s [################################ ] | 80% Completed | 12.05 s [################################ ] | 80% Completed | 12.15 s [################################ ] | 80% Completed | 12.25 s [################################ ] | 80% Completed | 12.35 s [################################ ] | 80% Completed | 12.45 s [################################ ] | 80% Completed | 12.55 s [################################ ] | 80% Completed | 12.66 s [################################ ] | 80% Completed | 12.76 s [################################# ] | 84% Completed | 12.86 s [################################# ] | 84% Completed | 12.96 s [################################# ] | 84% Completed | 13.06 s [################################# ] | 84% Completed | 13.16 s [################################# ] | 84% Completed | 13.26 s [################################# ] | 84% Completed | 13.36 s [################################### ] | 88% Completed | 13.46 s [################################### ] | 88% Completed | 13.56 s [#################################### ] | 92% Completed | 13.66 s [#################################### ] | 92% Completed | 13.76 s [#################################### ] | 92% Completed | 13.86 s [#################################### ] | 92% Completed | 13.96 s [#################################### ] | 92% Completed | 14.06 s [#################################### ] | 92% Completed | 14.16 s [###################################### ] | 96% Completed | 14.26 s [########################################] | 100% Completed | 14.36 s [ ] | 0% Completed | 149.71 us [ ] | 0% Completed | 105.51 ms [########################################] | 100% Completed | 205.86 ms [ ] | 0% Completed | 141.49 us [ ] | 0% Completed | 100.41 ms [ ] | 0% Completed | 200.73 ms [ ] | 0% Completed | 301.03 ms [ ] | 0% Completed | 401.33 ms [ ] | 0% Completed | 501.64 ms [ ] | 0% Completed | 602.01 ms [ ] | 0% Completed | 733.25 ms [########################################] | 100% Completed | 833.60 ms .. GENERATED FROM PYTHON SOURCE LINES 43-54 .. code-block:: Python 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]) .. image-sg:: /examples/vectors/images/sphx_glr_clustering_vectors_003.png :alt: clustering vectors :srcset: /examples/vectors/images/sphx_glr_clustering_vectors_003.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/docs/checkouts/readthedocs.org/user_builds/pyxem/envs/v0.18.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.18.0/lib/python3.10/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide ret = um.true_divide( .. GENERATED FROM PYTHON SOURCE LINES 55-68 .. code-block:: Python 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) # 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) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/vectors/images/sphx_glr_clustering_vectors_004.png :alt: MgO Nano-Crystals Navigator :srcset: /examples/vectors/images/sphx_glr_clustering_vectors_004.png :class: sphx-glr-multi-img * .. image-sg:: /examples/vectors/images/sphx_glr_clustering_vectors_005.png :alt: MgO Nano-Crystals Signal :srcset: /examples/vectors/images/sphx_glr_clustering_vectors_005.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none 7 : Clusters Found! .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 43.390 seconds) .. _sphx_glr_download_examples_vectors_clustering_vectors.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: clustering_vectors.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: clustering_vectors.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_