HarimitraS/Geospatial-Threat-Intelligence-System
GitHub: HarimitraS/Geospatial-Threat-Intelligence-System
基于 FastAPI 构建的地理空间威胁情报后端,结合 H3 网格与 GNN 模型对高加索及中亚地区冲突事件进行威胁评分、异常检测与风险预测。
Stars: 0 | Forks: 0
# GeoSentinel 后端
用于高加索及中亚地区空间威胁情报演示的 FastAPI + SQLite 后端。
## 包含内容
- 兼容 ACLED 的数据导入路径 (`scripts/seed_db.py --acled data/acled.csv`)
- 用于离线演示的备用合成事件生成
- 每个事件的 H3 六边形分配
- 加权威胁分数计算
- 每个六边形的人口、环境和经济原型信号
- Isolation Forest 异常标记
- 风险驱动因素可解释性(主要贡献因子)
- REST API endpoint:
- `GET /hexgrid`
- `GET /hex/{id}`
- `POST /alert`
- `POST /forecast`
- `GET /health`
## 快速开始
```
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python scripts/seed_db.py
uvicorn app.main:app --reload
```
API 文档:http://127.0.0.1:8000/docs
## GNN 预测
本仓库现在包含一个可训练的时空 GNN 预测 pipeline:
- 训练脚本:`scripts/train_gnn.py`
- 模型/数据服务:`app/services/forecast_gnn.py`
- API endpoint:`POST /forecast`
训练所有时间范围(7/14/30 天):
```
python scripts/train_gnn.py --epochs 120
```
请求预测:
```
curl -X POST "http://127.0.0.1:8000/forecast" \
-H "Content-Type: application/json" \
-d '{"hex_id":"85283083fffffff"}'
```
PyTorch 兼容性说明:
- 预测训练/推理需要 PyTorch。
- 使用 Python 3.11 或 3.12 以获得最可靠的 torch wheel 支持。
## 数据说明
- 覆盖范围:高加索和中亚地区(亚美尼亚、阿塞拜疆、格鲁吉亚、哈萨克斯坦、吉尔吉斯斯坦、塔吉克斯坦、土库曼斯坦、乌兹别克斯坦)
- 数据源:ACLED (Armed Conflict Location & Event Data Project)
- SQLite 数据库存储在 `data/geosentinel.db`
- 如果存在包含以下列的 `data/acled.csv` 文件,seed 脚本将导入它:
- `event_date`, `latitude`, `longitude`, `fatalities`, `event_type`
- 如果不存在 ACLED 文件,将生成合成的冲突事件(纬度 37.27–53.83°N,经度 4.58–81.97°E)
## API 调用示例
```
curl "http://127.0.0.1:8000/hexgrid?min_score=40"
curl "http://127.0.0.1:8000/hex/84754a9ffffffff"
curl -X POST "http://127.0.0.1:8000/alert" \
-H "Content-Type: application/json" \
-d '{"hex_id":"84754a9ffffffff", "threshold": 60}'
```
标签:AV绕过, FastAPI, PyTorch, SQLite, 凭据扫描, 图神经网络, 地理空间分析, 威胁情报, 开发者工具, 异常检测, 网络测绘, 自定义脚本, 逆向工具