untethered atom · TEM

GPA strain maps: real strain, or the scan?

Drift, flyback and jitter move the atoms in the image too. A strain map cannot tell that from real strain unless you check.

Geometric phase analysis (GPA) turns a lattice image into a strain map in eight steps. Every step is live below. Put a known strain into the crystal, add scan errors, move the reference box, change the mask, and watch each picture change. Then check how small a shift of one atomic column you can really measure.

Try a lesson:
1Image. Drag the dashed box: it is your zero of strain.
2FFT + masks. Click a spot to use it as g1.
3Phase of g1. One colour cycle = the lattice shifted by one plane.
4Phase of g2. Flat colour = same lattice as the box.
-2%+2%
5εxx stretch along x
6εyy stretch along y
7εxy shear
8Rotation (1% on the bar = 0.57°)
Hover over any picture to read the numbers at that point.
Each bright dot is an atomic column in a STEM image. Its position is found from the centre of its brightness. Counting noise moves that centre at random. The arrows show each measured position error, magnified. The fourth row from the top is really shifted to the right by the amount you set. Can you see it above the noise?
Sum of the frames + error arrows (arrows ×30). Red row is really shifted.
One column, 1500 repeats. Circle = 1 standard deviation. Axes fixed at ±15 pm.
Error vs dose. Lines: s/√N for a corrected and an uncorrected probe. Dot: this setting.

Specimen the truth you put in

Film: out-of-plane strain in the top half only (coherent film, matched in-plane). Particle: a coherent precipitate, uniform dilatation inside, four-lobed field outside. Field of view 10.24 nm, 256 × 256 px, 0.04 nm per px: metals give 5 to 7 px per fringe, the oxides 7 to 10. FCC is viewed down [110] ({111} fringes at 70.5°), BCC down [001] ({110} at 90°), HCP down [0001] ({10̅10} at 60°).

Scan errors (STEM)

Drift is per frame, on the specimen. Flyback: the fast axis lags at the start of each line and catches up over the recovery length. Rotating the scan moves scan errors. It never moves real strain.

GPA settings

Mask radius sets the resolution (about N / r pixels) and the noise. Grey band at the edge: not trusted (the window fades the image there). Colour range is the fixed scale of the maps and the profile; it widens by itself if the misfit is bigger than it.

Numbers

The method in eight steps

StepWhat you doKnob on this pageWhat goes wrong
1 ImageCrop a square, power-of-two region (256, 512, 1024 px) with clear lattice fringes.image noiseUnder about 4 pixels per fringe, the spots sit near the edge of the FFT and the phase gets noisy.
2 FFTFind two strong spots that do not lie on one line through the centre.click a spotg and 2g, or g and −g, lie on one line. They give strain along one direction only.
3 MaskKeep a soft disc around one spot. Leave its mirror spot out.mask radiusBig: sharp but noisy. Small: smooth, but blurred over about N / r pixels.
4 PhaseInverse FFT, take the angle, subtract the lattice wave 2πg·r.(automatic)Where there is no lattice (amorphous, holes), the phase is only noise.
5 ReferenceChoose a region you trust as unstrained. Its phase slope defines zero strain.drag the boxA box in strained crystal shifts every value on the map by that strain.
6 GradientTake the gradient of each phase from wrapped differences. No unwrapping needed.extra smoothingTaking a gradient makes noise worse. Smooth a little, and say how much.
7 StrainCombine both gradients with the two g-vectors: ε = −(1/2π) G−1 ∇P.colour rangeGPA is linear in strain. Above a few percent, the error grows as ε2.
8 CheckIgnore the edge band. Repeat with the scan rotated 90° and with a second reference box.scan errorsDrift, flyback and jitter make fake strain that looks real.

Do it on your own image

  1. Use a crop with only crystal in it. Note the pixel size, but you do not need it for strain.
  2. Take the FFT. Read the positions of two strong, non-collinear spots, in pixels from the centre.
  3. Start with a mask radius of about one third of the spot distance. Stay under one half.
  4. Put the reference box in a region you can defend as unstrained, far from interfaces and away from the image edge.
  5. Throw away a band N / r pixels wide at every edge.
  6. For STEM: record a second image with the scan rotated 90°. Keep only features that appear in both.
  7. Report the spots, mask radius, smoothing and reference region with every map.

Why aberration correction mattered

A column position is found to about s / √N, where s is the width of the column image and N the number of electrons in it. A corrected probe is about 2.5 times narrower. At the same dose the error is 2.5 times smaller, or the same error needs about 6 times fewer electrons. That is what made picometre column mapping practical (second tab). In HRTEM, lens aberrations and defocus can also move fringes near an interface and add false strain there. Hÿtch and Plamann worked out imaging conditions that keep this small; correcting the aberrations shrinks the problem further.

Scope and limits

