Dans cette analyse exploratoire des données, nous avons examiné la base de données data.nantesmetropole.fr contenant des informations sur les aménagements cyclables dans la ville de Nantes. Nous avons utilisé Python et les bibliothèques Plotly pour visualiser et présenter les résultats.
En 2020/2021, un nouvel inventaire exhaustif des aménagements cyclables sur le territoire de Nantes Métropole a été réalisé. Cet inventaire induit des changements dans la représentation cartographique des objets apportant plus de précision sur les lignes cyclables : la représentation géométrique se fait désormais sur l’axe individuel de chaque aménagement cyclable (une bande cyclable de chaque côté de la chaussée donne lieu à deux objets linéaires), un attribut sur chaque objet renseigne sur la spécificité d’un aménagement cyclable bidirectionnel ou non. Les données sont issues d’un inventaire exhaustif réalisé en 2020 et 2021 sur les espaces ouverts à la circulation publique (y compris les pistes cyclables dédiées).
Données et Variables
Après avoir installé les bibliothèques nécessaires, nous importons et chargeons les données dans un cadre de données Pandas.
pip install pandas plotly
import pandas as pd #Gestion de données
import matplotlib.pyplot as plt #Visualisation de données
import geopandas as gpd #Gestion données spatiales
import plotly.express as px
cyclables_nantes = pd.read_csv('cyclables_nantes.csv', sep=';')
Explorer et préparer les données
Avant de réaliser des visualisations, il est important d’explorer et de préparer les données selon les besoins. Nous effectuons des opérations pour filtrer, compter, grouper et transformer les données en fonction de leur type. Il est également nécessaire de vérifier l’absence de données nulles et de sélectionner les colonnes ou les variables avec lesquelles nous allons travailler.
cyclables_nantes.info()
cyclables_nantes.dtypes
cyclables_nantes.isnull().sum()
Tout le code est disponible dans un lien vers Github à la fin de la publication.
A partir de la base de données, nous filtrons les variables suivantes :
- Municipalité : la municipalité à laquelle appartient la piste cyclable.
- Latitude : coordonnées de latitude de la piste cyclable.
- Longitude : coordonnées de longitude de la piste cyclable.
- Géométrie : Informations supplémentaires sur la géométrie de la piste cyclable.
- Type de voie : le type de voie cyclable, comme la bande cyclable, la piste cyclable, etc.
- Longueur : La longueur de la piste cyclable en mètres.

