Context: Build a spatial risk assessment system correlating air quality data with children's respiratory disease incidence across Wuhan. Approach: FastAPI backend serving PostGIS spatial queries, React frontend with Deck.gl maps, and a PyTorch SpatialTemporalGCN pipeline for multi-day (1d/3d/7d) risk prediction. Changes: - backend/ — FastAPI API with auth (JWT), alerts, risk analysis, geocoded case data, grid statistics, and report endpoints - frontend/ — React dashboard with interactive risk maps, alert monitoring, district comparison charts, and timeline player - models/ — SpatialTemporalGCN model with trained weights and ONNX export for inference - scripts/ — ETL pipeline for weather + medical data, grid generation, feature engineering, training, and daily inference - deploy/ — Docker Compose configs for backend, frontend, and MLflow - docs/ — API docs, deployment guide, user guide, and code review Impact: Enables spatial risk visualization, alert monitoring, and ML-driven health risk forecasting for environmental health teams.
58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
# CBPOA — 武汉儿童呼吸疾病风险评估系统
|
|
|
|
FastAPI + React + PyTorch GCN pipeline. 预测空气质量对儿童健康的空间风险。
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Frontend (pnpm)
|
|
cd frontend && pnpm dev # localhost:5173 → proxies /api to :8000
|
|
|
|
# Backend (Python venv)
|
|
cd backend && uvicorn main:app --reload # localhost:8000
|
|
|
|
# ML pipeline
|
|
cd scripts && python train_model.py # PyTorch + MLflow
|
|
```
|
|
|
|
## Where to Look
|
|
|
|
| Task | Location |
|
|
|------|----------|
|
|
| API endpoint | `backend/routers/` |
|
|
| Database / PostGIS | `backend/database.py` |
|
|
| UI component | `frontend/src/components/` |
|
|
| Page view | `frontend/src/pages/` |
|
|
| API client / cache | `frontend/src/services/api.ts` |
|
|
| State management | `frontend/src/stores/` |
|
|
| TypeScript types | `frontend/src/types/` |
|
|
| ETL / data processing | `scripts/` |
|
|
| ML model architecture | `models/spatiotemporal_gcn/` |
|
|
| Trained weights | `models/spatiotemporal_gcn/best_model.pt` |
|
|
| Processed features | `processed/` |
|
|
| Raw data sources | `Datas/` |
|
|
| Docker / deploy | `deploy/` |
|
|
|
|
## Data Sources
|
|
|
|
| Data | Path | Notes |
|
|
|------|------|-------|
|
|
| 气象+空气 | `Datas/气象+空气/站点_*.csv` | 3yr, 2192 files, ~2.37M rows |
|
|
| 门诊 | `Datas/view_门诊.xlsx` | 107,579 rows |
|
|
| 住院 | `Datas/view_住院.xlsx` | 5,822 rows |
|
|
| DEM高程 | `Datas/DEM/CJJJD_DEM.TIF` | 3.1GB raster |
|
|
| 人口密度 | `Datas/landscan-hd-china-v1-assets/*.tif` | 284MB |
|
|
| 行政边界 | `Datas/武汉市.geojson` | Wuhan boundary |
|
|
|
|
## ML Pipeline
|
|
|
|
```
|
|
气象(时间序列) + 站点坐标 + DEM高程 + 人口密度 → SpatialTemporalGCN → 风险预测 [1d, 3d, 7d]
|
|
```
|
|
|
|
## Agent Workflow
|
|
|
|
Explore finds → Librarian reads → You plan → Worker implements → Validator checks
|
|
|
|
Context-specific guidance lives in nested CLAUDE.md files — they load automatically when you work in those directories. Closest CLAUDE.md to the file being edited takes precedence.
|