The images here are ideal sums of lattice fringes. Real images also change with thickness, defocus and dynamical scattering, and those changes can move fringes. A dislocation core inside the field of view makes the phase jump by 2π; GPA maps the field around it, but not the core itself. GPA uses a small-strain (linear) formula, so with the reference in the film, the substrate here reads −2.03% instead of the exact −1.96%. The scan model is simple: steady and settling drift, an exponential flyback lag, and random line offsets. Real scan coils can do other things. In parallel-beam HRTEM there are no scan errors, but projector lens distortion can add a slow fake strain across a wide field. The column tab uses a background-subtracted centre of mass in a window. Real work fits 2D Gaussians (for example with Atomap) and registers many fast frames, which does better.

On this site: HRTEM and FFTs · HRTEM Lattice Tool · Quantitative HAADF · STEM detectors · Beam damage in the TEM

Questions people ask

How do I choose the mask radius?

Start near one third of the spot distance from the FFT centre. The map resolves features down to about N / r pixels. If the map is too noisy, go smaller. If your interface looks too wide, go bigger. Stay under half the spot distance, and report the value you used.

Why did my map change when I moved the reference?

The reference box defines zero strain. Move it into strained crystal and every value shifts by that strain (lesson 2). Differences between two regions do not change. Report differences, and always say where the reference was.

Which two spots should I use?

Two strong, low-order spots that are not on one line through the centre. Near 90° apart is best, but 60° works (try the hexagonal lattice). Weak spots give noisy phases.

How do I tell scan distortion from real strain?

Scan errors follow the scan: bands along the edge where each line or frame starts, streaks along scan lines. Record a second image with the scan rotated 90° (lesson 9). Real strain stays put. To correct the distortion, use an orthogonal scan pair (Ophus, Ciston and Nelson) or many fast frames (Sang and LeBeau; Jones and Nellist).

Can I trust an absolute lattice parameter from one image?

No. A steady drift of 0.2 nm over a 10 nm frame changes measured spacings by up to 2% while the strain map stays flat (lesson 5). Calibrate against a known region in the same image, or against a standard at the same settings.

How small a column shift can I measure?

About s / √N per column, then divide by √(number of columns averaged). Background, drift and scan noise make it worse. Use the second tab to find the dose you need before you go to the microscope.

References

Show the 12 references
  1. M. J. Hÿtch, E. Snoeck and R. Kilaas, Quantitative measurement of displacement and strain fields from HREM micrographs, Ultramicroscopy 74, 131 (1998). The GPA method.
  2. M. J. Hÿtch and T. Plamann, Imaging conditions for reliable measurement of displacement and strain in high-resolution electron microscopy, Ultramicroscopy 87, 199 (2001).
  3. J. L. Rouvière and E. Sarigiannidou, Theoretical discussions on the geometrical phase analysis, Ultramicroscopy 106, 1 (2005).
  4. C. Ophus, J. Ciston and C. T. Nelson, Correcting nonlinear drift distortion of scanning probe and scanning transmission electron microscopies from image pairs with orthogonal scan directions, Ultramicroscopy 162, 1 (2016).
  5. X. Sang and J. M. LeBeau, Revolving scanning transmission electron microscopy: correcting sample drift distortion without prior knowledge, Ultramicroscopy 138, 28 (2014).
  6. L. Jones and P. D. Nellist, Identifying and correcting scan noise and drift in the scanning transmission electron microscope, Microscopy and Microanalysis 19, 1050 (2013).
  7. A. B. Yankovich, B. Berkels, W. Dahmen, P. Binev, S. I. Sanchez, S. A. Bradley, A. Li, I. Szlufarska and P. M. Voyles, Picometre-precision analysis of scanning transmission electron microscopy images of platinum nanocatalysts, Nature Communications 5, 4155 (2014).
  8. M. Nord, P. E. Vullum, I. MacLaren, T. Tybell and R. Holmestad, Atomap: a new software tool for the automated analysis of atomic resolution images using two-dimensional Gaussian fitting, Advanced Structural and Chemical Imaging 3, 9 (2017).
  9. R. E. Thompson, D. R. Larson and W. W. Webb, Precise nanometer localization analysis for individual fluorescent probes, Biophysical Journal 82, 2775 (2002). The s / √N limit with background and pixel size.
  10. M. Haider, S. Uhlemann, E. Schwan, H. Rose, B. Kabius and K. Urban, Electron microscopy image enhanced, Nature 392, 768 (1998).
  11. P. E. Batson, N. Dellby and O. L. Krivanek, Sub-ångstrom resolution using aberration corrected electron optics, Nature 418, 617 (2002).
  12. D. B. Williams and C. B. Carter, Transmission Electron Microscopy, 2nd ed., Springer (2009): chapter 28 (high-resolution imaging) and chapter 31 (image processing).
Cite this page: Tripathy, Manisha. “GPA Strain Mapping.” untethered atom, 2026, https://untetheredatom.com/tem/gpa-strain-mapping.
BibTeX
@misc{tripathy2026gpastrainmapping,
  author = {Tripathy, Manisha},
  title  = {GPA Strain Mapping},
  year   = {2026},
  howpublished = {\url{https://untetheredatom.com/tem/gpa-strain-mapping}},
  note   = {Interactive web tool}
}
Last updated 23 September 2026.