How jalani-dissanayake/traffic-flow-analyzer works
Traffic Flow Analyzer is a command-line application for selecting a survey date, loading that date’s junction CSV, calculating traffic statistics, saving a text report, and opening a two-junction hourly histogram. The runtime is orchestrated by main(), which calls validation, loading, analysis, reporting, and visualization. The README also documents speed-limit detection, peak-hour identification, and CSV-based date selection; these are implemented within the analyzer and loader. Relationships below are grounded in the shown source and README; the data files’ contents were not inspected.
Main entry points: main.py Analysis workflow · reporting.py Text reporting · run.py CLI launcher · data_loader.py CSV loader
Components 12
User interaction
- CLI launcher
run.py - Analysis workflow
src/traffic_flow_analyzer/main.py - Date validation
src/traffic_flow_analyzer/input_validation.py
Traffic processing
- CSV loader
src/traffic_flow_analyzer/data_loader.py - Survey CSV files
data - Traffic analysis
src/traffic_flow_analyzer/analysis.py
Results and visualization
- Text reporting
src/traffic_flow_analyzer/reporting.py - Saved results
outputs/results.txt - Histogram GUI
src/traffic_flow_analyzer/histogram.py
Other components
- User
- Tkinter GUI
- Terminal
Connections 13
- User → CLI launcher: starts
README.md - CLI launcher → Analysis workflow: calls
run.py - User → Date validation: enters date
src/traffic_flow_analyzer/input_validation.py - Analysis workflow → Date validation: requests date
src/traffic_flow_analyzer/main.py - Analysis workflow → CSV loader: loads CSV
src/traffic_flow_analyzer/main.py - CSV loader → Survey CSV files: reads
src/traffic_flow_analyzer/data_loader.py - Analysis workflow → Traffic analysis: analyzes rows
src/traffic_flow_analyzer/main.py - Traffic analysis → Analysis workflow: returns results
src/traffic_flow_analyzer/main.py - Analysis workflow → Text reporting: prints and saves
src/traffic_flow_analyzer/main.py - Text reporting → Terminal: prints results
src/traffic_flow_analyzer/reporting.py - Text reporting → Saved results: appends report
src/traffic_flow_analyzer/reporting.py - Analysis workflow → Histogram GUI: opens histogram
src/traffic_flow_analyzer/main.py - Histogram GUI → Tkinter GUI: creates GUI
src/traffic_flow_analyzer/histogram.py