Это исходный код научной статьи М. Селла, С. Мимара, Т. Перлмана, Г. Гошала и Р. Синатры «Растущая городская велосипедная сеть» . Код загружает и предварительно обрабатывает данные из 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
Если вы хотите использовать среду growbikenet
в Jupyter, запустите:
python -m ipykernel install --user --name=growbikenet
Это позволит вам запускать Jupyter с ядром growbikenet
(Ядро > Изменить ядро > Growbikenet).
Отдельные (или несколько/небольшие) города можно запускать локально с помощью ручного пошагового выполнения блокнотов Jupyter:
parameters/cities.csv
, см. ниже. Оставьте значения по умолчанию, чтобы запустить код в двух небольших городах.code
.parameters/parameters.py
X_
для получения дополнительных результатов или данных.Для нескольких, особенно. В крупных городах настоятельно рекомендуется запускать код на высокопроизводительном вычислительном кластере, поскольку задачи легко распараллелить. Сценарии оболочки написаны для 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/
).
Большая часть сгенерированных выходных данных (сетевые графики, видео, результаты, экспорт, логи) составляет много ГБ и хранится в отдельной внешней папке 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;