-
Notifications
You must be signed in to change notification settings - Fork 1
Example railway
github-actions[bot] edited this page Aug 31, 2026
·
2 revisions
Build:
cmake --preset linux-ninja-release && cmake --build --preset linux-ninja-release
VollstΓ€ndiges IoT-basiertes Echtzeit-Γberwachungssystem fΓΌr Zugverkehr mit KI-gestΓΌtzter Analyse.
Jetzt verfΓΌgbar:
- β Docker Compose Setup - Komplettes System mit einem Befehl
- β Quick-Start Scripts - Automatische Installation (Linux/macOS/Windows)
- β Python Network Generator - Keine C++ Compilation erforderlich
- β WPF Desktop Client - VollstΓ€ndig implementiert (.NET 8)
- β Web UI mit Nginx - Production-ready Konfiguration
Linux/macOS:
./quick-start.shWindows PowerShell:
.\quick-start.ps1Das war's! System lΓ€uft auf:
- π Web UI: http://localhost:8080
- ποΈ ThemisDB API: http://localhost:8765
- π€ Ollama LLM: http://localhost:11434
π VollstΓ€ndige Dokumentation: Siehe DEPLOYMENT.md
- ThemisDB lΓ€uft auf
http://localhost:8765 - Python 3.8+ (fΓΌr Simulator & Import)
- C++ Compiler (fΓΌr Daten-Generator)
- Web Browser (fΓΌr Live-Karte)
# Installiere nlohmann/json (falls nicht vorhanden)
# Ubuntu/Debian: sudo apt-get install nlohmann-json3-dev
# macOS: brew install nlohmann-json
# Oder: Header-only von https://github.com/nlohmann/json
# Kompiliere Daten-Generator
cd examples/railway
g++ -std=c++17 railway_base_data_generator.cpp -o railway_generator
# Generiere Streckendaten (ca. 400 Segmente, 150+ Signale)
mkdir -p ../../data
./railway_generatorOutput: ../../data/railway_network_base_germany.json
Inhalt:
- 15 BahnhΓΆfe (Frankfurt, MΓΌnchen, Hamburg, etc.)
- ~400 Streckenabschnitte mit Geschwindigkeitsprofilen
- ~150 Signale (Haupt- und Vorsignale)
- ~40 Weichen
- ~50 BahnΓΌbergΓ€nge
# Installiere Python Dependencies
pip install requests
# Importiere Streckennetz
cd ../../scripts/railway
python import_railway_network.py ../../data/railway_network_base_germany.jsonImportiert:
- Stations als Graph Vertices
- Track Segments als Graph Edges
- Signale, Weichen, BahnΓΌbergΓ€nge
# Starte Simulator mit 50 ZΓΌgen
python train_simulator.py \
--network ../../data/railway_network_base_germany.json \
--trains 50 \
--interval 1.0 \
--themis http://localhost:8765Simulation:
- 50 ZΓΌge (realistisch verteilt: ICE, IC, RE, RB)
- Echtzeit-Updates (1 Hz)
- GPS-Telemetrie
- Fahrzeug-Systeme
- Infrastruktur-Events (AchszΓ€hler, Hotbox-Detektoren)
- VerspΓ€tungen nach realen Statistiken
# Γffne im Browser
open ../../examples/railway/live_map.html
# oder
firefox ../../examples/railway/live_map.htmlFeatures:
- OpenStreetMap Basis-Karte
- Live-Zugpositionen
- BahnhΓΆfe, Signale, Weichen (Layer)
- Echtzeit-Statistiken
- Train Details on Click
Gesamt Deutschland: ~40.000 ZΓΌge/Tag
ββ ICE (Fernverkehr): 1.200 ZΓΌge/Tag
ββ IC/EC (Fernverkehr): 800 ZΓΌge/Tag
ββ RE (Regional): 8.000 ZΓΌge/Tag
ββ RB (Regional): 15.000 ZΓΌge/Tag
ββ GΓΌterverkehr: 5.000 ZΓΌge/Tag
ICE PΓΌnktlichkeit (<6 Min): 91.5%
RE/RB PΓΌnktlichkeit (<6 Min): 94.2%
Durchschnittliche VerspΓ€tung (bei verspΓ€teten ZΓΌgen):
- ICE: 12.3 Minuten
- RE: 8.5 Minuten
Geschwindigkeiten:
- ICE (Hochgeschwindigkeit): 200-330 km/h
- IC (Hauptstrecken): 140-200 km/h
- RE (Regional): 100-160 km/h
- RB (Regionalbahn): 80-120 km/h
SignalabstΓ€nde:
- Fernverkehr: 1.5 - 3.0 km
- Regional: 1.0 - 2.0 km
BahnΓΌbergΓ€nge:
- Nur auf Regionalstrecken
- Durchschnitt: 1 pro 10 km
(Station) -[TRACK_SEGMENT]-> (Track_Point)
(Track_Point) -[TRACK_SEGMENT]-> (Track_Point)
(Signal) -[LOCATED_AT]-> (Track_Point)
(Switch) -[LOCATED_AT]-> (Track_Point)
(Train) -[CURRENTLY_AT]-> (Track_Segment)
Pro Zug (1 Hz):
- train_telemetry: GPS, Speed, Delay, Occupancy
- train_vehicle_systems: Traction, Brakes, HVAC
- train_safety_systems: ETCS, PZB status
Pro Infrastruktur (Event-basiert):
- axle_counter_events: Zugein-/ausfahrt
- hotbox_detector: HeiΓlΓ€ufer-Warnung
- signal_events: Aspekt-Γnderungen
- weather_station: Wetter entlang Strecke
# Alle aktiven ZΓΌge
curl http://localhost:8765/query -X POST \
-H "Content-Type: application/json" \
-d '{"table":"train","return":"entities","limit":100}'
# VerspΓ€tete ZΓΌge (>5 Min)
curl http://localhost:8765/query/aql -X POST \
-d '{
"query": "FOR t IN train FILTER t.delay_min > 5 RETURN t"
}'# Telemetrie fΓΌr ICE 508
curl http://localhost:8765/timeseries/train_telemetry/ICE508
# Letzte 1 Stunde
curl "http://localhost:8765/timeseries/train_telemetry/ICE508?from=-3600000"# Alle Signale auf Strecke 3600
curl http://localhost:8765/query/aql -X POST \
-d '{
"query": "FOR s IN signal FILTER s.track_number == \"3600\" RETURN s"
}'
# Route von Frankfurt nach MΓΌnchen
curl http://localhost:8765/graph/shortest_path -X POST \
-d '{
"start": "station:8000105",
"end": "station:8000261",
"algorithm": "dijkstra"
}'import requests
# Frage an Ollama LLM
response = requests.post("http://localhost:8765/analytics/llm-query", json={
"query": "Warum hat ICE 508 VerspΓ€tung?",
"context": {
"train_number": "ICE 508",
"include_events": True,
"time_window_min": 30
}
})
print(response.json()["answer"])
# Output: "ICE 508 hat 15 Min VerspΓ€tung aufgrund SignalstΓΆrung
# Signal F123 auf Strecke 3600 Km 45.3..."# Simuliere Signalausfall
response = requests.post("http://localhost:8765/analytics/simulate", json={
"scenario": "signal_failure",
"signal_id": "signal:3600_H12",
"duration_min": 120,
"analyze_impact": True
})
print(f"Betroffene ZΓΌge: {response.json()['affected_trains']}")
print(f"ZusΓ€tzliche VerspΓ€tung: {response.json()['total_delay_min']} Min")// In ThemisDB CEP Engine
CREATE RULE cascading_delays AS
SELECT
t1.trainNumber,
COUNT(*) as affected_count
FROM TrainDelayEvents t1
JOIN TrainDelayEvents t2
ON t1.next_station = t2.current_station
AND t2.timestamp > t1.timestamp
AND t2.timestamp < t1.timestamp + 600000
WHERE t1.delay_min > 10
WINDOW SLIDING(15 MINUTES)
GROUP BY t1.trainNumber
HAVING COUNT(*) >= 3
ACTION alert('operations_center', priority='HIGH');- Zugpositionen: Live-Karte mit Leaflet Plugin
- VerspΓ€tungen: Histogram + Trend
- Streckenauslastung: Heatmap
- Effizienz-KPIs: PΓΌnktlichkeit, Energieverbrauch
- Anomalien: CEP Alerts, Hotbox-Warnungen
// Connect to live updates
const ws = new WebSocket('ws://localhost:8765/ws/trains');
ws.onmessage = (event) => {
const train = JSON.parse(event.data);
updateTrainMarker(train.train_number, train.lat, train.lon);
};storage:
rocksdb_path: /data/railway_db
server:
host: 0.0.0.0
port: 8765
timeseries:
enabled: true
retention_days: 90
compression: gorilla
cep:
enabled: true
rules_path: /etc/themis/cep_rules/
llm:
enabled: true
provider: ollama
endpoint: http://localhost:11434
model: llama3.2:latest
geo:
enabled: true
osm_import: true
simulation:
trains_count: 50
update_interval_sec: 1.0
realistic_delays: true
punctuality_ice: 0.915
punctuality_re: 0.942# PrΓΌfe ob Simulator lΓ€uft
ps aux | grep train_simulator
# PrΓΌfe Time-Series Daten
curl http://localhost:8765/timeseries/train_telemetry
# PrΓΌfe ThemisDB Logs
docker logs themisdb# Passe PΓΌnktlichkeit in train_simulator.py an:
PUNCTUALITY_ICE = 0.95 # ErhΓΆhe auf 95%- PrΓΌfe CORS Settings in ThemisDB
- Γffne Browser Console (F12)
- PrΓΌfe Network Tab fΓΌr Fehler
-
VollstΓ€ndiges Datenmodell:
docs/projects/RAILWAY_MONITORING.md -
Zugmodell:
docs/projects/RAILWAY_TRAIN_DATA_MODEL.md -
ThemisDB Features:
docs/features/ -
CEP Engine:
docs/analytics/CEP_STREAMING_ANALYTICS.md -
LLM Integration:
docs/enterprise/gpu_impact_analysis_llm_integration.md
# Starte komplette Demo
./scripts/railway/start_demo.sh
# Stoppt nach Ctrl+C:
# - ThemisDB Server
# - Train Simulator
# - Live Map ServerErwartete Last:
- 50 ZΓΌge = 50 Updates/sec
- 400 Sensoren = ~100 Events/sec
- ThemisDB: <10ms Latenz pro Write
- Memory: ~500 MB (50 ZΓΌge, 7 Tage Historie)
- Storage: ~5 GB/Monat (Gorilla Compression)
Skalierung:
- Getestet mit: 500 ZΓΌge = 95% CPU, 2GB RAM
- Max empfohlen: 1000 ZΓΌge pro ThemisDB Instanz
- Sharding: 10.000+ ZΓΌge ΓΌber mehrere Nodes
Verbesserungen willkommen:
- Realere Strecken-Daten (OpenStreetMap Import)
- Deutsche Bahn API Integration
- Fahrplan-Import (GTFS)
- ML-basierte VerspΓ€tungs-Vorhersage
- Mobile App
MIT License - Siehe LICENSE file
ThemisDB 1.9.0-beta Β· Home Β· Module-Index Β· GitHub Β· Issues
ThemisDB 1.9.0-beta Β· Home Β· Wiki-Index Β· Module-Index Β· FAQ Β· Quick-Reference Β· GitHub Β· Issues Β· Discussions Β· License
- Batch Operations
- Best Practices
- CRUD Tutorial
- Custom Document Ingestion
- Getting Started Tutorial
- Interactive Examples
- Schema Design
- Video Tutorials
- AQL Reference
- AQL Examples
- AQL Overview
- AQL Feature Roadmap
- AQL Geospatial Guide
- AQL LLM Migration Guide
- AQL API
- AQL Grammar (EBNF)
- AQL Root Overview
- AQL Examples (root)
- API Reference
- API Module README
- OpenAPI Overview
- Client SDK Overview
- SDK Overview
- Operations
- Operations Overview
- Operations Runbook
- Operations Handbook
- ThemisCtl Admin Guide
- Pipeline E2E SOPs
- Deploy Overview
- Docker Overview
- Docker Hub README
- Helm Overview
- Packaging Overview
- Operator Overview
- Security Policy
- Production Hardening Checklist
- Security Hardening Guide
- Encryption Key Management
- Access Control Framework
- Zero Trust Policy
- API Authentication & Authorization
- HSM Production Setup
- PKCS11 Integration
- DSGVO / SOC2 Checklist
- Access Model Runbooks
- Access Model Dashboard
- Maturity Automation Runbook
- Access Review Automation
- Access Model Dashboard
- Access Model Runbooks
- Rights Revocation
- Dr Checklists
- Dr Testing
- Incident Response Playbook
- Incident Response Testing
- GPU Oom Recovery
- Grammar Debugging
- Metrics Scrape Troubleshooting
- Model Swap Procedure
- Quota Tuning
- Subagent Deployment
- Logging Configuration
- Content Model
- Crypto & Keys
- Feature Flags Reference
- Modular Architecture Roadmap
- Modularization Guide
- Module Architecture Index
- PostgreSQL Wire Protocol
- Query Scheduling
- Raft Consensus Design
- Resource Pooling
- Source Directory Guide
- Unified Access Model
- E1 001 Layered Retrieval Design
- E1 002 Ann Abstraction Strategy
- E1 003 Tensor Summary Types
- E1 004 Lora Package Distinction
- E1 005 Model Switch Compatibility
- E1 006 Federated Tensor Summaries
- E2 001 Evaluation Framework Design
- E2 002 Hardware Profile Strategy
- E2 003 Query Planner Routing Model
- E2 004 Approximation Governance Rules
- E2 005 Cross Layer Fallback Confidence Policy
- E3 001 Distributed Tensor Design
- E3 002 Manifest Coordination Strategy
- E3 003 Recovery And Erasure Choice
- E3 004 Tensor Fabric Infrastructure
- Contributing
- Contributing (root)
- Code of Conduct
- Support
- Maintainers
- CTest Guide
- Build Quick Reference
- Developer Wiki Index
- Build / Test / CI
- Module Index
- Branching Strategy
- Disabled Stub Policy
- Docs PR Policy
- GA Promotion Sign Off
- Github Milestones Setup
- Maturity Claim Verification Checklist
- Maturity Evidence Registry
- Merge Gate Bot Config
- Merge Gate Status Live
- Phase 1 Closure Report
- Phase Closure Policy
- Phase Dependency Graph
- Phase3 Enforcement Runbook
- Plugin Submodule Rollback
- PR Version Targeting
- PR Version Targeting Backfill
- Production Ready 2026 Delivery Plan
- Query Module Status
- Readme
- Release Promotion Gate Policy
- Release Validation Checklist
- Security Module 5671 Evidence Summary
- Sharding P6 Residual Risk Acceptance
- Sourcecode Compliance Governance
- Updates Development Status Sign Off
- Wave C Implementation Complete
- Blob Storage
- Cuda
- Ethics Ai
- Exporters
- Huggingface
- Image Analysis
- Importers
- RPC
- Scraper
- Themisdb Ai Watermark Detector
- User Storage Encrypted
- Chimera Architecture
- Chimera Future
- Chimera Readme
- Chimera Roadmap
- Covina Fastapi Ingestion Architecture
- Covina Fastapi Ingestion Future
- Covina Fastapi Ingestion Roadmap
- Vcc Base Architecture
- Vcc Base Future
- Vcc Base Roadmap
- Vcc Clara Ingestion Architecture
- Vcc Clara Ingestion Future
- Vcc Clara Ingestion Roadmap
- Vcc Veritas Architecture
- Vcc Veritas Future
- Vcc Veritas Roadmap
- 01 Hello World
- 02 Todo App
- 03 Contact Manager
- 04 Inventory System
- 05 Time Series Monitor
- 06 Graph Social Network
- 07 Vector Search Documents
- 08 Dms Erp System
- 09 Iot Sensor Network
- 10 Drone Image Analysis
- 11 Blog Wiki
- 12 Expense Tracker
- 13 Recipe Manager
- 14 Ecommerce Catalog
- 15 Event Management
- 16 Kanban Board
- 17 Crm
- 18 Realtime Chat
- 19 Recommendation Engine
- 20 Smart Home
- 21 Coding Platform
- 22 AQL Diagram Tool
- 23 Traveling Salesman
- 24 Moral Philosophy Debates
- API Versioning
- Distributed Sharding
- Feedback Plugins
- Geo
- Gnn
- Image Analysis
- Legal Lora Training
- LLM
- Lora Sync
- Migration
- Nlp
- Performance
- Railway
- Replication
- Rope Visualization
- Sample Product Config
- Security
- Client SDK Overview
- Quickstart
- Sdk Enhancements
- Sdk Implementation Summary
- Test Suite Readme
- Go
- Java
- Javascript
- Php
- Python
- Ruby
- Rust
- Typescript
- 01 Grundlegende Operationen
- 02 AQL Queries
- 03 Graph Daten
- 04 Multimodell Anwendung
- 01 Quickstart Guide
- 02 AQL Referenz Kurzuebersicht
- 03 Datenmodellierung Guide
- 04 Uebungsaufgaben
- 05 Best Practices Guide
- Training Documents
- Training Overview
- 01 Einfuehrung Und Uebersicht
- 02 Datenmodelle Und Architektur
- 03 AQL Abfragesprache
- 04 Installation Und Setup
- 05 Anwendungsbeispiele
- Training Presentations
- Dependencies Readme
- Processmonitor Readme
- Themis.admintools.shared Readme
- Themis.aqlquerybuilder Readme
- Themis.aqlquerybuilder Roadmap
- Themis.auditlogviewer Readme
- Themis.auditlogviewer Roadmap
- Themis.classificationdashboard Readme
- Themis.classificationdashboard Roadmap
- Themis.compliancereports Readme
- Themis.compliancereports Roadmap
- Themis.gisviewer.controlpanel Readme
- Themis.gisviewer.controlpanel Roadmap
- Themis.impactanalysisviewer Readme
- Themis.impactanalysisviewer Roadmap
- Themis.ingestiontool Readme
- Themis.ingestiontool Roadmap
- Themis.keyrotationdashboard Readme
- Themis.keyrotationdashboard Roadmap
- Themis.piimanager Readme
- Themis.piimanager Roadmap
- Themis.retentionmanager Readme
- Themis.retentionmanager Roadmap
- Themis.sagaverifier Readme
- Themis.sagaverifier Roadmap
- Themis.usbadmintool Readme
- Themis.usbadmintool Roadmap
- CI Readme
- CI Roadmap
- Compiler Diagnostics Readme
- Compiler Diagnostics Roadmap
- Completion Readme
- Copilot Ollama Router Readme
- Copilot Ollama Router Roadmap
- Gnn Readme
- Gnn Roadmap
- Rope Visualizer Readme
- Rope Visualizer Roadmap
- Tco Calculator Readme
- Tco Calculator Roadmap
- Tests Readme
- Tests Roadmap
- Themis Config Wx Readme
- Themis Docs Builder Readme
- Wikipedia Ingestion Readme