[pgrouting-dev] Time dependent data and input format
Stephen Woodbridge
woodbri at swoodbridge.com
Fri Apr 29 21:34:28 EDT 2011
Jay,
On 4/29/2011 5:34 PM, Jay Mahadeokar wrote:
> Hi,
>
> Lets use this thread for discussion on following points:
>
> 1. What should be the input format for time dependent data?
>
> 2. What are the options to obtain real world time dependent data? If it
> is not freely available, then what are the alternatives to test our
> code? (randomly generated time dependent data would be rather inadequate)
There are probably fewer free time dependent data source available than
others, but one that we could potentially use is MassGIS
http://www.mass.gov/mgis/laylist.htm
Look at the infrastructure section and specifically:
# MassDOT Roads - Updated October 2009
# Highway Exits and Routemarker Locations
# Census 2000 TIGER Roads
# Trains
# MBTA Rapid Transit
# MBTA Bus Routes and Stops
# Ferry Routes
# Boston Harbor Water Taxi Stops
This should give use a variety of infrastructure networks that we would
need to augment with schedule information.
We can get the MBTA bus and train schedules online also.
http://www.mbta.com/
We looked at these doing the multimodal routing last year.
We should be able to find similar data for some other large cities. I
have not looked for data for say Mumbai or other cities in India but you
might have some luck if this is of interest.
If you are interested in working with Navteq data, you can register here:
http://www.nn4d.com/site/global/home/p_home.jsp
and then download a city worth of their data, which is primarily
oriented to the navigable road networks and traffic feeds, but is
probably less interesting than MassGIS above. The think that would be
interesting with the Navteq data is that it has the time dependent turn
restrictions.
We currently only support turn restriction in the shooting start
algorithm but I would love to see the turn restriction time dependent or
not get implemented in Dijkstras or A-Star with a clean simple mechanism
for loading the turn restrictions.
> *Input format for time dependent data:
I would think that you need:
start_time_and_date,
start_location,
end_location,
options
It you wanted to get fancy, it might be nice to be able to do the
reverse and say:
start_location,
end_location,
arrival_time,
options
In this version you would have to figure on the route starting at the
end and working backwards to the start location to figure on the route
and the required start time.
> *There has already been a brief discussion on this topic before. A quick
> recap:
>
> According to Stephen:
>
> * It is better to assume data to be present in a simpler model that
> is easy to work.
> * It is better to have 5 simple to work with tables than 1-2 complex
> ones.
> * We can then provides data loaders that will convert the data from
> different format into our designed model.
>
> Daniel had listed many possible scenarios in which time-dependent
> shortest path can be applicable.
>
> *Some Ideas:
>
> *The edge cost will eventually be a function of following (please feel
> free to add any new points):
>
> * Time
> * Vehicle type
>
> For time, each discrete time interval can have one entry per edge. If we
> assume t time intervals (which can be as small as 5 minutes as available
> in commercial Navteq time dependent data) there would be |E| * t entries.
>
> For vehicle type again if we consider v vehicle types, there will be
> total |E| * t * v entries.
>
> So, besides the edges table that has entries for every edge and other
> edge related information (like ways in Barcelona dataset), we can have
> another table with columns:
>
> * EdgeID
> * vehicleType
> * TimeInstant
> * Cost
>
> Once / if we are able to acquire any real world time dependent data, we
> can then write data loaders that would convert the data into our format.
>
> Comments / improvements welcome.
Ok, I want to go back to the purpose of my original statements about
tables. I'm working under the follow assumptions about how thing will work.
User - application developer, the person build an application using our
finished pgRouting product.
Client - the person using the application built by "User"
1. the User will take data like from MassGIS and load the network data
and prep it for pgRouting.
2. the User will take the MBTA bus and train and subway schedules and
load them into tables the closely reflect the underlying schedule data.
3. the User will develop a stored procedure to read the schedule data
and morph it into some predefined notion whatever that might be. This
could be to load it into a more normalized table or it might be to
service a specific query and return a normalized record.
4. the Client make a route request
5. a wrapper script queries the networks and the schedules and this data
gets built into a temporary boost graph structures to service this request.
6. results are returned to the Client and stuff is cleaned up.
I think this is basically the same flow we use today in pgRouting with
the exception of the schedules or whatever time dependent data we have.
And with we are not using schedules and only looking at time dependent
turn restrictions and oneway streets then I think using the same
approach is still valid but instead of loading schedule information, we
would load the turn restriction.
Thoughts?
Regards,
-Steve
> --
> Regards,
> -Jay Mahadeokar
>
>
>
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
More information about the pgrouting-dev
mailing list