dheerajpatel3448w/Ecowatch-geo-intelligence
GitHub: dheerajpatel3448w/Ecowatch-geo-intelligence
EcoWatch 是一个结合卫星图像 AI 分析与实时事件流处理的生态环境威胁检测平台,用于打击森林砍伐和非法采矿并自动生成法律证据。
Stars: 0 | Forks: 0
# 🌍 EcoWatch:地理空间智能与威胁检测系统
**EcoWatch** 是一个先进的卫星威胁检测平台,旨在打击森林砍伐、非法采矿和生态破坏。它结合了基于 Next.js 的指挥中心 UI、用于高吞吐量事件流处理的 Apache Kafka,以及基于 Python 的机器学习技术 (Qwen2-VL),可实时分析卫星图像。
## 🚀 核心功能
- **🌐 全球威胁雷达:** 具备实时警报、指标和威胁映射的 3D 地理空间仪表板。
- **🛰️ 卫星 AI 分析:** 集成 Qwen2-VL-2B-Instruct 视觉语言模型,可自动检测卫星图像中的森林砍伐和环境异常(NDVI 分析)。
- **📡 任务控制(区域):** 使用 React-Leaflet 直接在地图上绘制和管理监控区域。为特定坐标触发手动或自动化的 ML 扫描。
- **⚖️ 法律与碳排放引擎:** 计算精确的碳损失,并自动生成官方的 **PDF 法律证据报告**,以便提交 FIR。
- **📱 现场作业门户:** 采用移动优先 UI,方便护林员上传证据照片,并与 GPS 位置匹配,这些数据也会在本地由 AI 进行验证。
- **⚡ 实时流处理:** 端到端的 Kafka 集成,在 Node.js 和 Python 之间异步处理繁重的 ML 工作负载。
## 🏗️ 架构与技术栈
该平台分为三个主要的微服务,并大量采用容器化技术来构建基础设施。
### 1. 前端 (`/ecowatch`)
- **框架:** Next.js (App Router), React 19
- **样式:** Tailwind CSS v4, Framer Motion (军事/指挥中心暗黑主题,玻璃拟态)
- **地图与 3D:** React-Leaflet, Mapbox-GL, Three.js, React-Three-Fiber
- **数据可视化:** Recharts
- **实时通信:** Socket.IO Client
### 2. API 后端 (`/node-service`)
- **运行时:** Node.js, Express.js
- **数据库:** MongoDB (Mongoose)
- **消息代理:** KafkaJS (生产者/消费者)
- **功能:** JWT 身份验证,基于角色的访问控制(管理员、分析师、护林员),PDFKit(法律报告),Multer(图像上传)
### 3. ML 服务 (`/ml-service`)
- **运行时:** Python 3.11+, FastAPI
- **AI 模型:** Qwen2-VL-2B-Instruct, HuggingFace Transformers, PyTorch
- **消息代理:** Confluent-Kafka
- **功能:** 卫星图像处理,NDVI 物理逻辑,本地照片验证
### 4. 基础设施 (`docker-compose.yml`)
- **Zookeeper & Kafka:** 用于事件流的 Confluent 镜像。
- **MongoDB:** 数据库存储。
## 📂 项目结构
```
ecowatch/
├── ecowatch/ # Next.js Frontend UI
├── node-service/ # Express API Backend
├── ml-service/ # FastAPI Python Machine Learning Service
├── docker-compose.yml # Infrastructure configuration (Kafka, Mongo)
├── ECOWATCH_HANDOFF.md # Developer architectural notes
└── README.md # Project documentation
```
## ⚙️ 设置与安装说明
### 1. 启动基础设施 (Docker)
确保 Docker Desktop 正在运行,然后启动 MongoDB、Zookeeper 和 Kafka。
```
docker-compose up -d
```
### 2. 设置 Node.js API 服务
```
cd node-service
npm install
npm run dev
```
*(运行在 `http://localhost:5000`)*
### 3. 设置 Python ML 服务
*注意:在本地运行以利用系统 GPU 或 CPU 进行繁重的 ML 处理。*
```
cd ml-service
python -m venv .venv
# 激活 venv: .venv\Scripts\activate (Windows) 或 source .venv/bin/activate (Mac/Linux)
pip install -r requirements.txt
uvicorn api.app:app --host 0.0.0.0 --port 8001
```
*(运行在 `http://localhost:8001`)*
### 4. 设置 Next.js 前端
```
cd ecowatch
npm install
npm run dev
```
*(运行在 `http://localhost:3000`)*
## 🔐 环境变量
你需要在各个相应的目录中创建 `.env` 文件。以下是基于该架构的基本模板:
**`/node-service/.env`**
```
PORT=5000
MONGO_URI=mongodb://localhost:27017/ecowatch
JWT_SECRET=ecowatch_production_secret_change_me
KAFKA_BROKER=localhost:9092
```
**`/ml-service/.env`**
```
KAFKA_BROKER=localhost:9092
KAFKA_GROUP=ml-workers
SH_CLIENT_ID=your_sentinel_hub_client_id
SH_CLIENT_SECRET=your_sentinel_hub_client_secret
HF_TOKEN=your_huggingface_token
MODEL_NAME=Qwen/Qwen2-VL-2B-Instruct
LOG_LEVEL=INFO
```
## 👨💻 开发者与维护者
由 **Dheeraj Patel** (MERN Stack & AI 开发者) 构建。
标签:Apache Kafka, Apex, MITM代理, 凭据扫描, 机器学习, 环境监测, 计算机视觉, 请求拦截, 软件成分分析, 逆向工具, 遥感图像分析