Skip to content

OP#9542: Flow distance, travel time, and avg speed in road user assignments CSV#819

Open
Sebastian-Gerken wants to merge 3 commits into
mainfrom
feature/road-user-assignments-flow-metrics-tests
Open

OP#9542: Flow distance, travel time, and avg speed in road user assignments CSV#819
Sebastian-Gerken wants to merge 3 commits into
mainfrom
feature/road-user-assignments-flow-metrics-tests

Conversation

@Sebastian-Gerken

Copy link
Copy Markdown
Contributor

OP#9542 · #9542

Beschreibung des Anwendungsfalls

Beim Export der Straßennutzer-Zuordnungen (*.road_user_assignments.csv, u. a. CLI nach Events/Zählung) sollen zusätzliche, auswertbare Kenngrößen mit ausgegeben werden: die in der Flow-Konfiguration hinterlegte Streckenlänge (Meter), die Zeit zwischen Start- und Ziel-Sektionsereignis (Sekunden, basierend auf interpolierten Zeitstempeln wie bei der Flow-Zuordnung) sowie daraus abgeleitet die mittlere Geschwindigkeit (m/s), sofern Distanz gesetzt und die Zeitspanne größer 0 ist. Ohne konfigurierte Distanz bleiben die Felder für Distanz und Geschwindigkeit leer.

Backend

  1. Neue CSV-Spalten am Ende der bestehenden Spaltenfolge: flow_distance_m, travel_time_s, avg_speed_mps.
  2. Berechnung in RoadUserAssignmentBuilder / Hilfsfunktion compute_road_user_assignment_flow_metrics: travel_time_s aus end.interpolated_occurrence - start.interpolated_occurrence; avg_speed_mps = flow_distance_m / travel_time_s nur wenn Flow.distance is not None und travel_time_s > 0 (bei Distanz 0 und positiver Zeit: 0 m/s).
  3. Keine Anpassung separater GUI-Exportdialoge nötig (gleicher Export-Use-Case).

Tests / Testdaten

  1. Unit- und CSV-Roundtrip-Tests inkl. Randfälle (keine Distanz, Null-Dauer, Distanz 0).
  2. Testdaten (Testvideo-.otconfig/.otflow, sections_created_test_file.otconfig) mit nicht-trivialen Flow-Distanzen für manuelle/integrative Prüfung; tests/data_tmp/ in .gitignore.

Frontend

  • Keine UI-Änderungen; Distanz wird weiterhin wie bisher in der Flow-Bearbeitung gepflegt.

  • Export mit CLI gegen tests/data/Testvideo_*.otconfig geprüft (Spalten + plausible Werte).
  • Bestehende Consumer der CSV prüfen, ob neue Spalten am Ende akzeptabel sind.

Technische Fragen

  • Semantik „Distanz“: Es wird die konfigurierte Flow.distance (Meter) exportiert, keine entlang der Trajektorie gemessene Pixel-/Polylinien-Länge — konsistent mit der Annahme, dass reale Streckenlänge in der Konfiguration gepflegt wird.
  • Leere Zellen: None für fehlende Distanz/Geschwindigkeit führt im CSV zu leeren Feldern (read_csvNaN); Tests berücksichtigen das explizit.
  • Zeitbasis: interpolated_occurrence für Start/Ende, analog zu FlowCandidate.duration() in der Zuordnungslogik.

OP#9542 · #9542

Add flow_distance_m from Flow.distance, travel_time_s from interpolated
event times, and avg_speed_mps when distance and positive duration allow.
Extend tests and align CSV round-trip expectations with pandas NaN handling.

Made-with: Cursor
- Assert zero flow distance yields zero avg speed with positive duration
- CSV round-trip: blank cells for flow_distance_m and avg_speed_mps when
  distance is unset; verify via csv.reader and pandas isna

Made-with: Cursor
- Testvideo Süd→Nord flow: 32.5 m in .otconfig and .otflow (matches export)
- sections_created Test-Flow: 42.0 m (was null)
- gitignore tests/data_tmp/ for CLI/pytest scratch output

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant