6.3. الدرس: تحليل الشبكات¶
حساب أقصر مسافة بين نقطتين مهمة شائعة في نظم المعلومات الجغرافية. يمكن العثور على أدوات ذلك في Processing Toolbox.
هدف هذا الدرس: تعلّم استخدام خوارزميات Network analysis.
6.3.1. ★☆☆ تابع معنا: الأدوات والبيانات¶
يمكنك العثور على جميع خوارزميات تحليل الشبكات في القائمة . يمكنك أن ترى أن هناك العديد من الأدوات المتاحة:
افتح المشروع exercise_data/network_analysis/network.qgz. يحتوي على طبقتين:
network_pointsnetwork_lines
الطبقة network_lines لها نمط مُعدّ مسبقًا يساعد على فهم شبكة الطرق.
توفر أدوات أقصر مسار طرقًا لحساب أقصر مسار أو أسرعه بين نقطتين في الشبكة، بمعلومية:
نقطتي البداية والنهاية المحددتين على الخريطة
نقطة البداية المحددة على الخريطة ونقاط النهاية المأخوذة من طبقة نقطية
نقاط البداية المأخوذة من طبقة نقطية ونقطة النهاية المحددة على الخريطة
لنبدأ.
6.3.2. ★☆☆ حساب أقصر مسار (من نقطة إلى نقطة)¶
تتيح لك الخوارزمية حساب أقصر مسافة بين نقطتين تختارهما يدويًا على الخريطة.
في هذا المثال سنحسب المسار الأقصر (وليس الأسرع) بين نقطتين.
افتح الخوارزمية Shortest path (point to point)
اختر
network_linesفي Vector layer representing networkاستخدم
Shortestفي Path type to calculateاستخدم هاتين النقطتين نقطتَي بداية ونهاية للتحليل:
انقر على الزر ... بجوار Start point (x, y) واختر الموقع الموسوم بـ
Starting Pointفي الصورة. فعّل خيارات الالتقاط لتحديد دقيق. ستُضاف إحداثيات النقطة التي نقرت عليها.افعل الشيء نفسه، لكن باختيار الموقع الموسوم بـ
Ending pointفي End point (x, y)انقر على الزر Run:
تُنشأ طبقة خطية جديدة تمثل أقصر مسار بين النقطتين المختارتين. ألغِ تحديد الطبقة
network_linesلرؤية النتيجة بشكل أفضل:
افتح جدول البيانات الوصفية لطبقة المخرجات. يحتوي على ثلاثة حقول تمثل إحداثيات نقطتي البداية والنهاية و التكلفة.
اخترنا
Shortestفي Path type to calculate، لذا تمثل التكلفة المسافة بوحدات الطبقة بين الموقعين.في حالتنا، تبلغ المسافة الأقصر بين النقطتين المختارتين نحو
1000متر:
الآن بعد أن عرفت كيفية استخدام الأداة، لا تتردد في تجربة مواقع أخرى.
6.3.3. ★★☆ جرّب بنفسك: أسرع مسار¶
باستخدام بيانات التمرين السابق نفسها، حاول حساب أسرع مسار بين النقطتين.
كم من الوقت تحتاج للانتقال من نقطة البداية إلى نقطة النهاية؟
الإجابة
افتح واملأ نافذة الحوار على النحو التالي:
تأكد من أن Path type to calculate هو
Fastest.انقر على Run وأغلق نافذة الحوار.
افتح الآن جدول البيانات الوصفية لطبقة المخرجات. يحتوي الحقل cost على زمن الانتقال بين النقطتين (بكسور الساعة):
6.3.4. ★★☆ تابع معنا: الخيارات المتقدمة¶
لنستكشف مزيدًا من خيارات أدوات تحليل الشبكات. في التمرين السابق حسبنا المسار الأسرع بين نقطتين. وكما يمكنك أن تتخيل، يعتمد الزمن على سرعة الانتقال.
سنستخدم الطبقات نفسها ونقطتي البداية والنهاية نفسيهما من التمارين السابقة.
افتح الخوارزمية Shortest path (point to point)
املأ Input layer و Start point (x, y) و End point (x, y) كما فعلنا من قبل
اختر
Fastestفي Path type to calculateافتح القائمة Advanced parameter
غيّر Default speed (km/h) من القيمة الافتراضية
50إلى4
انقر على Run
بعد انتهاء الخوارزمية، أغلق نافذة الحوار وافتح جدول البيانات الوصفية لطبقة المخرجات.
يحتوي الحقل cost على القيمة وفقًا لمعامل السرعة الذي اخترته. يمكننا تحويل الحقل cost من ساعات بكسور إلى قيم دقائق أسهل قراءة.
أضف حقلًا جديدًا لتخزين تكلفة المسار بـ minutes.
هذا كل شيء! أصبحت تعرف الآن كم دقيقة تستغرق للانتقال من نقطة إلى أخرى إذا كانت سرعة الشبكة كلها 4 km/h.
6.3.5. ★★★ أقصر مسار مع حدود السرعة¶
تحتوي مجموعة أدوات تحليل الشبكات على خيارات أخرى مثيرة للاهتمام. بالنظر إلى الخريطة التالية:
نود معرفة المسار الأسرع مع مراعاة حدود السرعة لكل طريق (تمثل التسميات حدود السرعة بـ km/h). سيكون أقصر مسار دون مراعاة حدود السرعة بالطبع هو المسار البنفسجي. لكن حد السرعة في ذلك الطريق 20 km/h، بينما يمكنك السير في الطريق الأخضر بسرعة 100 km/h!
كما فعلنا في التمرين الأول، سنستخدم وسنختار نقطتي البداية والنهاية يدويًا.
افتح الخوارزمية
اختر
network_linesللمعامل Vector layer representing networkاختر
Fastestفي Path type to calculateاختر Start point (x, y) و End point (x, y) كما فعلنا من قبل
افتح القائمة Advanced parameters
اختر الحقل speed للمعامل Speed Field. مع هذا الخيار ستأخذ الخوارزمية في الحسبان حدود السرعة لكل طريق.
انقر على الزر Run
أوقف إظهار الطبقة
network_linesلرؤية النتيجة بشكل أفضل
كما ترى، لا يتطابق المسار الأسرع مع المسار الأقصر.
6.3.6. ★★☆ منطقة الخدمة (من طبقة)¶
يمكن للخوارزمية الإجابة عن السؤال: بمعلومية طبقة نقطية، ما جميع المناطق التي يمكن الوصول إليها ضمن مسافة أو زمن معين؟
ملاحظة
الخوارزمية هي الخوارزمية نفسها، لكنها تتيح لك اختيار النقطة يدويًا على الخريطة.
بمعلومية مسافة 250 مترًا، نريد معرفة إلى أي مدى يمكننا الوصول على الشبكة من كل نقطة في الطبقة network_points.
ألغِ تحديد جميع الطبقات باستثناء
network_pointsافتح الخوارزمية
اختر
network_linesفي Vector layer representing networkاختر
network_pointsفي Vector layer with start pointsاختر
Shortestفي Path type to calculateأدخل
250للمعامل Travel costانقر على Run وأغلق نافذة الحوار
تمثل طبقة المخرجات أقصى مسار يمكنك بلوغه من المعالم النقطية ضمن مسافة 250 مترًا:
رائع، أليس كذلك؟
6.3.7. الخلاصة¶
أصبحت تعرف الآن كيفية استخدام خوارزميات Network analysis لحل مسائل أقصر مسار وأسرع مسار.
نحن الآن مستعدون لإجراء بعض الإحصاءات المكانية على بيانات الطبقات المتجهية. هيا بنا!
6.3.8. ما التالي؟¶
سترى بعد ذلك كيفية تشغيل خوارزميات الإحصاء المكاني على مجموعات البيانات المتجهية.