La classification des différents aménagements cyclables comporte 8 objets :
- les bandes cyclables : espace réservé exclusivement aux cyclistes sur la chaussée, séparé de la circulation motorisée par un simple marquage (et non par un séparateur référencé comme caractéristique d’une piste cyclable). L’espace est généralement délimité par une bande de peinture. Le marquage de la bande cyclable est identifiable sur le terrain par une figurine cycliste et/ou des chevrons.
- Les pistes cyclables unidirectionnel ou bidirectionnel : chaussée exclusivement réservée aux cycles à deux ou trois roues. Elle peut être unidirectionnelle ou bidirectionnelle. Sur le terrain, une piste cyclable se repère par le fait qu’elle est située hors de la partie circulée par l’ensemble des autres usagers (en particulier voitures) et est séparée de cette voie par un de ces types de séparateurs :
- d’une zone neutralisée par deux lignes continue
- d’un site propre séparé physiquement de la voie principale
- d’éléments en élévations (bordures, haies…)
- d’éléments en dénivellations (lorsque la piste cyclable est à hauteur du trottoir ou décalé)
- de stationnements
- d’espaces verts
- Double sens cyclable : Le double-sens cyclable, ou « D.S.C. », n’est pas tant un objet qu’un concept ou une caractéristique portée par une rue. Une rue dite « en double-sens cyclable » est à double sens de circulation — ou bidirectionnelle —, mais un de ces sens est réservé aux seuls cyclistes. Le double-sens cyclable, ou « D.S.C. », n’est pas tant un objet qu’un concept ou une caractéristique portée par une rue. Une rue dite « en double-sens cyclable » est à double sens de circulation — ou bidirectionnelle —, mais un de ces sens est réservé aux seuls cyclistes. On prêtera attention à sa dénomination et, bien que l’expression contre-sens cyclable ait pu être régulièrement utilisée, on évitera désormais son emploi afin d’éviter toute confusion avec la circulation à contre-sens qui est une infraction.
- Les voies vertes : voie exclusivement réservée à la circulation des véhicules non motorisés, des piétons et des cavaliers. Elle se caractérise par la présence, à chaque extrémité des panneaux C115 en entrée et C116 en fin de voie verte
- Les couloirs bus aménagé : dans les couloirs bus, il peut être matérialisé un aménagement qui combine des figurines cyclistes et un marquage de guidage type bande cyclable largement espacé. Franchissement supérieur : sur les ponts, les emprises sont souvent limitées et obligent cette cohabitation sur un même espace.
- Les chaucidou : Un chaucidou, ou chaussée à voie centrale banalisée, est un aménagement particulier d’une chaussée lorsqu’il est impossible, pour des questions de largeur disponible, d’y tracer des bandes cyclables. On crée alors une voie centrale de circulation générale, banalisée car elle accueille la circulation dans les deux sens. La largeur restante est octroyée à des accotements revêtus où peuvent circuler piétons et cyclistes et permettent aux véhicules motorisés de se croiser en empiétant sur ces espaces.
- Autres ou figurines : On ne considère pas que les figurines cyclistes soit un aménagement cyclable en tant que tel sauf si elles servent à marquer la présence d’un double sens cyclable. La qualification « Autres » a servi lors de l’inventaire à saisir les spécificités de certains aménagements qui ne correspondent pas aux types clairement définis.

Questions d’Analyse
À partir de cette base de données, nous nous sommes posé les questions suivantes et y avons répondu à l’aide de visualisations interactives :
- Combien y a-t-il de voies cyclables dans chaque commune ?

via_count_municipio = cyclables_nantes_ok.groupby('commune').size().reset_index(name='Cantidad')
fig = px.bar(via_count_municipio, x='commune', y='Cantidad',
title='Combien y a-t-il de voies cyclables dans chaque municipalité ?')
fig.update_layout(xaxis_title='Commune', yaxis_title='Nombre de pistes cyclables')
fig.show()
2. Quelle est la répartition des types de voies cyclables ?

via_count_tipo = cyclables_nantes_ok['type_amenagement'].value_counts().reset_index()
via_count_tipo.columns = ['type_amenagement', 'Cantidad']
fig = px.pie(via_count_tipo, names='type_amenagement', values='Cantidad',
title='Répartition des types de voies cyclables ?')
fig.show()
3. Quelle est la longueur totale des voies cyclables par commune ?

via_length_municipio = cyclables_nantes_ok.groupby('commune')['shape_length'].sum().reset_index(name='Longitud total')
fig = px.bar(via_length_municipio, x='commune', y='Longitud total',
title='Longueur totale des voies cyclables par municipalité ?')
fig.update_layout(xaxis_title='Commune', yaxis_title='Longueur totale')
fig.show()
4. Quelle est la longueur moyenne des voies cyclables par type de voie ?

via_avg_length_tipo = cyclables_nantes_ok.groupby('type_amenagement')['shape_length'].mean().reset_index(name='Longitud promedio')
fig = px.bar(via_avg_length_tipo, x='type_amenagement', y='Longitud promedio',
title='Longueur moyenne des voies cyclables par type de voie ')
fig.update_layout(xaxis_title='Type Aménagement', yaxis_title='Longueur moyenne')
fig.show()
5. Quelles sont les voies cyclables les plus longues ?

top_longest_vias = cyclables_nantes_ok.nlargest(10, 'shape_length')
fig = px.bar(top_longest_vias, x='shape_length', y='type_amenagement', orientation='h',
title='Voies cyclables les plus longues par commune', color='commune')
fig.update_layout(xaxis_title='Longueur', yaxis_title='Type amenagement')
fig.show()
6. Quelle est la longueur cumulée des voies cyclables par type de voie ?

