rail-lidar-qa-mvp
Rail LiDAR QA MVP - Local LiDAR quality validation for railway infrastructure using drone simulation, point cloud metrics, and 3D visualization.
来源信息
- 仓库
- Ntizar/MasterMind
- 最近来源活动
- 2026年9月15日 15:20
- 检测到的 SKILL.md 语言
- 多语言混合
- 星标
- 2
- 分支
- 0
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- rail-lidar-qa-mvp
- description
- Rail LiDAR QA MVP - Local LiDAR quality validation for railway infrastructure using drone simulation, point cloud metrics, and 3D visualization.
- version
- 1
- created
- 2026-05-30T00:00:00.000Z
- updated
- 2026-05-30T00:00:00.000Z
- source
- https://github.com/Ntizar/rail-lidar-qa-mvp
- tags
- ["data-science","lidar","railway","QA"]
# Rail LiDAR QA MVP
## Overview
A local tool for validating LiDAR quality on railway infrastructure. Simulates drone flights over a PNOA LiDAR point cloud to detect coverage gaps, low-density zones, and shadow areas.
## Workflow
1. User loads `.laz` point cloud file
2. System reads point cloud and calculates general metrics
3. User selects analysis zone (e.g., 20m track + embankment)
4. Tool divides zone into 2D grid
5. For each cell: calculates density, elevation range, coverage
6. Simulates multiple drone passes from different positions
7. Generates QA map with color coding
8. Demo shows if capture is acceptable or needs repetition
## Drone Pass Strategy
| Pass | Coverage | Purpose |
|------|----------|---------|
| P1 | Track axis | Global view of platform, track, ballast, embankment |
| P2 | Right flank | Reduce shadows on embankment face, ditch, ballast edge |
| P3 | Left flank | Confirm doubtful zones, improve density continuity |
| P4 | Adaptive (optional) | Target red cells after P1-P3 |
## QA Traffic Light
- **Green**: Sufficient density and continuous coverage
- **Yellow**: Partial coverage, irregular density, needs review
- **Red**: Gap, shadow, low density, insufficient capture
## Minimum Metrics
- Total point count
- Bounding box X/Y/Z
- Elevation range
- Mean points per square meter
- Green cell percentage
- Yellow cell percentage
- Red cell percentage
- QA score 0-100
## Math Model
```
eje_via = principal_eigenvector(covariance(X, Y))
s = longitudinal projection on eje_via
d = transverse projection on normal_via
```
Error reduction per pass:
```
e_i,k+1 = max(e_floor, e_i,k * (1 - g_k * visibility_i,k)) + anomaly_i
```
Planner prioritizes cells with highest residual error for adaptive P4.
## Tech Stack
- Python: `laspy`, `lazrs` (LAZ reading), `numpy` (grid metrics)
- Three.js: 3D point cloud visualization
- Local HTTP server (Python stdlib)
- Windows launcher (`run_mvp.bat`)
## Color Classification
Points are classified visually:
- Green: Vegetation (high NIR response)
- Dark gray: Track/platform
- Ochre: Ballast/substructure
- Brown: Natural terrain/embankment
- Dark blue: Shadow/occlusion/water
## European Sovereignty Narrative
- Galileo Open Service as GNSS base
- Galileo HAS for PPP high-precision corrections
- EGNOS for operational integrity layer
- Local processing, no external cloud
- PNOA LiDAR (CNIG) as free base data
## Static Demo Generation
```bat
python src\build_static.py
```
Creates `docs/` with Three.js viewer, preprocessed `sample_analysis.json`, and HTML report. Publishable to GitHub Pages or Vercel without uploading the `.laz` file.
## Pitfalls
- MVP uses heuristic rules, not real AI
- Track detection may be manual or configurable in v1
- Precision depends on sensor, GNSS, IMU, calibration, and pass geometry
- Tool does NOT certify railway safety
## Datasets de referencia: SOSDaR24
`Vicomtech/SOSDaR24` (Synthetic Open Sensor Dataset for Rail 2024; solo README + assets, consultado 2026-09-15) es el dataset sintético de referencia para validar QA de LiDAR ferroviario. Generado con el **simulador CARLA**: 100 escenas y 22.208 ficheros por sensor, con obstáculos estáticos y dinámicos (cajas, peatones, coches) sobre vía.
- Nomenclatura de carpeta `ID_map_path_static_dynamic` (id de escena, id de mapa, id de camino, nº de obstáculos estáticos y dinámicos).
- Dentro: anotación **OpenLABEL** (JSON con etiquetas, calibración de sensores y odometría), recording CARLA `.log` y `streams/` con PNG + nubes `.pcd` por sensor (`camera`, `pandar64`, `tele15`).
- Los `.pcd` son binarios con 5 campos: `x, y, z, object_id, object_tag` → permite evaluar detección/seguimiento directamente sobre el point cloud etiquetado (clave para QA de cobertura/densidad).
- `info/` incluye `.npy` con la **trayectoria del tren** de cada simulación: útil para validar estrategias de pasada tipo P1/P2/P3.
**Licencia:** descarga solo por formulario (`opendatasets.vicomtech.org/di21-sosdar24/59e9a716`), **CC BY-NC-ND 4.0** — atribución obligatoria, sin uso comercial y sin redistribuir versiones modificadas.
Paper: *Interpretable Railway Track and Obstacle Detection using On-board LiDAR*, IEEE Sensors Journal 2026, DOI `10.1109/JSEN.2026.3730546`.
在 GitHub 查看