diff --git a/CHANGELOG b/CHANGELOG
index bd10f11..336bd9a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,5 @@
0.1.4
+ - ref, doc: fix api doc link references
- add initial (useable) tests in test directory
- add CHANGELOG
- ref: change the directory structure to include topotem (#52)
diff --git a/doc/PTO_Junction_moore.rst b/doc/PTO_Junction_moore.rst
index 3eae08c..62c987f 100644
--- a/doc/PTO_Junction_moore.rst
+++ b/doc/PTO_Junction_moore.rst
@@ -81,8 +81,8 @@ Load the line profile positions:
>>> line_profile_positions = np.load('line_profile_positions.npy')
Note: You can also choose your own line_profile_positions with
-:python:`am.add_atoms_with_gui(image)` and use the :python:`skimage.profile_line`
-for customisability.
+:py:func:`temul.topotem.fft_mapping.choose_points_on_image` and use the
+:python:`skimage.profile_line` for customisability.
Create the Lattice Strain Map
@@ -104,7 +104,7 @@ Note that sometimes the 0 and 1 axes directions are constructed vice versa.
.. image:: ../publication_examples/PTO_Junction_moore/data/strain_map.png
:scale: 50 %
-Plot the line profiles with :python:`temul.signal_plotting` functions and a kwarg dictionary.
+Plot the line profiles with :py:mod:`temul.signal_plotting` functions and a kwarg dictionary.
For more details on this function, see :ref:`this tutorial Note: You can also choose your own line_profile_positions with
-Set up the Parameters
am.add_atoms_with_gui(image)
and use the skimage.profile_line
-for customisability.temul.topotem.fft_mapping.choose_points_on_image()
and use the
+skimage.profile_line
for customisability.
Plot the line profiles with temul.signal_plotting
functions and a kwarg dictionary.
+
Plot the line profiles with temul.signal_plotting
functions and a kwarg dictionary.
For more details on this function, see this tutorial.
>>> kwargs = {'vmin': vmin, 'vmax': vmax, 'cmap': cmap}
>>> tml.compare_images_line_profile_one_image(strain_map, line_profile_positions,
@@ -278,7 +278,7 @@ Create the Lattice Rotation Map
-
Plot the line profiles with temul.signal_plotting
functions and a kwarg dictionary.
+
Plot the line profiles with temul.signal_plotting
functions and a kwarg dictionary.
For more details on this function, see this tutorial.
>>> kwargs = {'vmin': vmin, 'vmax': vmax, 'cmap': cmap}
>>> tml.compare_images_line_profile_one_image(
@@ -360,7 +360,7 @@ Map the Polarisation
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/PTO_supercrystal_hadjimichael.html b/doc/_build/html/PTO_supercrystal_hadjimichael.html
index 3694299..9adf1e5 100644
--- a/doc/_build/html/PTO_supercrystal_hadjimichael.html
+++ b/doc/_build/html/PTO_supercrystal_hadjimichael.html
@@ -7,7 +7,7 @@
- Calculation of Atom Plane Curvature — TEMUL Toolkit v0.1.2 documentation
+ Calculation of Atom Plane Curvature — TEMUL Toolkit v0.1.3 documentation
@@ -66,7 +66,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -186,13 +186,15 @@
without needing any downloads. Just click this button and navigate to that same folder,
where you will find the python scripts and interactive python notebooks:
-The calculate_atom_plane_curvature
function has been adapted from the
+
The temul.topotem.lattice_structure_tools.calculate_atom_plane_curvature()
+function has been adapted from the
MATLAB script written by Dr. Marios Hadjimichael for the publication
M. Hadjimichael, Y. Li et al, Metal-ferroelectric supercrystals with periodically
curved metallic layers, Nature Materials 2020.
This MATLAB script can also be found in the same folder.
-The calculate_atom_plane_curvature
function in the
-temul.lattice_structure_tools
module can be used to find the curvature of the
+
The temul.topotem.lattice_structure_tools.calculate_atom_plane_curvature()
+function in the
+temul.topotem.lattice_structure_tools
module can be used to find the curvature of the
displacement of atoms along an atom plane in a sublattice. Using the default
parameter func=’strain_grad’
, the function will approximate the
curvature as the strain gradient, as in cases where the first derivative is
@@ -283,7 +285,7 @@
Calculate the Curvature of Atom Planes
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/_sources/PTO_Junction_moore.rst.txt b/doc/_build/html/_sources/PTO_Junction_moore.rst.txt
index 3eae08c..62c987f 100644
--- a/doc/_build/html/_sources/PTO_Junction_moore.rst.txt
+++ b/doc/_build/html/_sources/PTO_Junction_moore.rst.txt
@@ -81,8 +81,8 @@ Load the line profile positions:
>>> line_profile_positions = np.load('line_profile_positions.npy')
Note: You can also choose your own line_profile_positions with
-:python:`am.add_atoms_with_gui(image)` and use the :python:`skimage.profile_line`
-for customisability.
+:py:func:`temul.topotem.fft_mapping.choose_points_on_image` and use the
+:python:`skimage.profile_line` for customisability.
Create the Lattice Strain Map
@@ -104,7 +104,7 @@ Note that sometimes the 0 and 1 axes directions are constructed vice versa.
.. image:: ../publication_examples/PTO_Junction_moore/data/strain_map.png
:scale: 50 %
-Plot the line profiles with :python:`temul.signal_plotting` functions and a kwarg dictionary.
+Plot the line profiles with :py:mod:`temul.signal_plotting` functions and a kwarg dictionary.
For more details on this function, see :ref:`this tutorial `.
.. code-block:: python
@@ -140,7 +140,7 @@ the turning of the lattice across the junction.
:scale: 50 %
-Plot the line profiles with :python:`temul.signal_plotting` functions and a kwarg dictionary.
+Plot the line profiles with :py:mod:`temul.signal_plotting` functions and a kwarg dictionary.
For more details on this function, see :ref:`this tutorial `.
.. code-block:: python
diff --git a/doc/_build/html/_sources/PTO_supercrystal_hadjimichael.rst.txt b/doc/_build/html/_sources/PTO_supercrystal_hadjimichael.rst.txt
index 4e17bec..63e5995 100644
--- a/doc/_build/html/_sources/PTO_supercrystal_hadjimichael.rst.txt
+++ b/doc/_build/html/_sources/PTO_supercrystal_hadjimichael.rst.txt
@@ -17,14 +17,16 @@ where you will find the python scripts and interactive python notebooks:
.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/PinkShnack/TEMUL/master
-The :python:`calculate_atom_plane_curvature` function has been adapted from the
+The :py:func:`temul.topotem.lattice_structure_tools.calculate_atom_plane_curvature`
+function has been adapted from the
MATLAB script written by Dr. Marios Hadjimichael for the publication
M. Hadjimichael, Y. Li *et al*, `Metal-ferroelectric supercrystals with periodically
curved metallic layers, Nature Materials 2020 `_.
This MATLAB script can also be found in the same folder.
-The :python:`calculate_atom_plane_curvature` function in the
-:python:`temul.lattice_structure_tools` module can be used to find the curvature of the
+The :py:func:`temul.topotem.lattice_structure_tools.calculate_atom_plane_curvature`
+function in the
+:py:mod:`temul.topotem.lattice_structure_tools` module can be used to find the curvature of the
displacement of atoms along an atom plane in a sublattice. Using the default
parameter :python:`func='strain_grad'`, the function will approximate the
curvature as the strain gradient, as in cases where the first derivative is
diff --git a/doc/_build/html/_sources/about_temul_toolkit.rst.txt b/doc/_build/html/_sources/about_temul_toolkit.rst.txt
new file mode 100644
index 0000000..f24ddb2
--- /dev/null
+++ b/doc/_build/html/_sources/about_temul_toolkit.rst.txt
@@ -0,0 +1,9 @@
+.. _about_temul_toolkit:
+
+.. include:: define_roles.rst
+
+
+Some published results using the TEMUL Toolkit
+----------------------------------------------
+
+.. Include some images! Just copy from the papers and cite.
diff --git a/doc/_build/html/_sources/dg_visualiser_tutorial.rst.txt b/doc/_build/html/_sources/dg_visualiser_tutorial.rst.txt
index cd1288f..a44eb3d 100644
--- a/doc/_build/html/_sources/dg_visualiser_tutorial.rst.txt
+++ b/doc/_build/html/_sources/dg_visualiser_tutorial.rst.txt
@@ -7,9 +7,10 @@
Interactive Image Filtering
===========================
-The :python:`temul.signal_processing` module allows one to filter images with a
+The :py:mod:`temul.signal_processing` module allows one to filter images with a
double Gaussian (band-pass) filter. Apart from the base functions, it can be
-done interactively with the :python:`visualise_dg_filter` function. In this
+done interactively with the
+:py:func:`temul.signal_processing.visualise_dg_filter` function. In this
tutorial, we will see how to use the function on experimental data.
@@ -30,8 +31,8 @@ TEMUL package.
Interactively Filter the Experimental Image
-------------------------------------------
-Run the :python:`visualise_dg_filter` function. There are lots of other parameters
-too for customisation.
+Run the :py:func:`temul.signal_processing.visualise_dg_filter` function.
+There are lots of other parameters too for customisation.
.. code-block:: python
@@ -40,9 +41,10 @@ too for customisation.
.. image:: tutorial_images/dg_filter_tutorial/dg_visualiser.gif
:scale: 50 %
-As we can see, an interactive window appears, showing the FFT ("FFT Widget") of the image with
-the positions of the inner and outer Gaussian full width at half maximums (FWHMs).
-The inital FWHMs can be changed with the :python:`d_inner` and :python:`d_outer`
+As we can see, an interactive window appears, showing the FFT ("FFT Widget")
+of the image with the positions of the inner and outer Gaussian full width
+at half maximums (FWHMs). The inital FWHMs can be changed with the
+:python:`d_inner` and :python:`d_outer`
parameters (limits can also be changed).
To change the two FWHMs interactively
@@ -56,7 +58,8 @@ Return the Filtered Image
-------------------------
When we have suitable FWHMs for the inner and outer Gaussians, we can use
-the :python:`double_gaussian_fft_filter` function the return a filtered image.
+the :py:func:`temul.signal_processing.double_gaussian_fft_filter` function
+the return a filtered image.
.. code-block:: python
@@ -71,6 +74,6 @@ the :python:`double_gaussian_fft_filter` function the return a filtered image.
:scale: 50 %
-Details on the :python:`double_gaussian_fft_filter_optimised` function can be
-found in the :ref:`api_doc`.
-We hope to added some examples of this functions to this page in future.
+Details on the
+:py:func:`temul.signal_processing.double_gaussian_fft_filter_optimised`
+function can be found in the :ref:`api_doc`.
diff --git a/doc/_build/html/_sources/index.rst.txt b/doc/_build/html/_sources/index.rst.txt
index 9472af1..941d355 100644
--- a/doc/_build/html/_sources/index.rst.txt
+++ b/doc/_build/html/_sources/index.rst.txt
@@ -15,16 +15,28 @@ atomic resolution images. It is mostly built upon the data structure of
Interactive Examples
--------------------
+The easiest way to try the TEMUL Toolkit is via Binder:
+`introductory Jupyter Notebook `_.
+To install the TEMUL Toolkit on your own computer,
+see the :ref:`install` instructions.
+
+And there are more examples with Binder, just click the below button!
+
.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/PinkShnack/TEMUL/master
-Click the button above to start some data analysis (it may take a few minutes to load).
+Click the button above to start some data analysis
+(it may take a few minutes to load).
The "code_tutorials" folder contains walkthroughs of some of the documentation
examples from this website.
-The "publication_examples" folder will allow you to analyse data from published scientific papers!
+The "publication_examples" folder will allow you to analyse data from
+published scientific papers!
Just navigate to whichever of these folders you want click on the ".ipynb" files.
+.. include:: about_temul_toolkit.rst
+
+
.. include:: news.rst
@@ -74,7 +86,9 @@ To cite the latest TEMUL Toolkit version, use the following DOI:
.. image:: https://www.zenodo.org/badge/203785298.svg
:target: https://www.zenodo.org/badge/latestdoi/203785298
-For example: Eoghan O'Connell, Michael Hennessy, & Eoin Moynihan. (2020, November 2). PinkShnack/TEMUL: Initial Temul-Toolkit Release (Version 0.1.1). Zenodo. http://doi.org/10.5281/zenodo.4185974
+For example: Eoghan O'Connell, Michael Hennessy, & Eoin Moynihan.
+(2021). PinkShnack/TEMUL: (Version 0.1.3).
+Zenodo. http://doi.org/10.5281/zenodo.4543963
If you wish to cite an older release of the TEMUL Toolkit, click on the above
badge to find the relevant version.
diff --git a/doc/_build/html/_sources/install.rst.txt b/doc/_build/html/_sources/install.rst.txt
index ec796a8..0b29dae 100644
--- a/doc/_build/html/_sources/install.rst.txt
+++ b/doc/_build/html/_sources/install.rst.txt
@@ -6,31 +6,44 @@
Installation
------------
-The TEMUL Toolkit can be installed easily with PIP (those using Windows may need to download VS C++ Build Tools, see below).
+The TEMUL Toolkit can be installed easily with PIP (those using Windows may
+need to download VS C++ Build Tools, see below).
:bash:`$ pip install temul-toolkit`
-Then, it can be imported with the name "temul". For example, to import most of the temul functionality use:
+Then, it can be imported with the name "temul". For example, to import most
+of the temul functionality use:
:python:`import temul.api as tml`
-Matplotlib 3.3 currently has compatability issues with iPython, see below for the fix.
-
-----------------------------
Installation Problems & Notes
-----------------------------
-* If installing on Windows, you will need Visual Studio C++ Build Tools. Download it `here `_. After downloading, choose the "C++ Build Tools" Workload and click install.
-
-* Matplotlib seems to have issues with iPython at the moment. Install matplotlib==3.2 until this issue is resolved by Matplotlib. See `here `_ for more details.
-
-* If you want to use the :python:`io.write_cif_from_dataframe` function, you will need to install pyCifRW version 4.3. This requires Visual Studio.
-
-* If you wish to use the :python:`simulations.py` or :python:`model_refiner.py` modules, you will need to install PyPrismatic. This requires Visual Studio and other dependencies.
-
-* If you're using any of the functions or classes that require element quantification:
-
- * navigate to the "temul/external" directory, copy the "atomap_devel_012" folder and paste that in your "site-packages" directory.
- * Then, when using atomap to create sublattices and quantify elements call atomap like this: :python:`import atomap_devel_012.api as am`.
- * This development version is slowly being folded into the master branch here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or tips on implementation are welcome!
+* If installing on Windows, you will need Visual Studio C++ Build Tools.
+ Download it `here `_.
+ After downloading, choose the "C++ Build Tools" Workload and click install.
+
+* If you want to use the :py:func:`temul.io.write_cif_from_dataframe`
+ function, you will need to install pyCifRW version 4.3. This requires
+ Visual Studio.
+
+* If you wish to use the :py:mod:`temul.simulations` or
+ :py:mod:`temul.model_refiner` modules, you will need to install PyPrismatic.
+ This requires Visual Studio and other dependencies.
+ **It is unfortunately not guaranteed to work**. If you want to help develop
+ the :py:class:`temul.model_refiner.Model_Refiner`, please create an issue
+ and/or a pull request on the
+ `TEMUL github `_.
+
+* If you're using any of the functions or classes that require element
+ quantification:
+
+ * navigate to the "temul/external" directory, copy the "atomap_devel_012"
+ folder and paste that in your "site-packages" directory.
+ * Then, when using atomap to create sublattices and quantify elements call
+ atomap like this: :python:`import atomap_devel_012.api as am`.
+ * This development version is slowly being folded into the master branch
+ here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or
+ tips on implementation are welcome!
diff --git a/doc/_build/html/_sources/line_profile_tutorial.rst.txt b/doc/_build/html/_sources/line_profile_tutorial.rst.txt
index 01d92a8..4a1b719 100644
--- a/doc/_build/html/_sources/line_profile_tutorial.rst.txt
+++ b/doc/_build/html/_sources/line_profile_tutorial.rst.txt
@@ -7,11 +7,13 @@
Line Intensity Profile Comparisons
==================================
-The :python:`temul.signal_plotting` module allows one to draw line intensity profiles
-over images. The :python:`compare_images_line_profile_one_image` can be used to
+The :py:mod:`temul.signal_plotting` module allows one to draw line
+intensity profiles over images. The
+:py:func`temul.signal_plotting.compare_images_line_profile_one_image` can be used to
draw two line profiles on one image for comparison. In future we hope to expand
this function to allow for multiple line profiles on one image. The
-:python:`compare_images_line_profile_two_images` function allows you to draw a line
+:py:func:`temul.signal_plotting.compare_images_line_profile_two_images`
+function allows you to draw a line
profile on an image, and apply that same profile to another image (of the same shape).
This can be useful for comparing subsequent images in series or comparing experimental
and simulated images.
@@ -24,7 +26,7 @@ Load the Example Images
-----------------------
Here we load some dummy data using a variation of Atomap's
-:python:`get_simple_cubic_signal` function.
+:py:func:`temul.dummy_data.get_simple_cubic_signal` function.
.. code-block:: python
@@ -46,8 +48,10 @@ Compare two Line Profiles in one Image
--------------------------------------
As with the :ref:`Masked FFT and iFFT ` tutorial, we can
-choose points on the image. This time we use :python:`choose_points_on_image`.
-We need to choose four points for the :python:`compare_images_line_profile_one_image`
+choose points on the image. This time we use
+:py:func:`temul.topotem.fft_mapping.choose_points_on_image`.
+We need to choose four points for the
+:py:func:`temul.signal_plotting.compare_images_line_profile_one_image`
function, as it draws two line profiles over one image.
.. code-block:: python
@@ -80,7 +84,8 @@ Now run the comparison function to display the two line intensity profiles.
Compare two Images with Line Profile
------------------------------------
-Using :python:`choose_points_on_image`, we now choose two points on one image.
+Using :py:func:`temul.topotem.fft_mapping.choose_points_on_image`,
+we now choose two points on one image.
Then, we plot this line intensity profile over the same position in two images.
.. code-block:: python
diff --git a/doc/_build/html/_sources/masked_fft_tutorial.rst.txt b/doc/_build/html/_sources/masked_fft_tutorial.rst.txt
index 532e066..44a488a 100644
--- a/doc/_build/html/_sources/masked_fft_tutorial.rst.txt
+++ b/doc/_build/html/_sources/masked_fft_tutorial.rst.txt
@@ -7,9 +7,12 @@
Masked FFT and iFFT
===================
-The :python:`temul.signal_processing` module allows one to choose the masking coordinates with
-:python:`choose_mask_coordinates` and easily returnt the masked fast Fourier Transform (FFT) with
-:python:`get_masked_ifft`. This can useful in various scenarios, from understanding
+The :py:mod:`temul.signal_processing` module allows one to choose the
+masking coordinates with
+:py:func:`temul.topotem.fft_mapping.choose_mask_coordinates` and easily
+return the masked fast Fourier Transform (FFT) with
+:py:func:`temul.topotem.fft_mapping.get_masked_ifft`. This can useful in
+various scenarios, from understanding
the diffraction space spots and how they relate to the real space structure,
to `revealing domain walls `_
and finding initial atom positions for difficult images.
diff --git a/doc/_build/html/_sources/news.rst.txt b/doc/_build/html/_sources/news.rst.txt
index b3af5ca..43c74de 100644
--- a/doc/_build/html/_sources/news.rst.txt
+++ b/doc/_build/html/_sources/news.rst.txt
@@ -1,4 +1,4 @@
-.. _install:
+.. _news:
.. include:: define_roles.rst
diff --git a/doc/_build/html/_sources/polarisation_vectors_tutorial.rst.txt b/doc/_build/html/_sources/polarisation_vectors_tutorial.rst.txt
index a071c4e..e77e726 100644
--- a/doc/_build/html/_sources/polarisation_vectors_tutorial.rst.txt
+++ b/doc/_build/html/_sources/polarisation_vectors_tutorial.rst.txt
@@ -14,13 +14,13 @@ of each.
Current functions:
-1. Using Atomap's :python:`get_polarization_from_second_sublattice` Sublattice
- method. Great for "standard" polarised structures with two sublattices.
-2. Using the TEMUL :python:`find_polarisation_vectors` function. Useful for
- structures that Atomap's :python:`get_polarization_from_second_sublattice` can't
- handle.
-3. Using the TEMUL :python:`atom_deviation_from_straight_line_fit` function.
- Useful for calculating polarisation from a single sublattice, similar to and
+1. Using Atomap's `get_polarization_from_second_sublattice `_
+ Sublattice method. Great for "standard" polarised structures with two sublattices.
+2. Using the TEMUL :py:func:`temul.topotem.polarisation.find_polarisation_vectors`
+ function. Useful for structures that Atomap's
+ :python:`get_polarization_from_second_sublattice` can't handle.
+3. Using the TEMUL :py:func:`temul.topotem.polarisation.atom_deviation_from_straight_line_fit`
+ function. Useful for calculating polarisation from a single sublattice, similar to and
based off: J. Gonnissen *et al*, Direct Observation of Ferroelectric Domain Walls in
LiNbO3: Wall‐Meanders, Kinks, and Local Electric Charges, 26, 42, 2016, DOI: 10.1002/adfm.201603489.
@@ -36,12 +36,13 @@ where you will find the python scripts and interactive python notebooks:
For standard Polarised Structures (e.g., PTO)
---------------------------------------------
-Atomap's :python:`get_polarization_from_second_sublattice` Sublattice method will
+Atomap's `get_polarization_from_second_sublattice `_
+Sublattice method will
be sufficent for most users when dealing with the classic PTO-style polarisation,
wherein the atoms in a sublattice are polarised with respect to a second sublattice.
See the second section of this tutorial on how to plot this in many different ways
-using :python:`plot_polarisation_vectors`!
+using :py:func:`temul.topotem.polarisation.plot_polarisation_vectors`!
.. code-block:: python
@@ -72,13 +73,14 @@ using :python:`plot_polarisation_vectors`!
For nonstandard Polarised Structures (e.g., Boracites)
------------------------------------------------------
When the above function can't isn't suitable, the TEMUL
-:python:`find_polarisation_vectors` function may be an option. It is useful for
-structures that Atomap's :python:`get_polarization_from_second_sublattice` can't
+:py:func:`temul.topotem.polarisation.find_polarisation_vectors` function may
+be an option. It is useful for structures that Atomap's
+:python:`get_polarization_from_second_sublattice` can't
handle. It is a little more involved and requires some extra preparation when
creating the sublattices.
See the second section of this tutorial on how to plot this in many different ways
-using :python:`plot_polarisation_vectors`!
+using :py:func:`temul.topotem.polarisation.plot_polarisation_vectors`!
.. code-block:: python
@@ -130,13 +132,13 @@ For single Polarised Sublattices (e.g., LNO)
--------------------------------------------
When dealing with structures in which the polarisation must be extracted from a
single sublattice (one type of chemical atomic column, the TEMUL
-:python:`atom_deviation_from_straight_line_fit` function
+:py:func:`temul.topotem.polarisation.atom_deviation_from_straight_line_fit` function
may be an option. It is based off the description by J. Gonnissen *et al*,
Direct Observation of Ferroelectric Domain Walls in LiNbO3: Wall‐Meanders,
Kinks, and Local Electric Charges, 26, 42, 2016, DOI: 10.1002/adfm.201603489.
See the second section of this tutorial on how to plot this in many different ways
-using :python:`plot_polarisation_vectors`!
+using :py:func:`temul.topotem.polarisation.plot_polarisation_vectors`!
.. code-block:: python
@@ -191,9 +193,10 @@ Let's look at some rotated data
Plotting Polarisation and Movement Vectors
==========================================
-The :python:`temul.polarisation` module allows one to visualise the
+The :py:mod:`temul.topotem.polarisation` module allows one to visualise the
polarisation/movement of atoms in an atomic resolution image. In this tutorial,
-we will use a dummy dataset to show the different ways the :python:`plot_polarisation_vectors`
+we will use a dummy dataset to show the different ways the
+:py:func:`temul.topotem.polarisation.plot_polarisation_vectors`
function can display data. In future, tutorials on published experimental data
will also be available.
@@ -256,7 +259,8 @@ polarisation vectors for regular structures.
>>> x, y = [i[0] for i in vector_list], [i[1] for i in vector_list]
>>> u, v = [i[2] for i in vector_list], [i[3] for i in vector_list]
-Now we can display all of the variations that :python:`plot_polarisation_vectors`
+Now we can display all of the variations that
+:py:func:`temul.topotem.polarisation.plot_polarisation_vectors`
gives us! You can specify sampling (scale) and units, or use a calibrated image
so that they are automatically set.
diff --git a/doc/_build/html/_sources/structure_map_tutorial.rst.txt b/doc/_build/html/_sources/structure_map_tutorial.rst.txt
index f8856dd..04ea88e 100644
--- a/doc/_build/html/_sources/structure_map_tutorial.rst.txt
+++ b/doc/_build/html/_sources/structure_map_tutorial.rst.txt
@@ -7,7 +7,7 @@
Plot Lattice Structure Maps
===========================
-The :python:`temul.polarisation` module allows one to easily visualise various
+The :py:mod:`temul.topotem.polarisation` module allows one to easily visualise various
lattice structure characteristics, such as strain, rotation of atoms along atom
planes, and the *c*/*a* ratio in an atomic resolution image. In this tutorial,
we will use a dummy dataset to show the different ways each map can be created.
@@ -38,7 +38,8 @@ Plot the Lattice Strain Map
---------------------------
By inputting the calculated or theoretical atom plane separation distance as the
-:python:`theoretical_value` parameter in :python:`tml.get_strain_map` below,
+:python:`theoretical_value` parameter in
+:py:func:`temul.topotem.polarisation.get_strain_map` below,
we can plot a strain map. The distance *l* is calculated as the distance between
each atom plane in the given zone axis. More details on this can be found on the
`Atomap `_
@@ -70,7 +71,8 @@ applies to all structure maps discussed in this tutorial.
Plot the Lattice Atom Rotation Map
----------------------------------
-The :python:`rotation_of_atom_planes` function calculates the angle between
+The :py:func:`temul.topotem.polarisation.rotation_of_atom_planes` function
+calculates the angle between
successive atoms and the horizontal for all atoms in the given zone axis. See
`Atomap `_
for other options.
@@ -103,7 +105,8 @@ for other options.
Plot the *c*/*a* Ratio
----------------------
-Using the :python:`ratio_of_lattice_spacings` function, we can visualise the ratio of
+Using the :py:func:`temul.topotem.polarisation.ratio_of_lattice_spacings`
+function, we can visualise the ratio of
two sublattice zone axes. Useful for plotting the *c*/*a* Ratio.
.. code-block:: python
diff --git a/doc/_build/html/_static/documentation_options.js b/doc/_build/html/_static/documentation_options.js
index 74ba60e..5bbea51 100644
--- a/doc/_build/html/_static/documentation_options.js
+++ b/doc/_build/html/_static/documentation_options.js
@@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: 'v0.1.2',
+ VERSION: 'v0.1.3',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/doc/_build/html/about_temul_toolkit.html b/doc/_build/html/about_temul_toolkit.html
new file mode 100644
index 0000000..fd73410
--- /dev/null
+++ b/doc/_build/html/about_temul_toolkit.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+ Some published results using the TEMUL Toolkit — TEMUL Toolkit v0.1.3 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Some published results using the TEMUL Toolkit¶
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/_build/html/api_doc.html b/doc/_build/html/api_doc.html
index 721408d..6065207 100644
--- a/doc/_build/html/api_doc.html
+++ b/doc/_build/html/api_doc.html
@@ -7,7 +7,7 @@
- API documentation — TEMUL Toolkit v0.1.2 documentation
+ API documentation — TEMUL Toolkit v0.1.3 documentation
@@ -65,7 +65,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -211,10 +211,10 @@ Modules
temul.topotem.polarisation.atom_deviation_from_straight_line_fit(sublattice, axis_number, n, second_fit_rigid=True, plot=False)¶
Fits the atomic columns in an atom plane to two straight lines using the
-first n
and second (last) n
atomic columns. Computes the distance of
-each atomic column from the line halfway between the two fitted lines, as
-described in [1]_. This is done for every sublattice atom plane along the
-chosen axis_number
.
+first n
and second (last) n
atomic columns. Computes the distance
+of each atomic column from the line halfway between the two fitted lines,
+as described in [1]_. This is done for every sublattice atom plane along
+the chosen axis_number
.
The slope of the first fitting will be used for the
second fitting. Setting second_fit_rigid
= False will reverse this
behaviour.
@@ -237,11 +237,13 @@ ModulesReturns
-x, y, u, v – x, y are the original atom position coordinates sublattice.x_position`
-and ``sublattice.y_position
for the coordinates included in the chosen
+
x, y, u, v – x, y are the original atom position coordinates
+sublattice.x_position
and sublattice.y_position
for
+the coordinates included in the chosen
axis_number
. u, v are the polarisation vector components pointing
towards the halfway line from the atom position coordinates.
-These can be input to plot_polarisation_vectors()
for visualisation.
+These can be input to plot_polarisation_vectors()
+for visualisation.
Return type
lists of equal length
@@ -595,9 +597,9 @@ Moduleslist or 1D NumPy array) –
degrees (bool, default False) – Change between degrees and radian. Default is radian.
angle_offset (float, default None) – Rotate the angles by the given amount. The function assumes that if you
-set degrees=False
then the provided angle_offset
is in radians, and
-if you set degrees=True
then the provided angle_offset
is in
-degrees.
+set degrees=False
then the provided angle_offset
is in radians,
+and if you set degrees=True
then the provided angle_offset
is
+in degrees.
Returns
@@ -728,8 +730,8 @@ Modules
temul.topotem.polarisation.get_divide_into(sublattice, averaging_by, sampling, zone_axis_index_A, zone_axis_index_B)¶
-Calculate the divide_into
required to get an averaging of averaging_by
.
-divide_into
can then be used in
+
Calculate the divide_into
required to get an averaging of
+averaging_by
. divide_into
can then be used in
temul.topotem.polarisation.get_average_polarisation_in_regions.
Also finds unit cell size and the number of unit cells in the (square)
image along the x axis.
@@ -790,8 +792,8 @@ Modulesbool) – Set to true if the figure should be plotted.
filename (string, optional) – If filename is set, the strain signal and plot will be saved.
plot
must be set to True.
-return_x_y_z (bool, default False) – If this is set to True, the strain_signal
(map), as well as separate
-lists of the x, y, and strain values.
+return_x_y_z (bool, default False) – If this is set to True, the strain_signal
(map), as well as
+separate lists of the x, y, and strain values.
**kwargs (Matplotlib keyword arguments passed to imshow()
.) –
@@ -853,7 +855,8 @@ Modules
temul.topotem.polarisation.get_xyuv_from_line_fit(arr, n, second_fit_rigid=True, plot=False)¶
Fits the data in an array to two straight lines using the
-first n
and second (last) n
array value pairs. Computes the distance of
+first n
and second (last) n
array value pairs.
+Computes the distance of
each array value pair from the line halfway between the two fitted lines.
The slope of the first fitting will be used for the
second fitting. Setting second_fit_rigid
= False will reverse this
@@ -875,7 +878,8 @@
ModulesReturns
x, y, u, v – x, y are the original arr coordinates. u, v are the vector components
pointing towards the halfway line from the arr coordinates.
-These can be input to plot_polarisation_vectors()
for visualisation.
+These can be input to plot_polarisation_vectors()
for
+visualisation.
Return type
lists of equal length
@@ -957,23 +961,24 @@ Modulesbool, default False) – Change the vectors magnitude to unit vectors for plotting purposes.
Magnitude will still be displayed correctly for colormaps etc.
vector_rep (str, default "magnitude") – How the vectors are represented. This can be either their magnitude
-or angle
. One may want to use angle
when plotting a contour map,
-i.e., view the contours in terms of angles which can be useful for
-visualising regions of different polarisation.
+or angle
. One may want to use angle
when plotting a
+contour map, i.e. view the contours in terms of angles which can be
+useful for visualising regions of different polarisation.
degrees (bool, default False) – Change between degrees and radian. Default is radian.
-If plot_style="colorwheel"
, then setting degrees=True
will convert
-the angle unit to degree from the default radians.
-angle_offset (float, default None) – If using vector_rep="angle"
or plot_style="contour"
, this angle
-will rotate the vector angles displayed by the given amount. Useful
-when you want to offset the angle of the atom planes relative to the
-polarisation.
+If plot_style="colorwheel"
, then setting degrees=True
+will convert the angle unit to degree from the default radians.
+angle_offset (float, default None) – If using vector_rep="angle"
or plot_style="contour"
, this
+angle will rotate the vector angles displayed by the given amount.
+Useful when you want to offset the angle of the atom planes relative
+to the polarisation.
save (string) – If set to save=None
, the image will not be saved.
title (string, default "") – Title of the plot.
color (string, default "r") – Color of the arrows when plot_style="vector"
or "contour"
.
cmap (matplotlib colormap, default "viridis"
) – Matplotlib cmap used for the vector arrows.
-alpha (float, default 1.0) – Transparency of the matplotlib cmap
. For plot_style="colormap"
and
-plot_style="colorwheel"
, this alpha applies to the vector arrows.
-For plot_style="contour"
this alpha applies to the tricontourf map.
+alpha (float, default 1.0) – Transparency of the matplotlib cmap
. For plot_style="colormap"
+and plot_style="colorwheel"
, this alpha applies to the vector
+arrows. For plot_style="contour"
this alpha applies to the
+tricontourf map.
image_cmap (matplotlib colormap, default 'gray') – Matplotlib cmap that will be used for the overlay image.
monitor_dpi (int, default 96) – The DPI of the monitor, generally 96 pixels. Used to scale the image
so that large images render correctly. Use a smaller value to enlarge
@@ -986,9 +991,10 @@
Modulesbool or dict, default False) – Add a matplotlib-scalebar to the plot. If set to True the scalebar will
-appear similar to that given by Hyperspy’s plot()
function. A custom
-scalebar can be included as a dictionary and more custom options can be
-found in the matplotlib-scalebar package. See below for an example.
+appear similar to that given by Hyperspy’s plot()
function. A
+custom scalebar can be included as a dictionary and more custom
+options can be found in the matplotlib-scalebar package. See below
+for an example.
antialiased (bool, default False) – Applies only to plot_style="contour"
. Essentially removes the
border between regions in the tricontourf map.
levels (int, default 20) – Number of Matplotlib tricontourf levels to be used.
@@ -1350,13 +1356,13 @@ Modules
temul.topotem.lattice_structure_tools.calculate_atom_plane_curvature(sublattice, zone_vector_index, func='strain_grad', atom_planes=None, sampling=None, units='pix', vmin=None, vmax=None, cmap='inferno', title='Curvature Map', filename=None, plot=False, return_fits=False, **kwargs)¶
Calculates the curvature of the sublattice atom planes along the direction
-given by zone_vector_index
. In the case of [1]_. below, the curvature is
-the inverse of the radius of curvature, and is effectively equal to the
+given by zone_vector_index
. In the case of [1]_. below, the curvature
+is the inverse of the radius of curvature, and is effectively equal to the
second derivative of the displacement direction of the atoms. Because the
first derivative is negligible, the curvature can be calculated as the
strain gradient 2.
-With the parameter func="strain_grad"
, this function calculates the strain
-gradient of the atom planes of a Atomap Sublattice object.
+With the parameter func="strain_grad"
, this function calculates the
+strain gradient of the atom planes of a Atomap Sublattice object.
- Parameters
@@ -1656,8 +1662,8 @@ Modulesfloat, default 0.40) – Determines the boundary of the area surrounding each atomic
column, as fraction of the distance to the nearest neighbour.
-
mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
must
-be None.
+mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
+must be None.
- Returns
@@ -1721,8 +1727,8 @@ Modulesfloat, default 0.4) – Determines the boundary of the area surrounding each atomic
column, as fraction of the distance to the nearest neighbour.
-
mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
must
-be None.
+mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
+must be None.
Returns
@@ -1764,8 +1770,8 @@ Modulesfloat, default 0.40) – Determines the boundary of the area surrounding each atomic
column, as fraction of the distance to the nearest neighbour.
-
mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
must
-be None.
+mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
+must be None.
Returns
@@ -2281,15 +2287,15 @@ Modulesbool, default True) – If set to True, the input sublattice
will be changed inplace and the
-sublattice returned. If set to False, these changes will be output only
-to a new sublattice.
+
inplace (bool, default True) – If set to True, the input sublattice
will be changed inplace and
+the sublattice returned. If set to False, these changes will be output
+only to a new sublattice.
Returns
-Atomap Sublattice object if inplace=False
. See the inplace
parameter
-for details.
+Atomap Sublattice object if inplace=False
. See the inplace
+parameter for details.
@@ -2486,8 +2492,8 @@ Modulesfloat, default 0.40) – Determines the boundary of the area surrounding each atomic
column, as fraction of the distance to the nearest neighbour.
-
mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
must
-be None.
+mask_radius (float) – Radius of the atomic column in pixels. If chosen, percent_to_nn
+must be None.
split_symbol (string, default '_') – The symbols used to split the element into its name
and count.
The first string ‘_’ is used to split the name and count
@@ -2621,10 +2627,11 @@
Image Simulation Functionsfloat, default 0.4) – Determines the boundary of the area surrounding each atomic
column, as fraction of the distance to the nearest neighbour.
mask_radius (int, default None) – Radius in pixels of the mask. If set, then set percent_to_nn=None
.
-refine (bool, default False) – If set to True, the calibrate_intensity_distance_with_sublattice_roi`
-calibration will refine the atom positions for each calibration. May
-make the function very slow depending on the size of ``image_to_filter`
-and ``cropping_area
.
+refine (bool, default False) – If set to True, the
+calibrate_intensity_distance_with_sublattice_roi
+calibration will refine the atom positions for each calibration. May
+make the function very slow depending on the size of
+image_to_filter
and cropping_area
.
Returns
@@ -2655,8 +2662,8 @@ Image Simulation Functions
temul.signal_processing.crop_image_hs(image, cropping_area, scalebar_true=True, filename=None)¶
-Crop a Hyperspy Signal2D by providing the cropping_area
. See the example
-below.
+Crop a Hyperspy Signal2D by providing the cropping_area
. See the
+example below.
- Parameters
@@ -3365,8 +3372,8 @@ Image Simulation Functionsfloat, default 'auto') – if set to ‘auto’ the function will attempt to find the sampling of
image from image.axes_manager[0].scale.
units (string, default 'nm') –
-crop_offset (int, default 20) – number of pixels away from the line_profile_positions
coordinates the
-image crop will be taken.
+crop_offset (int, default 20) – number of pixels away from the line_profile_positions
+coordinates the image crop will be taken.
title (string, default "Intensity Profile") – Title of the plot
marker_A (Matplotlib marker) –
marker_B (Matplotlib marker) –
@@ -4087,7 +4094,7 @@ Image Simulation Functions
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
- © Copyright 2020, Eoghan O'Connell. + © Copyright 2021, Eoghan O'Connell.
The temul.signal_processing
module allows one to filter images with a
+
The temul.signal_processing
module allows one to filter images with a
double Gaussian (band-pass) filter. Apart from the base functions, it can be
-done interactively with the visualise_dg_filter
function. In this
+done interactively with the
+temul.signal_processing.visualise_dg_filter()
function. In this
tutorial, we will see how to use the function on experimental data.
Run the visualise_dg_filter
function. There are lots of other parameters
-too for customisation.
Run the temul.signal_processing.visualise_dg_filter()
function.
+There are lots of other parameters too for customisation.
>>> tml.visualise_dg_filter(image)
As we can see, an interactive window appears, showing the FFT (“FFT Widget”) of the image with
-the positions of the inner and outer Gaussian full width at half maximums (FWHMs).
-The inital FWHMs can be changed with the d_inner
and d_outer
+
As we can see, an interactive window appears, showing the FFT (“FFT Widget”)
+of the image with the positions of the inner and outer Gaussian full width
+at half maximums (FWHMs). The inital FWHMs can be changed with the
+d_inner
and d_outer
parameters (limits can also be changed).
To change the two FWHMs interactively just use the sliders at the bottom of the window. Reset can be used to reset the @@ -214,7 +216,8 @@
When we have suitable FWHMs for the inner and outer Gaussians, we can use
-the double_gaussian_fft_filter
function the return a filtered image.
temul.signal_processing.double_gaussian_fft_filter()
function
+the return a filtered image.
>>> filtered_image = tml.double_gaussian_fft_filter(image, 50, 150)
>>> image.plot()
>>> filtered_image.plot()
@@ -222,9 +225,9 @@ Return the Filtered Image
-
Details on the double_gaussian_fft_filter_optimised
function can be
-found in the API documentation.
-We hope to added some examples of this functions to this page in future.
+Details on the
+temul.signal_processing.double_gaussian_fft_filter_optimised()
+function can be found in the API documentation.
- © Copyright 2020, Eoghan O'Connell. + © Copyright 2021, Eoghan O'Connell.
- © Copyright 2020, Eoghan O'Connell. + © Copyright 2021, Eoghan O'Connell.
The easiest way to try the TEMUL Toolkit is via Binder: +introductory Jupyter Notebook. +To install the TEMUL Toolkit on your own computer, +see the Installation instructions.
+And there are more examples with Binder, just click the below button!
-Click the button above to start some data analysis (it may take a few minutes to load). +
Click the button above to start some data analysis +(it may take a few minutes to load). The “code_tutorials” folder contains walkthroughs of some of the documentation examples from this website. -The “publication_examples” folder will allow you to analyse data from published scientific papers! +The “publication_examples” folder will allow you to analyse data from +published scientific papers! Just navigate to whichever of these folders you want click on the “.ipynb” files.
The polarisation, structure tools and fft mapping has now been refactored into the topotem module. The temul -functionality remains the same i.e. ``import temul.api as tml`.
+functionality remains the same i.e. ``import temul.api as tml`.The TEMUL Toolkit can be installed easily with PIP (those using Windows may need to download VS C++ Build Tools, see below).
+The TEMUL Toolkit can be installed easily with PIP (those using Windows may +need to download VS C++ Build Tools, see below).
$ pip install temul-toolkit
Then, it can be imported with the name “temul”. For example, to import most of the temul functionality use:
+Then, it can be imported with the name “temul”. For example, to import most +of the temul functionality use:
import temul.api as tml
Matplotlib 3.3 currently has compatability issues with iPython, see below for the fix.
If installing on Windows, you will need Visual Studio C++ Build Tools. Download it here. After downloading, choose the “C++ Build Tools” Workload and click install.
Matplotlib seems to have issues with iPython at the moment. Install matplotlib==3.2 until this issue is resolved by Matplotlib. See here for more details.
If you want to use the io.write_cif_from_dataframe
function, you will need to install pyCifRW version 4.3. This requires Visual Studio.
If you wish to use the simulations.py
or model_refiner.py
modules, you will need to install PyPrismatic. This requires Visual Studio and other dependencies.
If you’re using any of the functions or classes that require element quantification:
+If installing on Windows, you will need Visual Studio C++ Build Tools. +Download it here. +After downloading, choose the “C++ Build Tools” Workload and click install.
If you want to use the temul.io.write_cif_from_dataframe()
+function, you will need to install pyCifRW version 4.3. This requires
+Visual Studio.
If you wish to use the temul.simulations
or
+temul.model_refiner
modules, you will need to install PyPrismatic.
+This requires Visual Studio and other dependencies.
+It is unfortunately not guaranteed to work. If you want to help develop
+the temul.model_refiner.Model_Refiner
, please create an issue
+and/or a pull request on the
+TEMUL github.
If you’re using any of the functions or classes that require element +quantification:
-
- -
navigate to the “temul/external” directory, copy the “atomap_devel_012” folder and paste that in your “site-packages” directory.
- -
Then, when using atomap to create sublattices and quantify elements call atomap like this:
import atomap_devel_012.api as am
.- +
This development version is slowly being folded into the master branch here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or tips on implementation are welcome!
- +
navigate to the “temul/external” directory, copy the “atomap_devel_012” +folder and paste that in your “site-packages” directory.
- +
Then, when using atomap to create sublattices and quantify elements call +atomap like this:
import atomap_devel_012.api as am
.This development version is slowly being folded into the master branch +here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or +tips on implementation are welcome!
To cite the latest TEMUL Toolkit version, use the following DOI:
-For example: Eoghan O’Connell, Michael Hennessy, & Eoin Moynihan. (2020, November 2). PinkShnack/TEMUL: Initial Temul-Toolkit Release (Version 0.1.1). Zenodo. http://doi.org/10.5281/zenodo.4185974
+For example: Eoghan O’Connell, Michael Hennessy, & Eoin Moynihan. +(2021). PinkShnack/TEMUL: (Version 0.1.3). +Zenodo. http://doi.org/10.5281/zenodo.4543963
If you wish to cite an older release of the TEMUL Toolkit, click on the above badge to find the relevant version.
- © Copyright 2020, Eoghan O'Connell. + © Copyright 2021, Eoghan O'Connell.
The TEMUL Toolkit can be installed easily with PIP (those using Windows may need to download VS C++ Build Tools, see below).
+The TEMUL Toolkit can be installed easily with PIP (those using Windows may +need to download VS C++ Build Tools, see below).
$ pip install temul-toolkit
Then, it can be imported with the name “temul”. For example, to import most of the temul functionality use:
+Then, it can be imported with the name “temul”. For example, to import most +of the temul functionality use:
import temul.api as tml
Matplotlib 3.3 currently has compatability issues with iPython, see below for the fix.
If installing on Windows, you will need Visual Studio C++ Build Tools. Download it here. After downloading, choose the “C++ Build Tools” Workload and click install.
Matplotlib seems to have issues with iPython at the moment. Install matplotlib==3.2 until this issue is resolved by Matplotlib. See here for more details.
If you want to use the io.write_cif_from_dataframe
function, you will need to install pyCifRW version 4.3. This requires Visual Studio.
If you wish to use the simulations.py
or model_refiner.py
modules, you will need to install PyPrismatic. This requires Visual Studio and other dependencies.
If you’re using any of the functions or classes that require element quantification:
+If installing on Windows, you will need Visual Studio C++ Build Tools. +Download it here. +After downloading, choose the “C++ Build Tools” Workload and click install.
If you want to use the temul.io.write_cif_from_dataframe()
+function, you will need to install pyCifRW version 4.3. This requires
+Visual Studio.
If you wish to use the temul.simulations
or
+temul.model_refiner
modules, you will need to install PyPrismatic.
+This requires Visual Studio and other dependencies.
+It is unfortunately not guaranteed to work. If you want to help develop
+the temul.model_refiner.Model_Refiner
, please create an issue
+and/or a pull request on the
+TEMUL github.
If you’re using any of the functions or classes that require element +quantification:
-
- -
navigate to the “temul/external” directory, copy the “atomap_devel_012” folder and paste that in your “site-packages” directory.
- -
Then, when using atomap to create sublattices and quantify elements call atomap like this:
import atomap_devel_012.api as am
.- +
This development version is slowly being folded into the master branch here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or tips on implementation are welcome!
- +
navigate to the “temul/external” directory, copy the “atomap_devel_012” +folder and paste that in your “site-packages” directory.
- +
Then, when using atomap to create sublattices and quantify elements call +atomap like this:
import atomap_devel_012.api as am
.This development version is slowly being folded into the master branch +here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or +tips on implementation are welcome!
- © Copyright 2020, Eoghan O'Connell. + © Copyright 2021, Eoghan O'Connell.
The temul.signal_plotting
module allows one to draw line intensity profiles
-over images. The compare_images_line_profile_one_image
can be used to
+
The temul.signal_plotting
module allows one to draw line
+intensity profiles over images. The
+:py:func`temul.signal_plotting.compare_images_line_profile_one_image` can be used to
draw two line profiles on one image for comparison. In future we hope to expand
this function to allow for multiple line profiles on one image. The
-compare_images_line_profile_two_images
function allows you to draw a line
+temul.signal_plotting.compare_images_line_profile_two_images()
+function allows you to draw a line
profile on an image, and apply that same profile to another image (of the same shape).
This can be useful for comparing subsequent images in series or comparing experimental
and simulated images.
Here we load some dummy data using a variation of Atomap’s
-get_simple_cubic_signal
function.
temul.dummy_data.get_simple_cubic_signal()
function.
>>> from temul.dummy_data import get_simple_cubic_signal
>>> imageA = get_simple_cubic_signal(image_noise=True, amplitude=[1, 5])
>>> imageA.plot()
@@ -206,8 +208,10 @@ Load the Example Images
Compare two Line Profiles in one Image¶
As with the Masked FFT and iFFT tutorial, we can
-choose points on the image. This time we use choose_points_on_image
.
-We need to choose four points for the compare_images_line_profile_one_image
+choose points on the image. This time we use
+temul.topotem.fft_mapping.choose_points_on_image()
.
+We need to choose four points for the
+temul.signal_plotting.compare_images_line_profile_one_image()
function, as it draws two line profiles over one image.
>>> import temul.api as tml
>>> line_profile_positions = tml.choose_points_on_image(imageA)
@@ -229,7 +233,8 @@ Compare two Line Profiles in one Image
Compare two Images with Line Profile¶
-Using choose_points_on_image
, we now choose two points on one image.
+
Using temul.topotem.fft_mapping.choose_points_on_image()
,
+we now choose two points on one image.
Then, we plot this line intensity profile over the same position in two images.
>>> line_profile_positions = tml.choose_points_on_image(imageA)
>>> line_profile_positions
@@ -263,7 +268,7 @@ Compare two Images with Line Profile
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/masked_fft_tutorial.html b/doc/_build/html/masked_fft_tutorial.html
index c11349c..fcc25c4 100644
--- a/doc/_build/html/masked_fft_tutorial.html
+++ b/doc/_build/html/masked_fft_tutorial.html
@@ -7,7 +7,7 @@
- Masked FFT and iFFT — TEMUL Toolkit v0.1.2 documentation
+ Masked FFT and iFFT — TEMUL Toolkit v0.1.3 documentation
@@ -66,7 +66,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -180,9 +180,12 @@
Masked FFT and iFFT¶
-The temul.signal_processing
module allows one to choose the masking coordinates with
-choose_mask_coordinates
and easily returnt the masked fast Fourier Transform (FFT) with
-get_masked_ifft
. This can useful in various scenarios, from understanding
+
The temul.signal_processing
module allows one to choose the
+masking coordinates with
+temul.topotem.fft_mapping.choose_mask_coordinates()
and easily
+return the masked fast Fourier Transform (FFT) with
+temul.topotem.fft_mapping.get_masked_ifft()
. This can useful in
+various scenarios, from understanding
the diffraction space spots and how they relate to the real space structure,
to revealing domain walls
and finding initial atom positions for difficult images.
@@ -261,7 +264,7 @@ Run FFT masking for Multiple Images
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/news.html b/doc/_build/html/news.html
index a1016f5..8510062 100644
--- a/doc/_build/html/news.html
+++ b/doc/_build/html/news.html
@@ -7,7 +7,7 @@
- News — TEMUL Toolkit v0.1.2 documentation
+ News — TEMUL Toolkit v0.1.3 documentation
@@ -64,7 +64,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -171,12 +171,12 @@
-News¶
+News¶
16/02/2021: Version 0.1.4 released¶
The polarisation, structure tools and fft mapping has now
been refactored into the topotem module. The temul
-functionality remains the same i.e. ``import temul.api as tml`.
+functionality remains the same i.e. ``import temul.api as tml`.
16/02/2021: Version 0.1.3 released¶
@@ -249,7 +249,7 @@ 02/11/2020: Version 0.1.1 released
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/objects.inv b/doc/_build/html/objects.inv
index c60632e..2b94b61 100644
Binary files a/doc/_build/html/objects.inv and b/doc/_build/html/objects.inv differ
diff --git a/doc/_build/html/polarisation_vectors_tutorial.html b/doc/_build/html/polarisation_vectors_tutorial.html
index 62daba8..acde27d 100644
--- a/doc/_build/html/polarisation_vectors_tutorial.html
+++ b/doc/_build/html/polarisation_vectors_tutorial.html
@@ -7,7 +7,7 @@
- Finding Polarisation Vectors — TEMUL Toolkit v0.1.2 documentation
+ Finding Polarisation Vectors — TEMUL Toolkit v0.1.3 documentation
@@ -66,7 +66,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -189,13 +189,13 @@
of each.
Current functions:
-Using Atomap’s get_polarization_from_second_sublattice
Sublattice
-method. Great for “standard” polarised structures with two sublattices.
-Using the TEMUL find_polarisation_vectors
function. Useful for
-structures that Atomap’s get_polarization_from_second_sublattice
can’t
-handle.
-Using the TEMUL atom_deviation_from_straight_line_fit
function.
-Useful for calculating polarisation from a single sublattice, similar to and
+
Using Atomap’s get_polarization_from_second_sublattice
+Sublattice method. Great for “standard” polarised structures with two sublattices.
+Using the TEMUL temul.topotem.polarisation.find_polarisation_vectors()
+function. Useful for structures that Atomap’s
+get_polarization_from_second_sublattice
can’t handle.
+Using the TEMUL temul.topotem.polarisation.atom_deviation_from_straight_line_fit()
+function. Useful for calculating polarisation from a single sublattice, similar to and
based off: J. Gonnissen et al, Direct Observation of Ferroelectric Domain Walls in
LiNbO3: Wall‐Meanders, Kinks, and Local Electric Charges, 26, 42, 2016, DOI: 10.1002/adfm.201603489.
@@ -207,11 +207,12 @@
For standard Polarised Structures (e.g., PTO)¶
-Atomap’s get_polarization_from_second_sublattice
Sublattice method will
+
Atomap’s get_polarization_from_second_sublattice
+Sublattice method will
be sufficent for most users when dealing with the classic PTO-style polarisation,
wherein the atoms in a sublattice are polarised with respect to a second sublattice.
See the second section of this tutorial on how to plot this in many different ways
-using plot_polarisation_vectors
!
+using temul.topotem.polarisation.plot_polarisation_vectors()
!
>>> import temul.api as tml
>>> from temul.dummy_data import get_polarisation_dummy_dataset
>>> atom_lattice = get_polarisation_dummy_dataset(image_noise=True)
@@ -237,12 +238,13 @@ For standard Polarised Structures (e.g., PTO)
For nonstandard Polarised Structures (e.g., Boracites)¶
When the above function can’t isn’t suitable, the TEMUL
-find_polarisation_vectors
function may be an option. It is useful for
-structures that Atomap’s get_polarization_from_second_sublattice
can’t
+temul.topotem.polarisation.find_polarisation_vectors()
function may
+be an option. It is useful for structures that Atomap’s
+get_polarization_from_second_sublattice
can’t
handle. It is a little more involved and requires some extra preparation when
creating the sublattices.
See the second section of this tutorial on how to plot this in many different ways
-using plot_polarisation_vectors
!
+using temul.topotem.polarisation.plot_polarisation_vectors()
!
>>> import temul.api as tml
>>> import atomap.api as am
>>> import numpy as np
@@ -285,12 +287,12 @@ For nonstandard Polarised Structures (e.g., Boracites)For single Polarised Sublattices (e.g., LNO)¶
When dealing with structures in which the polarisation must be extracted from a
single sublattice (one type of chemical atomic column, the TEMUL
-atom_deviation_from_straight_line_fit
function
+temul.topotem.polarisation.atom_deviation_from_straight_line_fit()
function
may be an option. It is based off the description by J. Gonnissen et al,
Direct Observation of Ferroelectric Domain Walls in LiNbO3: Wall‐Meanders,
Kinks, and Local Electric Charges, 26, 42, 2016, DOI: 10.1002/adfm.201603489.
See the second section of this tutorial on how to plot this in many different ways
-using plot_polarisation_vectors
!
+using temul.topotem.polarisation.plot_polarisation_vectors()
!
>>> import temul.api as tml
>>> import temul.dummy_data as dd
>>> sublattice = dd.get_polarised_single_sublattice()
@@ -332,9 +334,10 @@ For single Polarised Sublattices (e.g., LNO)
Plotting Polarisation and Movement Vectors¶
-The temul.polarisation
module allows one to visualise the
+
The temul.topotem.polarisation
module allows one to visualise the
polarisation/movement of atoms in an atomic resolution image. In this tutorial,
-we will use a dummy dataset to show the different ways the plot_polarisation_vectors
+we will use a dummy dataset to show the different ways the
+temul.topotem.polarisation.plot_polarisation_vectors()
function can display data. In future, tutorials on published experimental data
will also be available.
To go through the below examples in a live Jupyter Notebook session, click the button below
@@ -380,7 +383,8 @@
Find the Vector Coordinates using Atomap>>> u, v = [i[2] for i in vector_list], [i[3] for i in vector_list]
-Now we can display all of the variations that plot_polarisation_vectors
+
Now we can display all of the variations that
+temul.topotem.polarisation.plot_polarisation_vectors()
gives us! You can specify sampling (scale) and units, or use a calibrated image
so that they are automatically set.
Vector magnitude plot with red arrows:
@@ -545,7 +549,7 @@ Find the Vector Coordinates using Atomap
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/py-modindex.html b/doc/_build/html/py-modindex.html
index 873a0ff..ba1b31a 100644
--- a/doc/_build/html/py-modindex.html
+++ b/doc/_build/html/py-modindex.html
@@ -7,7 +7,7 @@
- Python Module Index — TEMUL Toolkit v0.1.2 documentation
+ Python Module Index — TEMUL Toolkit v0.1.3 documentation
@@ -67,7 +67,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -253,7 +253,7 @@ Python Module Index
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/search.html b/doc/_build/html/search.html
index 36e894e..1227ad0 100644
--- a/doc/_build/html/search.html
+++ b/doc/_build/html/search.html
@@ -7,7 +7,7 @@
- Search — TEMUL Toolkit v0.1.2 documentation
+ Search — TEMUL Toolkit v0.1.3 documentation
@@ -67,7 +67,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -191,7 +191,7 @@
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/searchindex.js b/doc/_build/html/searchindex.js
index 7735388..10892a7 100644
--- a/doc/_build/html/searchindex.js
+++ b/doc/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["PTO_Junction_moore","PTO_supercrystal_hadjimichael","api_doc","define_roles","dg_visualiser_tutorial","index","install","line_profile_tutorial","masked_fft_tutorial","news","polarisation_vectors_tutorial","structure_map_tutorial","using_temul","workflows"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,sphinx:56},filenames:["PTO_Junction_moore.rst","PTO_supercrystal_hadjimichael.rst","api_doc.rst","define_roles.rst","dg_visualiser_tutorial.rst","index.rst","install.rst","line_profile_tutorial.rst","masked_fft_tutorial.rst","news.rst","polarisation_vectors_tutorial.rst","structure_map_tutorial.rst","using_temul.rst","workflows.rst"],objects:{"temul.dummy_data":{get_distorted_cubic_signal_adjustable:[2,1,1,""],get_distorted_cubic_sublattice_adjustable:[2,1,1,""],get_polarisation_dummy_dataset:[2,1,1,""],get_polarisation_dummy_dataset_bora:[2,1,1,""],get_polarised_single_sublattice:[2,1,1,""],get_polarised_single_sublattice_rotated:[2,1,1,""],get_simple_cubic_signal:[2,1,1,""],get_simple_cubic_sublattice:[2,1,1,""],get_simple_cubic_sublattice_positions_on_vac:[2,1,1,""],make_polarised_sublattice_bora_return:[2,1,1,""],polarisation_colorwheel_test_dataset:[2,1,1,""],sine_wave_sublattice:[2,1,1,""]},"temul.element_tools":{atomic_radii_in_pixels:[2,1,1,""],combine_element_lists:[2,1,1,""],get_and_return_element:[2,1,1,""],get_individual_elements_from_element_list:[2,1,1,""],split_and_sort_element:[2,1,1,""]},"temul.example_data":{load_Se_implanted_MoS2_data:[2,1,1,""],load_Se_implanted_MoS2_simulation:[2,1,1,""],load_example_Au_nanoparticle:[2,1,1,""],load_example_Cu_nanoparticle_sim:[2,1,1,""],path_to_example_data_MoS2_hex_prismatic:[2,1,1,""],path_to_example_data_MoS2_vesta_xyz:[2,1,1,""]},"temul.intensity_tools":{get_pixel_count_from_image_slice:[2,1,1,""],get_sublattice_intensity:[2,1,1,""],remove_average_background:[2,1,1,""],remove_local_background:[2,1,1,""]},"temul.io":{batch_convert_emd_to_image:[2,1,1,""],convert_vesta_xyz_to_prismatic_xyz:[2,1,1,""],create_dataframe_for_xyz:[2,1,1,""],dm3_stack_to_tiff_stack:[2,1,1,""],load_data_and_sampling:[2,1,1,""],load_prismatic_mrc_with_hyperspy:[2,1,1,""],save_individual_images_from_image_stack:[2,1,1,""],write_cif_from_dataframe:[2,1,1,""]},"temul.model_creation":{assign_z_height:[2,1,1,""],assign_z_height_to_sublattice:[2,1,1,""],auto_generate_sublattice_element_list:[2,1,1,""],change_sublattice_atoms_via_intensity:[2,1,1,""],change_sublattice_pseudo_inplace:[2,1,1,""],compare_count_atoms_in_sublattice_list:[2,1,1,""],convert_numpy_z_coords_to_z_height_string:[2,1,1,""],correct_background_elements:[2,1,1,""],count_all_individual_elements:[2,1,1,""],count_atoms_in_sublattice_list:[2,1,1,""],count_element_in_pandas_df:[2,1,1,""],create_dataframe_for_cif:[2,1,1,""],find_middle_and_edge_intensities:[2,1,1,""],find_middle_and_edge_intensities_for_background:[2,1,1,""],get_max_number_atoms_z:[2,1,1,""],get_most_common_sublattice_element:[2,1,1,""],get_positions_from_sublattices:[2,1,1,""],image_difference_intensity:[2,1,1,""],image_difference_position:[2,1,1,""],image_difference_position_new_sub:[2,1,1,""],print_sublattice_elements:[2,1,1,""],return_xyz_coordinates:[2,1,1,""],return_z_coordinates:[2,1,1,""],scaling_z_contrast:[2,1,1,""],sort_sublattice_intensities:[2,1,1,""]},"temul.signal_plotting":{Sublattice_Hover_Intensity:[2,2,1,""],color_palettes:[2,1,1,""],compare_images_line_profile_one_image:[2,1,1,""],compare_images_line_profile_two_images:[2,1,1,""],create_rgb_array:[2,1,1,""],expand_palette:[2,1,1,""],get_cropping_area:[2,1,1,""],get_polar_2d_colorwheel_color_list:[2,1,1,""],hex_to_rgb:[2,1,1,""],plot_atom_energies:[2,1,1,""],rgb_to_dec:[2,1,1,""]},"temul.signal_plotting.Sublattice_Hover_Intensity":{scaled:[2,3,1,""],setup_annotation:[2,3,1,""],snap:[2,3,1,""]},"temul.signal_processing":{calibrate_intensity_distance_with_sublattice_roi:[2,1,1,""],compare_two_image_and_create_filtered_image:[2,1,1,""],crop_image_hs:[2,1,1,""],distance_vector:[2,1,1,""],double_gaussian_fft_filter:[2,1,1,""],double_gaussian_fft_filter_optimised:[2,1,1,""],fit_1D_gaussian_to_data:[2,1,1,""],get_cell_image:[2,1,1,""],get_fitting_tools_for_plotting_gaussians:[2,1,1,""],get_scaled_middle_limit_intensity_list:[2,1,1,""],get_xydata_from_list_of_intensities:[2,1,1,""],load_and_compare_images:[2,1,1,""],make_gaussian:[2,1,1,""],make_gaussian_pos_neg:[2,1,1,""],mean_and_std_nearest_neighbour_distances:[2,1,1,""],measure_image_errors:[2,1,1,""],mse:[2,1,1,""],plot_gaussian_fit:[2,1,1,""],plot_gaussian_fitting_for_multiple_fits:[2,1,1,""],remove_image_intensity_in_data_slice:[2,1,1,""],return_fitting_of_1D_gaussian:[2,1,1,""],toggle_atom_refine_position_automatically:[2,1,1,""],visualise_dg_filter:[2,1,1,""]},"temul.topotem":{fft_mapping:[2,0,0,"-"],lattice_structure_tools:[2,0,0,"-"],polarisation:[2,0,0,"-"]},"temul.topotem.fft_mapping":{choose_mask_coordinates:[2,1,1,""],choose_points_on_image:[2,1,1,""],get_masked_ifft:[2,1,1,""]},"temul.topotem.lattice_structure_tools":{calculate_atom_plane_curvature:[2,1,1,""],sine_wave_function_strain_gradient:[2,1,1,""]},"temul.topotem.polarisation":{angle_label:[2,1,1,""],atom_deviation_from_straight_line_fit:[2,1,1,""],atom_to_atom_distance_grouped_mean:[2,1,1,""],combine_atom_deviations_from_zone_axes:[2,1,1,""],correct_off_tilt_vectors:[2,1,1,""],corrected_vectors_via_average:[2,1,1,""],corrected_vectors_via_center_of_mass:[2,1,1,""],delete_atom_planes_from_sublattice:[2,1,1,""],find_polarisation_vectors:[2,1,1,""],full_atom_plane_deviation_from_straight_line_fit:[2,1,1,""],get_angles_from_uv:[2,1,1,""],get_average_polarisation_in_regions:[2,1,1,""],get_average_polarisation_in_regions_square:[2,1,1,""],get_divide_into:[2,1,1,""],get_strain_map:[2,1,1,""],get_vector_magnitudes:[2,1,1,""],get_xyuv_from_line_fit:[2,1,1,""],plot_atom_deviation_from_all_zone_axes:[2,1,1,""],plot_polarisation_vectors:[2,1,1,""],ratio_of_lattice_spacings:[2,1,1,""],rotation_of_atom_planes:[2,1,1,""]},temul:{dummy_data:[2,0,0,"-"],element_tools:[2,0,0,"-"],example_data:[2,0,0,"-"],intensity_tools:[2,0,0,"-"],io:[2,0,0,"-"],model_creation:[2,0,0,"-"],signal_plotting:[2,0,0,"-"],signal_processing:[2,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"0":[0,1,2,7,8,10,11],"0071191827843":7,"012":2,"0123":2,"0321":[2,10],"05":[0,2,10],"08":2,"1":[0,1,2,7,10,11],"10":[0,1,2,5,8,10],"100":[0,2],"1000":[1,2],"1002":[2,10],"1024":10,"1038":2,"11":2,"1182":2,"12":2,"121":2,"127":7,"128":2,"129":2,"130":2,"133":2,"14":[1,2],"15":[0,2],"150":[2,4],"16":2,"161":2,"169":2,"170":2,"173":1,"176":7,"177":7,"178":7,"180":[0,2,5,9,10],"184":[2,7],"186":7,"192":2,"193":2,"1981":[1,2],"1d":2,"2":[0,1,2,6,10],"20":2,"200":2,"2010":2,"2016":[2,10],"201603489":[2,10],"2020":[0,1],"21":2,"24":1,"245":2,"249":2,"25":2,"250":0,"25182885155715":7,"255":2,"26":[2,10],"28":2,"2d":[2,5,9,10],"2x2":2,"3":[0,2,6,7,10],"30":[0,2],"300":2,"301":2,"31448682369383":7,"318":2,"32":2,"397":2,"4":[2,6],"40":2,"400":2,"4185974":5,"42":[2,10],"4206":2,"45":[2,10,11],"46":7,"464":2,"47":[1,2],"48":2,"49":[1,2],"5":[0,2,7,10],"50":[2,4,7,10],"500":2,"5281":5,"535":2,"54":2,"58":2,"5ba307b5af0b598bedc0284aa989d44e23fdde4d":2,"5th":2,"5x5":2,"6":[1,2],"60281235289372":7,"61":7,"62":2,"64580029829887":7,"6826109334526":7,"69":2,"7":[1,2,7,10],"70":2,"7355614374623":7,"75":2,"75132848177407":7,"773":2,"8":2,"80":2,"81":2,"82":2,"8x8":2,"9":[2,10,11],"90":[2,10],"92":2,"929":0,"93":[5,6],"93375300295452":7,"96":[2,7],"97030854763057":7,"97674094835968":7,"99":7,"boolean":2,"break":2,"case":[0,1,2,5,9,10],"class":[5,6],"default":[1,2,8],"do":2,"export":2,"float":2,"function":[0,1,4,5,6,7,9,10,11,12],"import":[2,4,5,6,7,8,9,10,11,12],"int":2,"long":2,"new":2,"public":[0,1,5,9],"return":[1,2,5,9,11],"true":[0,1,2,7,8,10,11],"try":2,A:[2,7],As:[2,4,7],By:[2,11],For:[0,2,5,6,9],If:[2,5,6,8,9,10,13],In:[0,2,4,7,10,11],It:[0,2,5,9,10],Of:8,One:[1,2,5,11,12],The:[0,1,2,4,5,6,7,8,9,10,11,13],Then:[2,5,6,7],There:[0,4,5,10,12],These:[2,10],To:[2,4,5,10,11,12],Will:2,With:2,_:[2,10],_below:[],_cell_length_b:2,_cell_length_c:2,_fit_line_clust:2,_get_image_slice_around_atom:2,abakumov:2,about:2,abov:[2,5,10,12],abspath:[0,1],access:2,accord:[],account:2,across:[0,2],actual:2,ad:[2,4,5,9,13],adapt:[1,2],add:2,add_atoms_with_gui:[0,2],add_sublattic:2,added_atom:2,adf:2,adfm:[2,10],adjac:2,aert:2,after:[2,5,6,8],aggreg:2,aggregation_axi:2,agre:2,aim:2,al:[0,1,2,5,9,10],all:[2,8,10,11],allow:[2,4,5,7,8,10,11],along:[1,2,11],alpha:[2,10],alreadi:[2,8,10],also:[0,1,2,4,5,8,9,10,11,12,13],am:[0,1,2,5,6,10],amin:2,amount:2,amp:2,amplitud:[2,7],amplitude_max_intens:2,amplitude_mean_intens:2,amplitude_min_intens:2,amplitude_total_intens:2,an:[1,2,4,5,7,9,10,11,13],analys:5,analysi:[5,9,12],angl:[0,2,5,9,10,11],angle_label:2,angle_offset:[0,2,11],angstrom:2,ani:[1,2,5,6,10,11,13],annot:2,anoth:7,antialias:[2,10],antisit:2,apart:4,api:[0,1,4,5,6,7,8,9,10,11,12],appear:[2,4,10],append:[2,10],appli:[2,7,8,11],appropri:2,approxim:1,ar:[0,2,4,5,6,9,10,12],arang:10,area:2,argument:2,around:2,arr:2,arrai:[0,2,10],arrow:[0,2,7,10],arrow_markers:2,artem:2,articl:[5,9],asarrai:[2,10],ase:2,aspect:[5,12],assign:2,assign_z_height:2,assign_z_height_to_sublattic:2,assum:2,at_lat_befor:2,atom0:2,atom:[0,2,4,5,8,9,10],atom_coord:2,atom_devi:2,atom_deviation_from_straight_line_fit:[2,5,9,10],atom_lattic:[0,1,2,8,10,11],atom_lattice_crop:[0,1],atom_layout:2,atom_list:2,atom_plan:[1,2],atom_plane_toler:[0,1,2,10],atom_posit:[2,10],atom_positions2:10,atom_positions2_refin:10,atom_positions_a:2,atom_positions_actu:0,atom_positions_b:2,atom_positions_id:0,atom_positions_orig_2:0,atom_to_atom_distance_grouped_mean:2,atomap:[0,1,2,5,6,7,11],atomap_devel_012:[2,5,6],atomic_column:2,atomic_radii_in_pixel:2,atomposit:2,attempt:2,attribut:2,au:2,au_np_z_coord:2,au_np_z_height_str:2,auto:2,auto_generate_sublattice_element_list:2,autom:2,automat:[2,5,10,12],av:2,avail:[2,10,11],averag:2,averaging_bi:2,awai:2,awar:2,ax:[0,2,5,9,10,11],axes_manag:[0,1,2,10],axi:[0,2,11],axis_numb:2,b:[2,7],b_2:2,b_9:2,background:2,background_sub:2,background_sublattic:2,badg:5,band:[2,4],bandpass:2,base:[4,10],basic:[2,13],batch_convert_emd_to_imag:2,batuk:2,beam:2,becaus:2,been:[1,2,5,9],befor:2,begin:2,behaviour:2,behind:2,being:[2,5,6],below:[0,1,2,5,6,7,10,11,13],best:[2,10],better:[0,2],between:[2,11],bilay:2,bin:2,black:[2,10],blind:2,blog:2,blue:[2,10],blur:2,bond:2,bool:2,boracit:5,border:2,bot:2,both:2,bottom:[2,4],boundari:2,box:2,box_alpha:[2,10],branch:[5,6],briefli:10,brighter:2,brightest:2,buffer:2,build:[5,6],built:5,button:[0,1,5,10,13],bwr:[1,2],c:[2,5,6,9],ca_ratio_map:0,calcul:[2,5,10,11],calculate_atom_plane_curvatur:[1,2,5,9],calibr:[2,10],calibrate_intensity_distance_with_sublattice_roi:2,calibrated_data_:2,call:[2,5,6],can:[0,1,2,4,5,6,7,8,9,10,11,12,13],care:2,carri:2,cation:2,caution:[5,9],cc:[2,10],cell:2,cell_angle_alpha:2,cell_angle_beta:2,cell_angle_gamma:2,cell_imag:2,cell_info:2,cell_length_a:2,cell_length_b:2,cell_length_c:2,center:2,centered_atom:2,centr:2,central:2,cet_c4:2,cet_colorwheel:[2,10],cet_coolwarm:[2,10],chang:[2,4,5,9,10,11],change_sublattic:2,change_sublattice_atoms_via_intens:2,change_sublattice_pseudo_inplac:2,characterist:11,charg:[0,2,5,9,10],chdir:[0,1],check:[0,2,5,7,8,9],checkout:[5,12],chemic:[2,10],chemical_name_common:2,choic:2,choos:[0,1,2,5,6,7,10],choose_mask_coordin:[2,8],choose_points_on_imag:[2,7],chosen:2,cif:2,citat:[5,9],cl_1:2,classic:10,clearli:10,click:[0,1,5,6,10,13],closer:2,closest:2,cluster:2,cm:[2,10],cmap:[0,1,2,5,9,10],co:10,code:9,code_tutori:[5,9,10,13],colav:2,color:[0,2,10],color_list:2,color_palett:[2,10],colorbar:[2,5,9,10],colorbar_fonts:2,colorblind:2,colorcet:[1,2,10],colormap:[1,2,5,9,10],colorwheel:[0,2,5,9,10],colour:[2,10],column:[2,5,9,10],com:[2,5,6],combin:2,combine_atom_deviations_from_zone_ax:2,combine_element_list:2,comment:2,commit:2,common:2,commun:[0,5,9],compar:[2,5],compare_count_atoms_in_sublattice_list:2,compare_images_line_profile_one_imag:[0,2,7],compare_images_line_profile_two_imag:[2,7],compare_two_image_and_create_filtered_imag:2,comparison:[2,5],comparison_sublattice_list:2,compat:[5,6],complex:2,compon:2,comput:2,configur:2,confus:2,congrat:[5,9],connel:5,consecut:2,consid:2,construct:[0,2],construct_zone_ax:[0,1,2,10,11],contain:[2,5,9,13],content:12,contour:[2,5,9,10],contourf:2,convert:2,convert_numpy_z_coords_to_z_height_str:2,convert_vesta_xyz_to_prismatic_xyz:2,convolut:[2,4],coord:2,coordin:[2,5,11],copi:[2,5,6],core:2,corner:2,correct:[2,5,9],correct_background_el:2,correct_off_tilt_vector:2,corrected_vectors_via_averag:2,corrected_vectors_via_center_of_mass:2,correctli:[2,5,9],correspond:[2,11],corresspond:2,could:2,count:2,count_all_individual_el:2,count_atoms_in_sublattice_list:2,count_element_in_pandas_df:2,counter:2,counter_list:2,cours:8,covalent_radiu:2,covari:2,creat:[2,5,6,9,10,11,13],create_dataframe_for_cif:2,create_dataframe_for_xyz:2,create_rgb_arrai:2,crop:2,crop_a:2,crop_end:2,crop_image_h:2,crop_offset:[2,7],crop_start:2,cropped_pto:1,cropping_area:2,cu:2,cubic:2,current:[2,5,6,10],curv:[1,5,9],curvatur:[2,5],curvature_map:[1,2],curve_fit:[1,2],custom:[2,10],custom_cmap:[2,10],customis:[0,4],cyclic:2,d:2,d_inner:[2,4],d_outer:[2,4],dark:[2,10],darker:2,darker_or_bright:2,darkgrai:[2,10],data:[4,5,7,9,10,11,13],data_art:2,data_label:2,datafram:2,dataset:[0,1,5],dd:[2,10],deal:10,dec:2,decid:2,decim:2,deepcopi:2,defin:2,degre:[0,2,5,9,10,11],delet:2,delete_atom_planes_from_sublattic:2,delimit:2,delta:2,delta_image_filt:2,denomin:2,denominator_el:2,denominator_sublattic:2,depend:[2,5,6,9],deriv:[1,2],describ:[2,5,10,12,13],descript:10,detail:[0,1,2,4,5,6,11],determin:2,develop:[2,5,6],deviat:2,df:2,dft:2,diamet:2,dict:2,dictionari:[0,2],differ:[2,5,9,10,11],difficult:8,diffract:[2,8],dimens:[2,10],direct:[0,2,10,11],directori:[2,5,6],discuss:11,displac:[1,2],displai:[1,2,4,5,7,9,10],distanc:[2,11],distance_threshold:2,distance_vector:2,distibut:2,distort:2,distribut:2,diverg:2,divid:[0,2],divide_into:2,divisible_bi:2,dm3:2,dm3_stack_to_tiff_stack:2,dmitri:2,doc:2,document:[0,4,9,10,11,12],doesn:2,doi:[2,5,10],domain:[2,5,8,9,10],dominiqu:2,don:10,done:[2,4,5,9,11],dot:2,doubl:[2,4,5,9],double_gaussian_fft_filt:[2,4],double_gaussian_fft_filter_optimis:[2,4],down:2,download:[0,1,5,6,9,10,13],dpi:2,dr:[1,2],draw:[2,7],due:2,dummi:[5,7],dummy_data:[2,7,8,10,11],duplic:2,dure:2,dx:[2,10],e:[2,5,9,11],each:[0,1,2,5,7,9,10,11,12],easili:[2,5,6,8,10,11],edg:2,edge_pad:2,edit:[5,9],effect:[2,10,11],either:2,ekhard:2,elast:[1,2],electr:[2,10],electron:2,element:[5,6,12],element_atomic_numb:2,element_config1:2,element_config2:2,element_count:2,element_list:2,element_list_all_sub:2,element_list_sub1:2,element_list_sub2:2,element_nam:2,element_split:2,element_symbol:2,element_tool:2,elements_dict_oth:2,elements_from_sub1:2,elements_from_sub2:2,els:2,emd:2,end:[1,2],energi:2,energy1:2,energy2:2,energy_map:2,engin:2,enlarg:2,enumer:2,eoghan:5,eoin:5,equal:2,error:[0,2],essenti:2,estim:2,et:[0,1,2,5,9,10],etc:2,everi:2,everyth:2,exactli:2,exampl:[4,6,9,10,11,12],example_data:[2,4],example_mos2_vesta_xyz:2,example_script:2,except:2,exist:2,expand:[2,5,7,9],expand_list:2,expand_palett:[2,10],expanded_palett:2,expanded_zest:[2,10],experi:2,experiment:[2,5,7,10,11],extend:2,extens:[2,5,12],extension_to_sav:2,extern:[2,5,6,11],extra:[1,2,10],extract:[2,10],f5793a:2,f:2,facecolor:2,fail:2,fals:[0,2,8,10,11],false_list_sublattic:2,far:2,fast:[2,8],fe:2,fe_8:2,featur:[2,5,9,10],ferroelectr:[1,2,5,9,10,13],few:[5,10],fft:[2,4,5,7,9],fft_imag:[2,8],fft_map:2,fid:2,figsiz:2,figur:2,file:[0,2,5,8],file_extens:2,filenam:[0,1,2,11],filetyp:2,film:2,filt_imag:2,filter:[0,2,5,9],filtered_imag:[2,4],filtered_pto_haadf_stem:0,find:[1,2,5,8,9,13],find_middle_and_edge_intens:2,find_middle_and_edge_intensities_for_background:2,find_missing_atoms_from_zone_vector:10,find_nearest_neighbor:[2,10],find_polarisation_vector:[0,2,10],first:[0,1,2,5,9],fit:[1,2,10],fit_1d_gaussian_to_data:2,fit_bright_first:2,fitting_tools_all_sub:2,fix:[5,6,9],flattened_element_list:2,flip:2,fold:[5,6],folder:[0,1,2,5,6,9,10,13],follow:[0,1,2,5,10],forc:2,forget:10,form:2,format:[2,11],found:[0,1,2,4,11],four:[2,7],fourier:[2,8],fourth:2,fraction:2,fractional_coordin:2,frame:2,free:2,friendli:2,from:[0,1,2,4,5,7,8,9,10,11,12,13],from_levels_and_color:[2,10],full:[2,4,5],full_atom_plane_deviation_from_straight_line_fit:2,func:[1,2],further:[0,2,5,9,10],futur:[2,4,7,10,11,13],fwhm:[2,4],fwhm_neg:2,fwhm_po:2,g:[2,5,11],gauss:2,gauss_art:2,gauss_fit_01:2,gauss_label:2,gauss_sigma_divis:2,gaussian:[2,4,5,9],gaussian_amp:2,gaussian_filt:2,gaussianin:2,ge:2,ge_2:2,gener:2,get:[0,2,9,10],get_all_atom_planes_by_zone_vector:2,get_and_return_el:2,get_angles_from_uv:2,get_atom_column_amplitude_max_intens:2,get_atom_posit:10,get_average_polarisation_in_region:2,get_average_polarisation_in_regions_squar:2,get_cell_imag:2,get_cropping_area:2,get_distorted_cubic_signal_adjust:2,get_distorted_cubic_sublattic:2,get_distorted_cubic_sublattice_adjust:2,get_divide_into:2,get_fitting_tools_for_plotting_gaussian:2,get_individual_elements_from_element_list:2,get_masked_ifft:[2,8],get_max_number_atoms_z:2,get_most_common_sublattice_el:2,get_pixel_count_from_image_slic:2,get_polar_2d_colorwheel_color_list:2,get_polarisation_dummy_dataset:[2,8,10,11],get_polarisation_dummy_dataset_bora:[2,10],get_polarised_single_sublattic:[2,10],get_polarised_single_sublattice_rot:[2,10],get_polarization_film_atom_lattic:2,get_polarization_from_second_sublattic:[0,2,10],get_positions_from_sublattic:2,get_scaled_middle_limit_intensity_list:2,get_simple_atom_lattice_two_sublattic:2,get_simple_cubic_sign:[2,7],get_simple_cubic_sublattic:2,get_simple_cubic_sublattice_positions_on_vac:2,get_simple_cubic_with_vacancies_sign:2,get_simple_cubic_with_vacancies_sublattic:2,get_strain_map:[0,2,11],get_subattice_intens:2,get_sublattice_intens:2,get_vector_magnitud:2,get_xydata_from_list_of_intens:2,get_xyuv_from_line_fit:2,github:[2,5,9,13],gitlab:[5,6],give:10,given:[2,5,11,12],glob:2,glob_search:2,go:10,gonnissen:[2,10],good:2,googl:2,gotten:2,gpl:5,grab:2,gradient:[1,2],grai:2,grayscal:0,great:10,greater:2,grid:2,group:2,grouped_mean:2,guess:2,guid:[5,9],guillaum:2,h:[0,2,7],h_0:2,ha:[1,2,5,6,9],hadjimichael:[1,2,5,9],half:[2,4],halfwai:2,handl:10,have:[0,2,4,5,6,8,9,13],hdf5:[0,1,11],head:[0,5,9],headaxislength:2,header:2,header_com:2,headlength:2,headwidth:2,heavili:2,help:[2,5,6,9],hennessi:[5,9],here:[2,4,5,6,7,9,10],hex:2,hex_to_rgb:[2,10],hex_valu:2,hexidecim:2,hide:2,high:2,higher:2,highli:[0,5,9],hist:2,hist_bin:2,histogram:2,hope:[4,7],horizont:[2,11],hover:2,how:[2,4,5,8,9,10],hs:[0,1,2],hspy:[0,1,2,11],hsv:[2,5,9],html:2,http:[2,5,6],hue:2,hydrogen:2,hyperspi:[0,1,2,5,8,10,11],i:[2,5,9,10],idea:13,ideal:[2,10],ideal_ratio_on:[0,2,11],ideal_sigma:2,ifft:[2,5,7,9],ignor:2,im:2,imag:[0,1,5,10,11,12],image_cmap:2,image_crop:2,image_data:2,image_diff_arrai:2,image_difference_intens:2,image_difference_posit:2,image_difference_position_new_sub:2,image_ifft:[2,8],image_nois:[2,7,8,10,11],image_sampl:2,image_slic:2,image_spac:[2,8],image_stack:2,image_temp:10,image_to_filt:2,imagea:[2,7],imagea_titl:[2,7],imageb:[2,7],imageb_intensity_offset:2,imageb_titl:[2,7],implant:2,implement:[2,5,6],improv:2,imshow:2,includ:2,incorrect:[2,10],increas:2,increment:2,index:[2,5,11],indic:2,individu:2,individual_element_list:2,individual_imag:2,inferno:[0,2],info:[2,5,9],inform:[0,2],init:4,initi:[1,2,4,5,8],inner:[2,4],inplac:2,input:[1,8,11],instanc:2,instead:2,integ:2,integr:2,intens:5,intensities900:2,intensities_al:2,intensities_max:2,intensities_max_averag:2,intensities_tot:2,intensities_total_loc:2,intensity_list_r:2,intensity_tool:2,intensity_typ:2,interact:[0,1,9,10,13],intercept:2,interest:2,interg:2,intern:2,invers:[2,4],invert_imag:2,invert_y_axi:[2,5,9,10],invert_yaxi:10,involv:[5,9,10],io:[5,6,8],ipynb:[5,9,10],ipython:[5,6],isn:10,issu:[2,5,6,9,13],its:2,j:10,join:[0,1],jone:2,juli:2,junction:5,jupyt:[0,1,5,9,10,13],just:[0,1,2,4,5,10,13],k:[0,2],keep:2,keep_masked_area:[2,8],kei:[2,5,9],kept:2,kernel:2,keyword:2,kink:[2,10],know:5,ko:2,krivanek:2,kwarg:[0,1,2],l:11,label:2,lambda:2,landau:[1,2],larg:[0,2,10],largest:2,largest_element_intens:2,last:2,latest:5,lattic:[1,2,5],lattice_structure_tool:[1,2,5,9],lattice_typ:2,launch:0,layer:[1,5,9],layout:[5,9],lead:[0,5,9],learn:11,leav:2,left:[0,2,5,9,10,12],len:2,length:2,let:[2,5,10],level:[2,10],lewi:2,li:[1,2,5,9],librari:2,lifshitz:[1,2],like:[2,5,6],limit:[2,4],limit_intensity_list:2,limit_intensity_list_real_sub1:2,limit_intensity_list_real_sub2:2,limit_intensity_list_sub1:2,limit_intensity_list_sub2:2,linbo3:[2,10],line:[0,2,5,10],line_profile_posit:[0,2,7],linear:2,linearsegmentedcolormap:2,linetrac:[0,2,7],linewidth:[0,2,7],list:[2,5],littl:10,live:10,lno:5,load:[2,5,10],load_and_compare_imag:2,load_atom_lattice_from_hdf5:[0,1],load_data_and_sampl:2,load_example_au_nanoparticl:2,load_example_cu_nanoparticle_sim:2,load_prismatic_mrc_with_hyperspi:2,load_se_implanted_mos2_data:[2,4],load_se_implanted_mos2_simul:2,loading_fil:2,loading_file_extens:2,local:[0,2,10],locat:[2,10],log:[2,8],look:[0,2,10],loop:[2,8],lose:2,lot:[2,4],lower:[2,10],m:[1,2],m_alt:2,made:[0,1],magnitud:[2,5,9,10],mai:[0,2,5,6,9,10],major:[5,12],make:[2,5,9,10],make_gaussian:2,make_gaussian_pos_neg:2,make_middle_limit_intensity_list_r:2,make_polarised_sublattice_bora_return:2,mani:[2,5,9,10,12],manner:2,manual:2,map:[1,2,5,9,10],mario:[1,2],marker:2,marker_a:2,marker_b:2,marker_list:2,markers:2,mask:[2,5,7,9],mask_coord:[2,8],mask_radiu:[2,8],mass:2,master:[5,6],match:2,materi:[1,2,5,9,13],material_typ:2,matlab:[1,2],matplotlib:[0,1,2,5,6,9,10,11],matter:2,max:2,max_cut_off_perc:2,max_element_intens:2,max_number_atoms_z:2,max_radiu:2,max_sigma:2,maxfev:1,maximum:[2,4],mayb:2,mean:[2,7],mean_and_std_nearest_neighbour_dist:2,mean_angl:2,mean_scal:2,meander:[2,10],measur:2,measure_image_error:2,memori:0,menu:[5,9],meshgrid:10,metadata:[2,10],metal:[1,5,9],method:[2,7,10],michael:[5,9],microscopi:2,middl:[2,10],middle_intensity_list:2,middle_intensity_list_real_sub1:2,middle_intensity_list_real_sub2:2,middle_intensity_list_sub1:2,middle_intensity_list_sub2:2,min:2,min_cut_off_perc:2,minimum:2,minlength:2,minor:[5,9],minshaft:2,minut:[5,10],mo:2,mo_0:2,mo_1:2,mo_2:2,mo_3:2,mode:2,model_cr:2,model_refin:[2,5,6],modul:[4,5,6,7,8,9,10,11,12],moli:2,moment:[0,5,6],monitor:2,monitor_dpi:[0,2,10],monolay:2,moor:[0,5,9],more:[0,1,2,5,6,9,10,11,13],mos2:2,mos2_hex_prismat:2,most:[2,5,6,10],mostli:5,move:2,movement:5,moynihan:5,mpl_cmaps_list:2,mrc:2,mse:2,mse_numb:2,mu:2,multipl:[2,5,7],multipli:2,must:[2,10],mybind:0,n:[2,10],name:[2,5,6],nanoparticl:2,nataf:2,natur:[0,1,2,5,9],nature08879:2,navig:[1,2,5,6,10,13],ndimag:2,nearest:2,nearest_neighbor_list:2,nearest_neighbour:2,neccessari:2,need:[1,2,5,6,7,10,13],neg:2,neg_min:2,neglig:[1,2],neighbour:2,new_atom_posit:2,newli:[5,9],nice:[5,9],nm:[0,1,2,7,10,11],no_added_atom:2,no_axis_info:2,nois:2,non:2,none:[0,1,2,10],nonstandard:5,norm:[2,5,8,9],normal:2,normalis:2,note:[0,2,5],notebook:[0,1,5,9,10,13],noth:2,novemb:5,now:[0,2,5,7,9,10],np:[0,2,7,10],npy:0,num_peak:2,num_point:2,num_unit_cel:2,number:2,number_atoms_z:2,number_of_lin:2,numer:2,numerator_el:2,numerator_sublattic:2,numpi:[0,2,7,10],o:[2,5],o_6:2,object:[2,5,9],observ:[2,10],obtain:[5,9],occup:2,off:[0,2,5,9,10],offset:[2,11],offset_from_zero:2,okai:2,old_sublattic:2,older:5,onc:2,one:[2,4,5,8,10,11],ones_lik:10,onli:2,open:[0,1,2],opposit:2,optim:[1,2],optimis:2,optimium:2,optimum:2,optimumis:2,option:[2,10,11],org:[2,5],origin:[2,10],os:[0,1],other:[2,4,5,6,11],out:[0,2,5,7,8,9],outer:[2,4],output:11,output_fold:2,outsid:2,over:[2,7],overal:2,overlai:[0,2,10],overlaid:[2,8,10],overrid:2,overwrit:2,own:[0,2],oxid:2,p0:[1,2],p:2,packag:[2,4,5,6,10],page:[4,5,12],pair:2,palett:2,pallett:2,panda:2,paper:5,paper_nam:2,parallel:2,param:[2,5,9],paramet:[2,4,5,9,10,11],partli:[2,10],pass:[2,4],past:[5,6],path:[0,1,2],path_to_data:[0,1],path_to_example_data_mos2_hex_prismat:2,path_to_example_data_mos2_vesta_xyz:2,path_vesta_fil:2,path_xyz_fil:2,pb:[0,1],pcov:2,pd:2,peak:2,percent_to_nn:[2,10],perfect:2,perfectli:[2,11],perform:2,period:[1,2,5,9],periodict:2,perovskit:2,physic:[0,5,9],pi:10,pick:2,pinkshnack:[2,5],pip:[5,6],pivot:[2,10],pix:[0,1,2,10,11],pixel:[2,8],pixel_count:2,pixel_i:2,pixel_threshold:2,pixel_x:2,pixstem:[5,9],plane:[2,5,10,11],plasma:2,pleas:[5,9,13],plot:[0,1,4,5,7,9],plot_and_return_fit:1,plot_atom_deviation_from_all_zone_ax:2,plot_atom_energi:2,plot_data:2,plot_fil:2,plot_gaussian_fit:2,plot_gaussian_fitting_for_multiple_fit:2,plot_lim:2,plot_masked_fft:[2,8],plot_plan:[1,2,10],plot_polarisation_vector:[0,2,5,9,10],plot_styl:[0,2,5,9,10],plot_xi:2,plotting_styl:2,plt:[0,2],pm:[2,10],png:2,point:[2,7],points_i:2,points_x:2,polar:[2,10],polar_colorwheel:[2,5,9,10],polaris:[5,9,11,12,13],polarisation_colorwheel_test_dataset:2,polarisation_imag:2,polarisation_vectors_tutori:10,popt:2,popt_gauss:2,popul:2,pos_a:2,pos_b:2,posit:[0,2,4,7,8,10],possibl:[5,9],pp:[1,2],pr:2,pre:[0,1],prepar:5,present:[5,9],pretend:2,previous:2,print:2,print_sublattice_el:2,prism_2doutput_prismatic_simul:2,prismat:2,prismatic_mrc_filenam:2,prismatic_xyz:2,prismatic_xyz_filenam:2,problem:[2,5],produc:2,profil:[0,2,5],profile_lin:[0,2],program:2,project:5,provid:2,pto:[1,5],pto_junction_moor:0,pto_marios_hadj:2,pto_supercrystal_hadjimichael:1,publication_exampl:[0,1,2,5,9],publish:[5,9,10,11],pull:[2,13],purpos:2,py:[5,6],pycifrw:[5,6,9],pyplot:2,pyprismat:[5,6,12],python:[0,1,2,10,13],quadrant:[2,10],quantif:[5,6,12],quantifi:[5,6],question:[5,9],quiver:[2,5,9,10],quiver_unit:2,r:[2,10],r_safe:2,radian:2,radiu:2,radius_pix_:2,radius_pix_mo:2,randint:2,random:2,rang:[2,10],range_typ:2,rather:2,ratio:[2,5],ratio_map:[2,11],ratio_of_lattice_spac:[0,2,11],raw:[0,5,9],re:[2,5,6],re_3:2,re_7:2,read:11,read_csv:2,real:[2,8],realist:2,reason:2,reciproc:2,rectangl:2,rectangular:2,red:[2,10],reduc:2,reduce_func:[2,7],refactor:[5,9],refer:2,reference_imag:2,refin:10,refine_atom_positions_using_center_of_mass:[2,10],refine_posit:2,region:[2,10],registr:2,regular:10,rel:2,relat:8,relev:5,remain:[2,5,9],remov:[2,5,9],remove_average_background:2,remove_background_method:2,remove_image_intensity_in_data_slic:2,remove_local_background:2,remove_vector:[2,10],render:2,repositori:[0,1,5,9,10,13],repres:2,reproduc:[5,9],request:13,requir:[2,5,6,10],resembl:2,reset:4,reshap:10,resolut:[4,5,10,11],resolv:[5,6],respect:[2,10],result:2,retain:2,return_fit:2,return_fitting_of_1d_gaussian:2,return_x_y_z:[0,2,11],return_xyz_coordin:2,return_z_coordin:2,returnt:8,reveal:8,revers:[2,8],rgb:[2,5,9],rgb_to_dec:[2,10],rgb_valu:2,right:2,rigid:2,rm:2,rms_thermal_vib:2,rotat:[2,5,9,10],rotation_map:[0,2,11],rotation_of_atom_plan:[0,2,11],rotation_sign:2,round:0,row:2,ru:1,run:[0,2,4,5,7],s:[2,7,9,10,11],s_1:2,s_2:2,s_p:[2,10],salj:2,same:[1,2,5,7,9,10,13],sampl:[0,1,2,7,10,11],sandra:2,save:[0,1,2,8,10,11],save_imag:2,save_individual_images_from_image_stack:2,save_nam:2,saving_file_extens:2,scalar_method:2,scale:[0,1,2,5,9,10],scale_loc:[2,10],scale_unit:2,scalebar:[2,10],scalebar_tru:2,scaled_limit_intensity_list:2,scaled_middle_intensity_list:2,scaling_expon:2,scaling_ratio:2,scaling_z_contrast:2,scan:2,scbar_dict:[2,10],scenario:8,schryver:2,scientif:5,scikit:2,scipi:[1,2],script:[0,1,2,10,13],se:2,se_1:2,se_count:2,search:[2,5],second:[0,2,10],second_fit_rigid:2,section:[2,10],see:[0,1,2,4,5,6,9,10,11],seem:[5,6],self:2,separ:[2,10,11],sequenc:2,seri:[2,7],session:10,set:[2,5,10,11],setup_annot:2,sever:[2,10],shape:[2,7],shear:2,shift:[2,8],should:[2,10],show:[2,4,10,11],show_progressbar:2,side:[2,10],sigma:2,signal2d:[2,11],signal:[8,10,11],signal_plot:[0,2,7],signal_process:[2,4,5,8,9],sim_imag:2,similar:[2,10],simpl:[2,8],simple_atom_lattic:2,simpli:2,simul:[5,6,7,12],simular:2,sin:10,sine:2,sine_wave_function_strain_gradi:2,sine_wave_sublattic:2,singl:[2,5],site:[5,6],size:2,skimag:[0,2],skiprow:2,slice:2,slice_thick:2,slider:[2,4],slider_max:2,slider_min:2,slider_step:2,slope:2,slow:2,slowli:[5,6],small:2,smaller:2,snap:2,so:[0,2,10],some:[0,2,4,5,7,9,10,13],sometim:[0,2],sort:2,sort_sublattice_intens:2,sourc:5,space:[2,8],space_group_it_numb:2,space_group_name_h:2,space_group_name_h_m_alt:2,speci:2,specifi:[2,5,9,10],split:2,split_and_sort_el:2,split_symbol:2,spot:[2,8],squar:2,sr:1,sro:[0,1],sro_align:1,ssm:2,ssm_number:2,stack:2,standard:[2,5],standard_el:2,start:[1,2,9],std:2,stem:2,step:2,still:2,stop:2,store:[2,4],str:2,straight:2,strain:[1,2,5,9],strain_grad:[1,2],strain_map:[0,2,11],strain_sign:2,string:[0,1,2,11],structur:[0,2,5,8,9],studio:[5,6],style:[0,2,10],sub1:2,sub1_int:2,sub1_inten:2,sub1_mod:2,sub2:2,sub2_int:2,sub2_mod:2,sub_ints_al:2,sub_new:2,subdirectori:2,subfigur:2,sublattic:[0,1,2,5,6,11],sublattice0_intensity_method:2,sublattice1:[0,1],sublattice1_intensity_method:2,sublattice2:[0,1],sublattice_a:2,sublattice_b:2,sublattice_hover_intens:2,sublattice_intensity_list:2,sublattice_list:[0,1,2,8,10,11],sublattice_nam:2,sublattice_posit:2,sublattice_scalar:2,sublatticea:[2,10,11],sublatticeb:[2,10,11],subsequ:7,subtract:2,success:11,suffic:10,suit:5,suitabl:[2,4,10],sum:2,supercryst:[1,5,9],surround:2,swap:0,symbol:2,symmetri:2,t:[0,2,10],tabl:[2,12],take:[2,5,10],taken:[2,10],temul:[0,1,2,4,6,7,8,9,10,11,12,13],term:2,test:[2,5,9],tetragon:[2,11],than:2,thank:[5,9],thei:[2,8,10],them:[0,2,8],themselv:0,theor_val:11,theoret:[2,11],theoretical_valu:[0,2,11],theori:[1,2],therefor:0,thi:[0,1,2,4,5,6,7,8,9,10,11],thick:2,thin:2,third:2,those:[5,6,9],thought:2,through:[2,5,9,10,12],ti:[0,1,2],ti_1:2,ti_2:2,ti_3:2,ti_5:2,ti_7_0:2,ti_9:2,tick:[2,5,9,10],tif:2,tiff:2,tilt:[2,5,9],time:[2,7],tip:[5,6],titan:[0,5,9],titl:[0,1,2,10,11],tml:[0,1,2,4,5,6,7,8,9,10,11,12],tml_el:2,toggle_atom_refine_position_automat:2,toggle_atom_refine_position_with_gui:2,tolist:[0,10],too:[2,4,10],tool:[5,6,9],toolkit:[6,9,10,12,13],top:[0,2,10],top_level_com:2,top_level_directori:2,topotem:[5,9],total:2,toward:2,trace:2,tracker:5,transform:[2,8],translat:2,transpar:[2,10],tree:2,tricontour:11,tricontourf:[2,10],tupl:2,turn:[0,2],tutori:[0,1,4,5,7,9,10,11,12],two:[2,4,5,9,10,11],type:[2,10,13],u1:2,u2:2,u3:2,u:[0,2,10],u_av:2,u_com:2,u_corr:2,u_new:2,ufunc:2,under:[0,5],understand:[2,8],unit:[0,1,2,7,10,11],unit_cell_s:2,unit_vector:[0,2,10],unmask:2,unrealist:2,until:[5,6],up:[2,5],updat:[2,5,9],upon:5,upper:2,us:[0,1,2,4,5,6,7,8,9,11,12],usabl:2,user:[2,10],user_guid:2,usual:2,uv:2,v1:2,v2:2,v3:2,v:[0,2,10],v_av:2,v_com:2,v_corr:2,v_new:2,vac:2,vac_or_impl:2,vacanc:2,valu:[0,2,4,5,9,11],van:2,variabl:2,variat:[7,10],variou:[8,11,13],vast:[5,12],vector:[0,2,5,9,13],vector_fract:10,vector_list:[2,10],vector_mag:2,vector_rep:[0,2,10],venngag:2,verbos:2,veri:2,versa:0,version:[2,6],vertic:2,vesta:2,vesta_xyz_filenam:2,via:2,vice:0,view:[2,5,11,12],viridi:[2,10],visual:[2,5,6],visualis:[2,5,9,10,11],visualise_dg_filt:[2,4,5,9],vmax:[0,1,2],vmin:[0,1,2],vol:[1,2],voronoi:2,vortex:[2,10],vs:[5,6],wai:[2,10,11],walk:[5,9],walkthrough:[5,9],wall:[2,5,8,9,10],want:[0,1,2,5,6],warn:2,wave:2,we:[0,1,2,4,7,10,11],websit:[5,9,11],welcom:6,well:[2,4],what:[2,11],wheel:[2,10],when:[1,2,4,5,6,10,11],where:[1,2,5,10,12,13],wherein:10,whether:2,which:[1,2,5,9,10],whichev:5,whole:2,whose:2,why:[2,10],widget:4,width:[2,4],window:[4,5,6],wish:[2,5,6],with_vac:2,within:2,without:[1,2,10,13],word:2,work:[0,2],workflow:[5,9,10],workload:[5,6],would:2,write:2,write_cif_from_datafram:[2,5,6],written:[1,2],x0:2,x1:2,x2:2,x3:2,x:[0,2,10,11],x_new:2,x_posit:[0,2,10],x_size:2,xdata:2,xy:2,xyuv:2,xyz:2,y0:2,y1:2,y2:2,y3:2,y:[0,1,2,5,9,10,11],y_new:2,y_offset:2,y_posit:[0,2,10],y_size:2,ydata:2,yellow:[0,2],you:[0,1,2,5,6,7,8,9,10,13],your:[0,2,5,6,10],yourself:2,z:2,z_bond_length:2,z_coord:2,z_coordin:2,z_height:2,z_size:2,z_thick:2,za0:[2,10],za1:[2,10],zenodo:5,zero:2,zest:[2,10],zesti:[2,10],zone:[0,2,5,9,11],zone_axis_001:10,zone_axis_index:[2,11],zone_axis_index_a:2,zone_axis_index_b:2,zone_vec_list:2,zone_vector_index:[1,2],zone_vector_index_a:0,zone_vector_index_b:0,zones01_a:2,zones01_b:2,zones_axis_average_dist:[2,10],zoom:[0,10]},titles:["Analysis of PTO Domain Wall Junction","Calculation of Atom Plane Curvature","API documentation","<no title>","Interactive Image Filtering","Welcome to TEMUL Toolkit\u2019s documentation!","Installation","Line Intensity Profile Comparisons","Masked FFT and iFFT","News","Finding Polarisation Vectors","Plot Lattice Structure Maps","Getting started","Analysis Workflows"],titleterms:{"0":[5,9],"02":[5,9],"03":[5,9],"1":[5,9],"11":[5,9],"16":[5,9],"2":[5,9],"2020":[5,9],"2021":[5,9],"3":[5,9],"4":[5,9],"class":2,"function":2,"import":[0,1],"new":[5,9],"return":4,For:10,analysi:[0,13],api:2,atom:[1,11],atomap:10,boracit:10,c:[0,11],calcul:1,choos:8,cite:5,code:5,compar:7,comparison:7,content:5,contribut:5,coordin:[8,10],creat:0,creation:2,curvatur:1,data:[0,1,2],dataset:[10,11],document:[2,5],domain:0,dummi:[2,10,11],e:10,element:2,exampl:[2,5,7,8],experiment:4,fft:8,filter:4,find:10,g:10,get:[5,12],ifft:8,imag:[2,4,7,8],indic:5,input:2,instal:[5,6],intens:[2,7],interact:[4,5],io:2,junction:0,lattic:[0,11],licens:5,line:7,lno:10,load:[0,1,4,7,8],map:[0,11],mask:8,model:2,modul:[0,1,2],movement:10,multipl:8,nonstandard:10,note:6,one:7,output:2,paramet:[0,1],plane:1,plot:[2,8,10,11],polaris:[0,2,10],prepar:[10,11],problem:6,process:2,profil:7,pto:[0,10],ratio:[0,11],refin:2,releas:[5,9],rotat:[0,11],run:8,s:5,set:[0,1],signal:2,simul:2,singl:10,standard:10,start:[5,12],strain:[0,11],structur:[10,11],sublattic:10,support:5,tabl:5,temul:5,tool:2,toolkit:5,topotem:2,two:7,up:[0,1],us:10,vector:10,version:[5,9],wall:0,welcom:5,workflow:13}})
\ No newline at end of file
+Search.setIndex({docnames:["PTO_Junction_moore","PTO_supercrystal_hadjimichael","about_temul_toolkit","api_doc","define_roles","dg_visualiser_tutorial","index","install","line_profile_tutorial","masked_fft_tutorial","news","polarisation_vectors_tutorial","structure_map_tutorial","using_temul","workflows"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,sphinx:56},filenames:["PTO_Junction_moore.rst","PTO_supercrystal_hadjimichael.rst","about_temul_toolkit.rst","api_doc.rst","define_roles.rst","dg_visualiser_tutorial.rst","index.rst","install.rst","line_profile_tutorial.rst","masked_fft_tutorial.rst","news.rst","polarisation_vectors_tutorial.rst","structure_map_tutorial.rst","using_temul.rst","workflows.rst"],objects:{"temul.dummy_data":{get_distorted_cubic_signal_adjustable:[3,1,1,""],get_distorted_cubic_sublattice_adjustable:[3,1,1,""],get_polarisation_dummy_dataset:[3,1,1,""],get_polarisation_dummy_dataset_bora:[3,1,1,""],get_polarised_single_sublattice:[3,1,1,""],get_polarised_single_sublattice_rotated:[3,1,1,""],get_simple_cubic_signal:[3,1,1,""],get_simple_cubic_sublattice:[3,1,1,""],get_simple_cubic_sublattice_positions_on_vac:[3,1,1,""],make_polarised_sublattice_bora_return:[3,1,1,""],polarisation_colorwheel_test_dataset:[3,1,1,""],sine_wave_sublattice:[3,1,1,""]},"temul.element_tools":{atomic_radii_in_pixels:[3,1,1,""],combine_element_lists:[3,1,1,""],get_and_return_element:[3,1,1,""],get_individual_elements_from_element_list:[3,1,1,""],split_and_sort_element:[3,1,1,""]},"temul.example_data":{load_Se_implanted_MoS2_data:[3,1,1,""],load_Se_implanted_MoS2_simulation:[3,1,1,""],load_example_Au_nanoparticle:[3,1,1,""],load_example_Cu_nanoparticle_sim:[3,1,1,""],path_to_example_data_MoS2_hex_prismatic:[3,1,1,""],path_to_example_data_MoS2_vesta_xyz:[3,1,1,""]},"temul.intensity_tools":{get_pixel_count_from_image_slice:[3,1,1,""],get_sublattice_intensity:[3,1,1,""],remove_average_background:[3,1,1,""],remove_local_background:[3,1,1,""]},"temul.io":{batch_convert_emd_to_image:[3,1,1,""],convert_vesta_xyz_to_prismatic_xyz:[3,1,1,""],create_dataframe_for_xyz:[3,1,1,""],dm3_stack_to_tiff_stack:[3,1,1,""],load_data_and_sampling:[3,1,1,""],load_prismatic_mrc_with_hyperspy:[3,1,1,""],save_individual_images_from_image_stack:[3,1,1,""],write_cif_from_dataframe:[3,1,1,""]},"temul.model_creation":{assign_z_height:[3,1,1,""],assign_z_height_to_sublattice:[3,1,1,""],auto_generate_sublattice_element_list:[3,1,1,""],change_sublattice_atoms_via_intensity:[3,1,1,""],change_sublattice_pseudo_inplace:[3,1,1,""],compare_count_atoms_in_sublattice_list:[3,1,1,""],convert_numpy_z_coords_to_z_height_string:[3,1,1,""],correct_background_elements:[3,1,1,""],count_all_individual_elements:[3,1,1,""],count_atoms_in_sublattice_list:[3,1,1,""],count_element_in_pandas_df:[3,1,1,""],create_dataframe_for_cif:[3,1,1,""],find_middle_and_edge_intensities:[3,1,1,""],find_middle_and_edge_intensities_for_background:[3,1,1,""],get_max_number_atoms_z:[3,1,1,""],get_most_common_sublattice_element:[3,1,1,""],get_positions_from_sublattices:[3,1,1,""],image_difference_intensity:[3,1,1,""],image_difference_position:[3,1,1,""],image_difference_position_new_sub:[3,1,1,""],print_sublattice_elements:[3,1,1,""],return_xyz_coordinates:[3,1,1,""],return_z_coordinates:[3,1,1,""],scaling_z_contrast:[3,1,1,""],sort_sublattice_intensities:[3,1,1,""]},"temul.signal_plotting":{Sublattice_Hover_Intensity:[3,2,1,""],color_palettes:[3,1,1,""],compare_images_line_profile_one_image:[3,1,1,""],compare_images_line_profile_two_images:[3,1,1,""],create_rgb_array:[3,1,1,""],expand_palette:[3,1,1,""],get_cropping_area:[3,1,1,""],get_polar_2d_colorwheel_color_list:[3,1,1,""],hex_to_rgb:[3,1,1,""],plot_atom_energies:[3,1,1,""],rgb_to_dec:[3,1,1,""]},"temul.signal_plotting.Sublattice_Hover_Intensity":{scaled:[3,3,1,""],setup_annotation:[3,3,1,""],snap:[3,3,1,""]},"temul.signal_processing":{calibrate_intensity_distance_with_sublattice_roi:[3,1,1,""],compare_two_image_and_create_filtered_image:[3,1,1,""],crop_image_hs:[3,1,1,""],distance_vector:[3,1,1,""],double_gaussian_fft_filter:[3,1,1,""],double_gaussian_fft_filter_optimised:[3,1,1,""],fit_1D_gaussian_to_data:[3,1,1,""],get_cell_image:[3,1,1,""],get_fitting_tools_for_plotting_gaussians:[3,1,1,""],get_scaled_middle_limit_intensity_list:[3,1,1,""],get_xydata_from_list_of_intensities:[3,1,1,""],load_and_compare_images:[3,1,1,""],make_gaussian:[3,1,1,""],make_gaussian_pos_neg:[3,1,1,""],mean_and_std_nearest_neighbour_distances:[3,1,1,""],measure_image_errors:[3,1,1,""],mse:[3,1,1,""],plot_gaussian_fit:[3,1,1,""],plot_gaussian_fitting_for_multiple_fits:[3,1,1,""],remove_image_intensity_in_data_slice:[3,1,1,""],return_fitting_of_1D_gaussian:[3,1,1,""],toggle_atom_refine_position_automatically:[3,1,1,""],visualise_dg_filter:[3,1,1,""]},"temul.topotem":{fft_mapping:[3,0,0,"-"],lattice_structure_tools:[3,0,0,"-"],polarisation:[3,0,0,"-"]},"temul.topotem.fft_mapping":{choose_mask_coordinates:[3,1,1,""],choose_points_on_image:[3,1,1,""],get_masked_ifft:[3,1,1,""]},"temul.topotem.lattice_structure_tools":{calculate_atom_plane_curvature:[3,1,1,""],sine_wave_function_strain_gradient:[3,1,1,""]},"temul.topotem.polarisation":{angle_label:[3,1,1,""],atom_deviation_from_straight_line_fit:[3,1,1,""],atom_to_atom_distance_grouped_mean:[3,1,1,""],combine_atom_deviations_from_zone_axes:[3,1,1,""],correct_off_tilt_vectors:[3,1,1,""],corrected_vectors_via_average:[3,1,1,""],corrected_vectors_via_center_of_mass:[3,1,1,""],delete_atom_planes_from_sublattice:[3,1,1,""],find_polarisation_vectors:[3,1,1,""],full_atom_plane_deviation_from_straight_line_fit:[3,1,1,""],get_angles_from_uv:[3,1,1,""],get_average_polarisation_in_regions:[3,1,1,""],get_average_polarisation_in_regions_square:[3,1,1,""],get_divide_into:[3,1,1,""],get_strain_map:[3,1,1,""],get_vector_magnitudes:[3,1,1,""],get_xyuv_from_line_fit:[3,1,1,""],plot_atom_deviation_from_all_zone_axes:[3,1,1,""],plot_polarisation_vectors:[3,1,1,""],ratio_of_lattice_spacings:[3,1,1,""],rotation_of_atom_planes:[3,1,1,""]},temul:{dummy_data:[3,0,0,"-"],element_tools:[3,0,0,"-"],example_data:[3,0,0,"-"],intensity_tools:[3,0,0,"-"],io:[3,0,0,"-"],model_creation:[3,0,0,"-"],signal_plotting:[3,0,0,"-"],signal_processing:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"0":[0,1,3,8,9,11,12],"0071191827843":8,"012":3,"0123":3,"0321":[3,11],"05":[0,3,11],"08":3,"1":[0,1,3,8,11,12],"10":[0,1,3,6,9,11],"100":[0,3],"1000":[1,3],"1002":[3,11],"1024":11,"1038":3,"11":3,"1182":3,"12":3,"121":3,"127":8,"128":3,"129":3,"130":3,"133":3,"14":[1,3],"15":[0,3],"150":[3,5],"16":3,"161":3,"169":3,"170":3,"173":1,"176":8,"177":8,"178":8,"180":[0,3,6,10,11],"184":[3,8],"186":8,"192":3,"193":3,"1981":[1,3],"1d":3,"2":[0,1,3,11],"20":3,"200":3,"2010":3,"2016":[3,11],"201603489":[3,11],"2020":[0,1],"21":3,"24":1,"245":3,"249":3,"25":3,"250":0,"25182885155715":8,"255":3,"26":[3,11],"28":3,"2d":[3,6,10,11],"2x2":3,"3":[0,3,7,8,11],"30":[0,3],"300":3,"301":3,"31448682369383":8,"318":3,"32":3,"397":3,"4":[3,7],"40":3,"400":3,"4185974":[],"42":[3,11],"4206":3,"45":[3,11,12],"4543963":6,"46":8,"464":3,"47":[1,3],"48":3,"49":[1,3],"5":[0,3,8,11],"50":[3,5,8,11],"500":3,"5281":6,"535":3,"54":3,"58":3,"5ba307b5af0b598bedc0284aa989d44e23fdde4d":3,"5th":3,"5x5":3,"6":[1,3],"60281235289372":8,"61":8,"62":3,"64580029829887":8,"6826109334526":8,"69":3,"7":[1,3,8,11],"70":3,"7355614374623":8,"75":3,"75132848177407":8,"773":3,"8":3,"80":3,"81":3,"82":3,"8x8":3,"9":[3,11,12],"90":[3,11],"92":3,"929":0,"93":[6,7],"93375300295452":8,"96":[3,8],"97030854763057":8,"97674094835968":8,"99":8,"boolean":3,"break":3,"case":[0,1,3,6,10,11],"class":[6,7],"default":[1,3,9],"do":3,"export":3,"float":3,"function":[0,1,5,6,7,8,10,11,12,13],"import":[3,5,6,7,8,9,10,11,12,13],"int":3,"long":3,"new":3,"public":[0,1,6,10],"return":[1,3,6,9,10,12],"true":[0,1,3,8,9,11,12],"try":[3,6],A:[3,8],And:6,As:[3,5,8],By:[3,12],For:[0,3,6,7,10],If:[3,6,7,9,10,11,14],In:[0,3,5,8,11,12],It:[0,3,6,7,10,11],Of:9,One:[1,3,6,12,13],The:[0,1,3,5,6,7,8,9,10,11,12,14],Then:[3,6,7,8],There:[0,5,6,11,13],These:[3,11],To:[3,5,6,11,12,13],Will:3,With:3,_:[3,11],_below:[],_cell_length_b:3,_cell_length_c:3,_fit_line_clust:3,_get_image_slice_around_atom:3,abakumov:3,about:3,abov:[3,6,11,13],abspath:[0,1],access:3,accord:[],account:3,across:[0,3],actual:3,ad:[3,6,10,14],adapt:[1,3],add:3,add_atoms_with_gui:3,add_sublattic:3,added_atom:3,adf:3,adfm:[3,11],adjac:3,aert:3,after:[3,6,7,9],aggreg:3,aggregation_axi:3,agre:3,aim:3,al:[0,1,3,6,10,11],all:[3,9,11,12],allow:[3,5,6,8,9,11,12],along:[1,3,12],alpha:[3,11],alreadi:[3,9,11],also:[0,1,3,5,6,9,10,11,12,13,14],am:[0,1,3,6,7,11],amin:3,amount:3,amp:3,amplitud:[3,8],amplitude_max_intens:3,amplitude_mean_intens:3,amplitude_min_intens:3,amplitude_total_intens:3,an:[1,3,5,6,7,8,10,11,12,14],analys:6,analysi:[6,10,13],angl:[0,3,6,10,11,12],angle_label:3,angle_offset:[0,3,12],angstrom:3,ani:[1,3,6,7,11,12,14],annot:3,anoth:8,antialias:[3,11],antisit:3,apart:5,api:[0,1,5,6,7,8,9,10,11,12,13],appear:[3,5,11],append:[3,11],appli:[3,8,9,12],appropri:3,approxim:1,ar:[0,3,5,6,7,10,11,13],arang:11,area:3,argument:3,around:3,arr:3,arrai:[0,3,11],arrow:[0,3,8,11],arrow_markers:3,artem:3,articl:[6,10],asarrai:[3,11],ase:3,aspect:[6,13],assign:3,assign_z_height:3,assign_z_height_to_sublattic:3,assum:3,at_lat_befor:3,atom0:3,atom:[0,3,5,6,9,10,11],atom_coord:3,atom_devi:3,atom_deviation_from_straight_line_fit:[3,6,10,11],atom_lattic:[0,1,3,9,11,12],atom_lattice_crop:[0,1],atom_layout:3,atom_list:3,atom_plan:[1,3],atom_plane_toler:[0,1,3,11],atom_posit:[3,11],atom_positions2:11,atom_positions2_refin:11,atom_positions_a:3,atom_positions_actu:0,atom_positions_b:3,atom_positions_id:0,atom_positions_orig_2:0,atom_to_atom_distance_grouped_mean:3,atomap:[0,1,3,6,7,8,12],atomap_devel_012:[3,6,7],atomic_column:3,atomic_radii_in_pixel:3,atomposit:3,attempt:3,attribut:3,au:3,au_np_z_coord:3,au_np_z_height_str:3,auto:3,auto_generate_sublattice_element_list:3,autom:3,automat:[3,6,11,13],av:3,avail:[3,11,12],averag:3,averaging_bi:3,awai:3,awar:3,ax:[0,3,6,10,11,12],axes_manag:[0,1,3,11],axi:[0,3,12],axis_numb:3,b:[3,8],b_2:3,b_9:3,background:3,background_sub:3,background_sublattic:3,badg:6,band:[3,5],bandpass:3,base:[5,11],basic:[3,14],batch_convert_emd_to_imag:3,batuk:3,beam:3,becaus:3,been:[1,3,6,10],befor:3,begin:3,behaviour:3,behind:3,being:[3,6,7],below:[0,1,3,6,7,8,11,12,14],best:[3,11],better:[0,3],between:[3,12],bilay:3,bin:3,binder:6,black:[3,11],blind:3,blog:3,blue:[3,11],blur:3,bond:3,bool:3,boracit:6,border:3,bot:3,both:3,bottom:[3,5],boundari:3,box:3,box_alpha:[3,11],branch:[6,7],briefli:11,brighter:3,brightest:3,buffer:3,build:[6,7],built:6,button:[0,1,6,11,14],bwr:[1,3],c:[3,6,7,10],ca_ratio_map:0,calcul:[3,6,11,12],calculate_atom_plane_curvatur:[1,3,6,10],calibr:[3,11],calibrate_intensity_distance_with_sublattice_roi:3,calibrated_data_:3,call:[3,6,7],can:[0,1,3,5,6,7,8,9,10,11,12,13,14],care:3,carri:3,cation:3,caution:[6,10],cc:[3,11],cell:3,cell_angle_alpha:3,cell_angle_beta:3,cell_angle_gamma:3,cell_imag:3,cell_info:3,cell_length_a:3,cell_length_b:3,cell_length_c:3,center:3,centered_atom:3,centr:3,central:3,cet_c4:3,cet_colorwheel:[3,11],cet_coolwarm:[3,11],chang:[3,5,6,10,11,12],change_sublattic:3,change_sublattice_atoms_via_intens:3,change_sublattice_pseudo_inplac:3,characterist:12,charg:[0,3,6,10,11],chdir:[0,1],check:[0,3,6,8,9,10],checkout:[6,13],chemic:[3,11],chemical_name_common:3,choic:3,choos:[0,1,3,6,7,8,11],choose_mask_coordin:[3,9],choose_points_on_imag:[0,3,8],chosen:3,cif:3,citat:[6,10],cl_1:3,classic:11,clearli:11,click:[0,1,6,7,11,14],closer:3,closest:3,cluster:3,cm:[3,11],cmap:[0,1,3,6,10,11],co:11,code:10,code_tutori:[6,10,11,14],colav:3,color:[0,3,11],color_list:3,color_palett:[3,11],colorbar:[3,6,10,11],colorbar_fonts:3,colorblind:3,colorcet:[1,3,11],colormap:[1,3,6,10,11],colorwheel:[0,3,6,10,11],colour:[3,11],column:[3,6,10,11],com:[3,6,7],combin:3,combine_atom_deviations_from_zone_ax:3,combine_element_list:3,comment:3,commit:3,common:3,commun:[0,6,10],compar:[3,6],compare_count_atoms_in_sublattice_list:3,compare_images_line_profile_one_imag:[0,3,8],compare_images_line_profile_two_imag:[3,8],compare_two_image_and_create_filtered_imag:3,comparison:[3,6],comparison_sublattice_list:3,compat:[],complex:3,compon:3,comput:[3,6],configur:3,confus:3,congrat:[6,10],connel:6,consecut:3,consid:3,construct:[0,3],construct_zone_ax:[0,1,3,11,12],contain:[3,6,10,14],content:13,contour:[3,6,10,11],contourf:3,convert:3,convert_numpy_z_coords_to_z_height_str:3,convert_vesta_xyz_to_prismatic_xyz:3,convolut:[3,5],coord:3,coordin:[3,6,12],copi:[3,6,7],core:3,corner:3,correct:[3,6,10],correct_background_el:3,correct_off_tilt_vector:3,corrected_vectors_via_averag:3,corrected_vectors_via_center_of_mass:3,correctli:[3,6,10],correspond:[3,12],corresspond:3,could:3,count:3,count_all_individual_el:3,count_atoms_in_sublattice_list:3,count_element_in_pandas_df:3,counter:3,counter_list:3,cours:9,covalent_radiu:3,covari:3,creat:[3,6,7,10,11,12,14],create_dataframe_for_cif:3,create_dataframe_for_xyz:3,create_rgb_arrai:3,crop:3,crop_a:3,crop_end:3,crop_image_h:3,crop_offset:[3,8],crop_start:3,cropped_pto:1,cropping_area:3,cu:3,cubic:3,current:[3,11],curv:[1,6,10],curvatur:[3,6],curvature_map:[1,3],curve_fit:[1,3],custom:[3,11],custom_cmap:[3,11],customis:[0,5],cyclic:3,d:3,d_inner:[3,5],d_outer:[3,5],dark:[3,11],darker:3,darker_or_bright:3,darkgrai:[3,11],data:[5,6,8,10,11,12,14],data_art:3,data_label:3,datafram:3,dataset:[0,1,6],dd:[3,11],deal:11,dec:3,decid:3,decim:3,deepcopi:3,defin:3,degre:[0,3,6,10,11,12],delet:3,delete_atom_planes_from_sublattic:3,delimit:3,delta:3,delta_image_filt:3,denomin:3,denominator_el:3,denominator_sublattic:3,depend:[3,6,7,10],deriv:[1,3],describ:[3,6,11,13,14],descript:11,detail:[0,1,3,5,12],determin:3,develop:[3,6,7],deviat:3,df:3,dft:3,diamet:3,dict:3,dictionari:[0,3],differ:[3,6,10,11,12],difficult:9,diffract:[3,9],dimens:[3,11],direct:[0,3,11,12],directori:[3,6,7],discuss:12,displac:[1,3],displai:[1,3,5,6,8,10,11],distanc:[3,12],distance_threshold:3,distance_vector:3,distibut:3,distort:3,distribut:3,diverg:3,divid:[0,3],divide_into:3,divisible_bi:3,dm3:3,dm3_stack_to_tiff_stack:3,dmitri:3,doc:3,document:[0,5,10,11,12,13],doesn:3,doi:[3,6,11],domain:[3,6,9,10,11],dominiqu:3,don:11,done:[3,5,6,10,12],dot:3,doubl:[3,5,6,10],double_gaussian_fft_filt:[3,5],double_gaussian_fft_filter_optimis:[3,5],down:3,download:[0,1,6,7,10,11,14],dpi:3,dr:[1,3],draw:[3,8],due:3,dummi:[6,8],dummy_data:[3,8,9,11,12],duplic:3,dure:3,dx:[3,11],e:[3,6,10,12],each:[0,1,3,6,8,10,11,12,13],easiest:6,easili:[3,6,7,9,11,12],edg:3,edge_pad:3,edit:[6,10],effect:[3,11,12],either:3,ekhard:3,elast:[1,3],electr:[3,11],electron:3,element:[6,7,13],element_atomic_numb:3,element_config1:3,element_config2:3,element_count:3,element_list:3,element_list_all_sub:3,element_list_sub1:3,element_list_sub2:3,element_nam:3,element_split:3,element_symbol:3,element_tool:3,elements_dict_oth:3,elements_from_sub1:3,elements_from_sub2:3,els:3,emd:3,end:[1,3],energi:3,energy1:3,energy2:3,energy_map:3,engin:3,enlarg:3,enumer:3,eoghan:6,eoin:6,equal:3,error:[0,3],essenti:3,estim:3,et:[0,1,3,6,10,11],etc:3,everi:3,everyth:3,exactli:3,exampl:[5,7,10,11,12,13],example_data:[3,5],example_mos2_vesta_xyz:3,example_script:3,except:3,exist:3,expand:[3,6,8,10],expand_list:3,expand_palett:[3,11],expanded_palett:3,expanded_zest:[3,11],experi:3,experiment:[3,6,8,11,12],extend:3,extens:[3,6,13],extension_to_sav:3,extern:[3,6,7,12],extra:[1,3,11],extract:[3,11],f5793a:3,f:3,facecolor:3,fail:3,fals:[0,3,9,11,12],false_list_sublattic:3,far:3,fast:[3,9],fe:3,fe_8:3,featur:[3,6,10,11],ferroelectr:[1,3,6,10,11,14],few:[6,11],fft:[3,5,6,8,10],fft_imag:[3,9],fft_map:[0,3,8,9],fid:3,figsiz:3,figur:3,file:[0,3,6,9],file_extens:3,filenam:[0,1,3,12],filetyp:3,film:3,filt_imag:3,filter:[0,3,6,10],filtered_imag:[3,5],filtered_pto_haadf_stem:0,find:[1,3,6,9,10,14],find_middle_and_edge_intens:3,find_middle_and_edge_intensities_for_background:3,find_missing_atoms_from_zone_vector:11,find_nearest_neighbor:[3,11],find_polarisation_vector:[0,3,11],first:[0,1,3,6,10],fit:[1,3,11],fit_1d_gaussian_to_data:3,fit_bright_first:3,fitting_tools_all_sub:3,fix:[6,10],flattened_element_list:3,flip:3,fold:[6,7],folder:[0,1,3,6,7,10,11,14],follow:[0,1,3,6,11],forc:3,forget:11,form:3,format:[3,12],found:[0,1,3,5,12],four:[3,8],fourier:[3,9],fourth:3,fraction:3,fractional_coordin:3,frame:3,free:3,friendli:3,from:[0,1,3,5,6,8,9,10,11,12,13,14],from_levels_and_color:[3,11],full:[3,5,6],full_atom_plane_deviation_from_straight_line_fit:3,func:[1,3,8],further:[0,3,6,10,11],futur:[3,8,11,12,14],fwhm:[3,5],fwhm_neg:3,fwhm_po:3,g:[3,6,12],gauss:3,gauss_art:3,gauss_fit_01:3,gauss_label:3,gauss_sigma_divis:3,gaussian:[3,5,6,10],gaussian_amp:3,gaussian_filt:3,gaussianin:3,ge:3,ge_2:3,gener:3,get:[0,3,10,11],get_all_atom_planes_by_zone_vector:3,get_and_return_el:3,get_angles_from_uv:3,get_atom_column_amplitude_max_intens:3,get_atom_posit:11,get_average_polarisation_in_region:3,get_average_polarisation_in_regions_squar:3,get_cell_imag:3,get_cropping_area:3,get_distorted_cubic_signal_adjust:3,get_distorted_cubic_sublattic:3,get_distorted_cubic_sublattice_adjust:3,get_divide_into:3,get_fitting_tools_for_plotting_gaussian:3,get_individual_elements_from_element_list:3,get_masked_ifft:[3,9],get_max_number_atoms_z:3,get_most_common_sublattice_el:3,get_pixel_count_from_image_slic:3,get_polar_2d_colorwheel_color_list:3,get_polarisation_dummy_dataset:[3,9,11,12],get_polarisation_dummy_dataset_bora:[3,11],get_polarised_single_sublattic:[3,11],get_polarised_single_sublattice_rot:[3,11],get_polarization_film_atom_lattic:3,get_polarization_from_second_sublattic:[0,3,11],get_positions_from_sublattic:3,get_scaled_middle_limit_intensity_list:3,get_simple_atom_lattice_two_sublattic:3,get_simple_cubic_sign:[3,8],get_simple_cubic_sublattic:3,get_simple_cubic_sublattice_positions_on_vac:3,get_simple_cubic_with_vacancies_sign:3,get_simple_cubic_with_vacancies_sublattic:3,get_strain_map:[0,3,12],get_subattice_intens:3,get_sublattice_intens:3,get_vector_magnitud:3,get_xydata_from_list_of_intens:3,get_xyuv_from_line_fit:3,github:[3,6,7,10,14],gitlab:[6,7],give:11,given:[3,6,12,13],glob:3,glob_search:3,go:11,gonnissen:[3,11],good:3,googl:3,gotten:3,gpl:6,grab:3,gradient:[1,3],grai:3,grayscal:0,great:11,greater:3,grid:3,group:3,grouped_mean:3,guarante:[6,7],guess:3,guid:[6,10],guillaum:3,h:[0,3,8],h_0:3,ha:[1,3,6,10],hadjimichael:[1,3,6,10],half:[3,5],halfwai:3,handl:11,have:[0,3,5,6,9,10,14],hdf5:[0,1,12],head:[0,6,10],headaxislength:3,header:3,header_com:3,headlength:3,headwidth:3,heavili:3,help:[3,6,7,10],hennessi:[6,10],here:[3,5,6,7,8,10,11],hex:3,hex_to_rgb:[3,11],hex_valu:3,hexidecim:3,hide:3,high:3,higher:3,highli:[0,6,10],hist:3,hist_bin:3,histogram:3,hope:8,horizont:[3,12],hover:3,how:[3,5,6,9,10,11],hs:[0,1,3],hspy:[0,1,3,12],hsv:[3,6,10],html:3,http:[3,6,7],hue:3,hydrogen:3,hyperspi:[0,1,3,6,9,11,12],i:[3,6,10,11],idea:14,ideal:[3,11],ideal_ratio_on:[0,3,12],ideal_sigma:3,ifft:[3,6,8,10],ignor:3,im:3,imag:[0,1,6,11,12,13],image_cmap:3,image_crop:3,image_data:3,image_diff_arrai:3,image_difference_intens:3,image_difference_posit:3,image_difference_position_new_sub:3,image_ifft:[3,9],image_nois:[3,8,9,11,12],image_sampl:3,image_slic:3,image_spac:[3,9],image_stack:3,image_temp:11,image_to_filt:3,imagea:[3,8],imagea_titl:[3,8],imageb:[3,8],imageb_intensity_offset:3,imageb_titl:[3,8],implant:3,implement:[3,6,7],improv:3,imshow:3,includ:3,incorrect:[3,11],increas:3,increment:3,index:[3,6,12],indic:3,individu:3,individual_element_list:3,individual_imag:3,inferno:[0,3],info:[3,6,10],inform:[0,3],init:5,initi:[1,3,5,9],inner:[3,5],inplac:3,input:[1,9,12],instanc:3,instead:3,instruct:6,integ:3,integr:3,intens:6,intensities900:3,intensities_al:3,intensities_max:3,intensities_max_averag:3,intensities_tot:3,intensities_total_loc:3,intensity_list_r:3,intensity_tool:3,intensity_typ:3,interact:[0,1,10,11,14],intercept:3,interest:3,interg:3,intern:3,introductori:6,invers:[3,5],invert_imag:3,invert_y_axi:[3,6,10,11],invert_yaxi:11,involv:[6,10,11],io:[6,7,9],ipynb:[6,10,11],ipython:[],isn:11,issu:[3,6,7,10,14],its:3,j:11,join:[0,1],jone:3,juli:3,junction:6,jupyt:[0,1,6,10,11,14],just:[0,1,3,5,6,11,14],k:[0,3],keep:3,keep_masked_area:[3,9],kei:[3,6,10],kept:3,kernel:3,keyword:3,kink:[3,11],know:6,ko:3,krivanek:3,kwarg:[0,1,3],l:12,label:3,lambda:3,landau:[1,3],larg:[0,3,11],largest:3,largest_element_intens:3,last:3,latest:6,lattic:[1,3,6],lattice_structure_tool:[1,3,6,10],lattice_typ:3,launch:0,layer:[1,6,10],layout:[6,10],lead:[0,6,10],learn:12,leav:3,left:[0,3,6,10,11,13],len:3,length:3,let:[3,6,11],level:[3,11],lewi:3,li:[1,3,6,10],librari:3,lifshitz:[1,3],like:[3,6,7],limit:[3,5],limit_intensity_list:3,limit_intensity_list_real_sub1:3,limit_intensity_list_real_sub2:3,limit_intensity_list_sub1:3,limit_intensity_list_sub2:3,linbo3:[3,11],line:[0,3,6,11],line_profile_posit:[0,3,8],linear:3,linearsegmentedcolormap:3,linetrac:[0,3,8],linewidth:[0,3,8],list:[3,6],littl:11,live:11,lno:6,load:[3,6,11],load_and_compare_imag:3,load_atom_lattice_from_hdf5:[0,1],load_data_and_sampl:3,load_example_au_nanoparticl:3,load_example_cu_nanoparticle_sim:3,load_prismatic_mrc_with_hyperspi:3,load_se_implanted_mos2_data:[3,5],load_se_implanted_mos2_simul:3,loading_fil:3,loading_file_extens:3,local:[0,3,11],locat:[3,11],log:[3,9],look:[0,3,11],loop:[3,9],lose:3,lot:[3,5],lower:[3,11],m:[1,3],m_alt:3,made:[0,1],magnitud:[3,6,10,11],mai:[0,3,6,7,10,11],major:[6,13],make:[3,6,10,11],make_gaussian:3,make_gaussian_pos_neg:3,make_middle_limit_intensity_list_r:3,make_polarised_sublattice_bora_return:3,mani:[3,6,10,11,13],manner:3,manual:3,map:[1,3,6,10,11],mario:[1,3],marker:3,marker_a:3,marker_b:3,marker_list:3,markers:3,mask:[3,6,8,10],mask_coord:[3,9],mask_radiu:[3,9],mass:3,master:[6,7],match:3,materi:[1,3,6,10,14],material_typ:3,matlab:[1,3],matplotlib:[0,1,3,6,10,11,12],matter:3,max:3,max_cut_off_perc:3,max_element_intens:3,max_number_atoms_z:3,max_radiu:3,max_sigma:3,maxfev:1,maximum:[3,5],mayb:3,mean:[3,8],mean_and_std_nearest_neighbour_dist:3,mean_angl:3,mean_scal:3,meander:[3,11],measur:3,measure_image_error:3,memori:0,menu:[6,10],meshgrid:11,metadata:[3,11],metal:[1,6,10],method:[3,8,11],michael:[6,10],microscopi:3,middl:[3,11],middle_intensity_list:3,middle_intensity_list_real_sub1:3,middle_intensity_list_real_sub2:3,middle_intensity_list_sub1:3,middle_intensity_list_sub2:3,min:3,min_cut_off_perc:3,minimum:3,minlength:3,minor:[6,10],minshaft:3,minut:[6,11],mo:3,mo_0:3,mo_1:3,mo_2:3,mo_3:3,mode:3,model_cr:3,model_refin:[3,6,7],modul:[5,6,7,8,9,10,11,12,13],moli:3,moment:0,monitor:3,monitor_dpi:[0,3,11],monolay:3,moor:[0,6,10],more:[0,1,3,6,10,11,12,14],mos2:3,mos2_hex_prismat:3,most:[3,6,7,11],mostli:6,move:3,movement:6,moynihan:6,mpl_cmaps_list:3,mrc:3,mse:3,mse_numb:3,mu:3,multipl:[3,6,8],multipli:3,must:[3,11],mybind:0,n:[3,11],name:[3,6,7],nanoparticl:3,nataf:3,natur:[0,1,3,6,10],nature08879:3,navig:[1,3,6,7,11,14],ndimag:3,nearest:3,nearest_neighbor_list:3,nearest_neighbour:3,neccessari:3,need:[1,3,6,7,8,11,14],neg:3,neg_min:3,neglig:[1,3],neighbour:3,new_atom_posit:3,newli:[6,10],nice:[6,10],nm:[0,1,3,8,11,12],no_added_atom:3,no_axis_info:3,nois:3,non:3,none:[0,1,3,11],nonstandard:6,norm:[3,6,9,10],normal:3,normalis:3,note:[0,3,6],notebook:[0,1,6,10,11,14],noth:3,novemb:[],now:[0,3,6,8,10,11],np:[0,3,8,11],npy:0,num_peak:3,num_point:3,num_unit_cel:3,number:3,number_atoms_z:3,number_of_lin:3,numer:3,numerator_el:3,numerator_sublattic:3,numpi:[0,3,8,11],o:[3,6],o_6:3,object:[3,6,10],observ:[3,11],obtain:[6,10],occup:3,off:[0,3,6,10,11],offset:[3,12],offset_from_zero:3,okai:3,old_sublattic:3,older:6,onc:3,one:[3,5,6,9,11,12],ones_lik:11,onli:3,open:[0,1,3],opposit:3,optim:[1,3],optimis:3,optimium:3,optimum:3,optimumis:3,option:[3,11,12],org:[3,6],origin:[3,11],os:[0,1],other:[3,5,6,7,12],out:[0,3,6,8,9,10],outer:[3,5],output:12,output_fold:3,outsid:3,over:[3,8],overal:3,overlai:[0,3,11],overlaid:[3,9,11],overrid:3,overwrit:3,own:[0,3,6],oxid:3,p0:[1,3],p:3,packag:[3,5,6,7,11],page:[6,13],pair:3,palett:3,pallett:3,panda:3,paper:6,paper_nam:3,parallel:3,param:[3,6,10],paramet:[3,5,6,10,11,12],partli:[3,11],pass:[3,5],past:[6,7],path:[0,1,3],path_to_data:[0,1],path_to_example_data_mos2_hex_prismat:3,path_to_example_data_mos2_vesta_xyz:3,path_vesta_fil:3,path_xyz_fil:3,pb:[0,1],pcov:3,pd:3,peak:3,percent_to_nn:[3,11],perfect:3,perfectli:[3,12],perform:3,period:[1,3,6,10],periodict:3,perovskit:3,physic:[0,6,10],pi:11,pick:3,pinkshnack:[3,6],pip:[6,7],pivot:[3,11],pix:[0,1,3,11,12],pixel:[3,9],pixel_count:3,pixel_i:3,pixel_threshold:3,pixel_x:3,pixstem:[6,10],plane:[3,6,11,12],plasma:3,pleas:[6,7,10,14],plot:[0,1,5,6,8,10],plot_and_return_fit:1,plot_atom_deviation_from_all_zone_ax:3,plot_atom_energi:3,plot_data:3,plot_fil:3,plot_gaussian_fit:3,plot_gaussian_fitting_for_multiple_fit:3,plot_lim:3,plot_masked_fft:[3,9],plot_plan:[1,3,11],plot_polarisation_vector:[0,3,6,10,11],plot_styl:[0,3,6,10,11],plot_xi:3,plotting_styl:3,plt:[0,3],pm:[3,11],png:3,point:[3,8],points_i:3,points_x:3,polar:[3,11],polar_colorwheel:[3,6,10,11],polaris:[6,10,12,13,14],polarisation_colorwheel_test_dataset:3,polarisation_imag:3,polarisation_vectors_tutori:11,popt:3,popt_gauss:3,popul:3,pos_a:3,pos_b:3,posit:[0,3,5,8,9,11],possibl:[6,10],pp:[1,3],pr:3,pre:[0,1],prepar:6,present:[6,10],pretend:3,previous:3,print:3,print_sublattice_el:3,prism_2doutput_prismatic_simul:3,prismat:3,prismatic_mrc_filenam:3,prismatic_xyz:3,prismatic_xyz_filenam:3,problem:[3,6],produc:3,profil:[0,3,6],profile_lin:[0,3],program:3,project:6,provid:3,pto:[1,6],pto_junction_moor:0,pto_marios_hadj:3,pto_supercrystal_hadjimichael:1,publication_exampl:[0,1,3,6,10],publish:[10,11,12],pull:[3,6,7,14],purpos:3,py:8,pycifrw:[6,7,10],pyplot:3,pyprismat:[6,7,13],python:[0,1,3,11,14],quadrant:[3,11],quantif:[6,7,13],quantifi:[6,7],question:[6,10],quiver:[3,6,10,11],quiver_unit:3,r:[3,11],r_safe:3,radian:3,radiu:3,radius_pix_:3,radius_pix_mo:3,randint:3,random:3,rang:[3,11],range_typ:3,rather:3,ratio:[3,6],ratio_map:[3,12],ratio_of_lattice_spac:[0,3,12],raw:[0,6,10],re:[3,6,7],re_3:3,re_7:3,read:12,read_csv:3,real:[3,9],realist:3,reason:3,reciproc:3,rectangl:3,rectangular:3,red:[3,11],reduc:3,reduce_func:[3,8],refactor:[6,10],refer:3,reference_imag:3,refin:11,refine_atom_positions_using_center_of_mass:[3,11],refine_posit:3,region:[3,11],registr:3,regular:11,rel:3,relat:9,relev:6,remain:[3,6,10],remov:[3,6,10],remove_average_background:3,remove_background_method:3,remove_image_intensity_in_data_slic:3,remove_local_background:3,remove_vector:[3,11],render:3,repositori:[0,1,6,10,11,14],repres:3,reproduc:[6,10],request:[6,7,14],requir:[3,6,7,11],resembl:3,reset:5,reshap:11,resolut:[5,6,11,12],resolv:[],respect:[3,11],result:3,retain:3,return_fit:3,return_fitting_of_1d_gaussian:3,return_x_y_z:[0,3,12],return_xyz_coordin:3,return_z_coordin:3,returnt:[],reveal:9,revers:[3,9],rgb:[3,6,10],rgb_to_dec:[3,11],rgb_valu:3,right:3,rigid:3,rm:3,rms_thermal_vib:3,rotat:[3,6,10,11],rotation_map:[0,3,12],rotation_of_atom_plan:[0,3,12],rotation_sign:3,round:0,row:3,ru:1,run:[0,3,5,6,8],s:[3,8,10,11,12],s_1:3,s_2:3,s_p:[3,11],salj:3,same:[1,3,6,8,10,11,14],sampl:[0,1,3,8,11,12],sandra:3,save:[0,1,3,9,11,12],save_imag:3,save_individual_images_from_image_stack:3,save_nam:3,saving_file_extens:3,scalar_method:3,scale:[0,1,3,6,10,11],scale_loc:[3,11],scale_unit:3,scalebar:[3,11],scalebar_tru:3,scaled_limit_intensity_list:3,scaled_middle_intensity_list:3,scaling_expon:3,scaling_ratio:3,scaling_z_contrast:3,scan:3,scbar_dict:[3,11],scenario:9,schryver:3,scientif:6,scikit:3,scipi:[1,3],script:[0,1,3,11,14],se:3,se_1:3,se_count:3,search:[3,6],second:[0,3,11],second_fit_rigid:3,section:[3,11],see:[0,1,3,5,6,7,10,11,12],seem:[],self:3,separ:[3,11,12],sequenc:3,seri:[3,8],session:11,set:[3,6,11,12],setup_annot:3,sever:[3,11],shape:[3,8],shear:3,shift:[3,9],should:[3,11],show:[3,5,11,12],show_progressbar:3,side:[3,11],sigma:3,signal2d:[3,12],signal:[9,11,12],signal_plot:[0,3,8],signal_process:[3,5,6,9,10],signal_processingvisualise_dg_filt:[],sim_imag:3,similar:[3,11],simpl:[3,9],simple_atom_lattic:3,simpli:3,simul:[6,7,8,13],simular:3,sin:11,sine:3,sine_wave_function_strain_gradi:3,sine_wave_sublattic:3,singl:[3,6],site:[6,7],size:3,skimag:[0,3],skiprow:3,slice:3,slice_thick:3,slider:[3,5],slider_max:3,slider_min:3,slider_step:3,slope:3,slow:3,slowli:[6,7],small:3,smaller:3,snap:3,so:[0,3,11],some:[0,3,8,10,11,14],sometim:[0,3],sort:3,sort_sublattice_intens:3,sourc:6,space:[3,9],space_group_it_numb:3,space_group_name_h:3,space_group_name_h_m_alt:3,speci:3,specifi:[3,6,10,11],split:3,split_and_sort_el:3,split_symbol:3,spot:[3,9],squar:3,sr:1,sro:[0,1],sro_align:1,ssm:3,ssm_number:3,stack:3,standard:[3,6],standard_el:3,start:[1,3,10],std:3,stem:3,step:3,still:3,stop:3,store:[3,5],str:3,straight:3,strain:[1,3,6,10],strain_grad:[1,3],strain_map:[0,3,12],strain_sign:3,string:[0,1,3,12],structur:[0,3,6,9,10],studio:[6,7],style:[0,3,11],sub1:3,sub1_int:3,sub1_inten:3,sub1_mod:3,sub2:3,sub2_int:3,sub2_mod:3,sub_ints_al:3,sub_new:3,subdirectori:3,subfigur:3,sublattic:[0,1,3,6,7,12],sublattice0_intensity_method:3,sublattice1:[0,1],sublattice1_intensity_method:3,sublattice2:[0,1],sublattice_a:3,sublattice_b:3,sublattice_hover_intens:3,sublattice_intensity_list:3,sublattice_list:[0,1,3,9,11,12],sublattice_nam:3,sublattice_posit:3,sublattice_scalar:3,sublatticea:[3,11,12],sublatticeb:[3,11,12],subsequ:8,subtract:3,success:12,suffic:11,suit:6,suitabl:[3,5,11],sum:3,supercryst:[1,6,10],surround:3,swap:0,symbol:3,symmetri:3,t:[0,3,11],tabl:[3,13],take:[3,6,11],taken:[3,11],temul:[0,1,3,5,7,8,9,10,11,12,13,14],term:3,test:[3,6,10],tetragon:[3,12],than:3,thank:[6,10],thei:[3,9,11],them:[0,3,9],themselv:0,theor_val:12,theoret:[3,12],theoretical_valu:[0,3,12],theori:[1,3],therefor:0,thi:[0,1,3,5,6,7,8,9,10,11,12],thick:3,thin:3,third:3,those:[6,7,10],thought:3,through:[3,6,10,11,13],ti:[0,1,3],ti_1:3,ti_2:3,ti_3:3,ti_5:3,ti_7_0:3,ti_9:3,tick:[3,6,10,11],tif:3,tiff:3,tilt:[3,6,10],time:[3,8],tip:[6,7],titan:[0,6,10],titl:[0,1,3,11,12],tml:[0,1,3,5,6,7,8,9,10,11,12,13],tml_el:3,toggle_atom_refine_position_automat:3,toggle_atom_refine_position_with_gui:3,tolist:[0,11],too:[3,5,11],tool:[6,7,10],toolkit:[7,10,11,13,14],top:[0,3,11],top_level_com:3,top_level_directori:3,topotem:[0,1,6,8,9,10,11,12],total:3,toward:3,trace:3,tracker:6,transform:[3,9],translat:3,transpar:[3,11],tree:3,tricontour:12,tricontourf:[3,11],tupl:3,turn:[0,3],tutori:[0,1,5,6,8,10,11,12,13],two:[3,5,6,10,11,12],type:[3,11,14],u1:3,u2:3,u3:3,u:[0,3,11],u_av:3,u_com:3,u_corr:3,u_new:3,ufunc:3,under:[0,6],understand:[3,9],unfortun:[6,7],unit:[0,1,3,8,11,12],unit_cell_s:3,unit_vector:[0,3,11],unmask:3,unrealist:3,until:[],up:[3,6],updat:[3,6,10],upon:6,upper:3,us:[0,1,3,5,7,8,9,10,12,13],usabl:3,user:[3,11],user_guid:3,usual:3,uv:3,v1:3,v2:3,v3:3,v:[0,3,11],v_av:3,v_com:3,v_corr:3,v_new:3,vac:3,vac_or_impl:3,vacanc:3,valu:[0,3,5,6,10,12],van:3,variabl:3,variat:[8,11],variou:[9,12,14],vast:[6,13],vector:[0,3,6,10,14],vector_fract:11,vector_list:[3,11],vector_mag:3,vector_rep:[0,3,11],venngag:3,verbos:3,veri:3,versa:0,version:[3,7],vertic:3,vesta:3,vesta_xyz_filenam:3,via:[3,6],vice:0,view:[3,6,12,13],viridi:[3,11],visual:[3,6,7],visualis:[3,6,10,11,12],visualise_dg_filt:[3,5,6,10],vmax:[0,1,3],vmin:[0,1,3],vol:[1,3],voronoi:3,vortex:[3,11],vs:[6,7],wai:[3,6,11,12],walk:[6,10],walkthrough:[6,10],wall:[3,6,9,10,11],want:[0,1,3,6,7],warn:3,wave:3,we:[0,1,3,5,8,11,12],websit:[6,10,12],welcom:7,well:[3,5],what:[3,12],wheel:[3,11],when:[1,3,5,6,7,11,12],where:[1,3,6,11,13,14],wherein:11,whether:3,which:[1,3,6,10,11],whichev:6,whole:3,whose:3,why:[3,11],widget:5,width:[3,5],window:[5,6,7],wish:[3,6,7],with_vac:3,within:3,without:[1,3,11,14],word:3,work:[0,3,6,7],workflow:[6,10,11],workload:[6,7],would:3,write:3,write_cif_from_datafram:[3,6,7],written:[1,3],x0:3,x1:3,x2:3,x3:3,x:[0,3,11,12],x_new:3,x_posit:[0,3,11],x_size:3,xdata:3,xy:3,xyuv:3,xyz:3,y0:3,y1:3,y2:3,y3:3,y:[0,1,3,6,10,11,12],y_new:3,y_offset:3,y_posit:[0,3,11],y_size:3,ydata:3,yellow:[0,3],you:[0,1,3,6,7,8,9,10,11,14],your:[0,3,6,7,11],yourself:3,z:3,z_bond_length:3,z_coord:3,z_coordin:3,z_height:3,z_size:3,z_thick:3,za0:[3,11],za1:[3,11],zenodo:6,zero:3,zest:[3,11],zesti:[3,11],zone:[0,3,6,10,12],zone_axis_001:11,zone_axis_index:[3,12],zone_axis_index_a:3,zone_axis_index_b:3,zone_vec_list:3,zone_vector_index:[1,3],zone_vector_index_a:0,zone_vector_index_b:0,zones01_a:3,zones01_b:3,zones_axis_average_dist:[3,11],zoom:[0,11]},titles:["Analysis of PTO Domain Wall Junction","Calculation of Atom Plane Curvature","Some published results using the TEMUL Toolkit","API documentation","<no title>","Interactive Image Filtering","Welcome to TEMUL Toolkit\u2019s documentation!","Installation","Line Intensity Profile Comparisons","Masked FFT and iFFT","News","Finding Polarisation Vectors","Plot Lattice Structure Maps","Getting started","Analysis Workflows"],titleterms:{"0":[6,10],"02":[6,10],"03":[6,10],"1":[6,10],"11":[6,10],"16":[6,10],"2":[6,10],"2020":[6,10],"2021":[6,10],"3":[6,10],"4":[6,10],"class":3,"function":3,"import":[0,1],"new":[6,10],"return":5,For:11,analysi:[0,14],api:3,atom:[1,12],atomap:11,boracit:11,c:[0,12],calcul:1,choos:9,cite:6,code:6,compar:8,comparison:8,content:6,contribut:6,coordin:[9,11],creat:0,creation:3,curvatur:1,data:[0,1,3],dataset:[11,12],document:[3,6],domain:0,dummi:[3,11,12],e:11,element:3,exampl:[3,6,8,9],experiment:5,fft:9,filter:5,find:11,g:11,get:[6,13],ifft:9,imag:[3,5,8,9],indic:6,input:3,instal:[6,7],intens:[3,8],interact:[5,6],io:3,junction:0,lattic:[0,12],licens:6,line:8,lno:11,load:[0,1,5,8,9],map:[0,12],mask:9,model:3,modul:[0,1,3],movement:11,multipl:9,nonstandard:11,note:7,one:8,output:3,paramet:[0,1],plane:1,plot:[3,9,11,12],polaris:[0,3,11],prepar:[11,12],problem:7,process:3,profil:8,pto:[0,11],publish:[2,6],ratio:[0,12],refin:3,releas:[6,10],result:[2,6],rotat:[0,12],run:9,s:6,set:[0,1],signal:3,simul:3,singl:11,some:[2,6],standard:11,start:[6,13],strain:[0,12],structur:[11,12],sublattic:11,support:6,tabl:6,temul:[2,6],tool:3,toolkit:[2,6],topotem:3,two:8,up:[0,1],us:[2,6,11],vector:11,version:[6,10],wall:0,welcom:6,workflow:14}})
\ No newline at end of file
diff --git a/doc/_build/html/structure_map_tutorial.html b/doc/_build/html/structure_map_tutorial.html
index dbe2a00..4402cb6 100644
--- a/doc/_build/html/structure_map_tutorial.html
+++ b/doc/_build/html/structure_map_tutorial.html
@@ -7,7 +7,7 @@
- Plot Lattice Structure Maps — TEMUL Toolkit v0.1.2 documentation
+ Plot Lattice Structure Maps — TEMUL Toolkit v0.1.3 documentation
@@ -66,7 +66,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -180,7 +180,7 @@
Plot Lattice Structure Maps¶
-The temul.polarisation
module allows one to easily visualise various
+
The temul.topotem.polarisation
module allows one to easily visualise various
lattice structure characteristics, such as strain, rotation of atoms along atom
planes, and the c/a ratio in an atomic resolution image. In this tutorial,
we will use a dummy dataset to show the different ways each map can be created.
@@ -204,7 +204,8 @@
Prepare and Plot the dummy dataset
Plot the Lattice Strain Map¶
By inputting the calculated or theoretical atom plane separation distance as the
-theoretical_value
parameter in tml.get_strain_map
below,
+theoretical_value
parameter in
+temul.topotem.polarisation.get_strain_map()
below,
we can plot a strain map. The distance l is calculated as the distance between
each atom plane in the given zone axis. More details on this can be found on the
Atomap
@@ -227,7 +228,8 @@
Plot the Lattice Strain Map
Plot the Lattice Atom Rotation Map¶
-The rotation_of_atom_planes
function calculates the angle between
+
The temul.topotem.polarisation.rotation_of_atom_planes()
function
+calculates the angle between
successive atoms and the horizontal for all atoms in the given zone axis. See
Atomap
for other options.
@@ -251,7 +253,8 @@ Plot the Lattice Atom Rotation Map
Plot the c/a Ratio¶
-Using the ratio_of_lattice_spacings
function, we can visualise the ratio of
+
Using the temul.topotem.polarisation.ratio_of_lattice_spacings()
+function, we can visualise the ratio of
two sublattice zone axes. Useful for plotting the c/a Ratio.
>>> ratio_map = tml.ratio_of_lattice_spacings(sublatticeB, 0, 1,
... units=units, sampling=sampling)
@@ -278,7 +281,7 @@ Plot the c/a Ratio
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/using_temul.html b/doc/_build/html/using_temul.html
index 40ade1b..994c0bc 100644
--- a/doc/_build/html/using_temul.html
+++ b/doc/_build/html/using_temul.html
@@ -7,7 +7,7 @@
- Getting started — TEMUL Toolkit v0.1.2 documentation
+ Getting started — TEMUL Toolkit v0.1.3 documentation
@@ -66,7 +66,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -200,7 +200,7 @@
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/_build/html/workflows.html b/doc/_build/html/workflows.html
index c60b2fd..7aaeef9 100644
--- a/doc/_build/html/workflows.html
+++ b/doc/_build/html/workflows.html
@@ -7,7 +7,7 @@
- Analysis Workflows — TEMUL Toolkit v0.1.2 documentation
+ Analysis Workflows — TEMUL Toolkit v0.1.3 documentation
@@ -66,7 +66,7 @@
- Version 0.1.2
+ Version 0.1.3
@@ -203,7 +203,7 @@
- © Copyright 2020, Eoghan O'Connell.
+ © Copyright 2021, Eoghan O'Connell.
diff --git a/doc/about_temul_toolkit.rst b/doc/about_temul_toolkit.rst
new file mode 100644
index 0000000..f24ddb2
--- /dev/null
+++ b/doc/about_temul_toolkit.rst
@@ -0,0 +1,9 @@
+.. _about_temul_toolkit:
+
+.. include:: define_roles.rst
+
+
+Some published results using the TEMUL Toolkit
+----------------------------------------------
+
+.. Include some images! Just copy from the papers and cite.
diff --git a/doc/conf.py b/doc/conf.py
index 7ed3c88..76e8cca 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -21,13 +21,13 @@
# -- Project information -----------------------------------------------------
project = 'TEMUL Toolkit'
-copyright = '2020, Eoghan O\'Connell'
+copyright = '2021, Eoghan O\'Connell'
author = 'Eoghan O\'Connell'
# The short X.Y version
-version = 'Version 0.1.2'
+version = 'Version 0.1.3'
# The full version, including alpha/beta/rc tags
-release = 'v0.1.2'
+release = 'v0.1.3'
# -- General configuration ---------------------------------------------------
diff --git a/doc/dg_visualiser_tutorial.rst b/doc/dg_visualiser_tutorial.rst
index cd1288f..a44eb3d 100644
--- a/doc/dg_visualiser_tutorial.rst
+++ b/doc/dg_visualiser_tutorial.rst
@@ -7,9 +7,10 @@
Interactive Image Filtering
===========================
-The :python:`temul.signal_processing` module allows one to filter images with a
+The :py:mod:`temul.signal_processing` module allows one to filter images with a
double Gaussian (band-pass) filter. Apart from the base functions, it can be
-done interactively with the :python:`visualise_dg_filter` function. In this
+done interactively with the
+:py:func:`temul.signal_processing.visualise_dg_filter` function. In this
tutorial, we will see how to use the function on experimental data.
@@ -30,8 +31,8 @@ TEMUL package.
Interactively Filter the Experimental Image
-------------------------------------------
-Run the :python:`visualise_dg_filter` function. There are lots of other parameters
-too for customisation.
+Run the :py:func:`temul.signal_processing.visualise_dg_filter` function.
+There are lots of other parameters too for customisation.
.. code-block:: python
@@ -40,9 +41,10 @@ too for customisation.
.. image:: tutorial_images/dg_filter_tutorial/dg_visualiser.gif
:scale: 50 %
-As we can see, an interactive window appears, showing the FFT ("FFT Widget") of the image with
-the positions of the inner and outer Gaussian full width at half maximums (FWHMs).
-The inital FWHMs can be changed with the :python:`d_inner` and :python:`d_outer`
+As we can see, an interactive window appears, showing the FFT ("FFT Widget")
+of the image with the positions of the inner and outer Gaussian full width
+at half maximums (FWHMs). The inital FWHMs can be changed with the
+:python:`d_inner` and :python:`d_outer`
parameters (limits can also be changed).
To change the two FWHMs interactively
@@ -56,7 +58,8 @@ Return the Filtered Image
-------------------------
When we have suitable FWHMs for the inner and outer Gaussians, we can use
-the :python:`double_gaussian_fft_filter` function the return a filtered image.
+the :py:func:`temul.signal_processing.double_gaussian_fft_filter` function
+the return a filtered image.
.. code-block:: python
@@ -71,6 +74,6 @@ the :python:`double_gaussian_fft_filter` function the return a filtered image.
:scale: 50 %
-Details on the :python:`double_gaussian_fft_filter_optimised` function can be
-found in the :ref:`api_doc`.
-We hope to added some examples of this functions to this page in future.
+Details on the
+:py:func:`temul.signal_processing.double_gaussian_fft_filter_optimised`
+function can be found in the :ref:`api_doc`.
diff --git a/doc/index.rst b/doc/index.rst
index 9472af1..941d355 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -15,16 +15,28 @@ atomic resolution images. It is mostly built upon the data structure of
Interactive Examples
--------------------
+The easiest way to try the TEMUL Toolkit is via Binder:
+`introductory Jupyter Notebook `_.
+To install the TEMUL Toolkit on your own computer,
+see the :ref:`install` instructions.
+
+And there are more examples with Binder, just click the below button!
+
.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/PinkShnack/TEMUL/master
-Click the button above to start some data analysis (it may take a few minutes to load).
+Click the button above to start some data analysis
+(it may take a few minutes to load).
The "code_tutorials" folder contains walkthroughs of some of the documentation
examples from this website.
-The "publication_examples" folder will allow you to analyse data from published scientific papers!
+The "publication_examples" folder will allow you to analyse data from
+published scientific papers!
Just navigate to whichever of these folders you want click on the ".ipynb" files.
+.. include:: about_temul_toolkit.rst
+
+
.. include:: news.rst
@@ -74,7 +86,9 @@ To cite the latest TEMUL Toolkit version, use the following DOI:
.. image:: https://www.zenodo.org/badge/203785298.svg
:target: https://www.zenodo.org/badge/latestdoi/203785298
-For example: Eoghan O'Connell, Michael Hennessy, & Eoin Moynihan. (2020, November 2). PinkShnack/TEMUL: Initial Temul-Toolkit Release (Version 0.1.1). Zenodo. http://doi.org/10.5281/zenodo.4185974
+For example: Eoghan O'Connell, Michael Hennessy, & Eoin Moynihan.
+(2021). PinkShnack/TEMUL: (Version 0.1.3).
+Zenodo. http://doi.org/10.5281/zenodo.4543963
If you wish to cite an older release of the TEMUL Toolkit, click on the above
badge to find the relevant version.
diff --git a/doc/install.rst b/doc/install.rst
index ec796a8..0b29dae 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -6,31 +6,44 @@
Installation
------------
-The TEMUL Toolkit can be installed easily with PIP (those using Windows may need to download VS C++ Build Tools, see below).
+The TEMUL Toolkit can be installed easily with PIP (those using Windows may
+need to download VS C++ Build Tools, see below).
:bash:`$ pip install temul-toolkit`
-Then, it can be imported with the name "temul". For example, to import most of the temul functionality use:
+Then, it can be imported with the name "temul". For example, to import most
+of the temul functionality use:
:python:`import temul.api as tml`
-Matplotlib 3.3 currently has compatability issues with iPython, see below for the fix.
-
-----------------------------
Installation Problems & Notes
-----------------------------
-* If installing on Windows, you will need Visual Studio C++ Build Tools. Download it `here `_. After downloading, choose the "C++ Build Tools" Workload and click install.
-
-* Matplotlib seems to have issues with iPython at the moment. Install matplotlib==3.2 until this issue is resolved by Matplotlib. See `here `_ for more details.
-
-* If you want to use the :python:`io.write_cif_from_dataframe` function, you will need to install pyCifRW version 4.3. This requires Visual Studio.
-
-* If you wish to use the :python:`simulations.py` or :python:`model_refiner.py` modules, you will need to install PyPrismatic. This requires Visual Studio and other dependencies.
-
-* If you're using any of the functions or classes that require element quantification:
-
- * navigate to the "temul/external" directory, copy the "atomap_devel_012" folder and paste that in your "site-packages" directory.
- * Then, when using atomap to create sublattices and quantify elements call atomap like this: :python:`import atomap_devel_012.api as am`.
- * This development version is slowly being folded into the master branch here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or tips on implementation are welcome!
+* If installing on Windows, you will need Visual Studio C++ Build Tools.
+ Download it `here `_.
+ After downloading, choose the "C++ Build Tools" Workload and click install.
+
+* If you want to use the :py:func:`temul.io.write_cif_from_dataframe`
+ function, you will need to install pyCifRW version 4.3. This requires
+ Visual Studio.
+
+* If you wish to use the :py:mod:`temul.simulations` or
+ :py:mod:`temul.model_refiner` modules, you will need to install PyPrismatic.
+ This requires Visual Studio and other dependencies.
+ **It is unfortunately not guaranteed to work**. If you want to help develop
+ the :py:class:`temul.model_refiner.Model_Refiner`, please create an issue
+ and/or a pull request on the
+ `TEMUL github `_.
+
+* If you're using any of the functions or classes that require element
+ quantification:
+
+ * navigate to the "temul/external" directory, copy the "atomap_devel_012"
+ folder and paste that in your "site-packages" directory.
+ * Then, when using atomap to create sublattices and quantify elements call
+ atomap like this: :python:`import atomap_devel_012.api as am`.
+ * This development version is slowly being folded into the master branch
+ here: https://gitlab.com/atomap/atomap/-/issues/93 and any help or
+ tips on implementation are welcome!
diff --git a/doc/line_profile_tutorial.rst b/doc/line_profile_tutorial.rst
index 01d92a8..4a1b719 100644
--- a/doc/line_profile_tutorial.rst
+++ b/doc/line_profile_tutorial.rst
@@ -7,11 +7,13 @@
Line Intensity Profile Comparisons
==================================
-The :python:`temul.signal_plotting` module allows one to draw line intensity profiles
-over images. The :python:`compare_images_line_profile_one_image` can be used to
+The :py:mod:`temul.signal_plotting` module allows one to draw line
+intensity profiles over images. The
+:py:func`temul.signal_plotting.compare_images_line_profile_one_image` can be used to
draw two line profiles on one image for comparison. In future we hope to expand
this function to allow for multiple line profiles on one image. The
-:python:`compare_images_line_profile_two_images` function allows you to draw a line
+:py:func:`temul.signal_plotting.compare_images_line_profile_two_images`
+function allows you to draw a line
profile on an image, and apply that same profile to another image (of the same shape).
This can be useful for comparing subsequent images in series or comparing experimental
and simulated images.
@@ -24,7 +26,7 @@ Load the Example Images
-----------------------
Here we load some dummy data using a variation of Atomap's
-:python:`get_simple_cubic_signal` function.
+:py:func:`temul.dummy_data.get_simple_cubic_signal` function.
.. code-block:: python
@@ -46,8 +48,10 @@ Compare two Line Profiles in one Image
--------------------------------------
As with the :ref:`Masked FFT and iFFT ` tutorial, we can
-choose points on the image. This time we use :python:`choose_points_on_image`.
-We need to choose four points for the :python:`compare_images_line_profile_one_image`
+choose points on the image. This time we use
+:py:func:`temul.topotem.fft_mapping.choose_points_on_image`.
+We need to choose four points for the
+:py:func:`temul.signal_plotting.compare_images_line_profile_one_image`
function, as it draws two line profiles over one image.
.. code-block:: python
@@ -80,7 +84,8 @@ Now run the comparison function to display the two line intensity profiles.
Compare two Images with Line Profile
------------------------------------
-Using :python:`choose_points_on_image`, we now choose two points on one image.
+Using :py:func:`temul.topotem.fft_mapping.choose_points_on_image`,
+we now choose two points on one image.
Then, we plot this line intensity profile over the same position in two images.
.. code-block:: python
diff --git a/doc/masked_fft_tutorial.rst b/doc/masked_fft_tutorial.rst
index 532e066..44a488a 100644
--- a/doc/masked_fft_tutorial.rst
+++ b/doc/masked_fft_tutorial.rst
@@ -7,9 +7,12 @@
Masked FFT and iFFT
===================
-The :python:`temul.signal_processing` module allows one to choose the masking coordinates with
-:python:`choose_mask_coordinates` and easily returnt the masked fast Fourier Transform (FFT) with
-:python:`get_masked_ifft`. This can useful in various scenarios, from understanding
+The :py:mod:`temul.signal_processing` module allows one to choose the
+masking coordinates with
+:py:func:`temul.topotem.fft_mapping.choose_mask_coordinates` and easily
+return the masked fast Fourier Transform (FFT) with
+:py:func:`temul.topotem.fft_mapping.get_masked_ifft`. This can useful in
+various scenarios, from understanding
the diffraction space spots and how they relate to the real space structure,
to `revealing domain walls `_
and finding initial atom positions for difficult images.
diff --git a/doc/news.rst b/doc/news.rst
index b3af5ca..43c74de 100644
--- a/doc/news.rst
+++ b/doc/news.rst
@@ -1,4 +1,4 @@
-.. _install:
+.. _news:
.. include:: define_roles.rst
diff --git a/doc/polarisation_vectors_tutorial.rst b/doc/polarisation_vectors_tutorial.rst
index a071c4e..e77e726 100644
--- a/doc/polarisation_vectors_tutorial.rst
+++ b/doc/polarisation_vectors_tutorial.rst
@@ -14,13 +14,13 @@ of each.
Current functions:
-1. Using Atomap's :python:`get_polarization_from_second_sublattice` Sublattice
- method. Great for "standard" polarised structures with two sublattices.
-2. Using the TEMUL :python:`find_polarisation_vectors` function. Useful for
- structures that Atomap's :python:`get_polarization_from_second_sublattice` can't
- handle.
-3. Using the TEMUL :python:`atom_deviation_from_straight_line_fit` function.
- Useful for calculating polarisation from a single sublattice, similar to and
+1. Using Atomap's `get_polarization_from_second_sublattice `_
+ Sublattice method. Great for "standard" polarised structures with two sublattices.
+2. Using the TEMUL :py:func:`temul.topotem.polarisation.find_polarisation_vectors`
+ function. Useful for structures that Atomap's
+ :python:`get_polarization_from_second_sublattice` can't handle.
+3. Using the TEMUL :py:func:`temul.topotem.polarisation.atom_deviation_from_straight_line_fit`
+ function. Useful for calculating polarisation from a single sublattice, similar to and
based off: J. Gonnissen *et al*, Direct Observation of Ferroelectric Domain Walls in
LiNbO3: Wall‐Meanders, Kinks, and Local Electric Charges, 26, 42, 2016, DOI: 10.1002/adfm.201603489.
@@ -36,12 +36,13 @@ where you will find the python scripts and interactive python notebooks:
For standard Polarised Structures (e.g., PTO)
---------------------------------------------
-Atomap's :python:`get_polarization_from_second_sublattice` Sublattice method will
+Atomap's `get_polarization_from_second_sublattice `_
+Sublattice method will
be sufficent for most users when dealing with the classic PTO-style polarisation,
wherein the atoms in a sublattice are polarised with respect to a second sublattice.
See the second section of this tutorial on how to plot this in many different ways
-using :python:`plot_polarisation_vectors`!
+using :py:func:`temul.topotem.polarisation.plot_polarisation_vectors`!
.. code-block:: python
@@ -72,13 +73,14 @@ using :python:`plot_polarisation_vectors`!
For nonstandard Polarised Structures (e.g., Boracites)
------------------------------------------------------
When the above function can't isn't suitable, the TEMUL
-:python:`find_polarisation_vectors` function may be an option. It is useful for
-structures that Atomap's :python:`get_polarization_from_second_sublattice` can't
+:py:func:`temul.topotem.polarisation.find_polarisation_vectors` function may
+be an option. It is useful for structures that Atomap's
+:python:`get_polarization_from_second_sublattice` can't
handle. It is a little more involved and requires some extra preparation when
creating the sublattices.
See the second section of this tutorial on how to plot this in many different ways
-using :python:`plot_polarisation_vectors`!
+using :py:func:`temul.topotem.polarisation.plot_polarisation_vectors`!
.. code-block:: python
@@ -130,13 +132,13 @@ For single Polarised Sublattices (e.g., LNO)
--------------------------------------------
When dealing with structures in which the polarisation must be extracted from a
single sublattice (one type of chemical atomic column, the TEMUL
-:python:`atom_deviation_from_straight_line_fit` function
+:py:func:`temul.topotem.polarisation.atom_deviation_from_straight_line_fit` function
may be an option. It is based off the description by J. Gonnissen *et al*,
Direct Observation of Ferroelectric Domain Walls in LiNbO3: Wall‐Meanders,
Kinks, and Local Electric Charges, 26, 42, 2016, DOI: 10.1002/adfm.201603489.
See the second section of this tutorial on how to plot this in many different ways
-using :python:`plot_polarisation_vectors`!
+using :py:func:`temul.topotem.polarisation.plot_polarisation_vectors`!
.. code-block:: python
@@ -191,9 +193,10 @@ Let's look at some rotated data
Plotting Polarisation and Movement Vectors
==========================================
-The :python:`temul.polarisation` module allows one to visualise the
+The :py:mod:`temul.topotem.polarisation` module allows one to visualise the
polarisation/movement of atoms in an atomic resolution image. In this tutorial,
-we will use a dummy dataset to show the different ways the :python:`plot_polarisation_vectors`
+we will use a dummy dataset to show the different ways the
+:py:func:`temul.topotem.polarisation.plot_polarisation_vectors`
function can display data. In future, tutorials on published experimental data
will also be available.
@@ -256,7 +259,8 @@ polarisation vectors for regular structures.
>>> x, y = [i[0] for i in vector_list], [i[1] for i in vector_list]
>>> u, v = [i[2] for i in vector_list], [i[3] for i in vector_list]
-Now we can display all of the variations that :python:`plot_polarisation_vectors`
+Now we can display all of the variations that
+:py:func:`temul.topotem.polarisation.plot_polarisation_vectors`
gives us! You can specify sampling (scale) and units, or use a calibrated image
so that they are automatically set.
diff --git a/doc/structure_map_tutorial.rst b/doc/structure_map_tutorial.rst
index f8856dd..04ea88e 100644
--- a/doc/structure_map_tutorial.rst
+++ b/doc/structure_map_tutorial.rst
@@ -7,7 +7,7 @@
Plot Lattice Structure Maps
===========================
-The :python:`temul.polarisation` module allows one to easily visualise various
+The :py:mod:`temul.topotem.polarisation` module allows one to easily visualise various
lattice structure characteristics, such as strain, rotation of atoms along atom
planes, and the *c*/*a* ratio in an atomic resolution image. In this tutorial,
we will use a dummy dataset to show the different ways each map can be created.
@@ -38,7 +38,8 @@ Plot the Lattice Strain Map
---------------------------
By inputting the calculated or theoretical atom plane separation distance as the
-:python:`theoretical_value` parameter in :python:`tml.get_strain_map` below,
+:python:`theoretical_value` parameter in
+:py:func:`temul.topotem.polarisation.get_strain_map` below,
we can plot a strain map. The distance *l* is calculated as the distance between
each atom plane in the given zone axis. More details on this can be found on the
`Atomap `_
@@ -70,7 +71,8 @@ applies to all structure maps discussed in this tutorial.
Plot the Lattice Atom Rotation Map
----------------------------------
-The :python:`rotation_of_atom_planes` function calculates the angle between
+The :py:func:`temul.topotem.polarisation.rotation_of_atom_planes` function
+calculates the angle between
successive atoms and the horizontal for all atoms in the given zone axis. See
`Atomap `_
for other options.
@@ -103,7 +105,8 @@ for other options.
Plot the *c*/*a* Ratio
----------------------
-Using the :python:`ratio_of_lattice_spacings` function, we can visualise the ratio of
+Using the :py:func:`temul.topotem.polarisation.ratio_of_lattice_spacings`
+function, we can visualise the ratio of
two sublattice zone axes. Useful for plotting the *c*/*a* Ratio.
.. code-block:: python
diff --git a/setup.py b/setup.py
index 9d94efb..4c26cb0 100644
--- a/setup.py
+++ b/setup.py
@@ -37,7 +37,7 @@
'glob2',
'hyperspy',
'numpy',
- 'matplotlib==3.4.3',
+ 'matplotlib',
'matplotlib-scalebar',
'pandas',
'periodictable',
diff --git a/temul/signal_processing.py b/temul/signal_processing.py
index 69c293a..5189145 100644
--- a/temul/signal_processing.py
+++ b/temul/signal_processing.py
@@ -631,10 +631,11 @@ def compare_two_image_and_create_filtered_image(
mask_radius : int, default None
Radius in pixels of the mask. If set, then set ``percent_to_nn=None``.
refine : bool, default False
- If set to True, the ``calibrate_intensity_distance_with_sublattice_roi`
+ If set to True, the
+ ``calibrate_intensity_distance_with_sublattice_roi``
calibration will refine the atom positions for each calibration. May
- make the function very slow depending on the size of ``image_to_filter`
- and ``cropping_area``.
+ make the function very slow depending on the size of
+ ``image_to_filter`` and ``cropping_area``.
Returns
-------