Ceci est le code source de l'article scientifique Growing Urban Bicycle Networks de M. Szell, S. Mimar, T. Perlman, G. Ghoshal et R. Sinatra. Le code télécharge et prétraite les données d'OpenStreetMap, prépare des points d'intérêt, exécute des simulations, mesure et enregistre les résultats, crée des vidéos et des tracés.
Papier : https://www.nature.com/articles/s41598-022-10783-y
Référentiel de données : zenodo.5083049
Visualisation : GrowBike.Net
Vidéos et tracés : https://growbike.net/download
Sortie vidéo de l'exécution du code sur Paris, montrant la croissance d'un réseau cyclable sur une grille de points de départ
Exécutez depuis votre terminal :
git clone -b main --single-branch https://github.com/mszell/bikenwgrowth --depth 1
growbikenet
Dans votre terminal, accédez au dossier du projet bikenwgrowth
et utilisez conda
ou mamba
ou micromamba
pour exécuter :
mamba env create -f environment.yml
mamba activate growbikenet
Si ce qui précède ne fonctionne pas, vous pouvez créer manuellement l'environnement à partir de votre ligne de commande (non recommandé) :
mamba create --override-channels -c conda-forge -n growbikenet python=3.12 osmnx=1.9.4 python-igraph watermark haversine rasterio tqdm geojson
mamba activate growbikenet
mamba install -c conda-forge ipywidgets
pip install opencv-python
pip install --user ipykernel
Si vous souhaitez utiliser l'environnement growbikenet
dans Jupyter, exécutez :
python -m ipykernel install --user --name=growbikenet
Cela vous permet d'exécuter Jupyter avec le noyau growbikenet
(Kernel > Change Kernel > growbikenet)
Des villes uniques (ou quelques/petites) peuvent être gérées localement grâce à une exécution manuelle, étape par étape, des notebooks Jupyter :
parameters/cities.csv
, voir ci-dessous. Laissez les valeurs par défaut pour exécuter le code sur deux petites villes.code
.parameters/parameters.py
X_
peuvent être exécutés si nécessaire pour générer des résultats ou des données supplémentaires.Pour plusieurs, en particulier. dans les grandes villes, il est fortement suggéré d'exécuter le code sur un cluster de calcul haute performance car les tâches sont faciles à paralléliser. Les scripts shell sont écrits pour SLURM.
parameters/cities.csv
, voir ci-dessous.sbatch scripts/download.job
côté serveur, mais OSMNX génère trop de problèmes de connexion, une supervision manuelle est donc nécessaire)code/*.py
, parameters/*
, scripts/*
./mastersbatch_analysis.sh
./mastersbatch_export.sh
./cleanup.sh
./fixresults.sh
(pour nettoyer les résultats en cas de données modifiées lors d'exécutions répétées) Le dossier/dépôt principal est bikenwgrowth
, contenant des notebooks Jupyter ( code/
), des données prétraitées ( data/
), des paramètres ( parameters/
), des tracés de résultats ( plots/
), des scripts et des tâches du serveur HPC ( scripts/
).
La plupart des données générées (tracés réseau, vidéos, résultats, exportations, journaux) représentent plusieurs Go et sont stockées dans le dossier externe séparé bikenwgrowth_external
. Pour configurer différents chemins, modifiez code/path.py
prune_measure = "betweenness"
, poi_source = "railwaystation"
prune_measure = "betweenness"
, poi_source = "grid"
prune_measure = "closeness"
, poi_source = "railwaystation"
prune_measure = "closeness"
, poi_source = "grid"
prune_measure = "random"
, poi_source = "railwaystation"
prune_measure = "random"
, poi_source = "grid"
relation["boundary"="administrative"]["name:en"="Copenhagen Municipality"]({{bbox}});(._;>;);out skel;