GitHub - elliott-diy/Weather2Geo: OSINT tool that geolocates screenshots using leaked weather widget data (time, temperature, condition). Uses the same API as the Windows weather widget.

2 min read Original article ↗

Weather2Geo

If you find this project useful, please consider leaving a ⭐, it helps others discover the tool and supports continued development.

Overview

Weather2Geo is a focused OSINT tool that turns weather widget leaks into geolocation data.

People post screenshots with the Windows weather widget in their taskbar all the time, showing the exact temperature, weather condition, and local time. This tool uses the same API as the widget to find cities where those conditions are currently true.

⚠️ This tool works best if used shortly after the screenshot is posted. Conditions change fast.


Features

  • Geolocation from Widgets: Match weather condition, temp, and time to a list of real cities
  • Timezone-Aware: Localizes your input to each city’s timezone for accurate comparison
  • Clustering: Groups nearby hits to reduce noise
  • Extensible: Tweak tolerance, data sources, and clustering distance

Installation

git clone https://github.com/elliott-diy/Weather2Geo
cd Weather2Geo
pip install -r requirements.txt

Usage

python main.py --time "2025-05-22 14:00" --condition "Mostly cloudy" --temp 18 --tolerance 1.0

Options

Flag Description
--time Local time shown in the screenshot (YYYY-MM-DD HH:MM)
--condition Weather condition string (e.g., "Partly cloudy")
--temp Temperature in Celsius
--tolerance Temp wiggle room (default: 1.0°C)
--cluster-distance Max distance in KM to group hits (default: 15)
--cities-file Path to GeoNames cities file (default: cities15000.txt)

Example Use Case

You spot a screenshot that says:

Mostly clear | 13°C | 10:09 PM | May 22

Run:

python main.py --time "2025-05-22 22:09" --condition "Mostly clear" --temp 13

And you'll get clusters of cities like:

Cluster 1 – 10 locations:
- US Seattle — 13°C, mostly clear
- US Bellevue — 13°C, mostly clear
...

Data Sources


Contributing

Found a bug? Want to improve matching accuracy or add new data sources? Pull requests are welcome!

Feel free to:

  • Open an issue with suggestions or bugs
  • Submit a PR for improvements (accuracy, timezone logic, clustering, etc.)
  • Share how you’re using the tool - feedback helps guide future features

Disclaimer

This tool is for ethical, educational OSINT use only. Don’t be a creep. Respect privacy and legal boundaries.