这是 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;