นี่คือซอร์สโค้ดสำหรับบทความทางวิทยาศาสตร์ Growing urban bicycle network โดย 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
หากคุณต้องการใช้สภาพแวดล้อม 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
(เพื่อล้างผลลัพธ์ในกรณีที่มีการแก้ไขข้อมูลจากการรันซ้ำ) โฟลเดอร์/repo หลักคือ 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;