Dies ist der Quellcode für die wissenschaftliche Arbeit Growing urban Bicycle Networks von M. Szell, S. Mimar, T. Perlman, G. Ghoshal und R. Sinatra. Der Code lädt Daten von OpenStreetMap herunter und verarbeitet sie vor, bereitet Sonderziele vor, führt Simulationen durch, misst und speichert die Ergebnisse, erstellt Videos und Diagramme.
Papier : https://www.nature.com/articles/s41598-022-10783-y
Datenspeicher : zenodo.5083049
Visualisierung : GrowBike.Net
Videos & Plots : https://growbike.net/download
Videoausgabe von der Ausführung des Codes in Paris, die das Wachstum eines Fahrradnetzes auf einem Raster von Startpunkten zeigt
Führen Sie von Ihrem Terminal aus Folgendes aus:
git clone -b main --single-branch https://github.com/mszell/bikenwgrowth --depth 1
growbikenet
Navigieren Sie in Ihrem Terminal zum Projektordner bikenwgrowth
“ und führen Sie Folgendes mit conda
, mamba
oder micromamba
aus:
mamba env create -f environment.yml
mamba activate growbikenet
Wenn das oben Genannte nicht funktioniert, können Sie die Umgebung manuell über Ihre Befehlszeile erstellen (nicht empfohlen):
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
Wenn Sie die Umgebung growbikenet
in Jupyter verwenden möchten, führen Sie Folgendes aus:
python -m ipykernel install --user --name=growbikenet
Dadurch können Sie Jupyter mit dem Kernel growbikenet
ausführen (Kernel > Kernel ändern > Growbikenet).
Einzelne (oder wenige/kleine) Städte können durch eine manuelle, schrittweise Ausführung von Jupyter-Notebooks lokal betrieben werden:
parameters/cities.csv
aus, siehe unten. Behalten Sie die Standardwerte bei, um den Code in zwei kleinen Städten auszuführen.code
.parameters/parameters.py
festgelegt istX_
benannte Notebooks können bei Bedarf ausgeführt werden, um zusätzliche Ergebnisse oder Daten zu generieren.Für mehrere, insb. In großen Städten wird dringend empfohlen, den Code auf einem Hochleistungs-Computing-Cluster auszuführen, da sich die Aufgaben leicht parallelisieren lassen. Die Shell-Skripte sind für SLURM geschrieben.
parameters/cities.csv
aus, siehe unten.sbatch scripts/download.job
, aber OSMNX wirft zu viele Verbindungsprobleme auf, sodass eine manuelle Überwachung erforderlich ist)code/*.py
, parameters/*
, scripts/*
hochladen./mastersbatch_analysis.sh
./mastersbatch_export.sh
./cleanup.sh
./fixresults.sh
(um Ergebnisse zu bereinigen, falls sich Daten aus wiederholten Läufen geändert haben) Der Hauptordner/das Hauptrepo ist bikenwgrowth
und enthält Jupyter-Notebooks ( code/
), vorverarbeitete Daten ( data/
), Parameter ( parameters/
), Ergebnisdiagramme ( plots/
), HPC-Serverskripte und Jobs ( scripts/
).
Der Großteil der generierten Datenausgabe (Netzwerkdiagramme, Videos, Ergebnisse, Exporte, Protokolle) macht viele GB aus und wird im separaten externen Ordner bikenwgrowth_external
gespeichert. Um verschiedene Pfade einzurichten, bearbeiten Sie 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;