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.
No strain field is chosen, so the misfit slider does nothing. Pick a film or a particle to use it.
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°).
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.
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.
Column spacing along [001]: a/2 for FCC, a/√2 for BCC. Corrected: about 80 pm FWHM (rms 34 pm). Uncorrected: about 200 pm FWHM (rms 85 pm), wider than the column spacing of most metals. Background is a flat level, as a % of the column peak (amorphous surface, thick sample).
| Step | What you do | Knob on this page | What goes wrong |
|---|---|---|---|
| 1 Image | Crop a square, power-of-two region (256, 512, 1024 px) with clear lattice fringes. | image noise | Under about 4 pixels per fringe, the spots sit near the edge of the FFT and the phase gets noisy. |
| 2 FFT | Find two strong spots that do not lie on one line through the centre. | click a spot | g and 2g, or g and −g, lie on one line. They give strain along one direction only. |
| 3 Mask | Keep a soft disc around one spot. Leave its mirror spot out. | mask radius | Big: sharp but noisy. Small: smooth, but blurred over about N / r pixels. |
| 4 Phase | Inverse 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 Reference | Choose a region you trust as unstrained. Its phase slope defines zero strain. | drag the box | A box in strained crystal shifts every value on the map by that strain. |
| 6 Gradient | Take the gradient of each phase from wrapped differences. No unwrapping needed. | extra smoothing | Taking a gradient makes noise worse. Smooth a little, and say how much. |
| 7 Strain | Combine both gradients with the two g-vectors: ε = −(1/2π) G−1 ∇P. | colour range | GPA is linear in strain. Above a few percent, the error grows as ε2. |
| 8 Check | Ignore the edge band. Repeat with the scan rotated 90° and with a second reference box. | scan errors | Drift, flyback and jitter make fake strain that looks real. |
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.
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
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.
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.
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.
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).
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.
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.
@misc{tripathy2026gpastrainmapping,
author = {Tripathy, Manisha},
title = {GPA Strain Mapping},
year = {2026},
howpublished = {\url{https://untetheredatom.com/tem/gpa-strain-mapping}},
note = {Interactive web tool}
}