Формат файла .NTP

В файле 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"