تحديثات الرحلة

تمثّل تحديثات الرحلات التقلّبات في الجدول الزمني. نتوقّع أن نتلقّى آخر الأخبار عن الرحلات التي حدّدت موعدًا لها، وذلك في الوقت المناسب. وستوفّر هذه التعديلات وقت الوصول أو المغادرة المتوقّع للمحطة على طول المسار. ويمكن أن توفّر تعديلات الرحلات أيضًا سيناريوهات أكثر تعقيدًا حيث يتم إلغاء الرحلات أو إضافتها إلى الجدول الزمني، أو حتى إعادة توجيهها.

تذكير: في GTFS، تكون الرحلة عبارة عن تسلسل من محطتين توقفتَين في وقت محدد.

يجب أن يكون هناك تعديل واحد على الأكثر لكل رحلة محدّدة. في حال عدم توفّر معلومات عن رحلة محدّدة، سيتم استنتاج أنّه لا تتوفّر بيانات في الوقت الفعلي للرحلة. ويجب عدم افتراض المستهلك أنّ الرحلة قيد التنفيذ.

إيقاف إشعارات الوقت

يتألف تعديل الرحلة من تعديل واحد أو أكثر على أوقات توقّف المركبات، ويُشار إليها برسائل StopTimeUpdate. ويمكن توفير هذه البيانات لأوقات الإيقاف السابقة والمستقبلية. ويُسمح لك بتجاهل أوقات التوقّف، لكنّها ليست مطلوبة. يجب ألّا يتسرّب المنتجون من الماضي StopTimeUpdate إذا أشاروا إلى توقّف محطة الوصول في الموعد القادم للرحلة المحدّدة (أي أنّ المركبة قد تجاوزت محطّة التوقّف قبل الموعد المحدّد)، وإلا سيتم استنتاج أنّه ما مِن تحديث لهذه المحطة.

على سبيل المثال، إذا ظهرت البيانات التالية في خلاصة مواصفات الخلاصة العامة للنقل العام (GTFS):

  • الإيقاف 4: من المتوقّع عند الساعة 10:18 صباحًا (تحديد الموعد عند الساعة 10:20 صباحًا – دقيقتان)
  • الإيقاف 5: من المتوقّع عند الساعة 10:30 صباحًا (مُجدوَل عند الساعة 10:30 صباحًا - في الوقت المحدد)

...لا يمكن إسقاط توقع المحطة 4 من الخلاصة حتى الساعة 10:21 صباحًا، حتى إذا كانت الحافلة تجتاز المحطة في الساعة 10:18 صباحًا. إذا تم إسقاط StopTimeUpdate للمحطة 4 من الخلاصة في الساعة 10:18 صباحًا أو 10:19 صباحًا، ووقت الوصول المحدد هو 10:20 صباحًا، يجب أن يفترض المستهلك عدم توفّر معلومات في الوقت الفعلي عن المحطة 4 في ذلك الوقت، ويجب استخدام بيانات الجدول الزمني من GTFS.

يرتبط StopTimeUpdate بمحطة. يمكن عادةً إجراء ذلك باستخدام مواصفات الخلاصة العامة للنقل العام (GTFS) stop_sequence أو السمة GTFS stop_id. أمّا إذا كنت تقدّم تعديلاً لرحلة لا تتضمّن trip_id GTFS، عليك تحديد القيمة stop_id لأنّ stop_sequence ليس لها قيمة. ويجب أن تشير السمة stop_id إلى stop_id في مواصفات الخلاصة العامة للنقل العام (GTFS). إذا تمت زيارة stop_id نفسها أكثر من مرة في إحدى الرحلات، يجب توفير stop_sequence في جميع رسائل StopTimeUpdate لتلك الرحلة ضمن stop_id.

يمكن أن يوفّر التحديث التوقيت الدقيق لـ arrival و/أو departure في محطة StopTimeUpdate باستخدام StopTimeEvent. يجب أن تحتوي السمة على قيمة time كاملة أو delay (أي قيمة إزاحة من الوقت المحدد بالثواني). يمكن استخدام الحقل delay فقط في حال أدى التعديل المتعلّق بالرحلة إلى رحلة محدّدة وفقًا لـ GTFS، بدلاً من رحلة مستندة إلى معدّل التكرار. في هذه الحالة، يجب أن يساوي الوقت الوقت المُجدوَل + التأخير. يمكنك أيضًا تحديد السمة uncertainty من عبارات البحث المقترَحة، بالإضافة إلى محتوى StopTimeEvent، الذي تتم مناقشته بمزيد من التفاصيل في القسم غير مؤكّد في أسفل الصفحة.

بالنسبة إلى كل StopTimeUpdate، تكون علاقة الجدول الزمني التلقائية هي scheduled. (لاحظ أن هذا يختلف عن علاقة الجدول الزمني للرحلة). يمكنك تغيير هذا الخيار إلى skipped إذا لم يتم إيقاف محطّة التوقّف عند الساعة، أو إلى no data إذا كان لديك فقط بيانات الوقت الفعلي لبعض الرحلة.

يجب ترتيب التحديثات حسب stop_sequence (أو stop_ids بالترتيب الذي تظهر به في الرحلة).

في حال عدم توفّر محطة واحدة أو أكثر على طول الرحلة، يتم نشر التعديل على جميع المحطات اللاحقة. وهذا يعني أن تعديل وقت التوقف عن محطة معيّنة سيؤدي إلى تغيير جميع محطات التوقف اللاحقة في حال عدم توفّر أي معلومات أخرى.

المثال الأول

