-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implémentation du covoiturage #120
Comments
Peux tu récupérer le code de la branche La dernière version de la fonction d'utilité est ici, et prend la forme : Tu devrais donc pouvoir ajuster travel_distance et travel_time pour obtenir ce que tu veux. Comme discuté ensemble on pourrait aussi faire en sorte que le calcul d'utilité soit géré de manière indépendante pour chaque mode, mais ça peut être dans un deuxième temps. |
J'ai codé CarpoolTravelCosts sur la branche modus-geneve, mais je ne peux pas la push car je n'ai pas les droits (du coup GitHub me propose de faire un fork mais ca ne va pas si ?). Comment peut on faire (notamment pour que tu vois mon code en cas de besoin). |
Quelques points en parcourant ton code :
|
J'ai commit ces changements et push la branche (et publié une branche carpool-run dans mobility-grand-geneve), par contre ca s'arrete toujours sur public_transport_travel_costs (il ne trouve pas le fichier parquet, et en fait il ne trouve pas le fichier : De maniere générale j'ai encore du mal a saisir le fonctionnement global des fichiers dans le cache : par exemple si je veux créer une nouvelle instance d'une classe, je dois supprimer les fichiers deja presents dans mon dossier data_geneve ? (le cas echeant quand je fais un multimodal_travel_costs_carpool, ca va recuperer les fichiers dans le cache et pas en créer un nouveau non ? Pareil si je fais un transport_zones_test ?). |
Le cache sert à ne pas recalculer tout à chaque fois que tu executes ton script. Chaque classe de type Asset (TransportZones par exemple) stocke ses résultats lors de la première execution, résultats qui sont ensuite utilisés pour les runs suivants avec les mêmes inputs. Si tu changes les inputs, la différence est détectée automatiquement et le calcul est relancé. Ce fonctionnement se propage de manière recursive pour être sur que toute la chaine de calcul a généré les données nécessaires et qu'elles sont enregistrées : MultiModalTravelCosts dépend de TravelCosts par exemple. Tu peux forcer un recalcul en supprimant les fichiers dans le cache. Il y a deux type de fichiers, ceux qui sont générés par Mobility et utilisés quelque soit les zones de transport (données du recensement INSEE par exemple), et ceux qui sont spécifiques à un projet (les données des couts de transport par exemple). Là dans ton log il y a visiblement un bug dans le script R prepare_gtfs_router.R. Peut être un fichier GTFS qui ne passe pas, mais j'ai un peu de mal à comprendre pourquoi ça ne marche plus d'un coup ? |
Merci pour les explications. Pour savoir si je comprends bien, si je fais ca :
J'obtiendrai Pour le soucis avec prepare_gtfs_router.R, c'est bizarre parce que je n'ai pas modifié ce qui touche aux gtfs. |
Oui tu obtiendras deux objets python différents, mais qui pointeront vers les même fichiers parquet. Je viens de faire un certain nombre de modifications sur la branche add-switzerland, notamment pour mieux gérer les installations de packages R. Après réinstallation complète de Mobility, j'ai effectivement le même problème que toi, je vais regarder ce qui cloche. |
Je pense que j'ai trouvé. Les temps de transport pour les transports en commun sont évalués pour une journée donnée, qui est sélectionnée comme celle ayant le maximum de lignes en opération. Cela ne fonctionnait pas quand plusieurs jours avaient le même nombre de lignes en opération. Cela devrait être corrigé dans la dernière version de la branche add-switzerland, peux tu ressayer ? Pour info en mode debug j'ai ajouté des logs indiquant les arguments envoyés aux scripts R, ce qui permet ensuite de debugger plus facilement dans RStudio (il suffit de positionner |
Merci. N'y a t il pas un pb avec ce que tu as rajouté pour les erreurs dans R ? J'obtiens cette sortie (que ce soit avec le run.py ou small_run.py) (je précise que debug=True ici) : |
Trois pas en avant, deux pas en arrière ! Désolé. Je pense que le problème est lié au changement de stratégie d'installation en cours de discussion avec @Mind-the-Cap dans cette issue. Je viens de faire un push avec un fix potentiel, peux tu reessayer ? Sinon il me semble que si tu as déjà les packages installés, un fix très temporaire serait de commenter la ligne qui lance le script d'installation. |
@matt-gau je viens de faire un push sur |
J'ai réussi au début à faire tourner le code, mais pas depuis que j'ai rajouté le covoiturage comme on en avait parlé dans WorkDestinationChoiceModel et MultimodalTravelCosts, et j'ai modifié le fichier run.py également (j'ai commit et push mes changements dans carpool et carpool-run). Je ne sais pas pourquoi, il ne trouve pas le fichier ...-work_utility_by_od_and_mode.parquet (cf la console erreur-console.txt). Quand je tente de débuguer je vois qu'il ne passe meme pas dans create_and_get_asset() de DestinationChoiceModel, alors que je change le lambda de WorkDestinationChoiceModel et qu'il devrait donc recalculer les utilités et donc y repasser non ? De maniere generale quand il ne trouve pas un fichier parquet, il faut remonter avant la création de celui ci c'est bien ca ? Merci |
Ce fichier est créé ici : https://github.com/mobility-team/mobility/blob/carpool/mobility%2Fdestination_choice_model.py#L101. Donc il faudrait voir pourquoi le code n'arrive pas jusqu'ici ? |
Il est aussi possible de forcer le recalcul systématique en modifiant la classe Asset ici : https://github.com/mobility-team/mobility/blob/add-switzerland/mobility%2Fasset.py#L83. Il faut remplacer le test self.is_update_needed() par True pour que la méthode create_and_get_asset soit appelée à chaque fois. Par contre ça forcera le recalcul d'absolument tout ce que Mobility a déjà pré calculé ! |
C'etait quelque chose qui bloquait dans ma classe CarpoolTravelCosts et qui empechait le code de tourner jusqu'a création du fichier effectivement... C'est bon maintenant merci ! |
Implémenter le covoiturage en se basant sur le mode TIM
The text was updated successfully, but these errors were encountered: