這是 M. Szell、S. Mimar、T. Perlman、G. Ghoshal 和 R. Sinatra 撰寫的科學論文《發展城市自行車網路》的原始碼。程式碼從 OpenStreetMap 下載並預處理資料、準備興趣點、運行模擬、測量和保存結果、建立影片和繪圖。
論文:https://www.nature.com/articles/s41598-022-10783-y
資料儲存庫:zenodo.5083049
視覺化:GrowBike.Net
影片與劇情:https://growbike.net/download
在巴黎運行程式碼的視訊輸出,顯示了自行車網路在種子點網格上的成長
從您的終端運行:
git clone -b main --single-branch https://github.com/mszell/bikenwgrowth --depth 1
growbikenet
在終端中,導航到專案資料夾bikenwgrowth
並使用conda
或mamba
或micromamba
運行:
mamba env create -f environment.yml
mamba activate growbikenet
如果上述方法不起作用,您可以從命令列手動建立環境(不建議):
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
如果你想在Jupyter中使用growbikenet
環境,請執行:
python -m ipykernel install --user --name=growbikenet
這允許您使用核心growbikenet
運行Jupyter(核心>更改核心>growbikenet)
單一(或幾個/小)城市可以透過手動、逐步執行 Jupyter 筆記本在本地運行:
parameters/cities.csv
,見下文。保留預設值以在兩個小城市運行程式碼。code
夾。parameters/parameters.py
中設置X_
命名的筆記本。對於多個,尤其是。強烈建議在大型城市中在高效能運算叢集上運行程式碼,因為任務很容易並行化。 shell 腳本是為 SLURM 編寫的。
parameters/cities.csv
,見下文。sbatch scripts/download.job
,但 OSMNX 拋出太多連接問題,因此需要手動監督)code/*.py
、 parameters/*
、 scripts/*
./mastersbatch_analysis.sh
./mastersbatch_export.sh
./cleanup.sh
./fixresults.sh
(在重複運行中修改資料的情況下清理結果) 主資料夾/儲存庫是bikenwgrowth
,包含Jupyter筆記本( code/
)、預處理資料( data/
)、參數( parameters/
)、結果圖( plots/
)、HPC伺服器腳本和作業( scripts/
)。
大多數產生的資料輸出(網路圖、影片、結果、匯出、日誌)佔用許多 GB,並儲存在單獨的外部資料夾bikenwgrowth_external
中。若要設定不同的路徑,請編輯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;