پایتون برای ترانزیت: سرعت بخش اتوبوس در نقشه از GTFS

ساخت وبلاگ

این بسته در مارس 2023 به روز شده است. این مقاله نشان دهنده استفاده از آخرین نسخه بسته است.

معرفی

در این مقاله ، ما خواهیم دید که چگونه می توان میانگین سرعت برنامه ریزی شده توسط بخش اتوبوس را از GTFS با استفاده از بسته Python GTFS_Functions دریافت کرد. می توانید مخازن و مستندات رسمی را در GitHub پیدا کنید.

اگر به دنبال توضیح گسترده ای در مورد بسته هستید ، توصیه می کنم ابتدا این مقدمه را بخوانید. در اینجا ، ما قصد داریم مستقیماً به مورد استفاده خاص از فرکانس های توقف در یک نقشه شیرجه بزنیم.

یادآوری دوستانه: لطفاً در صورت پایان خواندن این مقاله ، به من کمک کنید.

نصب بسته بندی و تجزیه GTFS

برای نصب بسته و تجزیه GTFS کد زیر را اجرا کنید. برای مقاله ، من GTFS را از SFMTA (سان فرانسیسکو ، کالیفرنیا) بارگیری کردم.

# در اجرای ترمینال خودعملکرد PIP GTFS_Functions# یا در یک نوت بوک (یا مشابه)! PIP عملکرد GTFS_Functions را نصب کنید# بسته وارداتاز GTFS_Functions FEED ، MAP_GDFخوراک = خوراک ("sfmta. zip" ، time_windows = [0 ، 6 ، 9 ، 15 ، 19 ، 22 ، 24])مسیرها = خوراکTrips = Feed. Tripsمتوقف می شود = feed. stopsStop_times = feed. stop_timesاشکال = خوراک

شکل ها را به بخش ها برش دهید

بعضی اوقات ، نگاه کردن به متغیرهای موجود در توقف یا سطح خط بهترین راه حل نیست و ما باید در سطح بخش برویم. ما می خواهیم بدانیم که بین Stop A و Stop B چه می گذرد و چگونه با آنچه بین Stop C و Stop D. متفاوت است متفاوت است.

برای اینکه بتوانیم اطلاعات را در سطح بخش جمع کنیم ، ابتدا باید شکل های طولانی هر مسیر را در بخش هایی که از توقف برای توقف حرکت می کنند ، کاهش دهیم.

این دقیقاً همان کاری است که عملکرد CUT_GTFS انجام می دهد. این 3 استدلال از GTF های تجزیه شده طول می کشد:

SEGMENTS_GDF = FEED. SEGMENTS

خروجی نشان می دهد:

  • Route_id بخش
  • Direction_id از بخش ها که در GTFS آمده است
  • متوقف کردن توقف شروع بخش از GTFS
  • start_stop_name همانطور که از GTFS می آید
  • end_stop_name همانطور که از GTFS می آید
  • start_stop_id همانطور که از GTFS می آید
  • end_stop_id همانطور که از GTFS می آید
  • segment_id به عنوان یک جمع بندی از start_stop_id و end_stop_id
  • shape_id برای آن بخش همانطور که از GTFS حاصل می شود
  • هندسه به عنوان یک لاینر
  • فاصله_م که طول بخش را در متر نشان می دهد. این برای محاسبه سرعت بعداً مفید خواهد بود.

داشتن بخش ها به خودی خود خروجی نیست ، بلکه فقط یک قدم میانی است که باید در نهایت متغیرهای کل را در سطح بخش برداریم. بیایید ببینیم چگونه این کار را در بخش های بعدی انجام دهیم.

سرعت بخش ها را محاسبه کنید

GTFS اطلاعات زمان را برای هر سفر به ما می دهد و متوقف می شود. اکنون که برای هر بخش فاصله در متر نیز داریم ، محاسبه سرعت بین دو توقف برای هر سفر یک چیز بی اهمیت خواهد بود. ما همچنین می توانیم تعداد سفرهایی را که در آن بخش برای هر پنجره زمانی انجام می شود محاسبه کنیم. از تمام این اطلاعات می توان برای محاسبه میانگین وزنی در هر مسیر ، بخش ، جهت و زمان روز استفاده کرد.

این دقیقاً همان کاری است که عملکرد سرعت_فروم_GTFS انجام می دهد و 4 آرگومان طول می کشد:

  • مسیرها از مرحله 1
  • Stop_time از مرحله 1
  • SEGMENTS_GDF در مرحله 4 محاسبه می شود
  • برش همانطور که در مرحله 2 تعریف شده است
سرعت = feed. avg_speeds

خروجی برای یک بخش خاص ، جهت و زمان روز نشان می دهد:

شما باید رنگ ها و فیلترها را به صورت دستی سبک کنید اما کنترل کاملی بر بصری خواهید داشت. یا همیشه می توانید یاد بگیرید که آن را به صورت برنامه ای انجام دهید (که من هنوز آن را ندارم).

آیا این مقاله را مفید دانستید؟لطفا به من اطلاع دهید که چند چاشنی را ترک می کنم !!

تصدیق و منابع

حتی اگر این یک بسته شرکتی نباشد ، برخی از اعضای تیم NYC Data Science VIA در آخرین به روزرسانی بسته همکاری کردند. فریاد ویژه ای به Mattijs de Paepe که به طور قابل توجهی عملکرد قطعه قطعه را بهبود بخشید و توبیاس بارتش که محاسبه الگوی را انجام داده است.

از نظر تکیه زیاد به بسته های دیگر ، MAP_GDF () فقط یک بسته بندی فولیوم است که بسیاری از شایستگی ها به سازندگان آن می رود.

تجارت با گزینه‌‌های باینری...
ما را در سایت تجارت با گزینه‌‌های باینری دنبال می کنید

برچسب : نویسنده : حمیدرضا پگاه بازدید : 26 تاريخ : سه شنبه 14 شهريور 1402 ساعت: 23:59