A Python-based toolkit for traffic signal control in VISSIM traffic simulation environments.
CorridorVissim provides automated scripts to manage traffic signal timing and coordination within VISSIM simulation models. This project enables dynamic signal control, volume management, and coordinated traffic operations across corridor networks.
- Signal Control: Automated traffic signal timing management and optimization
- Signal Coordination: Coordinated signal timing across multiple intersections
- Volume Management: Import and adjust traffic volumes for realistic scenario testing
- VISSIM Integration: Direct integration with VISSIM simulation software
- Flexible Configuration: Configurable parameters for different scenario requirements
vissim/
├── control_signal.py # Signal control and coordination logic
├── run_vissim.py # Main VISSIM simulation runner (sequential)
├── run_vissim_threaded.py # Threaded version using ThreadPoolExecutor
├── run_vissim_queueworkers.py # Threaded version using worker queue pattern
├── adjust_volume.py # Traffic volume adjustment utilities
├── import_volume.py # Volume data import functionality
├── config_vissim.py # VISSIM-specific configuration
├── utils.py # Common utility functions
└── logger.conf
- Python 3.9+
- VISSIM (traffic simulation software)
- Clone the repository
- Configure settings in
config.pyandvissim/config_vissim.py - Run simulations using the provided scripts
- config.py: Main project configuration
- vissim/config_vissim.py: VISSIM-specific parameters
Standard implementation with coordination running on the main thread:
python vissim/run_vissim.pyParallel coordination logic using thread pools. Adjust max_workers parameter in the script for your CPU configuration:
max_workers=2ormax_workers=3and so on...
python vissim/run_vissim_threaded.pyPersistent worker threads using producer-consumer pattern. Adjust num_workers similarly to ThreadPoolExecutor version:
python vissim/run_vissim_queueworkers.pyUse import_volume.py to import traffic volume data and adjust_volume.py to configure volumes for different scenarios:
python vissim/import_volume.py # Import volume dataFor detailed usage instructions, refer to individual script docstrings and configuration files.