11# Geopolitical Threat Mapper
22
3- A multi-layer situational awareness platform that correlates cyber threats, maritime activity, aviation data, GPS interference, and news events to provide real-time geopolitical intelligence.
3+ A multi-layer situational awareness platform that correlates cyber threats, maritime activity, aviation data, GPS interference, financial markets, and news events to provide real-time geopolitical intelligence.
4+
5+ [ ![ CI] ( https://github.com/arandomguyhere/geopolitical-threat-mapper/actions/workflows/ci.yml/badge.svg )] ( https://github.com/arandomguyhere/geopolitical-threat-mapper/actions/workflows/ci.yml )
6+ [ ![ Deploy to GitHub Pages] ( https://github.com/arandomguyhere/geopolitical-threat-mapper/actions/workflows/deploy-pages.yml/badge.svg )] ( https://github.com/arandomguyhere/geopolitical-threat-mapper/actions/workflows/deploy-pages.yml )
47
58## Architecture
69
@@ -9,36 +12,41 @@ A multi-layer situational awareness platform that correlates cyber threats, mari
912│ GEOPOLITICAL THREAT MAPPER │
1013├─────────────────────────────────────────────────────────────────────┤
1114│ │
12- │ YOUR EXISTING REPOS (FOUNDATION) │
13- │ ┌─────────────────────┐ ┌─────────────────────┐ │
14- │ │ AIS_Tracker │ │ Google-News-Scraper │ │
15- │ │ (Maritime Intel) │ │ (Threat News) │ │
16- │ └──────────┬──────────┘ └──────────┬──────────┘ │
17- │ │ │ │
18- │ NEW DATA SOURCES │ │
19- │ ┌──────────┴────────────────────────┴──────────┐ │
20- │ │ Shodan │ Censys │ OTX │ OpenSky │ GPSJAM │ │
21- │ └──────────────────────────────────────────────┘ │
15+ │ DATA SOURCES │
16+ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
17+ │ │ AIS_Tracker │ │ News/RSS │ │ Financial │ │ Cyber Intel │ │
18+ │ │ (Maritime) │ │ (50+ feeds) │ │ (Markets) │ │ (APT/IOCs) │ │
19+ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
20+ │ │ │ │ │ │
21+ │ ┌──────┴───────────────┴───────────────┴───────────────┴──────┐ │
22+ │ │ OpenSky │ GPSJAM │ Shodan │ OTX │ VesselFinder │ FRED │ │
23+ │ └──────────────────────────────────────────────────────────────┘ │
2224│ │ │
2325│ ┌─────────────────┴──────────────────┐ │
2426│ │ CORRELATION ENGINE │ │
27+ │ │ (6 domains: cyber, maritime, │ │
28+ │ │ aviation, GPS, news, financial) │ │
2529│ └─────────────────┬──────────────────┘ │
2630│ │ │
2731│ ┌─────────────────┴──────────────────┐ │
28- │ │ Threat Feed │ Heatmap │ Alerts │ │
32+ │ │ Threat Feed │ Dashboard │ Alerts │ │
2933│ └────────────────────────────────────┘ │
3034└─────────────────────────────────────────────────────────────────────┘
3135```
3236
3337## Features
3438
35- - ** Multi-Layer Correlation** : Connects cyber threats with maritime, aviation, and news data
39+ - ** Multi-Layer Correlation** : Connects 6 intelligence domains (cyber, maritime, aviation, GPS, news, financial)
3640- ** Real-Time Monitoring** : Track 6 strategic chokepoints globally
41+ - ** Financial Market Signals** : VIX, oil prices, defense ETFs, crypto for geopolitical correlation
42+ - ** Narrative Tracking** : Disinformation detection with fringe → mainstream migration analysis
43+ - ** 50+ RSS Feeds** : Curated news from mainstream, defense, think tanks, and regional sources
3744- ** Cyber Threat Heatmap** : Regional exposure scoring from Shodan, OTX, and abuse.ch
3845- ** APT Tracking** : Integration with your Google-News-Scraper's 60+ APT groups
39- - ** Maritime Intelligence** : Leverages your AIS_Tracker for dark ships and sanctions
46+ - ** Maritime Intelligence** : Leverages your AIS_Tracker + bulk vessel scraper fallback
4047- ** Aviation Overlay** : Military aircraft detection via OpenSky Network
4148- ** GPS Interference** : Spoofing/jamming detection from GPSJAM
49+ - ** GitHub Pages Demo** : Static site deployment for live demos
4250
4351## Monitored Regions
4452
@@ -146,11 +154,20 @@ python server.py --port 9000
146154| --------| ----------| ------------------|
147155| GPSJAM.org | Interference map | Daily |
148156
149- ### Events
157+ ### Events & News
150158
151159| Source | Use Case | Rate Limit |
152160| --------| ----------| ------------|
153161| GDELT Project | Global events | Unlimited |
162+ | 50+ RSS Feeds | Curated news sources | Unlimited |
163+
164+ ### Financial Markets
165+
166+ | Source | Use Case | Rate Limit |
167+ | --------| ----------| ------------|
168+ | CoinGecko | Crypto prices (BTC, ETH, stablecoins) | Unlimited |
169+ | Yahoo Finance | VIX, commodities, sector ETFs | Unlimited |
170+ | FRED | Federal Reserve data | Unlimited |
154171
155172## Output Files
156173
@@ -191,6 +208,14 @@ The web dashboard (`server.py`) provides an interactive map at **http://localhos
191208- Chokepoints - Strategic maritime choke points
192209- AIS Vessels - Ship tracking with risk visualization
193210- Cyber Threats - IOC markers aggregated by country
211+ - Financial Signals - Market indicator markers
212+
213+ ** Market Signals Panel:**
214+ - VIX fear index with color-coded levels
215+ - Crude oil price and daily change
216+ - Defense sector ETF performance
217+ - Bitcoin price as sanctions/capital flight indicator
218+ - Market momentum indicator (surging/rising/stable/declining)
194219
195220** Settings UI:**
196221- Configure all API keys from the web interface
@@ -222,22 +247,30 @@ See `config/correlation_rules.yaml` for full definitions.
222247geopolitical-threat-mapper/
223248├── main.py # Data collection orchestrator
224249├── server.py # Web dashboard (port 8081)
250+ ├── build_static.py # Static site generator for GitHub Pages
225251├── requirements.txt
226252├── .env.example # Environment template
253+ ├── .github/
254+ │ └── workflows/
255+ │ ├── ci.yml # Lint, test, build
256+ │ └── deploy-pages.yml # GitHub Pages deployment
227257├── scripts/
228258│ ├── config/
229- │ │ ├── sources.yaml # Data source configuration
259+ │ │ ├── sources.yaml # Data source + RSS feeds
230260│ │ ├── correlation_rules.yaml # Correlation rule definitions
261+ │ │ ├── locations.yaml # Conflict zones, bases, cables
231262│ │ └── chokepoints.geojson # Strategic chokepoint polygons
232263│ ├── collectors/
233264│ │ ├── cyber/ # Shodan, OTX, abuse.ch, NVD
234- │ │ ├── maritime/ # AIS_Tracker integration
265+ │ │ ├── maritime/ # AIS_Tracker + VesselScraper
235266│ │ ├── aviation/ # OpenSky/Airplanes.Live
267+ │ │ ├── financial/ # Markets, commodities, crypto
236268│ │ ├── gps/ # GPSJAM interference
237269│ │ └── news/ # News scraper integration
238270│ └── processors/
239- │ └── correlation_engine.py # Multi-source correlation
240- ├── tests/ # 40 unit tests
271+ │ ├── correlation_engine.py # Multi-source correlation
272+ │ └── narrative_tracker.py # Disinformation detection
273+ ├── tests/ # Unit tests
241274└── output/ # Generated files
242275```
243276
@@ -315,9 +348,14 @@ NEWS_SCRAPER_FEED = "/path/to/Google-News-Scraper/docs/feed.json"
315348- [x] Interactive Leaflet map (web dashboard)
316349- [x] Settings UI for API key configuration
317350- [x] Best-in-class vessel tracking (ship icons, details panel, search, risk scoring)
318- - [x] Unit test suite (40 tests)
351+ - [x] Unit test suite
352+ - [x] Financial market integration (VIX, commodities, crypto, defense ETFs)
353+ - [x] Narrative/disinformation tracking
354+ - [x] 50+ RSS feed aggregation
355+ - [x] Bulk vessel scraper fallback
356+ - [x] GitHub Actions CI/CD
357+ - [x] GitHub Pages static deployment
319358- [ ] GDELT integration
320- - [ ] GitHub Actions automation
321359- [ ] Alert notifications (Slack, Discord)
322360
323361## Contributing
0 commit comments