Un tour dans le passé

Vous vous cherchez une activité à faire après la fin de la dernière exposition au Musée des beaux-arts et vous commencez à être fatigués des hordes de touristes? Bonne nouvelle je vous ai préparé un tour historique des quartiers centraux de Québec qui vous permettra d’en apprendre plus sur l’histoire de la ville et des gens qui l’ont forgée. En plus, je vous présente un tour par quartier qui soit le plus court possible pour que vous ayez le temps de tout voir.

Cliquez sur l’icône en haut à droite pour afficher les différents tours par quartier: Saint-Jean-Baptiste, Saint-Roch, le Vieux-Québec et enfin les trois quartiers ensemble. Si vous cliquez sur les noeuds, vous verrez le nom de la personne ayant residé à cette adresse. Les arrêtes permettent de voir la distance à parcourir ainsi que l’adresse précédente et celle qui suit.

Si vous préférez la voir en plein écran.

Vous avez peut-être remarqué que la somme des distances des trois tours était légèrement supérieure à la distance totale du grand tour? C’est tout à fait normal. Pour déterminer le grand tour optimal, on peut choisir la prochaine destination comme on l’entend alors que pour les plus petits tours on doit rester dans le même quartier. En gros, si vous êtes game de marcher près de 10 kilometres en 1 fois, vous vous épargnez 2897+2912+4262-9686=385 mètres par rapport aux trois tours parcourus un à la fois.


Pour accompagner votre visite, je vous suggère de consulter le site de la ville avec des rubriques explicatives sur chacune des personnes. Certaines sont même accompagnées de segments audio:


Une analyse un peu inutile

Bon on pourrait s’arrêter là, mais tant qu’à avoir un peu de données sous la main, pourquoi ne pas faire une analyse additionnelle?

Comme l’illustre la figure suivante, il y a considérablement plus de plaques dans Saint-Jean-Baptiste et le Vieux-Québec que dans Saint-Roch. Les gens de la Basse-Ville ont assurément eu un impact considérable sur l’histoire de la ville. Il est donc un peu étrange de constater une telle différence. Il s’agit peut-être simplement de contraintes budgétaires.

Le graphique illustre cependant que le nombre de plaques par rue est plus élevé dans Saint-Roch comparativement au Vieux-Québec, même si le Vieux-Québec en possède beaucoup plus. Les rues sont peut-êtres plus longues dans Saint-Roch que dans le Vieux-Québec?

Plaques par quartier

Plaques par quartier

Cette histoire de ratio lié à la longueur des rues semble plausible. On voit notamment que la rue Saint-Jean (qui est très longue) a un nombre très élevé de plaques. On observe également qu’il s’agit de la seule rue ayant des plaques qui traverse plus d’un quartier. Pour votre information, la valeur manquante à la fin est due à une adresse dans Saint-Roch qui tombe sur un coin de rue et que Google n’a pas trop apprecié.

Plaques par rues

Plaques par rues

La distance moyenne des rues avec plaques est effectivement de 330.53 mètres dans le Vieux-Québec, de 749.81 mètres dans Saint-Jean-Baptiste et de 853.21 mètres dans Saint-Roch. On peut le constater rapidement en regardant cette carte du réseau routier où les rues avec plaques sont coloriées selon le quartier.


Rues avec plaques dans le réseau routier

Rues avec plaques dans le réseau routier

Vous avez peut-être remarqué que certaines rues noires sont situées dans le Vieux-Québec. C’est à cause du fait que la ville a classifié certaines rues comme l’avenue Wilfrid-Laurier près des plaines d’Abraham comme une rue de Saint-Jean-Baptiste. Par ailleurs, la rue Aberdeen (en noire en bas à gauche de la carte) a également été classifiée comme une rue de Saint-Jean-Baptiste par la ville. Cependant, il est normal qu’elle ne se retrouve pas dans un polygône de couleur, car elle est effectivement dans Montcalm.

Pour conclure, voici un dernier graphique qui illustre qu’effectivement il semble y avoir une relation croissante entre la longueur d’une rue et le nombre de plaques commémoratives sur celle-ci.

Relation observée entre la longueur de la rue et le nombre de plaques

Relation observée entre la longueur de la rue et le nombre de plaques


Quelques détails techniques

Géocodage

La première partie du projet a consisté à obtenir les adresses des plaques sur le site de la ville. Il faut ensuite associer une longitude/latitude à chacun de ces points. J’ai utilisé un bout de code qui traînait sur internet ainsi que quelques crédits de mon api Google (le code est dans un autre projet). 1

Calcul de la distance entre les points

Attention: J'ai utilisé le package geosphere::distm en R pour le calcul des distances.

Il s’agit donc de tours optimaux si on considère la distance à vol d’oiseau. À moins d’avoir des habiletés surnaturelles, vous ne pourrez pas emprunter le chemin suggeré exactement. Par contre il suit suffisamment bien les artères pour demeurer utile. 2

TSP

Le TSP (traveling salesman problem) est résolu avec le package TSP en R qui fournit grosso modo une interface au solveur concorde

Attention: Si vous utilisez le solveur concorde, alors nul besoin d'utiliser les nombreuses heuristiques offertes par le package TSP.

Si vous voulez plus de détails, alors jetez un coup d’oeil à mon gitlab. Âmes sensibles s’abstenir, ce code ne va pas révolutioner votre vie.

Calcul de la longueur des rues

J’ai initialement utilisé une technique assez naïve qui consiste à gécoder à la main les différentes intersections définissant une rue. Afin de me faciliter la tâche, j’ai utilisé une distance à vol d’oiseau comme pour le calcul de la distance entre les plaques. J’ai donc implicitement supposé que les rues étaient des lignes droites. Cette hypothèse n’est pas trop forte, car plusieurs rues, notamment celles dans le Vieux-Québec, sont très petites alors que la plupart dans Saint-Jean-Baptiste et Saint-Roch sont relativement rectilignes.

J’ai quand meme validé mon approche en comparant rapidement avec les données d’open street maps (osm) téléchargées à l’aide du package osmnx en Python. Ce package permet de télécharger la carte du réseau routier et de le represénter comme un graphe dont les noeuds sont des intersections avec des longitudes et latitudes. Chaque arrête possède un attribut indiquant à quelle rue le segment appartient ainsi qu’une distance. Il est donc possible de sommer les distances des segments par rue pour approximer le total. Le graphique suivant illustre que l’approche manuelle est plus ou moins en accord avec celle d’open street maps.

Évidemment, il n’est pas évident de trouver toutes les rues dans le graphe créé par le package (ce qui explique certaines distances a 0). Par ailleurs, le graphe a tronqué certains tronçons. C’est suffisant pour les besoins de l’exercice, mais du travail demeure à faire.

Comparaison des deux méthodes pour le calcul des longueurs de rue

Comparaison des deux méthodes pour le calcul des longueurs de rue

Projets semblables

Je me suis inspiré de ce projet qui a permis d’établir une tournée optimale afin de visiter tous les châteaux du Luxembourg. Je vous le conseille si vous voulez comparer le code ainsi que les différentes heuristiques disponibles dans le package TSP.


  1. La ville dispose déjà de ces données, comme en témoignent ces cartes interactives

  2. Si vous voulez réellement le meilleur parcours, alors vous devrez utiliser quelques crédits additionnels de l’api de google et calculer la distance entre chaque paire de plaques.