TRITAPT schedule data

TRITAPT stores scheduled and observed data for one day, one route and one direction in a file. If a route has branches, it must be defined as several routes (one for each branch). It is, however, allowed to have trips that visit only a sub-section of the route.
We have developed software that can import route and schedule data that is provided in a very simple tabular form. The table consists of a number of rows that describe the route, followed by one row for each scheduled trip. The route description rows can occur in any order (as long as that order is used consistently). Some route description rows are required, others are optional. The fields in each row are normally separated by one tab character (ASCII 0x09), but this is configurable. In the route description part of the table, the first column is ignored (it is allowed to write a comment there); the information for the first stop on the route starts with the 2nd column.
RowContent of columns 2 .. NRequired / Optional
Stop namesName of each stop (only the first 30 characters are used by TRITAPT)Required
Stop name abbreviationsOne two-letter stop name abbreviationOptional
Stop distancesRelative or cumulative distances of / between the stops in m, or any other unit of distanceRequired
Geo locationsGeographical location of each stopOptional
Stop codesPositive integer number identifying each stop (must be unique within a route)Optional
Time point indicators"T" for yes, leave blank if noOptional
Geographical locations can be specified in WGS84 and in a local coordinate system (such as the Dutch RD system for the Netherlands). The two coordinates of each location may be written in one cell (separated by a comma), or in two separate rows of the table. WGS84 coordinates must be written as a normal floating point number (using a point; not a comma as the radix separator).
Both WGS84 and local coordinate system coordinates may be provided.
If no time-point indicators are provided, all stops are considered time-points by TRITAPT.

The trip specific information follows the route description. Each scheduled trip occupies one row in the table. The first column must contain a trip identifying, positive integer number. If a company does not use such numbers, use the trip number, or use the fixed value 0. Columns 2..N must be filled with the scheduled departure time for each stop. If a trip visits only a sub-section of the route, leave the cells for the non-visited stops blank.
The time in the last non-blank cell is interpreted as scheduled arrival time; all others are considered departure times. But, if at some stop the scheduled departure time differs from the scheduled arrival time, an extra column must be inserted in the entire table for that stop and both arrival and departure times must be specified for that stops for all scheduled trips. The stop name, abbreviation, number, geo-info, etc., should be the same for both columns. If distances are cumulative, the distance for the departure time column should be 0, otherwise it should be the same as the distance for the arrival time column.
Times can be written in hh:mm:ss format, hh:mm format, or as the number of seconds since the start of the day. However, times that describe (part of) trips that occur past midnight, but belong to the time-table of the preceding day must be written with un-wrapped time values like 24:03:00, or 24:03, or 86580.
It is possible to use comments in the file. A comment starts with a # (sharp) symbol and causes the remainder of the line to be ignored.
A super-simple example of a schedule file with lots of comments is shown below. This file describes a route with 5 stops and two scheduled trips.

# This is a ultra simple file describing a schedule
# Comments start with a hash (like this line)
#
# List of stop names (all on one line, preceded by one tab, separated by tab)
	Stop 1	Stop 2	Stop 3	Stop 4	Stop 5
#
# List of cumulative stop distances in m (all on one line, preceded by one
# tab, separated by one tab)
	0	350	790	1010	1400
#
# List of scheduled trips, one line per scheduled trip:
# first field: trip ID (integer, preferably unique)
# subsequent fields: scheduled departure times at the stops
# These times can be specified in seconds since midnight or in
# HH:MM:SS format. Times after midnight of trips that belong to
# the preceding calendar day must be specified using values
# from 86400 or 24:MM:SS
# All fields are separated by one tab character
# If a trip visits only part of a route, leave fields before
# and after that route section blank (resulting in multiple,
# consecutive tab characters).
# trip 1:
0010101	8:00:00	8:02:00	8:04:00	8:05:00	8:07:00
# trip 2 (same time distribution; ten minutes later):
0010102	8:10:00	8:12:00	8:14:00	8:15:00	8:17:00
The TRITAPT observed data page shows an example of an equally simple observed data file that matches the two trips shown here.