xraytools.

Powder Indexing

Powder data

Indexing reads a powder pattern as a list of peak positions and uses nothing else — the intensities and the line widths are there too and carry their own information, and this step touches none of it. It turns those positions into a lattice: find the cell that puts a reflection at every one of them, and name the reflection at each. The search is exhaustive for the three systems where exhaustive is possible — cubic, one unknown, and tetragonal and hexagonal, two — so within the axis range, the peak list and the tolerance you give it, it finds every cell that works or shows there is none inside those bounds. That is not the same as the sample having no cell.

Before this
Every line in a pattern is a Bragg angle, so the thing being fitted is a set of d-spacings. You need to be comfortable turning one into the other before the search makes sense.
You supply
A wavelength and a list of peak positions in degrees 2θ, one per line. No intensities and no widths: indexing uses positions alone. Three lines are the minimum the page will accept and eight or more is where the answer starts to be worth something — the panel on the floor says why.
Reading it
Finding a cell is not the same as being right, and past one free parameter it is barely evidence at all: given eight random angles, a tetragonal cell accounting for every one of them turns up 385 times in 400, and an orthorhombic one 328 times in 400. What separates a real lattice from an accidental fit is completeness — of the lines the cell predicts inside the range you measured, how many you actually saw. The best accidental fit measured here reached 0.131, while no real pattern on this site falls below 0.50: a real lattice need not reach 1.00, because space-group absences remove lines the lattice allows — the rutile example here comes out at 0.706 and is correct. And every cell edge scales with the wavelength: index a Cu Kα pattern as Mo Kα and the whole cell is wrong by a factor of 2.169 with a perfect completeness.

Worked examples: quartz, twelve lines – two cells, and symmetry chooses · α-iron, three lines – six cells, and no way to choose · NaCl – one lattice, four descriptions · aragonite, twelve lines – three edges, none of them equal

Earlier on the path: Peak Finding Next on the path: Line Broadening On From a measured scan to sample information, step 2 of 4

Notation here: d — what each one means here

Terms here: centring · zone

See also: Bragg Calculator · HKL Calculator · Peak Finding · Line Broadening · Reduced Cell and Bravais Lattice · Space Group from Absences

What each input changes
The peaks
The evidence. Every line you add is another constraint the cell has to satisfy, so a longer list is what turns several candidate cells into one — three lines are almost never enough.
Crystal system
How large the search is and how many unknowns it has. Restricting it is not a hint about the answer: a cubic search cannot report a tetragonal cell however well one would fit.
Teaching with this page
Objective
After this page a learner can index a powder pattern and say why a cell that accounts for every line may still be wrong.
Start from
this worked example
Ask first
A cell is found that accounts for every line in the pattern. Is it the right cell?
Watch for
“Yes — nothing is left unexplained”
Then
Line Broadening
Check yourself: A cell is found that accounts for every line in the pattern. Is it the right cell?

Not established — other cells may account for them too Yes — nothing is left unexplained

Accounting for every line is a necessary condition and not a sufficient one. Work the three-line example on this page: six cells account for the data equally well and the page refuses to choose between them, which is the honest answer. What settles it is more lines, the intensities, and the chemistry — none of which indexing uses.

Input

The measurement
Å
°

This wavelength is Cu Kα.

Leave it on try all of them unless you already know: choosing the system before indexing is assuming half the answer.

The peaks

Positions only — indexing does not use intensities or widths. Anything after a # is ignored, so you can keep a header row. A decimal comma is fine here, because there is only one number on a line for it to be part of.

These positions are simulated

Nothing was submitted, so the box holds a pattern this site generated rather than measured: the twelve lowest-angle lines of rutile, TiO2, at Cu Kα, computed from the cell the powder simulator ships for it. So the answer is known before you read it — a = 4.5941 Å, c = 2.9589 Å, tetragonal — and the interesting part is what else the same twelve angles are consistent with. Paste your own list over them.

What came back

One cell accounts for every line: tetragonal P, a = 4.5941 Å, c = 2.9589 Å. It predicts 17 lines in the range you measured and you gave 12 of them, which is 70.6 per cent.

12 lines is enough for the number below to mean something. Over 400 random lists at each of 8, 10, 12 and 15 angles, no accidental fit in any of the three systems reached a completeness above 0.074.

tetragonal P, a = 4.5941 Å, c = 2.9589 Å

