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