via_cumulative_length = cyclables_nantes_ok.groupby('type_amenagement')['shape_length'].sum().cumsum().reset_index(name='Longitud acumulada')
fig = px.area(via_cumulative_length, x='type_amenagement', y='Longitud acumulada',
title='Longueur cumulée des voies cyclables par type de voie ')
fig.update_layout(xaxis_title='Type amenagement', yaxis_title='Longueur cumulée')
fig.show()
7. Quelle est la distribution des longueurs des voies cyclables ?

fig = go.Figure(data=[go.Histogram(x=cyclables_nantes_ok[‘shape_length’])])
fig.update_layout(title=’Distribution des longueurs des voies cyclables’,
xaxis_title=’Longueur’, yaxis_title=’Fréquence’)
fig.show()
8. Quelle est la longueur cumulée des voies cyclables par commune ?

via_cumulative_length_municipio = cyclables_nantes_ok.groupby('commune')['shape_length'].sum().cumsum().reset_index(name='Longitud acumulada')
fig = px.line(via_cumulative_length_municipio, x='commune', y='Longitud acumulada',
title='Longueur cumulée des voies cyclables par commune')
fig.update_layout(xaxis_title='Commune', yaxis_title='Longueur cumulée')
fig.show()
9. Quelles sont les voies cyclables les plus courantes par municipalité ?

top_common_vias_municipio = cyclables_nantes_ok.groupby(['commune', 'type_amenagement']).size().reset_index(name='Cantidad')
top_common_vias_municipio = top_common_vias_municipio.sort_values(['commune', 'Cantidad'], ascending=[True, False])
top_common_vias_municipio = top_common_vias_municipio.groupby('commune').head(1)
fig = px.bar(top_common_vias_municipio, x='commune', y='Cantidad', color='type_amenagement',
title='Voies cyclables les plus courantes par commune')
fig.update_layout(xaxis_title='Commune', yaxis_title='Nombre', legend_title='Type amenagement')
fig.show()
10. Quelle est la répartition géographique des voies cyclables à Nantes ?

fig = px.scatter_mapbox(cyclables_nantes_ok, lat='Latitude', lon='Longitude', hover_name='type_amenagement', hover_data=['shape_length'],color='type_amenagement', zoom=10, height=600)
fig.update_layout(mapbox_style='open-street-map')
fig.update_layout(title='Répartition géographique des voies cyclables à Nantes')
fig.show()
Conclusions
L’analyse des données sur les pistes cyclables à Nantes nous a permis d’obtenir des informations précieuses sur le nombre, la longueur, la répartition et les types de pistes cyclables dans chaque municipalité. Voici quelques-unes des principales conclusions :
- Nantes a le plus grand nombre de pistes cyclables avec 4295, suivie par Saint-Herblain avec 727.
- Les pistes cyclables les plus courantes sont les bandes cyclables, suivies des pistes cyclables.
- La longueur totale des pistes cyclables varie considérablement d’une municipalité à l’autre, Nantes se distinguant comme la capitale avec 273190 m, ayant la plus grande longueur totale.
- En calculant les pistes cyclables les plus longues par commune, on constate que Bouguenais arrive en tête avec 2808 m de cohabitation piétons-vélos.
- La répartition des longueurs de pistes cyclables est inégale, la plupart d’entre elles étant concentrées entre 0 et 5 km.
- La longueur cumulée des pistes cyclables montre une croissance régulière pour la plupart des types de routes.
Ces résultats fournissent des informations importantes pour comprendre comment l’infrastructure cyclable de Nantes est constituée et peuvent être utilisés pour améliorer la planification et le développement du réseau cyclable dans la ville.
En résumé, cette analyse exploratoire des données nous a permis de mieux visualiser et comprendre les caractéristiques et la distribution des pistes cyclables à Nantes. Les visualisations interactives créées avec Python et les bibliothèques Plotly nous ont aidés à analyser efficacement et à présenter les informations de manière claire et concise.
Sources
Aménagements cyclables de Nantes Métropole
Photo: Gwen Fran – Flickr licence CC

