<!-- Copyright (c) 2026 defconxt. All rights reserved. -->
<!-- Licensed under AGPL-3.0 — see LICENSE file for details. -->
---
name: performing-geolocation-analysis
description: >-
  Determine the geographic location where an image or video was captured using
  visible landmarks, terrain features, shadow angles, signage, vegetation,
  architectural styles, and EXIF metadata. Core Bellingcat verification technique.
domain: cybersecurity
subdomain: investigation-attribution
tags:
  - geolocation
  - osint
  - exiftool
  - google-earth
  - landmarks
  - bellingcat
version: "1.0"
author: defconxt
license: AGPL-3.0
metadata:
  mitre-attack: []
---

# Performing Geolocation Analysis

## Overview

Geolocation analysis determines where an image or video was captured by
cross-referencing visible environmental features against known geographic data.
This is the foundational Bellingcat technique — every investigation begins with
establishing *where* something happened.

## Prerequisites

| Requirement | Install |
|---|---|
| ExifTool | `sudo apt install libimage-exiftool-perl` |
| Google Earth Pro | Desktop install |
| Python 3.10+ | Agent tooling |
| Pillow | `pip install Pillow` |

## Key Concepts

### EXIF Metadata Extraction

The fastest path to geolocation — if GPS coordinates exist in metadata:

```bash
# Extract all GPS data
exiftool -gps:all -DateTimeOriginal -Make -Model photo.jpg

# Output as JSON for scripting
exiftool -json -gpslatitude -gpslongitude -gpsaltitude photo.jpg

# Batch extract from directory
exiftool -csv -gpslatitude -gpslongitude -filename *.jpg > locations.csv
```

### Visual Feature Matching

When metadata is stripped, use visual analysis:

| Feature | Method |
|---|---|
| **Street signs** | Language, font, format identify country/region |
| **License plates** | Format and color identify jurisdiction |
| **Vegetation** | Flora species indicate climate zone and region |
| **Architecture** | Building styles narrow to cultural region |
| **Sun position** | Shadow direction indicates hemisphere and latitude |
| **Terrain** | Soil color, elevation, rock formations |
| **Infrastructure** | Power line types, road markings, utility poles |
| **Commercial signage** | Brands, chains, phone number formats |

### Google Earth Verification

```
1. Identify candidate location from visual features
2. Open Google Earth Pro → Navigate to candidate coordinates
3. Enable Historical Imagery (clock icon) to match timeframe
4. Compare 3D perspective with source image angle
5. Match at least 3 independent landmarks for confirmation
6. Record coordinates with precision estimate
```

## Quick Reference

```bash
# Extract GPS from image
exiftool -gpslatitude -gpslongitude -n photo.jpg

# Convert DMS to decimal degrees
node agent.js dms-to-decimal --lat "48 51 24.11" --lon "2 21 7.00"

# Search for matching location features
node agent.js feature-search --features "red roof,church tower,river bend" --region europe

# Generate KML for Google Earth
node agent.js export-kml --lat 48.8566 --lon 2.3522 --label "Subject Location"

# Verify coordinates against image
node agent.js verify-location --image photo.jpg --lat 48.8566 --lon 2.3522
```

## Workflow

```
1. EXTRACT  — Pull EXIF/metadata from source image
2. SURVEY   — Catalog all visible features (signs, landmarks, terrain)
3. NARROW   — Use features to identify country → region → city
4. LOCATE   — Pinpoint exact location using Google Earth/Street View
5. VERIFY   — Confirm with 3+ independent landmark matches
6. DOCUMENT — Record coordinates, methodology, confidence level
```

## Verification

```bash
# Verify ExifTool
exiftool -ver

# Test agent geolocation pipeline
node agent.js --self-test

# Validate coordinate output
node agent.js dms-to-decimal --lat "51 30 26" --lon "0 7 39"
```

## References

- [Bellingcat Geolocation Guide](https://www.bellingcat.com/resources/how-tos/2014/07/09/a-beginners-guide-to-geolocation/)
- [ExifTool Documentation](https://exiftool.org/TagNames/)
- [Google Earth Pro User Guide](https://support.google.com/earth/answer/176145)
- [GeoGuessr Methodology](https://somerandomstuff1.wordpress.com/2019/02/08/geoguessr-the-top-tips-tricks-and-techniques/)
