User:Barnes38/GrenobleAlpesMétropole VoirieCyclable Pistes Cyclables
Explications
Rappel: on se limite au cas simple des pistes cyclables (pas des bandes cyclables ni de tout le reste) voir Page wiki OSM Bicycle
- Deux façons de caractériser les pistes cyclables :
- Pistes cyclables caractérisées en tant que telles : highway=cycleway
- Pistes cyclables caractérisées sur la route principale : highway=* + cycleway=track
- Dans les deux cas, on peut positionner oneway=yes (oneway:bicycle=yes) pour signifier monodirectionnelle (monodir), dans tous les autres cas (oneway pas positionné, ou oneway != yes) on peut considérer que c'est une bidirectionnelle (bidir)
- Pistes cyclables caractérisées en tant que telles : highway=cycleway
- Attention :
- Une voie verte (berges de l'Isère ou du Drac par exemple) n'est pas caractérisée comme une "piste cyclable", mais comme highway=path+bicycle=designated+foot=designated
- Une voie verte (berges de l'Isère ou du Drac par exemple) n'est pas caractérisée comme une "piste cyclable", mais comme highway=path+bicycle=designated+foot=designated
- Des considérations en plus :
- Une bidir avec lanes=2 peut signifier que les deux sens sont séparés par au moins un marquage au sol assez clair
- En principe c'est le cas des ChronoVélos, mais pas des voies vertes
- En principe c'est le cas des ChronoVélos, mais pas des voies vertes
- Possibilité aussi de caractériser la séparation des flux avec les piétons par segregated=yes|no
- En principe sur les voies vertes, les flux sont mélangés et priorité aux piétons segregated=no
- En principe sur les voies vertes, les flux sont mélangés et priorité aux piétons segregated=no
- Possibilité aussi de caractériser si les piétons sont autorisés ou pas avec foot=yes/permissive/designated
- En principe sur les ChronoVélo on devrait avoir foot=no, sur les voies vertes foot=designated
- En principe sur les ChronoVélo on devrait avoir foot=no, sur les voies vertes foot=designated
- Une bidir avec lanes=2 peut signifier que les deux sens sont séparés par au moins un marquage au sol assez clair
Résultats
Toutes les requêtes ci-dessous sont sur le périmètre de Grenoble-Alpes Métropole (GAM)
Numéro | Explications | Requête Overpass |
---|---|---|
1 | "Grenoble-Alpes Métropole" |
[out:json][timeout:25];
// On cherche l'entité "Grenoble-Alpes Métropole"
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans ce résultat de recherche, on cherche toutes les communes
// ["boundary"="administrative"]["admin_level"="8"]
nwr["boundary"="administrative"]["admin_level"="8"](area.searchArea);
// print results
out geom;
|
Toutes les pistes cyclables
Au plus simple, on prend tout, on mélange monodir et bidir, on compte une seule fois les bidirs
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024 | |
---|---|---|---|---|
2.1a | Pistes cyclables |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way[highway=cycleway](area.searchArea);
out geom;
|
||
2.1b | Pistes cyclables : km total |
[out:csv(length, "::count"; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way[highway=cycleway](area.searchArea);
make count length=sum(length());
out;
|
143713.966; | |
2.1c | Pistes cyclables : kilomètrage par commune |
// Format CSV de sortie avec les colonnes : nom, longueur, terminaison
[out:csv(nom, longueur, terminaison; false; ";")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway]
way(area.commune)[highway=cycleway];
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), longueur=sum(length()), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
Bresson;0; | |
2.1d | Pistes cyclables par commune avec : population, kilométrage par commune, kilométrage par habitant |
// Format CSV de sortie avec les colonnes : nom, population, longueur, par_habitant
[out:csv(nom, population, longueur, par_habitant, terminaison; true; ";")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway]
way(area.commune)[highway=cycleway];
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), population=commune.set(t["population"]), par_habitant=(sum(length()/commune.set(t["population"]))), longueur=sum(length()), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
nom;population;longueur;par_habitant;terminaison
Bresson;667;0;0; |
Pistes cyclables monodir
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024 | |
---|---|---|---|---|
2.2a | Pistes cyclables monodir |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way[highway=cycleway][oneway=yes](area.searchArea);
out geom;
| ||
2.2b | Pistes cyclables monodir : km total |
// Format CSV de sortie avec les colonnes : nom, longueur, terminaison
[out:csv(nom, longueur, terminaison; false; "; ")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway][oneway=yes]
way(area.commune)[highway=cycleway][oneway=yes];
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), longueur=sum(length()), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
29384.718; | |
2.2c | Pistes cyclables monodir : kilomètrage par commune |
// Format CSV de sortie avec les colonnes : nom, longueur, terminaison
[out:csv(nom, longueur, terminaison; false; ";")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway][oneway=yes]
way(area.commune)[highway=cycleway][oneway=yes];
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), longueur=sum(length()), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
Bresson; 0; | |
2.2d | Pistes cyclables monodir par commune avec : population, kilométrage par commune, kilométrage par habitant |
// Format CSV de sortie avec les colonnes : nom, population, longueur, par_habitant
[out:csv(nom, population, longueur, par_habitant, terminaison; true; ";")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway][oneway=yes]
way(area.commune)[highway=cycleway][oneway=yes];
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), population=commune.set(t["population"]), par_habitant=(sum(length()/commune.set(t["population"]))), longueur=sum(length()), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
nom; population; longueur; par_habitant; terminaison
Bresson; 667; 0; 0; |
Pistes cyclables bidir
Les résultats de longueurs sont multipliés par deux, car deux sens de circulation
[oneway=yes] => oneway positionné à true => un seul sens de circulation => monodir [!oneway] => oneway pas positionné => deux sens de circulation => bidir [oneway!=yes] => oneway différent de yes => deux sens de circulation => bidir
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024 | |
---|---|---|---|---|
2.3a | Pistes cyclables bidir |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[highway=cycleway][!oneway](area.searchArea);
nwr[highway=cycleway][oneway!=yes](area.searchArea);
);
out geom;
|
||
2.3b | Pistes cyclables bidir : km total |
[out:csv(length, "::count"; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[highway=cycleway][!oneway](area.searchArea);
nwr[highway=cycleway][oneway!=yes](area.searchArea);
);
make count length=2*sum(length());
out;
|
228658.496; | |
2.3c | Pistes cyclables bidir : kilomètrage par commune |
// Format CSV de sortie avec les colonnes : nom, longueur, terminaison
[out:csv(nom, longueur, terminaison; false; ";")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway][!oneway] ou [highway=cycleway][oneway!=yes]
(
way[highway=cycleway][!oneway](area.commune);
way[highway=cycleway][oneway!=yes](area.commune);
);
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), longueur=2*sum(length()), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
Bresson; 0; | |
2.3d | Pistes cyclables par commune avec : population, kilométrage par commune, kilométrage par habitant |
// Format CSV de sortie avec les colonnes : nom, population, longueur, par_habitant
[out:csv(nom, population, longueur, par_habitant, terminaison; true; "; ")];
// On recherche l'entité "Grenoble-Alpes Métropole" pour effectuer une recherche
area[name="Grenoble-Alpes Métropole"]->.searchArea;
// Dans cette aire de recherche, on cherche les relations caractérisées par [boundary=administrative][admin_level=8] : ceci correspond à toutes les communes de "Grenoble-Alpes Métropole"
relation[boundary=administrative][admin_level=8](area.searchArea);
// Et on transforme ces relations en aires de recherche
map_to_area;
// La boucle itère sur l'ensemble des relations sélectionnées dans l'étape précédente
// Donc pour chaque commune
for (t["name"])
(
// La commune courante
(._;)->.commune;
// On effectue la recherche [highway=cycleway][!oneway] ou [highway=cycleway][oneway!=yes]
(
way[highway=cycleway][!oneway](area.commune);
way[highway=cycleway][oneway!=yes](area.commune);
);
// Et puis on se sert de la possibilité de calculer et affecter des variables
make count nom = commune.set(t["name"]), population=commune.set(t["population"]), longueur=2*sum(length()), par_habitant=(2*sum(length()/commune.set(t["population"]))), terminaison="<br>";
// A chaque tour de boucle, on génère un output
out;
);
|
nom; population; longueur; par_habitant; terminaison
Bresson; 667; 0; 0; |
Pistes cyclables bidir avec deux voies
Des pistes cyclables bidir avec deux voies séparées : on rajoute lanes=2
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024 |
---|---|---|---|
2.4a | Pistes cyclables bidir et deux voies séparées |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[lanes=2][highway=cycleway][!oneway](area.searchArea);
nwr[lanes=2][highway=cycleway][oneway!=yes](area.searchArea);
);
out geom;
|
|
2.4b | Pistes cyclables bidir et deux voies séparées : km total |
[out:csv(length, "::count"; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[lanes=2][highway=cycleway][!oneway](area.searchArea);
nwr[lanes=2][highway=cycleway][oneway!=yes](area.searchArea);
);
make count length=2*sum(length());
out;
|
115381.774; |
Pistes cyclables bidir avec deux voies et "bonne" séparation avec piétons
La séparation avec les piétons :
- Un marquage au sol bien clair qui sépare les flux piétons et cyclistes : segregated=yes
- Si segregated pas positionné, ou positionné à false : segregated=false
- une interdiction de fait aux piétons, par un panneau de voie réservée aux cyclistes : foot=no
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024
|
---|---|---|---|
2.5a | Pistes cyclables bidir, deux voies séparées, et bonne séparation des flux avec les piétons |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[lanes=2][highway=cycleway][!oneway][segregated=yes](area.searchArea);
nwr[lanes=2][highway=cycleway][oneway!=yes][segregated=yes](area.searchArea);
);
out geom;
|
|
2.5b | Pistes cyclables bidir, deux voies séparées, et bonne séparation des flux avec les piétons : km total |
[out:csv(length, "::count"; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[lanes=2][highway=cycleway][!oneway][segregated=yes](area.searchArea);
nwr[lanes=2][highway=cycleway][oneway!=yes][segregated=yes](area.searchArea);
);
make count length=2*sum(length());
out;
|
29249.56; |
2.5c | Pistes cyclables bidir, deux voies séparées, et bonne séparation des flux avec les piétons : km par commune | ||
2.5d | Pistes cyclables bidir, deux voies séparées, et bonne séparation des flux avec les piétons : km par commune et par habitant |
Pistes cyclables bidir avec deux voies séparées et mauvaise séparation avec piétons
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024 |
---|---|---|---|
2.6a | Pistes cyclables bidir, deux voies séparées, et mauvaise séparation des flux avec les piétons |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[lanes=2][highway=cycleway][!oneway][segregated=no](area.searchArea);
nwr[lanes=2][highway=cycleway][oneway!=yes][segregated=no](area.searchArea);
);
|
|
2.6b | Pistes cyclables bidir, deux voies séparées, et mauvaise séparation des flux avec les piétons : km total |
[out:csv(length, "::count"; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
nwr[lanes=2][highway=cycleway][!oneway][segregated=no](area.searchArea);
nwr[lanes=2][highway=cycleway][oneway!=yes][segregated=no](area.searchArea);
);
make count length=2*sum(length());
out;
| |
2.6c | Pistes cyclables bidir, deux voies séparées, et mauvaise séparation des flux avec les piétons : km par commune | ||
2.6d | Pistes cyclables bidir, deux voies séparées, et mauvaise séparation des flux avec les piétons: km par commune et par habitant |
Pistes cyclables caractérisées sur chaussée principale
Numéro | Explications | Requête Overpass | Résultat 8 déc 2024 | |
---|---|---|---|---|
2.7a | Pistes cyclables (track) |
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
way[highway][cycleway=track](area.searchArea);
);
out geom;
|
||
2.7b | Pistes cyclables (track) : kilomètrage total |
[out:csv(length, "::count"; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
(
way[highway][cycleway=track](area.searchArea);
);
make count length=sum(length());
out;
|
255.072; | |
2.7cc | Pistes cyclables (track) : kilomètrage par commune |
[out:csv(name, length, "::count", term; false; ";")];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
relation[boundary=administrative][admin_level=8](area.searchArea);
map_to_area;
// Pour chaque commune
for (t["name"])
(
(._;)->.commune;
(
way[highway][cycleway=track](area.commune);
);
make count name = commune.set(t["name"]), length=sum(length()), term="<br>";
out;
);
|
Saint-Égrève;193.814;; |