ZeroTrace OSINT
Tutorial — Geolocate a photo
From an unknown photo to a candidate location — EXIF, reverse search, geo clues, sun position, satellite verification.
A photo arrives with no caption, no context, and a question: where was this taken?
This is the classic OSINT "image geolocation challenge" pattern that journalists, investigators, and the open-source intelligence community use against unknown photos. The toolkit packages each step as a dedicated tool.
What you need
- The toolkit installed and licensed.
- A photo to investigate. (For practice, take a photo on your own phone outdoors and try to geolocate it without using the GPS data.)
- Twenty minutes.
Step 1 — Open a profile (1 minute)
Create a new profile. Note the question:
Identify the location where the photo
<filename>was taken.
Step 2 — Cheap wins via EXIF (2 minutes)
Open Image Metadata. Load the photo. Look at:
- GPS coordinates. If present, you're done in two minutes — pin the result, jump to step 7 for verification.
- Camera make / model / lens / serial. Identifies the device. May match a subject's other photos.
- Date / time taken + timezone. Critical for the sun-shadow step.
- Embedded thumbnail. Sometimes shows scene content cropped out of the visible image.
If GPS is present, pin it and pivot directly to step 7. If absent, continue.
Step 3 — Reverse image search (3 minutes)
Open Reverse Image Composer. The composer pre-processes the photo into four variants (original / centre crop / top-bottom split / greyscale-edge) and constructs deep-link search URLs for Google Lens, Yandex, Bing, TinEye, SauceNAO, Karma Decay.
Click through each engine, focusing on Yandex first (best for non-Western and outdoor scenes). Look for:
- Exact matches (TinEye is best at these — same image, different size).
- Near-matches with location context (Yandex / Google Lens often surface "this is X city" when the scene is recognisable).
- Sub-region matches (one part of the image matches a stock photo of a known place).
Pin any matches with location signals.
For non-Western outdoor scenes, Yandex routinely beats Google. If Google Lens returns nothing useful, run Yandex on the same variants before assuming the search failed.
Step 4 — Geo-clue extraction (5 minutes)
Open Geo Clue Extractor. Load the photo. The tool runs OCR, language and script detection, license-plate format matching, and signage colour analysis.
The output is a ranked country-candidate list with rationale per row. Read the rationales:
- Language and script. Latin → Western. Cyrillic → Russia / Eastern Europe. CJK → China / Japan / Korea / Taiwan / Hong Kong.
- OCR'd street names / business names. "Strasse", "Avenue", "Calle", "ulica" — language patterns narrow the country.
- License plates. Format-matches per country. The plate often tells you the country definitively.
- Sign colours. Blue motorway = European, green = US highway, brown = tourism.
Pin the strongest candidates.
Step 5 — Sun and shadow (3 minutes)
If the photo has a clear sun direction or visible shadows and a reliable timestamp from EXIF, open Sun & Shadow Solver.
Bearing mode: input the date, time, timezone, and the bearing of the sun in the photo. Output is the latitude band where the sun would have that bearing at that time.
This step constrains latitude (and not longitude). Combined with country candidates from step 4, the latitude band often narrows the search to a small region.
Pin the latitude band.
Step 6 — Combine and short-list (1 minute)
Look at what you have so far:
- Country shortlist from geo clues.
- Latitude band from sun/shadow.
- Search-engine matches from reverse image.
Combine to a short-list of candidate locations. For most cases this is now one or two candidate cities or regions.
Step 7 — Aerial verification (4 minutes)
Open Aerial Comparator. For your top candidate location, paste the coordinate (or address — the tool forward-geocodes).
The comparator opens the location across:
- OpenStreetMap (street layout).
- Esri World Imagery (high-resolution satellite).
- Bing Maps Aerial.
- Apple Maps Web.
- Sentinel-2 EO Browser (multi-spectral, time-series).
Compare distinctive features in the photo against the satellite views:
- Buildings of unusual shape or roof colour.
- Parking-lot patterns.
- Sports facilities (stadiums, pools, courts).
- Distinctive vegetation patterns.
If the photo's features match the satellite imagery, you have a confirmed location. If not, try the next candidate from your short-list.
Pin the confirmed location.
Step 8 — Synthesise (1 minute)
In the profile's notes, write:
- Headline location. Coordinate + place name.
- Confidence calibration. "Very high" if features match satellite imagery; "high" if multiple independent clues converge but satellite verification failed; "medium" if one or two clues only.
- Method summary. Which clues you used to narrow.
- What you could not establish. Limitations.
Step 9 — Export (1 minute)
PDF export. The PDF includes the candidate location, the reasoning chain, and the satellite-comparison evidence.
Done.
What you learned
The image-geolocation pattern combines cheap-wins-first (EXIF), broad-search-second (reverse image), narrow-via-clues-third (geo clues + sun/shadow), and verify-last (aerial). Most cases resolve at the EXIF or reverse-image step; the harder ones need the full chain.
When you cannot solve it
Some photos are unsolvable from the toolkit alone. Indications you should give up (or escalate):
- Indoor photo with no readable text.
- Outdoor photo with no distinguishing landmarks, no readable text, no recognisable plant species, no satellite-visible features.
- Photos at solar noon (no shadow direction to exploit).
- Polar latitudes in extreme seasons.
For these, your remaining options are: ask a regional contact who knows the area, post to an OSINT community challenge, or accept that the location is unresolvable from this single photo.