محاسبه تراکم تقاطع خیابان (QGIS3)
تراکم تقاطع خیابان یک معیار مفید برای اتصال شبکه است. برای محاسبه تراکم می توان تقاطع های خیابان ها را روی یک شبکه منظم استخراج و جمع کرد. این تحلیل معمولاً در طراحی حمل و نقل و همچنین برنامه ریزی شهری برای تعیین قابلیت پیاده روی محله ها استفاده می شود. با در دسترس بودن مجموعه داده شبکه جهانی خیابان از OpenStreetMap و QGIS، ما به راحتی می توانیم تراکم تقاطع را برای هر منطقه از جهان محاسبه و تجسم کنیم.
نمای کلی کار
در این آموزش، داده های شبکه جاده ای OpenStreetMap را می گیریم و تراکم تقاطع خیابان ها را برای شهر چنای در هند محاسبه می کنیم.
خواهید گرفت
- چگونه دادههای OpenStreetMap را بهعنوان فایلهای شکل دانلود کنید و آنها را در منطقه مورد علاقه خود کلیپ کنید.
- نحوه ایجاد گرید در QGIS
دریافت داده ها
ما از دادههای opencities برای دریافت مرز شهر برای چنای و سپس دادههای شبکه جادهای از OpenStreetMap Data Extracts برای هند استفاده خواهیم کرد.
دانلود مرز شهر
- از وبسایت opencity دیدن کنید ، سپس «نقشه بخشهای چنای» را جستجو کنید.
- روی لینک اول کلیک کنید و داده ها را با فرمت KML دانلود کنید. یک لایه
Chennai-wards-2011.kml
دانلود می شود.
دانلود شبکه راه
- از سرور دانلود استخراج داده های OpenStreetMap توسط GEOFABRIK بازدید کنید . برای این آموزش به داده های شهر چنای در هند نیاز داریم. آسیا را کلیک کنید .
- اکنون در مناطق فرعی ، هند را انتخاب کنید .
- فایل
.shp.zip
مربوط به منطقه جنوبی فایلی است که ما به دنبال آن هستیم. برای دانلود روی لینک کلیک کنید.
- این یک دانلود بزرگ است که حاوی استخراج دادهها برای کل کشور است. را از حالت فشرده خارج کنید
southern-zone-latest-free.shp.zip
. شما لایه های شکل فایل زیادی خواهید داشت.
کلیپ شبکه جاده تا مرز شهر
- اکنون لایه جادههای سطح کشور را به منطقه مورد علاقه خود میبندیم. QGIS را باز کنید، بکشید و رها کنید
Chennai-wards-2011.kml
.
- به جای باز کردن یک لایه بزرگ در QGIS، میتوانیم مستقیماً آن را از روی دیسک بخوانیم و آن را کلیپ کنیم. جعبه ابزار Processing را باز کنید و الگوریتم پیدا کنید . برای باز کردن آن دوبار کلیک کنید.
- در لایه Input گزینه را انتخاب کرده
…
و بر روی Browse for Layer کلیک کنید…
- به فهرستی که داده های OpenStreetMap را در آن دانلود کرده اید بروید و را انتخاب کنید
gis_osm_roads_free_1.shp
. در لایه Overlay را انتخاب کنید . سپس روی Clipped کلیک کنید و Save to File را انتخاب کنید، به پوشه ای که می خواهید نتایج را در آن ذخیره کنید مرور کنید، نام را به عنوان وارد کنید و روی Run کلیک کنید .New Wards from Oct ۲۰۱۱
…
chennai_roads.gpkg
- پس از اتمام پردازش، یک لایه جدید
chennai_roads
در بوم بارگذاری می شود.
برای راحتی کار، میتوانید مستقیماً یک نسخه از مجموعه داده بریده شده را از لینک زیر دانلود کنید:
منبع داده: [OPENCITIES] [GEOFABRIK]
- اکنون هر دو لایه مورد استفاده برای محاسبه در دسترس خواهند بود، اگر دادهها را دانلود کردهاید، سپس
Chennai-Wards-2011.kml
و راchennai_roads.gpkg
در Browser قرار دهید ، سپس آنها را بکشید و روی بوم رها کنید.
- اولین کار استخراج تقاطع های جاده ای است. این را می توان با استفاده از ابزار داخلی Line intersections انجام داد. بیایید ابتدا آن را روی یک زیر مجموعه کوچک آزمایش کنیم تا ببینیم آیا نتایج رضایت بخش هستند یا خیر. لایه roads را انتخاب کنید و از ابزار Select features by Area برای رسم مستطیل و انتخاب چند جاده استفاده کنید.
- Processing Toolbox را باز کنید و الگوریتم پیدا کنید . برای باز کردن آن دوبار کلیک کنید.
- لایه ورودی و لایه Intersect را
chennai_roads
انتخاب کنید . مطمئن شوید که فقط ویژگی های انتخاب شده را بررسی کنید . روی Run کلیک کنید .
- یک لایه جدید
Intersections
اضافه خواهد شد. متوجه خواهید شد که در حالی که اکثر نقاط تقاطع صحیح هستند، برخی از موارد مثبت کاذب وجود دارد. این به این دلیل است که الگوریتم تقاطع های هر پاره خط را به عنوان یک تقاطع معتبر در نظر می گیرد. اما برای تجزیه و تحلیل ما باید فقط تقاطع هایی را که ۲ یا چند خیابان قطع می کنند استخراج کنیم.
- لایه Intersections را بردارید و روی دکمه Deselect features from all layers کلیک کنید تا انتخاب حذف شود. اکنون تمام بخشهای جاده مجاور را ادغام میکنیم، بنابراین بخشهای بین تقاطعها در یک ویژگی واحد ادغام میشوند. جعبه ابزار پردازش را باز کنید و الگوریتم پیدا کنید . برای باز کردن آن دوبار کلیک کنید.
chennai_roads
به عنوان لایه ورودی انتخاب کنید . نام لایه خروجی Dissolved را به صورت وارد کنیدroads_dissolved.gpkg
. روی Run کلیک کنید .
- لایه حاصل
roads_dissolved
همه بخش های جاده را در یک ویژگی واحد ادغام کرده است.
- سپس، جعبه ابزار پردازش را باز کنید و الگوریتم را پیدا کنید . برای باز کردن آن دوبار کلیک کنید.
roads_dissolved
لایه را به عنوان لایه ورودی انتخاب کنید .roads_singleparts.gpkg
به عنوان خروجی Single Parts وارد کنید . روی Run کلیک کنید .
- لایه به دست آمده
roads_singleparts
دارای تمام بخش های مجاور ادغام شده و لایه هایroads_dissolved
و حذف می شودchennai_roads
. اکنون جعبه ابزار پردازش را باز کنید و الگوریتم را پیدا کنید . برای راه اندازی آن دوبار کلیک کنید.
roads_singleparts
هم به عنوان لایه ورودی و هم لایه Intersect را انتخاب کنید . لایه خروجی Intersections را به عنوان نامگذاری کنیدroads_line_intersections.gpkg
. روی Run کلیک کنید.
توجه داشته باشید
این یک عملیات محاسباتی فشرده است و بسته به ظرفیت پردازش رایانه شما ممکن است زمان زیادی طول بکشد.
- اکنون لایه حاصل
roads_line_intersections
همه تقاطع ها را به درستی شناسایی کرده است. اما هنوز کامل نیست. از ابزار Select features by Area استفاده کنید و هر تقاطع را انتخاب کنید. خواهید دید که در هر تقاطع چند نقطه تکراری از بخش های مجاور وجود دارد. اگر از این لایه برای تحلیل بیشتر استفاده کنیم، تعداد تقاطع های متورم ایجاد می شود. بیایید موارد تکراری را حذف کنیم، جعبه ابزار پردازش را باز کنیم و الگوریتم پیدا کنیم .roads_line_intersections
به عنوان لایه ورودی انتخاب کنید وroad_intersections.gpkg
به عنوان لایه خروجی Cleaned وارد کنید . روی Run کلیک کنید .
- لایه جدید
road_intersections
دارای تعداد صحیح تقاطع های جاده است که از لایه منبع استخراج شده است. روی لایه قدیمی کلیک راست کردهroad_line_intersections
و حذف لایه را انتخاب کنید تا حذف شود.
- اکنون چگالی نقاط را با قرار دادن یک شبکه منظم و شمارش نقاط در هر چند ضلعی شبکه محاسبه می کنیم. ما باید داده ها را دوباره به یک CRS پیش بینی شده بازتاب دهیم تا بتوانیم از واحدهای اندازه گیری خطی استفاده کنیم. ما می توانیم از یک CRS مناسب بر اساس منطقه UTM که شهر در آن قرار دارد استفاده کنیم. می توانید نقشه UTM Grid Zones of the World را ببینید تا منطقه UTM را برای شهر خود تعیین کنید. چنای در منطقه UTM ۴۴N می افتد . جعبه ابزار پردازش را باز کنید و الگوریتم را پیدا کنید . دوبار کلیک کنید تا باز شود.
road_intersections
به عنوان لایه ورودی انتخاب کنید . با کلیک کردن روی نماد کره در کنار Target CRS جستجو کنید و را انتخاب کنید . این یک CRS بر اساس داده WGS84 برای UTM Zone 44N است . لایه خروجی Reprojected را به صورت وارد کنید . روی Run کلیک کنید .EPSG:32644 - WGS ۸۴ / UTM zone ۴۴N
road_intersections_reprojected.gpkg
- پس از اتمام پردازش و
road_intersections_reprojected
اضافه شدن لایه، کلیک راست کرده و Layer را انتخاب کنید . وroad_intersections
لایه را بردارید.
- Project CRS در سمت راست پایین پنجره به روز می شود. هدف از این مرحله اطمینان از نمایش تمام لایه ها در CRS لایه جدید است. ما اکنون آماده هستیم تا با استفاده از به عنوان مرجع شبکه را ایجاد کنیم
road_intersections_reprojected
. جعبه ابزار پردازش را باز کنید و مکان الگوریتم شبکه را پیدا کنید. دوبار کلیک کنید تا باز شود.
- نوع شبکه را به عنوان مستطیل (چند ضلعی) انتخاب کنید . روی
...
دکمه در وسعت شبکه کلیک کنید و را انتخاب کنید .
- پروژه CRS را به عنوان Grid CRS انتخاب کنید. ما میخواهیم شبکهای به ابعاد ۱ کیلومتر در ۱ کیلومتر ایجاد کنیم، بنابراین فاصله افقی و فاصله عمودی را به عنوان
۱۰۰۰
متر تنظیم کنید. لایه خروجی Grid را به عنوان ذخیره کنیدgrid.gpkg
. روی Run کلیک کنید .
- لایه
grid
حاوی چند ضلعی های شبکه مستطیلی ایجاد می شود. اکنون میتوانیم تعداد نقاط هر چند ضلعی را بشماریم، اما از آنجایی که لایههای ما بزرگ هستند، این فرآیند میتواند زمان زیادی طول بکشد. یکی از راه های افزایش سرعت عملیات فضایی استفاده از یک شاخص فضایی است . جعبه ابزار پردازش را باز کنید و پیدا کنید . دوبار کلیک کنید تا باز شود.
- لایه را انتخاب کنید
grid
و روی Run کلیک کنید ، اکنون لایه دارای یک شاخص فضایی است که می تواند عملکرد محاسبات را با این لایه افزایش دهد.
- جعبه ابزار پردازش را باز کنید و الگوریتم چند ضلعی را پیدا کنید.
grid
به عنوان لایه Polygon وroad_intersections_reprojected
به عنوان لایه Points را انتخاب کنید . لایه خروجی Count را به عنوان ذخیره کنیدgrid_count.gpkg
. روی Run کلیک کنید .
- لایه حاصل
grid_count
دارای یک ویژگی NUMPOINTS خواهد بود که شامل تعداد نقاط تقاطع در هر شبکه است. شبکه های زیادی با ۰ امتیاز وجود دارد. این به تجزیه و تحلیل و تجسم ما کمک می کند تا چند ضلعی های شبکه ای را که فاقد تقاطع هستند حذف کنیم. جعبه ابزار پردازش را باز کنید و گزینه الگوریتم را پیدا کنید.
grid_count
به عنوان لایه ورودی انتخاب کنید ، سپسNUMPOINTS
در ویژگی Selection ،>
در Operator انتخاب کنید و۰
به عنوان مقدار وارد کنید . لایه خروجی Extracted (ویژگی) را به صورت ذخیره کنیدgrid_counts_chennai.gpkg
. روی Run کلیک کنید .
- لایه حاصل
grid_counts_chennai
دارای چند ضلعی های شبکه ای بر روی شهر چنای خواهد بود و تعداد تقاطع های جاده را به عنوان یک ویژگی برای هر چند ضلعی در بر می گیرد. تمام لایه ها را به جزgrid_counts_chennai
.
- بیایید جدول ویژگی لایه داده خود را تمیز کنیم. روش ترجیحی برای ایجاد هر گونه تغییر در جدول ویژگی، استفاده از یک الگوریتم پردازش به نام Refactor Fields، باز کردن جعبه ابزار پردازش و یافتن مکان الگوریتم Refactor Fields است. برای باز کردن آن دوبار کلیک کنید. روی هر ردیفی در قسمت Field Mapping کلیک کنید تا آن را انتخاب کنید. می توانید Shiftکلید را برای انتخاب چندین ردیف نگه دارید، همه فیلدها به جز fid و NUMPOINTS را انتخاب کنید . روی دکمه حذف فیلدهای انتخاب شده کلیک کنید .
- نام فیلد NUMPOINTS را به عنوان تغییر دهید
intersection_density
و لایه را به عنوان ذخیره کنیدroad_intersection_density.gpkg
، روی Run کلیک کنید .
- بیایید این لایه را برای مشاهده چگالی هر شبکه استایل کنیم،
road_intersection_density
لایه را انتخاب کرده و روی Open the Layer Styling Panel کلیک کنید . Graduated renderer را انتخاب کنید و در Values Intersection Density را انتخاب کنید ، یک رمپ رنگ دلخواه، کلاس ها را روی آن تنظیم کنید۷
و روی Classify کلیک کنید .
- در مقادیر وارد کنید
۰-۵۰
، و۵۰-۱۰۰
غیره۱۰۰-۱۵۰
تا . شما اکنون نقشه ای ایجاد کرده اید که تراکم تقاطع ها را در سراسر شهر نشان می دهد.۳۰۰ - ۳۵۰
اگر می خواهید بازخورد بدهید یا تجربه خود را در مورد این آموزش به اشتراک بگذارید، لطفاً در زیر نظر دهید. (به حساب GitHub نیاز دارد)