predicted — 1 0 0 — 2θ 19.321°, not in your listpredicted — 1 0 0 — 2θ 19.321°, not in your listpredicted — 1 1 0 — 2θ 27.456°, matchedpredicted — 1 1 0 — 2θ 27.456°, matchedpredicted — 0 0 1 — 2θ 30.205°, not in your listpredicted — 0 0 1 — 2θ 30.205°, not in your listpredicted — 1 0 1 — 2θ 36.107°, matchedpredicted — 1 0 1 — 2θ 36.107°, matchedpredicted — 2 0 0 — 2θ 39.220°, matchedpredicted — 2 0 0 — 2θ 39.220°, matchedpredicted — 1 1 1 — 2θ 41.271°, matchedpredicted — 1 1 1 — 2θ 41.271°, matchedpredicted — 2 1 0 — 2θ 44.077°, matchedpredicted — 2 1 0 — 2θ 44.077°, matchedpredicted — 2 0 1 — 2θ 50.285°, not in your listpredicted — 2 0 1 — 2θ 50.285°, not in your listpredicted — 2 1 1 — 2θ 54.363°, matchedpredicted — 2 1 1 — 2θ 54.363°, matchedpredicted — 2 2 0 — 2θ 56.670°, matchedpredicted — 2 2 0 — 2θ 56.670°, matchedpredicted — 3 0 0 — 2θ 60.453°, not in your listpredicted — 3 0 0 — 2θ 60.453°, not in your listpredicted — 0 0 2 — 2θ 62.810°, matchedpredicted — 0 0 2 — 2θ 62.810°, matchedpredicted — 3 1 0 — 2θ 64.099°, matchedpredicted — 3 1 0 — 2θ 64.099°, matchedpredicted — 2 2 1 — 2θ 65.563°, matchedpredicted — 2 2 1 — 2θ 65.563°, matchedpredicted — 1 0 2 — 2θ 66.383°, not in your listpredicted — 1 0 2 — 2θ 66.383°, not in your listpredicted — 3 0 1 — 2θ 69.061°, matchedpredicted — 3 0 1 — 2θ 69.061°, matchedpredicted — 1 1 2 — 2θ 69.861°, matchedpredicted — 1 1 2 — 2θ 69.861°, matchedmeasured line 2 — 2θ 27.456°, d 3.2485 Åmeasured line 2 — 2θ 27.456°, d 3.2485 Åmeasured line 3 — 2θ 36.107°, d 2.4876 Åmeasured line 3 — 2θ 36.107°, d 2.4876 Åmeasured line 4 — 2θ 39.220°, d 2.2970 Åmeasured line 4 — 2θ 39.220°, d 2.2970 Åmeasured line 5 — 2θ 41.271°, d 2.1875 Åmeasured line 5 — 2θ 41.271°, d 2.1875 Åmeasured line 6 — 2θ 44.077°, d 2.0545 Åmeasured line 6 — 2θ 44.077°, d 2.0545 Åmeasured line 7 — 2θ 54.363°, d 1.6876 Åmeasured line 7 — 2θ 54.363°, d 1.6876 Åmeasured line 8 — 2θ 56.670°, d 1.6243 Åmeasured line 8 — 2θ 56.670°, d 1.6243 Åmeasured line 9 — 2θ 62.810°, d 1.4795 Åmeasured line 9 — 2θ 62.810°, d 1.4795 Åmeasured line 10 — 2θ 64.099°, d 1.4528 Åmeasured line 10 — 2θ 64.099°, d 1.4528 Åmeasured line 11 — 2θ 65.563°, d 1.4238 Åmeasured line 11 — 2θ 65.563°, d 1.4238 Åmeasured line 12 — 2θ 69.061°, d 1.3600 Åmeasured line 12 — 2θ 69.061°, d 1.3600 Åmeasured line 13 — 2θ 69.861°, d 1.3464 Åmeasured line 13 — 2θ 69.861°, d 1.3464 Å16.330.544.658.772.9predictedmeasured2θ / °

Every line tetragonal P, a = 4.5941 Å, c = 2.9589 Å predicts in this range is drawn above the axis and every line you gave below it. Hover any tick to see which reflection it is — the indices are the one thing the drawing cannot show, and on a touch screen the assignment table below carries them. The 5 longer ticks above the axis are reflections this cell says should be there and your list does not contain.

tetragonal P, a = 4.5941 Å, c = 2.9589 Å — what this solution claims CSV
Completeness 0.706 12 of the 17 lines it predicts in this range
Worst residual 0.0004 ° 2θ, against the 0.030° allowed
Cell volume 62.45 Å3, a = b ≠ c, all angles 90°
M12 7267.4 Not meaningful here — de Wolff’s figure of merit, Q12 ÷ (2 × mean |ΔQ| × Nposs), with Nposs = 17 lines possible out to the 12th observed one
F12 3567.0 Not meaningful here — Smith and Snyder’s, conventionally written F12 = 3567.0(0.0002, 17) — the value, the mean |Δ2θ| in degrees, and the same Nposs

This cell predicts 5 lines inside your range that are not in your list. They are not a lattice centring. The body-centred reading of this same cell was tried against these lines and refused, because at least one line you gave is a reflection it removes. A missing line is not by itself a mistake: glide planes and screw axes remove reflections too, and from a list of positions they are indistinguishable from a centring — both are just a line that is not there. Weak reflections and a structure factor that happens to vanish do the same. What a page of positions can say stops here; the reflection conditions are where it goes on.

Both figures divide the fit by the number of lines the cell is entitled to produce, which is what stops a large cell scoring well simply by accounting for everything. Neither is meaningful here. The mean residual is 0.00020°, below half of the 0.001° these angles were typed to — so what the figures are measuring is the rounding of the last digit, not the agreement between a cell and a measurement. That is what happens whenever a pattern is computed from a cell rather than recorded from a sample, which is true of every list this page ships. Paste a measured pattern to get figures that mean anything.

tetragonal P, a = 4.5941 Å, c = 2.9589 Å — the reflection at each line. A powder pattern cannot separate reflections at one d, so where several reach the same spacing only one is named. CSV
#2θ obs / °h k l2θ calc / °Δ2θ / °
127.4561 1 027.456−0.0001
236.1071 0 136.107−0.0001
339.2202 0 039.2200.0004
441.2711 1 141.2710.0001
544.0772 1 044.0770.0004
654.3632 1 154.363−0.0002
756.6702 2 056.670−0.0003
862.8100 0 262.810−0.0002
964.0993 1 064.0990.0002
1065.5632 2 165.563−0.0001
1169.0613 0 169.061−0.0001
1269.8611 1 269.8610.0003

The lines, converted

The lines as given, converted. Q = 1/d2 is what the search is done in, because every quadratic form below is linear in it. CSV
#2θ / °d / Åsin2θQ / Å−2sin2θ ÷ first
127.4563.24850.056320.094761.0000
236.1072.48760.096040.161601.7054
339.2202.29700.112640.189532.0001
441.2712.18750.124200.208982.2054
544.0772.05450.140800.236912.5001
654.3631.68760.208680.351123.7054
756.6701.62430.225270.379044.0000
862.8101.47950.271530.456884.8214
964.0991.45280.281590.473815.0001
1065.5631.42380.293150.493265.2054
1169.0611.36000.321310.540645.7054
1269.8611.34640.327850.551645.8215

The last column is the ratio a hand calculation starts from. In a cubic cell it is a ratio of whole numbers — and the gaps in that series are the point: no reflection has h2 + k2 + l2 equal to 7, 15, 23 or 28, so a series that reaches one of those has not been indexed.

How often does nonsense index?

Fitting a cell to a list of angles is easy, and that is the problem. Given eight peak positions drawn at random between 10 and 80°, a tetragonal cell accounting for every one of them is found 385 times in 400, and a hexagonal one 365. A cubic cell — one free parameter instead of two — is found 17 times, and an orthorhombic one 328 in 400 — fewer than the tetragonal case despite having a third free parameter, because the search for it is deliberately narrower. So “a cell was found” is close to worthless on its own anywhere but the cubic case. What separates a real answer from an accidental one is completeness: those accidental cells are enormous, so they predict hundreds of lines where eight were seen, and the best completeness any of them reached was 0.131. No real pattern on this site falls below 0.50. Nothing had to be chosen to tell those apart. A real lattice need not reach 1.00: systematic absences take out lines the lattice permits, so a correct cell on a real pattern lands below it without being any less correct.

Two things make an accidental fit harder, and one of them matters far more than the other. The tolerance is the lever: the real patterns of this site’s monoclinic, triclinic and orthorhombic structures all index on something at 0.030°, and none of them indexes at all at 0.010° — at any length from 12 to 25 lines. So state a tolerance close to how well you can really place a peak rather than a comfortable one, because a comfortable tolerance is what buys the wrong cell its fit. More lines helps too and helps less: zirconia still indexed at 0.030° on 18 lines and stopped only at 25.

Six ways this goes wrong with the arithmetic right

The wavelength Every cell edge here scales with λ. Index a Cu Kα pattern as if it were Mo Kα and every constant comes back too small by 1.541838/0.710730 = 2.169 — a perfectly self-consistent answer with a perfect completeness, wrong by a factor nothing on this page can detect.
2θ, not θ A list of θ values pasted into this box usually indexes on nothing at all, which is the good outcome. Sometimes it indexes on something, and the answer is meaningless.
Kα2 An unstripped doublet puts a second peak beside every real one, at a fixed ratio in sin θ rather than at any lattice spacing. No cell accounts for both members of every pair, so the usual symptom is that nothing indexes at all — and the fix is to strip the doublet, not to widen the tolerance. The peak finder will do it, by Rachinger’s method, and hand the stripped list back here — at the Kα1 wavelength, which is the first trap in this table arriving by the back door.
A second phase One line from an impurity is enough to make a correct cell fail, because this page requires every line to be accounted for. That is deliberate: a search that quietly drops the lines it cannot fit will always find something.
Zero-point error A diffractometer whose zero is out shifts every 2θ by a constant, which is not a constant in Q — so no one cell fits the whole list. On this page that reads as nothing indexes, not as a poor fit: half a hundredth of a degree is enough to lose a textbook pattern, and widening the tolerance does not bring it back, because the error grows across the list rather than sitting inside a band. The residual column only exists once a cell has been found, so it cannot be the thing that tells you. Refine the zero against a standard, or subtract the offset before pasting.
The cell is not the structure Indexing gives a lattice. Which space group sits in it needs the reflections that are missing, and those are what the conditions on /absences are about.

Where this comes from