В файле NTP представлен список поездов из нормативной базы ГИД norbase.NN.
Каждый поезд может состоять из нескольких нормативных ниток (не меньше одной и не более 64). Нитки одного поезда отличаются между собой расписанием, т.е. набором станций в маршруте и/или временем операций прибытия/отправления по станциям. У каждой нитки может быть свой календарь, в котором заданы даты, когда эта нитка «в ходу».
Описание одного поезда в файле начинается со строки
Затем следуют строки описания ниток. Каждая нитка нитка описывается строками
Существует два типа представления расписания нитки: простой и расширенный.
Простой тип предназначен для расписаний, которые имеют «нормальную» форму, для остальных ниток предназначен расширенный тип.
«Нормальную» форму имеет нитка, у которой каждая последующая операция по времени позже предыдущей и разница по времени между соседними операциями не составляет более 12-ти часов. Таким образом переход времени операций через 00:00 находится в том месте, где последующая операция имеет суточное время меньше предыдущего и разница по времени между ними не составляет более 12 часов.
Простой тип нитки:
Пример:
@I ID="4784 22382 63112 4784" N="4784" @N K="0" S="8" D1="22.07.2014" D2="02.08.2014" T="Ряжск 2 - Еголдаево" ; Ряжск 2 Ряжск-2 СА Еголдаево @R 22382 22383н 63112 @T 8888 0812 0816^0826 0838 8888 @K Y="2014" M="07" D="00000000000000000000011111000000" @K Y="2014" M="08" D="11000000000000000000000000000000"
Строка @I
Строка @N
Строка «;» - комментарий
Строка @R – список 5-зн. кодов ЕСР станций маршрута, между кодами не менее одного пробела, символ «н» или «ч» справа или слева кода означает смену четности номера по маршруту на этой станции по прибытию или отправлению соотв. Значение номера первой операции совпадает с номером N, если не указано иное при помощи символов «н» или «ч». Четность меняется по правилу 1/2, 3/4 и т.д.
Строка @T – пары значений вида HHMM HHMM, где HH – это часы, а MM – минуты суток с лидирующими нулями. Значение 8888 – означает отсутствие данных о времени для соответствующей операции. Символ «^» между временами прибытия и отправления означает признак технической стоянки поезда на этой станции. Символ «^» после времени отправления – означает признак «отправление на неправильный путь».
Строка @K
Расширенный тип нитки:
Принципиальное отличие от простого типа заключается в способе описания пар времен прибытия/отправления. Описание операций на станции заключено в угловые скобки и внутри скобок идет перечисление именованных атрибутов, по аналогии с форматом атрибутов XML. Пустые скобки <> означают отсутствие данных об операциях для соответствующей станции. В одной строке пары времен могут идти друг за другом как простого типа, так и расширенного. Это зависит от того нарушается ли «нормальная» форма нитки на какой-то станции или нет и от наличия каких-то особых свойств, описание которых не предусмотрено в простом типе.
Пример
<Pr="1416" Ot="1502">
Если на станции операция «сходу», то вместо Pr и Ot применяется один артибут Sh. <Sh=«1416»>
Формат diffmm+HHMM:SS - diffmm количество минут, оно дает возможность явного указания разности времени операции от предыдущей операции в большую или меньшую сторону (при помощи знака). Эта разница добавляется в случае если нитка не «нормальной» формы. SS – позволяет указать секунды времени операции, если они отличны от 00.
Пример
<Pr="1416" Ot="1486+1502:30">
прибытие в 14:16 в сутках N, отправление в 15:02:30 в сутках N+1, стоянка 1502 минут 30 секунд, или 1 сутки 46 минут 30 секунд. Последующие операции высчитываются уже с учетом этого смещения.
Пример
<Sh="1416"> <Pr="-12+1402" Ot="1412">
это пример «кривой» нитки, у которой операция прибытия по времени меньше, чем операция проследования по предыдущей станции на 12 минут.
Дополнительные возможные атрибуты:
Пример 1:
@I ID="0055 61040 19150 0055Щ" N="0055" @N K="0" S="1" D1="25.07.2014" D2="25.07.2014" T="Баку Пасс - Москва Курская" ; Волжский Грязи-Орловские Казинка Чугун-2 Чугун-1 Липецк Сенцово @R ч61040н 59201 59210 59230 59240 59250 59260 @T 0343 0345 <Sh="868+1813"> 1830 1830 1834 1834 1840 1840 1850 1855 1911 1911 @W 0/1 0/1 0/1 0/1 0/1 0/1 0/1 @K Y="2014" M="07" D="00000000000000000000000010000000"
Пример 2:
Завидово Редкино Тверь Дорошиха Лихославль Калашников 06130 06140 06150 06165 06210 06230 1339 1339 1349 1349 <Pr="1416" Ot="1502" pvend="-44"> 1508 1508 1528 1528 1541 1541 0/2 0/2 0/2 0/2 0/2 0/2
Пример 3:
@I ID="6001 19351 22890 6001" N="6001" @N K="0" S="6" D1="26.07.2014" D2="26.07.2014" T="Москва Пав. - Узуново" ID_ET="541740232" ; МоскваПавл МоскваТПав Коломенско БирюлевоТв БирюлевоПс Домодедово Белые Столбы Барыбино Михнево @R 19351 19350 19340 19330 19295 19290 19280 19270 19260 @T 8888 0413 0416 0416 0427 0428 0435 0436 0438 0439 0457 0458 <Pr="0509:30" Ot="0511"> 0518 0519 <Pr="0533:30" Ot="0534"> @W 1/5 1/1 0/1 1/1 0/1 0/1 0/1 0/1 0/1 @K Y="2014" M="07" D="00000000000000000000000001000000"