Инструменты пользователя

Инструменты сайта


gid:norm:format_ntp

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

В файле NTP представлен список поездов из нормативной базы ГИД norbase.NN.

Каждый поезд может состоять из нескольких нормативных ниток (не меньше одной и не более 64). Нитки одного поезда отличаются между собой расписанием, т.е. набором станций в маршруте и/или временем операций прибытия/отправления по станциям. У каждой нитки может быть свой календарь, в котором заданы даты, когда эта нитка «в ходу».

Описание одного поезда в файле начинается со строки

  • @I, в этой строке описываются некоторые общие свойства поезда.

Затем следуют строки описания ниток. Каждая нитка нитка описывается строками

  • @N – некоторые свойства нитки;
  • @R – маршрут нитки, т.е. перечень станций по маршруту в порядке их следования;
  • @T – времена операций (час и минута) прибытия/отправления в каких-либо сутках без дат, представлены в виде списка пар значений [суточное время прибытия : суточное время отправления] в том же порядке, что и маршрут;
  • @W – парк/путь на станции, представлены в виде списка пар номеров парка/пути, по которому совершается операция прибытия/отправления в том же порядке, что и маршрут;
  • @K – строки с календарем, для одной нитки может быть несколько строк @K, т.к. одна строка описывает даты одного месяца, соответственно, если календарь охватывает несколько месяцев, то на каждый месяц заводится своя строка в порядке увеличения дат.

Существует два типа представления расписания нитки: простой и расширенный.

Простой тип предназначен для расписаний, которые имеют «нормальную» форму, для остальных ниток предназначен расширенный тип.

«Нормальную» форму имеет нитка, у которой каждая последующая операция по времени позже предыдущей и разница по времени между соседними операциями не составляет более 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

  • Атрибут ID – внутрисистемный идентификатор (обязательное поле)
  • N – номер поезда (обязательное поле)

Строка @N

  • Атрибут K – не используется, зарезервирован для системы (обязательное поле)
  • Атрибут S – тип источника данных (обязательное поле)
  • Атрибут D1 –первая дата календаря, когда поезд в ходу (необязательное поле, если календарь не введен)
  • Атрибут D2 – последняя дата календаря, когда поезд в ходу (необязательное поле, если календарь не введен)
  • Атрибут T – текстовое название нитки/поезда (необязательное поле)

Строка «;» - комментарий

Строка @R – список 5-зн. кодов ЕСР станций маршрута, между кодами не менее одного пробела, символ «н» или «ч» справа или слева кода означает смену четности номера по маршруту на этой станции по прибытию или отправлению соотв. Значение номера первой операции совпадает с номером N, если не указано иное при помощи символов «н» или «ч». Четность меняется по правилу 1/2, 3/4 и т.д.

Строка @T – пары значений вида HHMM HHMM, где HH – это часы, а MM – минуты суток с лидирующими нулями. Значение 8888 – означает отсутствие данных о времени для соответствующей операции. Символ «^» между временами прибытия и отправления означает признак технической стоянки поезда на этой станции. Символ «^» после времени отправления – означает признак «отправление на неправильный путь».

Строка @K

  • Атрибут Y – год календаря
  • Атрибут M - месяц календаря
  • Атрибут D – дни месяца, строка состоит из 32-х символов «0» или «1», каждый символ находится в позиции, соответствующей календарному дню месяца, по возрастанию слева на право. Если в каком-то месяце нет соотв. даты, то ставится 0. 32-й символ – резерв, должен быть 0. Привязка календаря производится к первой операции нитки. Пример: нитка начинается с прибытия на станцию в 23:59, отправление с этой станции в 00:10. В календаре должна стоять дата прибытия, отправление сама программа должна переносить уже на следующие сутки от даты прибытия.

Расширенный тип нитки:

Принципиальное отличие от простого типа заключается в способе описания пар времен прибытия/отправления. Описание операций на станции заключено в угловые скобки и внутри скобок идет перечисление именованных атрибутов, по аналогии с форматом атрибутов XML. Пустые скобки <> означают отсутствие данных об операциях для соответствующей станции. В одной строке пары времен могут идти друг за другом как простого типа, так и расширенного. Это зависит от того нарушается ли «нормальная» форма нитки на какой-то станции или нет и от наличия каких-то особых свойств, описание которых не предусмотрено в простом типе.

Пример

<Pr="1416" Ot="1502">
  • Атрибут Pr – время прибытия в формате diff+HHMM:SS
  • Атрибут Ot – время отправления в формате diff+HHMM:SS

Если на станции операция «сходу», то вместо 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 минут.

Дополнительные возможные атрибуты:

  • Tech=«1» - техническая стоянка
  • ON=«1» – отправление на неправильный путь
  • pvbeg=”diffmm«, pvend=«diffmm» – если есть на станции стоянка для посадки/высадки пассажиров по времени отличная от «движковой» стоянки, то эти поля задают смещение времен в кол-ве минут начала и конца такой стоянки относительно времен операций прибытия/отправления.

Пример 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"                                                                                   
gid/norm/format_ntp.txt · Последние изменения: 2019/07/09 10:52 (внешнее изменение)