Scripting Resources for DigitalMicrograph™


Dave Mitchell's DigitalMicrograph™ Scripting Website

Home | Scripts | Examples | Functions | Recent Updates | Tutorials | Resources | Publications | Consulting | Projects | Contact & Bio | Private | Search


Atomic Displacement
Analyses cube axis HAADF images of ferroelectric materials to measure the displacement of atomic columns due to ferroelectric polarisation.
version:20170707, v2.0
D. R. G. Mitchell

Thanks to Zi Bin Chen (University of Sydney) and Haijun Wu (National University of Singapore) for testing this script and providing useful feedback.


When viewed down the cube axis a HAADF image of a perovskite-type structure consists of a square array of large atomic columns, with a small atomic column located at the centre of the square. Ferroelectric polarisation will cause the position of the central atomic column to shift. This script will measure the position of the large atomic columns, compute the position where the centre of a group of four large atomic columns should be and then measure the position of the central small atomic column. The difference between the expected and measured centres is a vector, the direction of which will change across domain boundaries. This script can be used to visualise this domain structure. Three methods for locating atomic column centres are provided, of which the 2D Gaussian fit seems to be the best, albeit the slowest. The script takes a HAADF image at a magnification of 10mx - 25mx, ideally filtered to reduce any noise and at a scan resolution of perhaps 2k x 2k. The image pixel size must be much smaller than the typical displacements being measured (10-30pm).

The script is provided as a zip archive which contains the script and an example HAADF image with which to experiment. A read me file is also provided which provides some suggestions on optimising the acquisition conditions used to capture images for use by this script.

When running the script, a series of prompts is provided in the Output Window (Results Window), to guide the user through each step of the processing. Ensure that the Output window (Results window in GMS 1.x) is shown (From the Windows menu select Show Output Window). The script will overlay onto the image a dot map showing the location of the large atomic and small atomic columns and the expected centres of the latter. A vector map is also created showing the magnitude and direction of shifted atomic columns. This display can be modified interactively and thresholding can be applied to exclude vectors which lie outside a user-specified range.

There is no manual provided, but an extensive description of the procedure and of the various controls and settings is provided at the start of the script.

Updated in v2.0 to provide a much more robust spot finding algorithm

System Requirements
This script should be compatible with all recent versions of DigitalMicrograph.
Known Issues
This is a computationally intensive script. Processing time will increase with the scan resolution and the number of atomic columns in the image. The 2D Gaussian fitting method is the slowest and processing times of 5 mins per image or longer may be required. During processing the dialog may become unresponsive and it may appear that the DigitalMicrograph has crashed - be patient. You can stop the script by holding down the SPACE bar.
Included Files
zip archive containing the script, an image with which to experiment and a Read Me file which gives some tips on data acquisition.
Source Code

see attached zip archive