Files
CA/CLAUDE.md
Akiba So fc468464b2 feat: Initial CBPOA commit — 武汉儿童呼吸疾病风险评估系统
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.
2026-06-05 02:13:49 +08:00

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.