Simulateur de trafic routier (routes, véhicules, réseau, analyse)
Project description
simulateur_trafic_gh — Simulateur de Trafic Routier
Un simulateur Python modulaire pour modéliser et analyser le trafic routier à travers des routes, véhicules, et réseaux routiers.
Ce projet est conçu pour des fins pédagogiques et expérimentales — facile à étendre et à intégrer dans d’autres applications.
Installation
pip install simulateur_trafic_gh
Ou depuis le code source :
git clone https://github.com/YosraGhanmi/simulateur_trafic_gh.git
cd simulateur_trafic_gh
pip install .
Structure du package
simulateur_trafic_gh/
├── core/
│ ├── simulateur.py # Boucle principale de simulation
│ ├── analyseur.py # Calculs de statistiques (vitesses moyennes, congestion)
├── models/
│ ├── vehicule.py # Classe représentant un véhicule
│ ├── route.py # Classe représentant une route
│ ├── reseau.py # Ensemble de routes et de véhicules
├── IO/
│ ├── affichage.py # Affichage console et visualisation
│ ├── export.py # Exportation des résultats JSON
├── data/
│ ├── config_reseau.json # Exemple de configuration
├── exception.py # Gestion des erreurs personnalisées
└── main.py # Exemple d'exécution
Exemple d’utilisation
from simulateur_trafic_gh.core.simulateur import Simulateur
# Charger un réseau depuis un fichier JSON
simu = Simulateur(fichier_config='data/config_reseau.json')
# Lancer la simulation pendant 60 tours (delta_t = 60 secondes)
simu.lancer_simulation(n_tours=60, delta_t=60, afficher=True, export_path='resultats.json')
print("Simulation terminée ! Résultats enregistrés dans resultats.json")
Fonctionnalités principales
✅ Chargement automatique du réseau routier via un fichier JSON
✅ Mise à jour dynamique de la position et vitesse des véhicules
✅ Analyse statistique des vitesses moyennes et zones congestionnées
✅ Export des résultats en JSON
✅ Gestion d’erreurs robustes (fichier manquant, route pleine, etc.)
Exemple de configuration JSON
{
"routes": [
{"nom": "Route1", "longueur": 500, "limite_vitesse": 15},
{"nom": "Route2", "longueur": 300, "limite_vitesse": 12}
],
"vehicules": [
{"id": "V1", "route": "Route1", "vitesse": 10, "position": 0},
{"id": "V2", "route": "Route2", "vitesse": 12, "position": 0}
]
}
Optimisation et Performance
Le projet peut être optimisé grâce à :
- Profilage (cProfile) pour identifier les goulots d’étranglement
- Numba pour accélérer les boucles critiques
- Cython pour compiler certaines classes Python en C
Auteur
Yosra Ghanmi
📧 yosraghanmi23@gmail.com
💻 GitHub : YosraGhanmi
Licence
Distribué sous licence MIT — libre d’utilisation, de modification et de distribution.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simulateur_trafic_gh-1.0.2.tar.gz.
File metadata
- Download URL: simulateur_trafic_gh-1.0.2.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
956305b858ff5890b6879110d510cba8b4e8ff1a7dd057cafc3fffd881ef604c
|
|
| MD5 |
6f39dd2dfe0cbf535661e5a19401ff42
|
|
| BLAKE2b-256 |
80d57bbb46b74bd9f6ad1652d283d3c3619adb18071c0bdddecf01bf1610d790
|
File details
Details for the file simulateur_trafic_gh-1.0.2-py3-none-any.whl.
File metadata
- Download URL: simulateur_trafic_gh-1.0.2-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90cff9b47691a7ff794bd073aef3ccb3a7ccb6301e1d96320de32b70844079f4
|
|
| MD5 |
696a82ce8b7b0d23cd7ff0c5414873cc
|
|
| BLAKE2b-256 |
e430acfc1340eb8d44259e7b6a9efde00400c6a0d09ea6d61d2889d7bb97a5f1
|