Provided by: grass-doc_6.4.3-3_all bug

NAME

       v.net.timetable  - Finds shortest path using timetables.

KEYWORDS

       vector, network, shortest path

SYNOPSIS

       v.net.timetable
       v.net.timetable help
       v.net.timetable  input=name   [layer=integer]   output=name   [walk_layer=integer]   [path_layer=integer]
       route_id=name stop_time=name to_stop=name walk_length=name  [--overwrite]  [--verbose]  [--quiet]

   Flags:
       --overwrite
           Allow output files to overwrite existing files

       --verbose
           Verbose module output

       --quiet
           Quiet module output

   Parameters:
       input=name
           Name of input vector map

       layer=integer
           Layer number
           A single vector map can be connected to multiple database tables. This number determines which  table
           to use.
           Default: 1

       output=name
           Name for output vector map

       walk_layer=integer
           Layer number or name with walking connections or -1
           A  single vector map can be connected to multiple database tables. This number determines which table
           to use.
           Default: -1

       path_layer=integer
           Layer number or name with route paths or -1
           A single vector map can be connected to multiple database tables. This number determines which  table
           to use.
           Default: -1

       route_id=name
           Name of column name with route ids
           Default: route_id

       stop_time=name
           Name of column name with stop timestamps
           Default: stop_time

       to_stop=name
           Name of column name with stop ids
           Default: to_stop

       walk_length=name
           Name of column name with walk lengths
           Default: length

DESCRIPTION

       v.net.timetable finds the shortest path between two points using timetables. v.net.timetable reads input,
       one  query  per  line, from the standard input and writes output to the standard output as well as to the
       output map and to tables linked to layers 1 and 2.  Each line of input must follow one of  the  following
       formats:
       PATH_ID FROM_X FROM_Y TO_X TO_Y START_TIME MIN_CHANGE MAX_CHANGES WALK_CHANGE
       PATH_ID FROM_STOP TO_STOP START_TIME MIN_CHANGE MAX_CHANGES WALK_CHANGE
         where  PATH_ID  is the identificator of a query that is used in the output map to differentiate between
       queries. Search begins at START_TIME. MIN_CHANGE gives the minimum number of  time  (inclusively)  for  a
       change  from  one  route  to  another. MAX_CHANGES denotes the maximum number of changes allowed or -1 if
       infinity.  WALK_CHANGE is 1 or 0 depending whether walking from a stop to another stop  is  considered  a
       change  or  not.  Finally,  the  path is found from FROM_STOP to TO_STOP in latter case and from the stop
       closest to (FROM_X, FROM_Y) coordinates to the stop closest to (TO_X, TO_Y) coordinates in former case.
       For each input query, module outputs a description of the shortest  path  to  the  standard  output.  For
       example, using the tables given below, for the following input:
       47 130 300 0 1 5 0
        the following output is produced:
       Route 15, from 130 leaving at 15 arriving to 250 at 22
       Walk from 250 leaving at 22 arriving to 300 at 24
         Moreover,  the  module  writes  the  path to the output map and stores all the information necessary to
       reconstruct the path to the tables. Table corresponding to stops/points is linked to layer 1  and  looks,
       after the query, as follows:
       cat|path_id|stop_id|index|arr_time|dep_time
       1|47|130|1|0|15
       2|47|250|2|22|22
       3|47|300|3|24|24

       where  CAT  is  the  category  of  a  point in the map, PATH_ID is the path identificator, STOP_ID is the
       identificator of the stop as used in the input map, INDEX is the index of the  stop  on  the  path  (i.e,
       index=1  is  the first stop visited, ...) and ARR_TIME and DEP_TIME denote the arrival time and departure
       time respectively. Arrival time for the first stop  on  the  path  is  always  equal  to  START_TIME  and
       departure time for the last stop is always equal to the arrival time.
       The table linked to the second layer corresponds to subroutes taken between stops. The following table is
       obtainedd for the above query:
       cat|path_id|from_id|to_id|route_id|index|from_time|to_time
       1|47|130|250|15|1|15|22
       2|47|250|300|-1|2|22|24
         where  CAT  is  the  category  of  lines  of  subroute  between stops FROM_ID to TO_ID, ROUTE_ID is the
       identificator of the route taken or -1 if walking, INDEX and PATH_ID  are  as  above  and  FROM_TIME  and
       TO_TIME denote the times between which the route is taken.
       The  output  map  contains  the points on the positions of used stops. If a subroute is taken between two
       stops then a line segment is added between two corresponding points. Finally, instead  of  straight  line
       segment, the actual paths of routes can be given in paths layer. If this parameter is used then each line
       in  the input map must contain identificators as category numbers of all routes passing through the line.
       The module then finds the path between two stops and writes this path instead. In case  of  walking  from
       one stop to another, straight line between the stops is used.

NOTES

       Timetables are stored in a table linked to the given layer of the input map. Timetable consists of routes
       and each route is just a sequence of stops with specified arrival times. If two sequences of stops differ
       only  in  times then they still correspond to two routes. For example, if there is a bus line that leaves
       every 20 minutes and follow exactly the same path every time then there still  needs  to  be  a  separate
       route  for  every  time.  For  each  stop  (given  by the category number of the point) the table storing
       information about the routes must contain the list of all routes stopping  at  the  stop(given  by  route
       identificators)  together with arrival times. That is, the table must contain three columns: stop - which
       is the key of the table, route_id and stop_time where each triple corresponds to a route  arriving  to  a
       stop and a certain time. For example, a valid table might look as follows:
       cat|route_id|stop_time
       100|5|0
       130|5|10
       150|5|20
       250|5|30
       300|5|40
       260|15|5
       130|15|15
       250|15|22
       150|35|17
       250|35|27
       300|35|37
       100|35|50
        Note that stop_time is an integer and so you can use any units and offest to specify arrival times.
        Also,  walking  connections  between  stops can be given by a table linked to walking layer of the input
       map. If this parameter is -1 then walking between stops is not allowed.  The  table  must  contain  three
       columns:  stop  -  which  is the key of the table, to_stop and length. A record in the table says that it
       takes length
        units of time to walk from stop to to_stop. The following is a valid table:
       cat|length|to_stop
       250|2|300
        Beware that this only means that it is possible to walk from stop 250 to stop 300 but not the other  way
       round.

EXAMPLES

       To  find  a path from stop with identificator 130 to stop with category 300, starting at time 0, with one
       time unit for change, maximum of 5 changes and with walking not considered a change of route, we use  the
       following command:
       echo "47 130 300 0 1 5 0" | v.net.timetable \
            input=buses output=path layer=5 walking=6 path=7
        If, on the other hand, we know the coordinates of the places then the following command might be used:
       echo "47 10.31 54.31 90.21 28.21 0 1 5 0" | v.net.timetable \
            input=buses output=path layer=5 walking=6 path=7

SEE ALSO

        v.net, v.net.path, v.net.distance

AUTHORS

       Daniel Bundala, Google Summer of Code 2009, Student
       Wolf Bergenheim, Mentor

       Last changed: $Date: 2013-05-23 13:01:55 -0700 (Thu, 23 May 2013) $

       Full index

       © 2003-2013 GRASS Development Team

GRASS 6.4.3                                                                              v.net.timetable(1grass)