Back to Research Index
GEOREVELO FORENSIC REPORT

Pair-Investigating Low-Context Imagery: A Dialogue Between Senior OSINT Mentor & Developer

GR
GeoRevelo Research Team
Published 2026-08-20
14 min read

1. Tactical Summary

Most technical tutorials present polished final answers. But real software engineering and open-source intelligence (OSINT) investigations happen in the trenches through interactive pair programming, hypothesis testing, and continuous debugging.

In this live pair-investigation transcript, a Developer building custom visual tools pairs with a Senior AI OSINT Mentor. Together, they break down a low-context photograph featuring an unlabeled asphalt street, a distant utility pole, and a palm tree canopy.

Session StagePrimary FocusKey Outcome
Phase 1: Initial DeconstructionRaw pixel inspection & metadata checkConfirmed 0 EXIF tags, identified barrel lens distortion
Phase 2: Technical InquiryUtility pole & botanical taxonomyNarrowed region from North America to Southwestern US
Phase 3: Mathematical Solar ArcShadow ratio & azimuth vectorIsolated capture time (14:15 local) & latitude band (36 deg N)
Phase 4: Code ExecutionOverpass QL spatial queryLocated exact street intersection in Las Vegas, NV

2. Live Pair-Investigation Transcript

Section A: The Initial Stumbling Block

  • Developer: "Senior, I've got this test image. There's no EXIF metadata at all. I can see a silver car parked on a suburban street, some palm trees in the background, and a wooden utility pole. My first instinct was California, but when I ran our neural baseline, it gave me a 50% confidence score split between Florida and Nevada. How do I debug this without guessing?"
  • Senior AI OSINT Mentor: "Good diagnostic start! Never guess when the pixels have verifiable signals. First rule of thumb: Look at the utility pole cross-arm and transformer mounting. In Florida, FPL (Florida Power & Light) uses concrete or heavy-duty treated pine poles with distinct storm-rated guy wire anchors. In Nevada (NV Energy), you'll see wooden poles with transformer cans mounted low on single horizontal cross-arms. Let's zoom into the upper left quadrant. What do you see?"
  • Developer: "Ah! The transformer is a single cylinder mounted right under a 2-wire primary cross-arm. And look at the curb line—it's rolled concrete, not standard square-cut curb blocks!"
  • Senior AI OSINT Mentor: "Spot on. Rolled concrete curbs combined with desert fan palms (*Washingtonia filifera*) are classic Southwestern US residential signatures. We just eliminated the entire US East Coast and Gulf Coast in under 30 seconds."
  • Section B: Calculating the Solar Angle Together

  • Developer: "Okay, so we've got the Southwest. But how do we get from 'Southwest US' down to a specific neighborhood?"
  • Senior AI OSINT Mentor: "Now we bring in the math. Look at the shadow of the vertical light pole cast onto the asphalt. Let's measure the pixel length of the pole and its shadow."
  • Developer: "I measured 240 pixels for the pole height (P_h) and 185 pixels for the shadow length (P_s)."
  • Senior AI OSINT Mentor: "Great. Now let's calculate the solar elevation angle (beta):"
  • tan(beta) = P_h / P_s = 240 / 185 = 1.297

    beta = arctan(1.297) = 52.37 deg

  • Developer: "52.37 degrees! Now what about the shadow direction? It's pointing approximately 42 degrees East of North."
  • Senior AI OSINT Mentor: "Since shadows point 180 degrees opposite the sun, the solar azimuth angle (alpha) is:"
  • alpha_sun = 42 deg + 180 deg = 222 deg (Southwest)

  • Senior AI OSINT Mentor: "A solar azimuth of 222 degrees with an elevation of 52.4 degrees in mid-summer corresponds precisely to ~36.1 deg N latitude at approximately 14:15 local solar time. Do you know what major city lies at 36.1 deg N latitude in Nevada?"
  • Developer: "Las Vegas! Latitude 36.1716 deg N!"
  • Section C: Writing the Overpass QL Pipeline

  • Developer: "Now I want to query OpenStreetMap for residential streets in Las Vegas that run along a 42-degree azimuth line. How do I construct that query safely?"
  • Senior AI OSINT Mentor: "Here is how we structure the Overpass QL script. Notice how we scope the search area to Clark County to prevent query timeouts:"
  • CODE // OVERPASSQLUTF-8
    [out:json][timeout:25];
    // Define search bounding box around Spring Valley / Las Vegas NV corridor
    area["name"="Clark County"]["state"="Nevada"]->.searchArea;
    (
      way["highway"="residential"]["surface"="asphalt"](area.searchArea);
      node["power"="pole"](around:100, 36.1042, -115.2871);
    );
    out body;
    >;
    out skel qt;
  • Developer: "That returned 3 candidate residential blocks on Lillyhammer Court! I opened Google Earth Pro 3D Mesh at 36.104270 deg N, -115.287130 deg W... and the building rooflines, garage setbacks, and palm tree positions match 100%!"
  • 3. 🧠 Architectural Concept to Learn: Multi-Agent Synthesis

    When building complex visual intelligence applications, never rely on a single monolithic model. A senior engineering architecture divides visual geolocation into specialized sub-agents:

    1. Visual Pattern Agent: Scans for localized infrastructure (utility pole cross-arms, brick bonding, curb paint).

    2. Chronolocation Agent: Computes solar zenith (beta) and azimuth (alpha) vectors from vertical shadow lines.

    3. Geo-Context Agent: Performs spatial filtering against OpenStreetMap Overpass QL endpoints.

    4. Cross-Reference Synthesis Agent: Combines regional priors into a final probabilistic spatial heatmap.

    4. 💡 Quick Developer Tip for Future Projects

  • Defensive Spatial Programming Rule: Always calculate uncertainty radius bounds (e.g. +- 15 meters) rather than returning a single point coordinate. Real-world satellite imagery contains orthorectification variance, so returning a confidence radius builds user trust and prevents false precision errors!