هذا هو الكود المصدري للورقة العلمية بعنوان "تنمية شبكات الدراجات الحضرية" بقلم 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 باستخدام kernel growbikenet
(Kernel > Change Kernel > 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;