mobility icon indicating copy to clipboard operation
mobility copied to clipboard

Modèle de radiation universel multi-motifs

Open Mind-the-Cap opened this issue 1 year ago • 27 comments

Pour l'instant, Mobility intègre un modèle de radiation universel uniquement mis en application pour les déplacements domicile-travail .

L'exemple de Millau montre comment utiliser ce modèle pour ces déplacements (sources : domiciles, sinks : emplois). Les paramètres alpha et beta peuvent être optimisés dans ce code. L'indice de similarité (SSI) de l'article de recherche est ainsi utilisé.

Les déplacements domicile-travail sont très importants, mais pour être plus fiable (et parce qu'il n'y a pas que le travail dans la vie ;), Mobility devrait intégrer d'autres motifs de déplacement. C'est ce sur quoi va travailler l'équipe ENSG (@JoannaGosse @TonyT71 @BaptisteD35 et @martaducamp).

La liste ci-dessous indique les autres motifs de déplacement. Tous ne sont pas d'égale importance... Idéalement tous ceux de 1 à 7 (voire 9.2 à 9.5) devraient être étudiés, mais les achats, les études et les loisirs apparaissent comme prioritaires.

image

Liste de tâches (à mettre à jour par l'équipe) :

  • [ ] Faire un état de l'art des études sur ces motifs de déplacement et des méthodes de comparaison existantes
  • [ ] Faire l'état des lieux des données existantes et de comment elles peuvent être utilisées
  • [ ] Prévoir l'architecture technique (classes, fonctions, examples et tests)
  • [ ] Intégrer le modèle de radiation avec le calcul de CO2 et l’échantillonnage (@Mind-the-Cap / @FlxPo)
  • [ ] Coder
  • [ ] Documenter
  • [ ] Faire un billet de blog explicatif sur mobility-team.github.io

Mind-the-Cap avatar Feb 13 '24 16:02 Mind-the-Cap

État de l'art

À compléter

Mind-the-Cap avatar Feb 13 '24 16:02 Mind-the-Cap

Bienvenue à toutes et tous sur le projet ! le package étant en construction nous avons encore pas mal d'éléments pas forcément très clairs (et probablement de bugs à droite à gauche). N'hésitez pas à indiquer ici ce qui vous bloque, que ce soit des questions de compréhension ou de code.

FlxPo avatar Feb 13 '24 19:02 FlxPo

Bonjour,

J'aurais un petit questionnement concernant les fichiers de format Parquet, je n'arrive tout simplement pas à comprendre leurs contenus, ni même les titres des colonnes?

Bonne journée

TonyT71 avatar Mar 06 '24 13:03 TonyT71

@TonyT71 a priori on n'a pas besoin de comprendre Parquet, juste d'encoder et de décoder facilement ce format ! Est-ce que c'est bloquant pour un point ?

Mind-the-Cap avatar Mar 06 '24 14:03 Mind-the-Cap

Bonjour,

Je suis actuellement entrain d'étudier le code et j'ai une interrogation en ce qui concerne la valeur des coordonnées attribuée aux communes. En effet, les coûts ne sont pas cohérents par rapport au distance réelles (y compris dans l'ordre des communes les plus proches, ce n'est donc pas un problème d'échelle). Savez dans quel référentiel sont les coordonnées dans le fichier csv : donneesCommunesFrance.csv (mobility\data\insee\territories).

Merci, bonne journée

BaptisteD35 avatar Mar 06 '24 15:03 BaptisteD35

J'essayais de comprendre quelles étaient les données que vous aviez déjà inclus dans la librairie et en l'occurence les données sur la scolarité, je voulais donc savoir quelles étaient ces données: Une base de données contenant la localisation des établissements ou la carte scolaire ou les déplacements réels d'une population sondée par exemple.

TonyT71 avatar Mar 06 '24 15:03 TonyT71

@BaptisteD35 de mémoire, c'est du Lambert-93. Est-ce que tu aurais un exemple de ces coûts non cohérents ? Merci !

@TonyT71 les données Parquet viennent de ce jeu de données https://www.data.gouv.fr/fr/datasets/denombrement-des-equipements-commerce-services-sante-en-2021/#/community-reuses (dont je vais améliorer les métadonnées) et donc de la base permanente des équipements de l'INSEE, décrite ici https://www.insee.fr/fr/metadonnees/source/operation/s2077/presentation

Mind-the-Cap avatar Mar 06 '24 15:03 Mind-the-Cap

@Mind-the-Cap J'ai l'impression qu'il s'agit d'une approximation de la valeur qui a pour conséquence une modification des distance notamment pour les communes proches. En cherchant un peu, j'ai par exemple trouvé deux communes avec les mêmes coordonnées dans le csv.

BaptisteD35 avatar Mar 06 '24 15:03 BaptisteD35

@BaptisteD35 Intéressée par l'exemple précis ! Après, pour les communes très proches, les poids ont normalement beaucoup plus d'influence que les distances, à voir s'il y a une erreur ou si c'est juste lié au modèle.

Mind-the-Cap avatar Mar 06 '24 17:03 Mind-the-Cap

QGIS1 QGIS2 QGIS3 Bonjour, Veuillez trouver ci-joint des captures d'écran illustrant des exemples d'imprécisions issues du fichier CSV donnant les coordonnées des communes. Dans la première image, on peut voir que le point sélectionné sur la carte (en rouge) correspond à deux communes (fenêtre de droite). On retrouve le même problème dans la deuxième image avec trois communes. Sur la troisième image, on peut voir que la commune sélectionnée est décalée par rapport à son emplacement sur la carte (OpenStreetMap) et les trois communes de l'image 2 se retrouvent intercalées entre les données du CSV et le placement réel.

BaptisteD35 avatar Mar 07 '24 15:03 BaptisteD35

Bonjour @Mind-the-Cap, @FlxPo, Nous voudrions commencer à penser un algorithme de répartition des élèves dans les écoles. Dans les données qui sont chargées dans le fichier get_insee_data.py, nous ne trouvons pas des données relatives à la "population écolière". Nous nous demandons s'il existe déjà dans la bibliothèque des données sur la répartition des personnes scolarisées, ou si nous devons les chercher.

Merci pour votre réponse.

martaducamp avatar Mar 18 '24 13:03 martaducamp

A propos du fichier schools.parquet, est ce qu'il est écrit dans le fichier 'permanent_db_facilities.py', et si oui, est ce qu'il y a un moyen de retrouver la source pour pouvoir accès à tous les attributs différents du fichier initial. Il nous faudrait dans l'idéal des données sur les écoles avec le type d'établissement et la fréquentation par école. J'ai l'impression que pour l'instant la structure des données ne donne que par ville la fréquentation totale des établissements scolaire et le motif de déplacement 1.4.

martaducamp avatar Mar 18 '24 14:03 martaducamp

L'INSEE publie une estimation des mobilités scolaires de commune à commune, ici. Vous pourriez reprendre la logique de la fonction prepare_job_active_population pour créer un fichier parquet qui contient le nombre d'élèves au lieu d'habitation et au lieu d'études, par commune.

Le fichier schools.parquet est créé par la fonction prepare_facilities du fichier permanent_db_facilities.py. La source utilisée par ce script est stockée sur data gouv ici. Il s'agit du dénombrement des équipements de l'INSEE. Le nombre d'élèves est calculé avec des hypothèses de nombre d'élèves par type d'établissement, contenues dans ce fichier.

FlxPo avatar Mar 18 '24 17:03 FlxPo

Bonjour @FlxPo, Merci pour vos précisions. Concernant la fréquentation des établissements scolaires, nous avons trouvé une base de donnée qui donne l'effectif par établissement ici.

Est-ce qu'il vaut mieux privilégier l'exactitude statistique et utiliser cette base de données, ou est-il préférable de limiter la quantité de données à utiliser et prendre les estimations que vous nous avez fournies ?

martaducamp avatar Mar 20 '24 09:03 martaducamp

Bonjour ! Bien joué pour cette base, personnellement je suis en faveur de l'utiliser car il vaut mieux favoriser la précision statistique. On n'a pas peur d'augmenter le nombre de données utilisées tant qu'on peut les récupérer automatiquement, ce qui est le cas de cette base qui m'a l'air mise à jour très fréquemment !

Mind-the-Cap avatar Mar 20 '24 09:03 Mind-the-Cap

@martaducamp tu as mis tes modifications sur la branche stage-2-model, est ce que vous pourriez vous créer une branche à part pour vos travaux ?

@Mind-the-Cap tu saurais faire un git revert ou reset pour revenir à mon dernier commit ?

Deuxième point l'idée est de ne plus stocker de données de taille importante dans le package directement mais de les récupérer directement depuis la source, ou de les stocker sur data gouv (si l'url est instable comme les données INSEE). Puis de les télécharger lors de la première utilisation. Vous pouvez reprendre la classe CityLegalPopulations pour voir comment faire.

FlxPo avatar Mar 20 '24 17:03 FlxPo

@martaducamp j'ai fait un git revert pour annuler les modifications que tu as mises sur la branche stage-2-model.

FlxPo avatar Mar 22 '24 09:03 FlxPo

@FlxPo Merci, et pardon pour cette erreur, on galère encore pas mal avec Git, mais on va faire plus attention maintenant. On pensait que stage-2-model était notre branche.

martaducamp avatar Mar 27 '24 08:03 martaducamp

Pas de soucis @martaducamp, je galère également assez souvent avec Git !

image

FlxPo avatar Mar 27 '24 08:03 FlxPo

Bonjour,

Nous nous posons une question à propos de l'utilisation des données de l'enquête mobilité https://www.insee.fr/fr/statistiques/7637665?sommaire=7637890 . Nous pensons que pour obtenir une estimation cohérente d'une mobilité (dans le cadre des études) d'une ville à l'autre, il suffit de multiplier le nombre de lignes de l'enquête qui concerne cette mobilité exacte par la somme des poids de ces lignes. Est-ce que cela vous paraît cohérent? Nous pensons que c'est le bon calcul mais nous préférons nous en assurer avec vous.

Bonne journée

TonyT71 avatar Mar 27 '24 11:03 TonyT71

Bonjour,

Pour moi il faut juste faire la somme des poids (IPONDI), pas besoin de multiplier par le nombre de lignes. Ou alors on peut multiplier le nombre de lignes par la moyenne des poids, ça revient au même.

Mind-the-Cap avatar Mar 27 '24 12:03 Mind-the-Cap

D'accord, merci beaucoup!

TonyT71 avatar Mar 27 '24 12:03 TonyT71

Re-bonjour,

Nous avons trouvé des données de carte scolaire sur toute la France pour les collèges. Nous pouvons donc faire une modélisation de la carte scolaire pour toute la France, mais nous ne savons pas trop où le coder. Le fichier 'radiation_departements' a l'air d'être fait pour afficher les modèles. Cependant, il a l'air d'être construit entièrement autour du seul modèle de radiation universel. Est-ce que vous nous recommandez de coder d'autres fonctions, ou de les adapter pour les rendre flexibles aux différents modèles que nous allons tester ?

martaducamp avatar Mar 27 '24 15:03 martaducamp

Bonjour @martaducamp, désolée réponse tardive. Quand vous allez utiliser le modèle de radiation universel pour un nouveau motif, je vous conseille de modifier sa fonction pour ce nouveau motif. Pour de nouveaux modèles (carte scolaire, au plus proche), je vous conseille de créer une nouvelle fonction pour chaque modèle. Des traitements de données pourront certainement être mutualisés entre ces différentes fonctions, n'hésitez pas à en faire de nouvelles fonctions dans le fichier (pour mutualiser).

Mind-the-Cap avatar Apr 08 '24 06:04 Mind-the-Cap

Bonjour,

En parcourant le code de Mobility, je me suis aperçue qu'il y avait de temps en temps des variables qui étaient non utilisées comme dans la fonction compare_insee_and_model du fichier radiation_department.py. Peut être que c'est normal étant donné que la bibliothèque est en cours de rédaction mais si c'est involontaire, je voulais le signaler.

JoannaGosse avatar Apr 29 '24 08:04 JoannaGosse

literature_review.pdf

Bonjour, avec un peu de retard, voici l'état de l'art. Je l'avais mis dans le repository, mais je n'aurais peut-être pas dû. Je peux le retirer si jamais ça poser des porblème au moment de merge les branches.

A propos du contenu du l'état de l'art, n'hésitez pas à me faire des remarques, je peux le retravailler.

martaducamp avatar May 17 '24 13:05 martaducamp

Bonjour @martaducamp et merci beaucoup !

Bravo pour cet état de l'art, honnêtement je ne vois rien à retravailler. Il donne un bon premier historique de la modélisation des déplacements et de très bonnes pistes pour les flux scolaires (y compris la référence la plus récente). Merci, c'est très utile !

Mind-the-Cap avatar May 20 '24 13:05 Mind-the-Cap