diff --git a/01 GaAs Nanowire - Data Inspection - Preprocessing - Unsupervised Machine Learning.ipynb b/01 GaAs Nanowire - Data Inspection - Preprocessing - Unsupervised Machine Learning.ipynb
index 7ba4b0d..613e8c7 100644
--- a/01 GaAs Nanowire - Data Inspection - Preprocessing - Unsupervised Machine Learning.ipynb
+++ b/01 GaAs Nanowire - Data Inspection - Preprocessing - Unsupervised Machine Learning.ipynb
@@ -25,7 +25,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "This functionaility has been checked to run in pyxem-0.9.0 (July 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
+ "This functionaility has been checked to run in pyxem-0.10.0 (November 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
]
},
{
@@ -246,7 +246,8 @@
"metadata": {},
"outputs": [],
"source": [
- "dp.center_direct_beam(radius_start=2,\n",
+ "dp.center_direct_beam(method='cross_correlate',\n",
+ " radius_start=2,\n",
" radius_finish=5,\n",
" square_width=10)"
]
diff --git a/02 GaAs Nanowire - Phase Mapping - Orientation Mapping.ipynb b/02 GaAs Nanowire - Phase Mapping - Orientation Mapping.ipynb
index 0309521..c2d709d 100644
--- a/02 GaAs Nanowire - Phase Mapping - Orientation Mapping.ipynb
+++ b/02 GaAs Nanowire - Phase Mapping - Orientation Mapping.ipynb
@@ -25,7 +25,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "This functionaility has been checked to run in pyxem-0.9.0 (July 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
+ "This functionaility has been checked to run in pyxem-0.10.0 (November 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
]
},
{
@@ -302,9 +302,10 @@
"metadata": {},
"outputs": [],
"source": [
- "from diffsims.generators.structure_library_generator import StructureLibraryGenerator\n",
+ "from diffsims.libraries.structure_library import StructureLibrary\n",
"from diffsims.generators.diffraction_generator import DiffractionGenerator\n",
"from diffsims.generators.library_generator import DiffractionLibraryGenerator\n",
+ "from diffsims.utils.sim_utils import rotation_list_stereographic\n",
"\n",
"from pyxem.generators.indexation_generator import IndexationGenerator"
]
@@ -330,18 +331,14 @@
"outputs": [],
"source": [
"structure_zb = diffpy.structure.loadStructure('./GaAs_mp-2534_conventional_standard.cif')\n",
- "structure_wz = diffpy.structure.loadStructure('./GaAs_mp-8883_conventional_standard.cif')\n",
- "\n",
- "phase_descriptions = [('ZB', structure_zb, 'cubic'),\n",
- " ('WZ', structure_wz, 'hexagonal')]\n",
- "phase_names = [phase[0] for phase in phase_descriptions]"
+ "structure_wz = diffpy.structure.loadStructure('./GaAs_mp-8883_conventional_standard.cif')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "Initialize a structure library generator for the specified phases"
+ "Create a basic rotations list. "
]
},
{
@@ -350,7 +347,8 @@
"metadata": {},
"outputs": [],
"source": [
- "struc_lib_gen = StructureLibraryGenerator(phase_descriptions)"
+ "rot_list_cubic = rotation_list_stereographic(structure_zb,(0, 0, 1),(1, 0, 1),(1, 1, 1),np.linspace(0, 2*np.pi, 360/10),np.deg2rad(10))\n",
+ "rot_list_hex = rotation_list_stereographic(structure_wz,(0, 0, 0, 1), (1, 0, -1, 0), (1, 1, -2, 0),np.linspace(0, 2*np.pi, 360/10),np.deg2rad(10))"
]
},
{
@@ -366,11 +364,9 @@
"metadata": {},
"outputs": [],
"source": [
- "inplane_rotations = [[0], [0]] # The library only needs the base in-plane rotation. The other ones are generated\n",
- "rotation_list_resolution = 1\n",
- "\n",
- "struc_lib = struc_lib_gen.get_orientations_from_stereographic_triangle(\n",
- " inplane_rotations, rotation_list_resolution)"
+ "struc_lib = StructureLibrary(['ZB','WZ'],\n",
+ " [structure_zb,structure_wz],\n",
+ " [rot_list_cubic,rot_list_hex])"
]
},
{
@@ -450,7 +446,7 @@
"metadata": {},
"outputs": [],
"source": [
- "diff_lib.pickle_library('./GaAs_cubic_hex_1deg.pickle')"
+ "diff_lib.pickle_library('./GaAs_cubic_hex.pickle')"
]
},
{
@@ -468,7 +464,7 @@
"source": [
"from diffsims.libraries.diffraction_library import load_DiffractionLibrary\n",
"\n",
- "diff_lib = load_DiffractionLibrary('./GaAs_cubic_hex_1deg.pickle', safety=True)"
+ "diff_lib = load_DiffractionLibrary('./GaAs_cubic_hex.pickle', safety=True)"
]
},
{
@@ -948,20 +944,6 @@
"source": [
"crystal_map.save_mtex_map('vector_match_results.csv')"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
@@ -980,7 +962,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.7.1"
+ "version": "3.7.3"
}
},
"nbformat": 4,
diff --git a/03 Reference Standards - Dimension Calibrations - Rotation Calibrations.ipynb b/03 Reference Standards - Dimension Calibrations - Rotation Calibrations.ipynb
index 65bbcca..e30bcf8 100644
--- a/03 Reference Standards - Dimension Calibrations - Rotation Calibrations.ipynb
+++ b/03 Reference Standards - Dimension Calibrations - Rotation Calibrations.ipynb
@@ -18,7 +18,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "This functionaility was introduced in pyxem-0.9.0 (July 2019) and has been checked to run. Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
+ "This functionaility has been checked to run in pyxem-0.10.0 (November 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
]
},
{
diff --git a/04 Simulate Data - Phase Mapping - Orientation Mapping.ipynb b/04 Simulate Data - Phase Mapping - Orientation Mapping.ipynb
index edd6700..a3597d7 100644
--- a/04 Simulate Data - Phase Mapping - Orientation Mapping.ipynb
+++ b/04 Simulate Data - Phase Mapping - Orientation Mapping.ipynb
@@ -25,7 +25,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "This functionaility has been checked to run in pyxem-0.9.0 (July 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
+ "This functionaility has been checked to run in pyxem-0.10.0 (November 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
]
},
{
@@ -65,14 +65,14 @@
"metadata": {},
"outputs": [],
"source": [
- "%matplotlib tk\n",
+ "%matplotlib qt\n",
"import numpy as np\n",
"import hyperspy.api as hs\n",
"import pyxem as pxm\n",
"import diffpy.structure\n",
"from matplotlib import pyplot as plt\n",
"\n",
- "from diffsims.generators.structure_library_generator import StructureLibraryGenerator\n",
+ "from diffsims.utils.sim_utils import rotation_list_stereographic\n",
"from diffsims.libraries.structure_library import StructureLibrary\n",
"from diffsims.generators.diffraction_generator import DiffractionGenerator\n",
"from diffsims.generators.library_generator import DiffractionLibraryGenerator, VectorLibraryGenerator\n",
@@ -222,12 +222,19 @@
"metadata": {},
"outputs": [],
"source": [
- "structure_library_generator = StructureLibraryGenerator(\n",
- " [('Si', si, 'cubic'),\n",
- " ('Ga', ga, 'hexagonal')])\n",
- "structure_library = structure_library_generator.get_orientations_from_stereographic_triangle(\n",
- " [(0,), (0,)], # In-plane rotations\n",
- " 5) # Angular resolution of the library"
+ "rot_list_cubic = rotation_list_stereographic(si,(0, 0, 1),(1, 0, 1),(1, 1, 1),np.linspace(0, 2*np.pi, 360/10),np.deg2rad(10))\n",
+ "rot_list_hex = rotation_list_stereographic(ga,(0, 0, 0, 1), (1, 0, -1, 0), (1, 1, -2, 0),np.linspace(0, 2*np.pi, 50),np.deg2rad(3))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "structure_library = StructureLibrary(['si','ga'],\n",
+ " [si,ga],\n",
+ " [rot_list_cubic,rot_list_hex])"
]
},
{
@@ -255,7 +262,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Correlate with the patterns contained in the library with the test data. At this stage the top 3 (`n_largest`) matching results are retained. Test all in-plane rotations at 5 degree increments from 0 to 360."
+ "Correlate with the patterns contained in the library with the test data. At this stage the top 3 (`n_largest`) matching results are retained."
]
},
{
@@ -265,7 +272,7 @@
"outputs": [],
"source": [
"indexer = IndexationGenerator(test_data, template_library)\n",
- "match_results = indexer.correlate(n_largest=3, inplane_rotations=np.arange(0, 360, 5))"
+ "match_results = indexer.correlate(n_largest=3)"
]
},
{
diff --git a/05 Simulate Data - Strain Mapping.ipynb b/05 Simulate Data - Strain Mapping.ipynb
index 5e3ee74..50fb6d2 100644
--- a/05 Simulate Data - Strain Mapping.ipynb
+++ b/05 Simulate Data - Strain Mapping.ipynb
@@ -25,7 +25,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "All functionality has been checked to run using pyxem-0.9.0"
+ "This functionaility has been checked to run in pyxem-0.10.0 (November 2019). Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
]
},
{
@@ -351,8 +351,8 @@
"metadata": {},
"outputs": [],
"source": [
- "spg = SubpixelrefinementGenerator(dp,np.asarray([x_peak,y_peak]))\n",
- "Vs = spg.center_of_mass_method(6)"
+ "spg = SubpixelrefinementGenerator(dp, np.asarray([x_peak,y_peak]))\n",
+ "Vs = spg.center_of_mass_method(20)"
]
},
{
@@ -388,6 +388,13 @@
"source": [
"strain_map.plot(cmap='seismic',vmax=0.04,vmin=-0.04)"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/06 Nanocrystal segmentation in SPED data - Demonstration on partly overlapping MgO cubes.ipynb b/06 Nanocrystal segmentation in SPED data - Demonstration on partly overlapping MgO cubes.ipynb
new file mode 100644
index 0000000..97f4dd5
--- /dev/null
+++ b/06 Nanocrystal segmentation in SPED data - Demonstration on partly overlapping MgO cubes.ipynb
@@ -0,0 +1,1432 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Introduction"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This notebook demonstrates two approaches to nanocrystal segmentation:\n",
+ "1. Virtual dark-field (VDF) imaging-based segmentation\n",
+ "2. Non-negative matrix factorisation (NMF)-based segmentation\n",
+ "\n",
+ "The segmentation is demonstrated on a SPED dataset of partly overlapping MgO nanoparticles, where some of the particles share the same orientation. The SPED data can be found in [1]. An article including explanation of the methods and discussions of the results is under review. \n",
+ "\n",
+ "[1] T Bergh. (2019) *Scanning precession electron diffraction data of partly overlapping magnesium oxide nanoparticles.* doi: 10.5281/zenodo.3382874."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This functionaility was introduced in pyxem-0.10.0 (November 2019) and has been checked to run. Bugs are always possible, do not trust the code blindly, and if you experience any issues please report them here: https://github.com/pyxem/pyxem-demos/issues"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Contents"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "1. Setting up, Loading Data, Pre-processing\n",
+ "2. Virtual Image Based Segmentation\n",
+ "3. NMF Based Segmentation"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 1. Setting up, Loading Data, Pre-processing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Import pyxem and other required libraries"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING:silx.opencl.common:Unable to import pyOpenCl. Please install it from: http://pypi.python.org/pypi/pyopencl\n"
+ ]
+ }
+ ],
+ "source": [
+ "%matplotlib qt\n",
+ "import numpy as np\n",
+ "import hyperspy.api as hs\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pyxem as pxm"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Load demonstration data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dp = pxm.load_hspy('SPED_MgO.hdf5',\n",
+ " lazy=False,\n",
+ " assign_to='electron_diffraction2d')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Plot data to inspect"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dp.plot(cmap='magma_r')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Remove the background"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "f033ba65df37428ebdcb23b6d8a18f47",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sigma_min = 1.7\n",
+ "sigma_max = 13.2\n",
+ "\n",
+ "dp_rb = dp.remove_background('gaussian_difference', \n",
+ " sigma_min=sigma_min, \n",
+ " sigma_max=sigma_max)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Plot the background subtracted data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dp_rb.plot(cmap='magma_r')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Find the position of the direct beam in the background subtracted data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "80b9d858833d4a64bd1afd14597d04d8",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "c2c713da2c9541339225f8757283db86",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "shifts = dp_rb.center_direct_beam(method='cross_correlate',\n",
+ " square_width=15,\n",
+ " return_shifts=True,\n",
+ " radius_start=2,\n",
+ " radius_finish=6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Apply the same shifts to the raw data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "d223d1e620e54c79bd7772afca614725",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "dp.align2D(shifts=shifts, crop=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Set calibrations"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "scale = 0.03246 \n",
+ "scale_real = 3.03\n",
+ "dp.set_diffraction_calibration(scale)\n",
+ "dp.set_scan_calibration(scale_real)\n",
+ "\n",
+ "dp_rb.set_diffraction_calibration(scale)\n",
+ "dp_rb.set_scan_calibration(scale_real)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 2. Virtual Image Based Segmentation"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 2.1. Peak Finding & Refinement"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Find all diffraction peaks for all PED patterns. \n",
+ "The parameters were found by interactive peak finding:\n",
+ "\n",
+ "`peaks = dp_rb.find_peaks_interactive(imshow_kwargs={'cmap': 'magma_r'})`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "807e87a7dff5433992a971214c118866",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/hremadmin/anaconda3/envs/pyxem/lib/python3.7/site-packages/skimage/feature/blob.py:125: RuntimeWarning: invalid value encountered in double_scalars\n",
+ " r1 = blob1[-1] / blob2[-1]\n",
+ "/home/hremadmin/anaconda3/envs/pyxem/lib/python3.7/site-packages/skimage/feature/blob.py:126: RuntimeWarning: divide by zero encountered in true_divide\n",
+ " pos1 = blob1[:ndim] / (max_sigma * root_ndim)\n",
+ "/home/hremadmin/anaconda3/envs/pyxem/lib/python3.7/site-packages/skimage/feature/blob.py:127: RuntimeWarning: divide by zero encountered in true_divide\n",
+ " pos2 = blob2[:ndim] / (max_sigma * root_ndim)\n",
+ "/home/hremadmin/anaconda3/envs/pyxem/lib/python3.7/site-packages/skimage/feature/blob.py:129: RuntimeWarning: invalid value encountered in subtract\n",
+ " d = np.sqrt(np.sum((pos2 - pos1)**2))\n",
+ "WARNING:hyperspy.signal:The function you applied does not take into account the difference of units and of scales in-between axes.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "f3a33dbf3e3341a3b203edcc155d6db2",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "peaks = dp_rb.find_peaks(method='laplacian_of_gaussians', \n",
+ " min_sigma=0.7,\n",
+ " max_sigma=10,\n",
+ " num_sigma=30, \n",
+ " threshold=0.046, \n",
+ " overlap=0.5, \n",
+ " log_scale=False,\n",
+ " exclude_border=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Visualise the number of diffraction peaks found at each probe position"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING:hyperspy.signal:The function you applied does not take into account the difference of units and of scales in-between axes.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "0f139b6b2e824f2d97c70271b2731fde",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "diff_map = peaks.get_diffracting_pixels_map()\n",
+ "diff_map.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Exclude peaks too close to the detector edge for sub-pixel refinement. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING:hyperspy.signal:The function you applied does not take into account the difference of units and of scales in-between axes.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "a3670132312c48deb3f6ab8b5636b00d",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "peaks_filtered = peaks.filter_vectors_detector_edge(exclude_width=2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Refine the peak positions using center of mass"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING:hyperspy.signal:The function you applied does not take into account the difference of units and of scales in-between axes.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "f87a6469dd084bbaa6d52d25a9933c57",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "4f8e9eeb7d04464aa6d5583c41e37f67",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "HBox(children=(IntProgress(value=0, max=12426), HTML(value='')))"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pyxem.generators.subpixelrefinement_generator import SubpixelrefinementGenerator\n",
+ "from pyxem.signals.diffraction_vectors import DiffractionVectors\n",
+ "\n",
+ "\n",
+ "refine_gen = SubpixelrefinementGenerator(dp_rb, peaks_filtered)\n",
+ "\n",
+ "peaks_refined = DiffractionVectors(refine_gen.center_of_mass_method(square_size=4))\n",
+ "\n",
+ "peaks_refined.axes_manager.set_signal_dimension(0)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 2.2. Determine Unique Peaks"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Determine the unique diffraction peaks by clustering"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "54 unique vectors were found.\n"
+ ]
+ }
+ ],
+ "source": [
+ "distance_threshold = scale*0.89\n",
+ "min_samples = 10\n",
+ "\n",
+ "unique_peaks = peaks_refined.get_unique_vectors(method='DBSCAN',\n",
+ " distance_threshold=distance_threshold,\n",
+ " min_samples=min_samples)\n",
+ "print(np.shape(unique_peaks.data)[0], ' unique vectors were found.')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Visualise the detected unique peaks by plotting them on the maximum of the signal. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "radius_px = dp_rb.axes_manager.signal_shape[0]/2\n",
+ "reciprocal_radius = radius_px * scale"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "