Finding a 205-Metre Tower From Two Shadows

GEOINT with no image at all. A survey notebook, two shadow measurements, one timestamp — and enough solar geometry to pin one building in the Kalahari.

No photo. Every image was wiped. All that survived is a survey notebook: a date, two shadow measurements from a 2-metre rod, one shadow length of the structure itself, and four words of site description.

DATE: 18 MAY 2026 ROD: 2.000 m vertical, level ground Bearings TRUE. Times UTC.

ROD SHADOW 07:30:00 — 4.318 m, bearing 227.8 10:32:01 — 2.231 m, bearing 180.0 ← shortest of the day

STRUCTURE SHADOW 07:30:00 — 442.6 m, flat open ground, no obstruction

MISC fenced, no signage, pale bare ground, no shade anywhere on site

Flags: spuria{lat_-00.00} · spuria{long_00.00} · spuria{name_like_this}

The structure is Khi Solar One, a 205-metre solar power tower near Upington, Northern Cape, South Africa, at 28.52°S, 21.11°E (±4 km). If that’s all you wanted, you’re done. The rest is how three numbers get you there — because a timestamped shadow is a coordinate pair, and this challenge is that claim in its purest form.

What you don’t have matters too: no image kills reverse search outright, and no EXIF, no landmarks, no vegetation to read. The entire solution space is solar geometry plus four words of site description. That’s not a restriction — it’s the whole toolkit list.

Read the notebook before you compute

Three of the six lines carry conclusions before any math.

“Shortest of the day” at 10:32:01 UTC. The shadow minimum is local solar noon. Solar noon drifts 4 minutes per degree of longitude — so this single timestamp is the longitude, encoded in a clock. How firm: the second-level precision (:01) is the author telling you the timing is load-bearing.

Bearing 180.0 at that minimum. At solar noon the shadow points due south only if the sun is due north — the observer is south of the subsolar latitude, which on 18 May sits at 19.6°N. So: somewhere south of ~19°N. This line looks decorative now. It is the single line that decides the challenge later — hold onto it.

“Pale bare ground, no shade anywhere on site.” Arid terrain, and a big cleared secured area (fenced, no signage). How firm: weak alone — it’s four words — but it’s a free consistency check on whatever the geometry produces. A result in a boreal forest fails this line.

The survey notebook lines with three spans boxed in green: the 10:32:01 timestamp labelled longitude, the 180.0 bearing labelled hemisphere, and the site-description line labelled terrain check

Three of six lines are already conclusions: the shadow minimum encodes the longitude, the 180.0 bearing forces the southern hemisphere, the MISC line rules out everything green.

Longitude: solar noon at 10:32:01 UTC → 21.11°E

Observation. Solar noon occurred at 10:32:01 UTC.

Inference. At Greenwich on 18 May 2026, solar noon falls at 11:56:27 UTC (12:00:00 minus the equation of time, +3.55 min on that date — the sundial runs fast in May). Our noon came 84.43 minutes earlier, so the site is east of Greenwich by 84.43 / 4 = 21.11°E.

Action — the arithmetic, verbatim:

EoT(2026-05-18)      = +3.55 min          (NOAA solar equations)
solar noon @ 0°E     = 12:00:00 − 3.55 min = 11:56:27 UTC
Δt                   = 11:56:27 − 10:32:01 = 84.43 min
longitude            = 84.43 / 4 = 21.11°E

How firm. Timing rounds to the second: 1 s = 0.004°. The real uncertainty is the equation of time itself — published models disagree by up to ~10 s in May, which is ±0.04° ≈ ±3.9 km. Fine for a 2-decimal flag, and we’ll get an independent check on it at the end.

Latitude: a 48° noon zenith → two candidates

Observation. At the shadow minimum, a 2.000 m rod cast 2.231 m.

Inference. tan(zenith) = 2.231 / 2.000, so the sun stood 48.13° from vertical at solar noon. At noon the geometry collapses to one line: zenith = |latitude − declination|. Declination on 18 May 2026 is +19.60°. That absolute value is the trap — it has two solutions:

zenith   = atan(2.231 / 2.000) = 48.1251°
decl     = +19.6041°  (2026-05-18)

lat = 19.6041 − 48.1251 = −28.5210  → −28.52   (sun due north at noon)
lat = 19.6041 + 48.1251 = +67.7292  → +67.73   (sun due south at noon)

(Two decimals of zenith aren’t enough here: 19.60 − 48.13 rounds to −28.53. Carry four, round once at the end.)

How firm. The length is quoted to the millimetre; ±0.5 mm moves the latitude by 0.007° ≈ 0.8 km, and published solar models disagree by about another millimetre in the predicted length — call the north–south budget ±2 km. (A real shadow tip is fuzzy at the centimetre scale from the sun’s penumbra; millimetre notebook entries imply an edge-corrected reading.)

Both latitudes see the identical noon shadow length. A 2-metre rod in the Kalahari and one in arctic Norway agree to the millimetre on this day.

Orthographic globe centred on the subsolar point: the 21.11°E meridian crosses two candidate latitudes marked symmetrically 48.13 degrees north and south of the sun — Swedish Lapland crossed out, Northern Cape confirmed

Both candidates sit exactly 48.13° from the subsolar point — Swedish Lapland or South Africa’s Northern Cape. The length cannot distinguish them — the bearing can.

False lead: 67.7°N dies on one bearing

Marked as a false lead so nobody skims it into the solution.

67.73°N / 21.11°E is real terrain — Swedish Lapland, near Torneträsk. May sun, long days: the shadow lengths fit perfectly. If you only computed lengths, you’d be pinning a structure into a subarctic lake right now.

What kills it isn’t a length. At 67.7°N the noon sun is due south, so the noon shadow points due north — bearing 360.0. The notebook says 180.0. One bearing, one dead branch. The MISC line agrees (pale bare ground and “no shade anywhere” is not a boreal valley in May), but that’s corroboration. The bearing is the proof.

What the dead end teaches: shadow lengths constrain a distance from the subsolar point; only directions tell you which side you’re on. Log bearings even when they look redundant.

The structure: 205.0 m tall

Observation. At 07:30:00 UTC the rod’s shadow was 4.318 m and the structure’s was 442.6 m, same instant, flat open ground.

Inference. Same sun, same moment — heights scale exactly like shadows:

H = 442.6 × (2.000 / 4.318) = 205.0 m

A 205-metre structure on flat, pale, fenced desert ground that produces “no shade anywhere on site” — a slender vertical tower, not a building with footprint. Very few things in any desert are 205 m tall: chimneys, radio masts, and concentrated-solar towers.

How firm. The rod shadow rounds to the millimetre; the structure shadow over 440 m of ground realistically ±1 m → height good to ±0.5 m. Firm enough that the height itself becomes a fingerprint — that pays off in verification.

From coordinates to a name

−28.52, 21.11 lands ~10 km east of Upington, Northern Cape — Kalahari edge, and one of the densest solar-energy corridors in Africa. Now it’s a finite-set problem: what within a few kilometres of that point is ~205 m tall?

Action — Overpass, verbatim:

[out:json][timeout:60];
(
  nwr["man_made"="tower"](-28.7,20.9,-28.3,21.3);
  nwr["plant:source"="solar"](-28.7,20.9,-28.3,21.3);
);
out center tags;

The solar plants around Upington are almost all photovoltaic or parabolic-trough — flat, nothing over a few metres (Karoshoek/Ilanga, Sirius 1, Dyason’s Klip: all excluded by the height alone). One site has a tower: Khi Solar One, a 50 MW concentrated-solar plant — heliostats around a central tower, commissioned February 2016, the first solar tower plant in Africa.

Published tower height: 205 metres.

That’s the moment of certainty. Not “a tall tower nearby” — the computed height and the published height agree to the metre. A shadow measured on the ground reproduces the engineering spec.

Overpass Turbo result map around Upington with the Khi Solar One site circled in red, next to the Wikipedia article with the 205-metre tower height highlighted and the infobox listing 28°32′14″S 21°4′39″E

The Overpass hits around Upington: one site in the box has a tower — circled, ~10 km from the computed point. The article confirms the height the shadows measured: 205 metres.

Verification

Two confirmations that are genuinely independent of the shadow math — plus one consistency check, labelled as what it is:

  1. The height fingerprint. 205.0 m computed vs. 205 m published (Wikipedia, EIB project sheet). The shadow data and the spec sheet know nothing about each other.
  2. The site itself. Khi Solar One’s surveyed position is 28.537°S, 21.078°E — 3.65 km (haversine) from the computed −28.52, 21.11. Decompose it against the two budgets and nothing is close to failing: 3.0 km east–west (Δ0.030°, the equation-of-time model difference — budget ±3.9 km) and 1.8 km north–south (Δ0.016°, about 1.3 mm of shadow length — budget ±2 km); rounding to two decimals adds ~0.2 km. Each component sits inside the budget that predicted it. The MISC line matches the satellite view exactly: fenced perimeter, no signage visible, pale graded ground, zero shade.
  3. Consistency check — not a confirmation. Feeding the solved position back through the solar model reproduces the unused 07:30 line (sun at azimuth 47.8°, elevation 24.85° → shadow 4.319 m at bearing 227.8). That only proves the inversion didn’t drift; it reuses the same model the position came from, so it can’t independently confirm anything.

Alternative actively excluded: every other Upington-area solar site fails on height (no tower); the northern-latitude branch fails on bearing (see false lead).

Dead ends: none beyond the 67.7°N branch covered above — but one genuine trap: the equation-of-time sign convention flips between references (astronomical vs. sundial convention). Get it backwards and your longitude lands 42 minutes of arc wrong with full confidence. I checked it against a known city before trusting it.

Answer

spuria{lat_-28.52}
spuria{long_21.11}
spuria{khi_solar_one}

Coordinates from shadow geometry. Precision: ±0.04° east–west (equation-of-time model spread), ±0.02° north–south (shadow-length resolution) — ≈ ±3.9 km and ±2 km respectively. The facility’s surveyed position is 28.537°S, 21.078°E.

Takeaways

  • A timestamped shadow is a coordinate pair. The minimum’s clock time is longitude; the minimum’s length is latitude (to a two-fold ambiguity). This works on any sunny day, anywhere, with a stick and a watch — and in reverse, it’s why timestamps in photo metadata are location leaks even with GPS stripped.
  • Directions break ties that magnitudes can’t. Two latitudes fit every length in this challenge; one bearing decides it. When your data leaves a discrete ambiguity, look for the observation with a sign, not a better measurement of the same quantity.
  • Same-instant shadow ratios are free measurements. Any object with a known height turns every other shadow in frame into a metre stick — and an unusual height (205 m) is as identifying as a name on a sign.

Tooling

Solar positions from a ~60-line Python implementation of the NOAA solar equations (Julian day → declination, equation of time → hour angle → elevation/azimuth), then a coarse grid refine of (lat, lon) against both notebook rows. No dependencies. Script: solver.py.

Sources