أمّا بالنسبة إلى الرحلة التي تشمل 20 محطة، فإنّ StopTimeUpdate مع تأخّر الوصول وتأخير المغادرة يبلغ 0 (StopTimeEvent) stop_sequence عن محطة التوقف الحالية يعني أنّ الرحلة في الموعد المحدّد.

المثال الثاني

بالنسبة إلى مثيل الرحلة نفسه، يتم إرسال ثلاث رسائل StopTimeUpdate:

  • تأخير لمدة 300 ثانية لمدة stop_sequence 3
  • تأخير لمدة 60 ثانية لمدة stop_sequence 8
  • تأخير لمدة غير محدّدة لمدة stop_sequence 10

سيتم تفسير ذلك على النحو التالي:

  • تتضمن الرسائل من 1 و2 إلى stop_sequence تأخيرًا غير معروف.
  • رسائل stop_sequence 3,4,5,6,7 تتضمن تأخيرًا لمدة 300 ثانية.
  • تتأخر رسائل 8.9 من stop_sequence لمدة 60 ثانية.
  • هناك تأخير غير معروف في الرسائل stop_sequence 10 إلى 20.

وصف الرحلة

تعتمد المعلومات التي يوفّرها واصف الرحلة على الجدول الزمني لعلاقة الرحلة التي تعدّلها. هناك عدد من الخيارات التي يمكنك تحديدها:

القيمة التعليق
Scheduled تعمل هذه الرحلة وفقًا لجدول زمني تستند إلى مواصفات الخلاصة العامة للنقل العام (GTFS)، أو تكون قريبة بما يكفي لتبقى مرتبطة بها.
Added لم تتم جدولة هذه الرحلة وتمت إضافتها. على سبيل المثال، للتعامل مع الطلب أو استبدال مركبة معطّلة.
Unscheduled هذه الرحلة قيد التشغيل ولا ترتبط بجدول زمني مطلقًا. على سبيل المثال، إذا لم يكن هناك جدول زمني وتم تشغيل الحافلات عبر خدمة نقل،
Canceled تم تحديد موعد هذه الرحلة، ولكن تمت إزالتها الآن.

في معظم الحالات، عليك توفير trip_id للرحلة المجدولة في مواصفات الخلاصة العامة للنقل العام (GTFS) التي يرتبط بها هذا التعديل.

أنظمة بقيم متكررة_للرحلة

بالنسبة إلى الأنظمة التي تستخدم قيم trip_id متكرّرة، مثل الرحلات المستندة إلى نماذج frequencies.txt، والتي تمثّل الرحلات المستندة إلى معدّل التكرار، لا تمثّل trip_id في حد ذاتها معرّفًا فريدًا لرحلة واحدة، لأنّها تفتقر إلى مكوّن زمني محدّد. لتحديد هذه الرحلات بشكل فريد ضمن TripDescriptor، يجب توفير ثلاثة معرّفات:

  • trip_id
  • start_time
  • start_date

يجب نشر start_time أولاً، ويجب أن تستخدم أي تعديلات لاحقة للخلاصة start_time نفسها عند الإشارة إلى الرحلة نفسها. StopTimeUpdate يجب استخدام هذه السمة للإشارة إلى التعديلات، وليس من الضروري أن تكون السمة start_time وقت المغادرة من المحطة الأولى بدقة، إلا أنّ الوقت يجب أن يكون قريبًا جدًا من ذلك الوقت.

لنفترض مثلاً أننا قرّرنا الساعة 10:00 أيار (مايو) 2015، أن الرحلة مع trip_id=T ستبدأ في start_time=10:10:00، وسيتم تقديم هذه المعلومات من خلال خلاصة الوقت الفعلي في الساعة 10:01. وبحلول الساعة 10:05، ندرك أنّ الرحلة ستبدأ في الساعة 10:10 مساءً ولكن عند الساعة 10:13. في خلاصة "الوقت الفعلي" الجديدة التي نتّبعها، لا يزال بإمكاننا تحديد هذه الرحلة على أنّها (T, 2015-05-25, 10:10:00)، ولكنّنا سنوفّر StopTimeUpdate عند المغادرة من المحطة الأولى في الساعة 10:13:00.

مطابقة رحلات بديلة

بالنسبة إلى الرحلات التي لا تستند إلى معدّل تكرار، يمكن أن تحدّدها TripDescriptor أيضًا بشكلٍ فريد، بما في ذلك:

  • route_id
  • direction_id
  • start_time
  • start_date

حيث يمثّل start_time وقت البدء المحدد كما هو محدّد في الجدول الزمني الثابت، طالما أنّ مجموعة المعرّفات المقدَّمة تعود إلى رحلة فريدة.

عدم اليقين

تنطبق حالة عدم التأكّد على الوقت وقيمة التأخير لـ StopTimeUpdate. عدم التيقّن يحدّد تقريبًا الخطأ المتوقَّع في التأخير الصحيح كعدد صحيح بالثواني (إلا أنّه لم يتم تحديد المعنى الإحصائية الدقيق بعد). ويُحتمل أيضًا أن تكون حالة عدم التأكّد هي 0، على سبيل المثال، بالنسبة إلى القطارات التي يتم قيادة السيارة تحت عناصر التحكّم في توقيت جهاز الكمبيوتر.

على سبيل المثال، إنّ الحافلة التي تستغرق مسافة بعيدة والتي يتأخر ظهورها لمدة 15 دقيقة تصل إلى محطتها التالية في غضون 4 دقائق من الخطأ (أي أكثر من دقيقتَين أو أقل من دقيقتَين) ستبلغ قيمتها uncertainty 240.