[pgrouting-dev] Support for Time Constraints

Jay,

I have downloaded all the data for April 2011 for the California sensors based on hourly stats from:

http://pems.dot.ca.gov/?dnode=State&content=dbx&tab=dbx_download

You have to create an account and login to get to the data.

Here is a description of the data fields:
http://pems.dot.ca.gov/Help/context.phtml?content=ctx&dnode=State&topic=dbx#text-station_hour

You can also download raw sensor data, 5 min, 1 hr, 1 day data summaries. It's a lot of data! If someone wanted to get fancy/crazy? they could download a years worth of data or multiple years and then try to summarize that in hourly data by day of week, holidays, etc.

Each sensor is located by both a lat/long position and a description and has average speed over the interval being collected, into addition to number of lanes, and vehicle counts.

There are 9 separate coverage areas in California that the data is grouped into.

My thought is to some day I'll do something with this data if I can get a routable data set for California maybe able to use OSM data for this.

-Steve

On 5/27/2011 10:42 AM, Stephen Woodbridge wrote:

Correction: TMC - Traffic Message Channel or Traffic Management Center

On 5/27/2011 10:18 AM, Stephen Woodbridge wrote:

Jay,

Trying to narrow down some google searches this looks like it might have
some promising candidates:

http://www.google.com/#q=traffic+data+feed+data+standards+tmc+adms

ADMS - Archived Data Management Systems
TMC - Traffic control centers

This looks like a potential site for getting archived real-time data:
https://pems.eecs.berkeley.edu/?redirect=%2F%3Fdnode%3DState
http://pems.dot.ca.gov/

So from a project point of view, I'm not sure it is a good idea to spend
much time research potential data sources and coding tools to summarize
the data into tables. While this is clearly interesting and might be a
good ideas after GSoC, I think it might be a huge time sync and it would
be better to just make some test networks by hand.

One of the problems you will run into with most if not all of these
sites, is mapping sensors to edges. This might not be hard if the supply
the lat/lon of the sensor, but in may cases I think they just supply a
textual description of the sense and you have to map that to a edge.

-Steve

On 5/26/2011 11:31 PM, Jay Mahadeokar wrote:

Hi,

We had discussed some possible ways of getting the test time-dependent
data, but reached no particular solution.

I found this link: http://bhelp.traffic.com/

It a Navteq service and provides live traffic information. You need to
login, and then you can browse live traffic.
You can select each road and get following info:

- Jam factor
- Drive time now
- delay
- speed limit
- average speed

I guess, this is exactly what we need. Even if we can record the
drive-time now, for each road at intervals of 1 hour each for a
particular city, we will have significant time dependent data.

I browsed the website but did not find any link where this data is made
available. Is there any way to record this data? Any starting points?

On Thu, Apr 7, 2011 at 10:05 PM, Jay Mahadeokar
<jai.mahadeokar@gmail.com <mailto:jai.mahadeokar@gmail.com>> wrote:

Hello all,

Just an update - as Daniel suggested I posted a query about
time-Dependent data in OSM routing list. It seems they dont have
such data, but people have posted some things that might be useful
for us in future. Here is link to the discussion -
http://lists.openstreetmap.org/pipermail/routing/2011-April/001127.html
You may want to have a look there.

Sorry for the delayed replies, presently, I am a bit occupied by
college submissions. I will go through the links and the ideas
proposed here by Daniel and Steve soon. As already said I guess we
need to put a lot of thought in designing the data model, that would
be easy for users to use, robust and flexible for different
applications, and at the same time efficient in terms of query and
processing time. I will try and come up with thoughts on that soon.

Regarding Navteq data, the website says that only one data-set will
be allowed to download. So, I was wondering which data should be
preferred. Also, there are various data-formats that Navteq provides
data in. Steve, have you downloaded any data which specifically has
time-dependent edge weights?

Though we will not want the module to follow Navteq standards, any
time-dependent data would be very helpful for me, since I also want
to try out some heuristics on that as part of my thesis. The work
done by R. Geisberger, P. Sanders and others is experimented on the
Germany data provided by PTV AG
http://www.ptvag.com/company/contact/. I have requested them data
for research purposes. Have you worked with their data by any chance?

Regards,

On Tue, Apr 5, 2011 at 8:05 PM, Stephen Woodbridge
<woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>> wrote:

On 4/5/2011 1:37 AM, Daniel Kastl wrote:

Hi Jay,

As Steve said, Navteq sample data is one possibility ... and
it's better
than nothing :wink:

Well, I think we should avoid to support a single data
provider, because
who tells that the format they defined several years ago is
the most
suitable one. It might work perfectly for Navteq and road
networks in
countries they are operating, but this doesn't say there
won't be a more
clever way to store such an information.
I think it will be always necessary to transform data into a
format
pgRouting algorithms can handle. So it's OK in my opinion to
define some
convenient format if there isn't an existing standard
already (which
doesn't exist afaik).
But Navteq is good data for testing, I agree. For the
beginning I think
it might be even too complex model, as Steve mentioned there
are even
time dependent turn restrictions.

I think that the value in looking at Navteq is not to use it
all, but that it is a concrete data model that expresses all the
various routing characteristics that you might run into in other
data sets. Navteq has been the basis for almost all routing
solution during the past 10-15 years. There are now others like
TeleAtlas, and even OSM. So look it over and use as much or as
little as you need to get started. Designing a data model is
very complex and you can not do it in the abstract - you need to
know what you are modeling.

As far as defining an data model that is easy for users to work
with, keep the tables simple to understand and load with data.
It is better to have 5 simple to work with tables than 1-2
complex ones. If you need to transform the data inside then have
a preparation function that reads the user tables and applies
them to the graph. So examples of user tables might be:

o bus, train, ferry, airline schedules
o live traffic data table
o historical speed estimates by day/time (as Daniel mentions below)
o transfer rules - required pre-deparature arrival time when
transferring to a different transportation mode and
post-scheduled arrival wait time when transferring from a mode.
EG, must arrive at airport 2 hr before flight departure and
allow 45 mins after arrival to collect baggage or longer on
international flights. (this might not apply to your specific
problem)

A good place to discuss such a question might be also the
"OSM routing"
mailing list. In the worst case nobody will answer. But
maybe you will
start a long discussion as there are several people very
interested in
routing related topics. OSM data would be nice, if we could
make use of
it, but I fear that not many mappers really think about
time-dependent attributes. Probably in Germany you can find
such a data.

Yes, working with OSM is another good possibility.

I thought a bit about some possible cases for time dependent
road networks:

* In Japan a big issue for navigation software are so
called "School
Zones", which are areas around schools obviously,
which are closed
for motorized traffic at certain times in the morning.
* In Europe I know about pedestrian areas for example,
which can be
used for delivery of goods after regular business
hours. Or heavy
trucks are not allowed to access roads during certain
times.
* Some highways/roads in Germany have a speed limit
during night time
* Ferry services might only operate during day time (so
if you
missed the last ferry, you might have to take a longer
way)
* In Japan they have so called VICS data
(http://www.mlit.go.jp/road/ITS/conf/2006/ts20.pdf)
collected from
road sensors, which can tell the typical speed on
roads during
certain hours.

... and so on ...

One last thought on loading data. I work a lot with Navteq and
LOTS of other data sets. The one common theme that I come back
to is that I create data loaders for the various data sets I
work with so I can load the data into the database and I always
end up transforming the data into a simpler model that is easy
to work with and then used by whatever application I am working
on. Sometimes I transform the data in the loader and sometimes I
just load it raw and transform it in the database and then drop
the raw data tables.

Hope this helps,
-Steve

I think what pgRouting is currently missing are some sort of
"unit
tests" on some test network. This can be a regular grid with
costs
assigned, that model a certain routing case. It would be really
convenient to have something like this.

Daniel

2011/4/5 Jay Mahadeokar <jai.mahadeokar@gmail.com
<mailto:jai.mahadeokar@gmail.com>
<mailto:jai.mahadeokar@gmail.com
<mailto:jai.mahadeokar@gmail.com>>>

Hi,

Since we will be working on time-dependent shortest path
problem, I
was wondering if time-dependent geographic data is
freely available
for research purposes. [1] states that we witness an
increasing
number of navigation service providers (such as Navteq and
TeleAtlas) have started releasing their time-dependent
travel-time
datasets for road networks at high-resolution temporal
granularity
as fine as one sample for every five minutes.

I guess that data is not freely available. Anyways, if
you know such
data-source can you please direct me? Besides this
project, I am
also working on some new heuristics for time-dependent
shortest path
as part of my thesis and the data would be really
helpful for my work.

Thanks.

[1] http://portal.acm.org/citation.cfm?id=1869865

On Thu, Mar 31, 2011 at 7:49 PM, Stephen Woodbridge
<woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>
<mailto:woodbri@swoodbridge.com
<mailto:woodbri@swoodbridge.com>>> wrote:

On 3/30/2011 9:45 PM, Daniel Kastl wrote:

float cost := getEdgeCost(time,
vehicle_type,
node_from,
node_to);

or something like that. Where time
could be NULL
for some
default
behavior, or a value that would be
used to
figure out the cost.
vehicle_type might be helpful if
there are
multiple costs to
traverse a link based on say, car,
carpool, bus,
truck, walking,
taxi, etc. This could also be used
to implement
the rules
for bus
and train lines.

I think one of the difficulties with routing
topic is that
everyone
(also myself) immediately think about routing in
terms of
vehicle types.
It's the easiest example to explain pgRouting,
but I think
one premise
of pgRouting is that it should work for any kind
of network.
Let's say
your network would be the human nervous system.
What is a
vehicle there?
Well, probably changing "vehicle_type" to
"speed" would make
sense, right?

Sorry for using vehicle as the selector maybe
"service_type"
would be better, but the point is not the name,
"speed" is
equally misleading, the point is to be able to be
able to pass a
selector to the under lying function so that based
on the
selector we can compute an appropriate cost.

For my vehicle routing example, I chose: car,
carpool, bus,
truck, walking, taxi, etc. because these might have
different
rules associated to them. The selector values would be
appropriate to the model that you were working with.

car vs carpool vs bus - many cities have HOV lanes
that bus and
carpool can use but not single occupancy cars. We
might want to
allocate a higher speed to those lanes vs the normal
lanes
during rush hours. Emergency vehicles many be
allowed to make
u-turns on highways that other vehicles can not
make. Trucks
might be banned from some streets so need to be costed
appropriately, etc.

If we had a live traffic feed information linked to
segment ids
in another table, The cost function could be
implemented to
check that table and if a record exists then use that
information or return the standard information. By
keeping this
data in a separate table that is presumably much
smaller and
dynamic than the street records it would make it
much easier and
more cost effective to make dynmaic changes to that
table and to
hide (abstract away complexity) by using a cost function
supplied to the underlying code.

-Steve

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Hi Jay,

Maybe I’m wrong, but I’m not sure it’s really necessary to have “live” traffic feeds available to make use of TDSP.
It will be hard to get such data for free and it’s difficult to guess how such data might be organized.

But for my understanding “time-dependent” doesn’t need to go that far to support such kind of feeds.
Time constraints can be simple access restrictions to parts of your network at certain times for example.

Test data can be very simple at the beginning and self made in my opinion. If at a later time it appears that there is functionality missing to support traffic feeds, then this can be added at a later time.

So for some sample data these cases come to my mind:

  • highways in urban areas have a speed limit during night times to reduce the noise
  • some roads in city centers are closed for cars during business hours
  • roads may have different cost in each direction in the morning, when people drive to work, and in the evening when the drive back home.
    In Germany these three examples are common and will also be available in OSM someday, I guess.

What do you think?

Daniel

2011/5/27 Jay Mahadeokar <jai.mahadeokar@gmail.com>

Hi,

We had discussed some possible ways of getting the test time-dependent data, but reached no particular solution.

I found this link: http://bhelp.traffic.com/

It a Navteq service and provides live traffic information. You need to login, and then you can browse live traffic.
You can select each road and get following info:

  • Jam factor
  • Drive time now
  • delay
  • speed limit
  • average speed

I guess, this is exactly what we need. Even if we can record the drive-time now, for each road at intervals of 1 hour each for a particular city, we will have significant time dependent data.

I browsed the website but did not find any link where this data is made available. Is there any way to record this data? Any starting points?

On Thu, Apr 7, 2011 at 10:05 PM, Jay Mahadeokar <jai.mahadeokar@gmail.com> wrote:

Hello all,

Just an update - as Daniel suggested I posted a query about time-Dependent data in OSM routing list. It seems they dont have such data, but people have posted some things that might be useful for us in future. Here is link to the discussion - http://lists.openstreetmap.org/pipermail/routing/2011-April/001127.html You may want to have a look there.

Sorry for the delayed replies, presently, I am a bit occupied by college submissions. I will go through the links and the ideas proposed here by Daniel and Steve soon. As already said I guess we need to put a lot of thought in designing the data model, that would be easy for users to use, robust and flexible for different applications, and at the same time efficient in terms of query and processing time. I will try and come up with thoughts on that soon.

Regarding Navteq data, the website says that only one data-set will be allowed to download. So, I was wondering which data should be preferred. Also, there are various data-formats that Navteq provides data in. Steve, have you downloaded any data which specifically has time-dependent edge weights?

Though we will not want the module to follow Navteq standards, any time-dependent data would be very helpful for me, since I also want to try out some heuristics on that as part of my thesis. The work done by R. Geisberger, P. Sanders and others is experimented on the Germany data provided by PTV AG http://www.ptvag.com/company/contact/. I have requested them data for research purposes. Have you worked with their data by any chance?

Regards,

On Tue, Apr 5, 2011 at 8:05 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

On 4/5/2011 1:37 AM, Daniel Kastl wrote:

Hi Jay,

As Steve said, Navteq sample data is one possibility … and it’s better
than nothing :wink:

Well, I think we should avoid to support a single data provider, because
who tells that the format they defined several years ago is the most
suitable one. It might work perfectly for Navteq and road networks in
countries they are operating, but this doesn’t say there won’t be a more
clever way to store such an information.
I think it will be always necessary to transform data into a format
pgRouting algorithms can handle. So it’s OK in my opinion to define some
convenient format if there isn’t an existing standard already (which
doesn’t exist afaik).
But Navteq is good data for testing, I agree. For the beginning I think
it might be even too complex model, as Steve mentioned there are even
time dependent turn restrictions.

I think that the value in looking at Navteq is not to use it all, but that it is a concrete data model that expresses all the various routing characteristics that you might run into in other data sets. Navteq has been the basis for almost all routing solution during the past 10-15 years. There are now others like TeleAtlas, and even OSM. So look it over and use as much or as little as you need to get started. Designing a data model is very complex and you can not do it in the abstract - you need to know what you are modeling.

As far as defining an data model that is easy for users to work with, keep the tables simple to understand and load with data. It is better to have 5 simple to work with tables than 1-2 complex ones. If you need to transform the data inside then have a preparation function that reads the user tables and applies them to the graph. So examples of user tables might be:

o bus, train, ferry, airline schedules
o live traffic data table
o historical speed estimates by day/time (as Daniel mentions below)
o transfer rules - required pre-deparature arrival time when transferring to a different transportation mode and post-scheduled arrival wait time when transferring from a mode. EG, must arrive at airport 2 hr before flight departure and allow 45 mins after arrival to collect baggage or longer on international flights. (this might not apply to your specific problem)

A good place to discuss such a question might be also the “OSM routing”
mailing list. In the worst case nobody will answer. But maybe you will
start a long discussion as there are several people very interested in
routing related topics. OSM data would be nice, if we could make use of
it, but I fear that not many mappers really think about
time-dependent attributes. Probably in Germany you can find such a data.

Yes, working with OSM is another good possibility.

I thought a bit about some possible cases for time dependent road networks:

  • In Japan a big issue for navigation software are so called “School
    Zones”, which are areas around schools obviously, which are closed
    for motorized traffic at certain times in the morning.
  • In Europe I know about pedestrian areas for example, which can be
    used for delivery of goods after regular business hours. Or heavy
    trucks are not allowed to access roads during certain times.
  • Some highways/roads in Germany have a speed limit during night time
  • Ferry services might only operate during day time (so if you
    missed the last ferry, you might have to take a longer way)
  • In Japan they have so called VICS data
    (http://www.mlit.go.jp/road/ITS/conf/2006/ts20.pdf) collected from
    road sensors, which can tell the typical speed on roads during
    certain hours.

… and so on …

One last thought on loading data. I work a lot with Navteq and LOTS of other data sets. The one common theme that I come back to is that I create data loaders for the various data sets I work with so I can load the data into the database and I always end up transforming the data into a simpler model that is easy to work with and then used by whatever application I am working on. Sometimes I transform the data in the loader and sometimes I just load it raw and transform it in the database and then drop the raw data tables.

Hope this helps,
-Steve

I think what pgRouting is currently missing are some sort of “unit
tests” on some test network. This can be a regular grid with costs
assigned, that model a certain routing case. It would be really
convenient to have something like this.

Daniel

2011/4/5 Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)>

Hi,

Since we will be working on time-dependent shortest path problem, I
was wondering if time-dependent geographic data is freely available
for research purposes. [1] states that we witness an increasing
number of navigation service providers (such as Navteq and
TeleAtlas) have started releasing their time-dependent travel-time
datasets for road networks at high-resolution temporal granularity
as fine as one sample for every five minutes.

I guess that data is not freely available. Anyways, if you know such
data-source can you please direct me? Besides this project, I am
also working on some new heuristics for time-dependent shortest path
as part of my thesis and the data would be really helpful for my work.

Thanks.

[1] http://portal.acm.org/citation.cfm?id=1869865

On Thu, Mar 31, 2011 at 7:49 PM, Stephen Woodbridge

<woodbri@swoodbridge.com mailto:[woodbri@swoodbridge.com](mailto:woodbri@swoodbridge.com)> wrote:

On 3/30/2011 9:45 PM, Daniel Kastl wrote:

float cost := getEdgeCost(time, vehicle_type,
node_from,
node_to);

or something like that. Where time could be NULL
for some
default
behavior, or a value that would be used to
figure out the cost.
vehicle_type might be helpful if there are
multiple costs to
traverse a link based on say, car, carpool, bus,
truck, walking,
taxi, etc. This could also be used to implement
the rules
for bus
and train lines.

I think one of the difficulties with routing topic is that
everyone
(also myself) immediately think about routing in terms of
vehicle types.
It’s the easiest example to explain pgRouting, but I think
one premise
of pgRouting is that it should work for any kind of network.
Let’s say
your network would be the human nervous system. What is a
vehicle there?
Well, probably changing “vehicle_type” to “speed” would make
sense, right?

Sorry for using vehicle as the selector maybe “service_type”
would be better, but the point is not the name, “speed” is
equally misleading, the point is to be able to be able to pass a
selector to the under lying function so that based on the
selector we can compute an appropriate cost.

For my vehicle routing example, I chose: car, carpool, bus,
truck, walking, taxi, etc. because these might have different
rules associated to them. The selector values would be
appropriate to the model that you were working with.

car vs carpool vs bus - many cities have HOV lanes that bus and
carpool can use but not single occupancy cars. We might want to
allocate a higher speed to those lanes vs the normal lanes
during rush hours. Emergency vehicles many be allowed to make
u-turns on highways that other vehicles can not make. Trucks
might be banned from some streets so need to be costed
appropriately, etc.

If we had a live traffic feed information linked to segment ids
in another table, The cost function could be implemented to
check that table and if a record exists then use that
information or return the standard information. By keeping this
data in a separate table that is presumably much smaller and
dynamic than the street records it would make it much easier and
more cost effective to make dynmaic changes to that table and to
hide (abstract away complexity) by using a cost function
supplied to the underlying code.

-Steve


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Georepublic UG & Georepublic Japan

eMail: daniel.kastl@georepublic.de mailto:[daniel.kastl@georepublic.de](mailto:daniel.kastl@georepublic.de)
Web: http://georepublic.de <http://georepublic.de/>


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de
Web: http://georepublic.de

On 6/2/2011 10:15 PM, Daniel Kastl wrote:

Hi Jay,

Maybe I'm wrong, but I'm not sure it's really necessary to have "live"
traffic feeds available to make use of TDSP.
It will be hard to get such data for free and it's difficult to guess
how such data might be organized.

Daniel,

Think about this as two separate processes.

1. there is some daemon that reads the "live" or gets it somehow and how is not import, it then transforms that data in injects it into our "time-dependent" table. Obviously any daemon process would need to be coded for a specific feed.

2. the TDSP code only cares about the fact that it has a "time-dependent" table to get its information from. I does not need to know if it is "live" or static data, it just gets what is available at the time it needs.

If we keep it simple and modular, the TDSP can be simple and the complexity can be handle outside the solver. This way the same code can work for:

a) static data
b) "live" data
c) "live" data that updates time of day, day of week averages
d) "live" process control data or water flow data for an non-vehicle problem
e) etc

But for my understanding "time-dependent" doesn't need to go that far to
support such kind of feeds.
Time constraints can be simple access restrictions to parts of your
network at certain times for example.

Test data can be very simple at the beginning and self made in my
opinion. If at a later time it appears that there is functionality
missing to support traffic feeds, then this can be added at a later time.

These are both good examples of just a static table that is loaded initially and does not have daemon process updating it.

So for some sample data these cases come to my mind:

    * highways in urban areas have a speed limit during night times to
      reduce the noise
    * some roads in city centers are closed for cars during business hours
    * roads may have different cost in each direction in the morning,
      when people drive to work, and in the evening when the drive back
      home.

In Germany these three examples are common and will also be available in
OSM someday, I guess.

I can think of one very simple daemon that would be a cool demo, we create a web page that displays the road network and let the user click on road segments and we set restrictions based on time and speed and then update the database. Or allow the user to clear the restrictions.

What do you think?

-Steve

What do you think?

Daniel

2011/5/27 Jay Mahadeokar <jai.mahadeokar@gmail.com
<mailto:jai.mahadeokar@gmail.com>>

    Hi,

    We had discussed some possible ways of getting the test
    time-dependent data, but reached no particular solution.

    I found this link: http://bhelp.traffic.com/

    It a Navteq service and provides live traffic information. You need
    to login, and then you can browse live traffic.
    You can select each road and get following info:

    - Jam factor
    - Drive time now
    - delay
    - speed limit
    - average speed

    I guess, this is exactly what we need. Even if we can record the
    drive-time now, for each road at intervals of 1 hour each for a
    particular city, we will have significant time dependent data.

    I browsed the website but did not find any link where this data is
    made available. Is there any way to record this data? Any starting
    points?

    On Thu, Apr 7, 2011 at 10:05 PM, Jay Mahadeokar
    <jai.mahadeokar@gmail.com <mailto:jai.mahadeokar@gmail.com>> wrote:

        Hello all,

        Just an update - as Daniel suggested I posted a query about
        time-Dependent data in OSM routing list. It seems they dont have
        such data, but people have posted some things that might be
        useful for us in future. Here is link to the discussion -
        http://lists.openstreetmap.org/pipermail/routing/2011-April/001127.html
        You may want to have a look there.

        Sorry for the delayed replies, presently, I am a bit occupied by
        college submissions. I will go through the links and the ideas
        proposed here by Daniel and Steve soon. As already said I guess
        we need to put a lot of thought in designing the data model,
        that would be easy for users to use, robust and flexible for
        different applications, and at the same time efficient in terms
        of query and processing time. I will try and come up with
        thoughts on that soon.

        Regarding Navteq data, the website says that only one data-set
        will be allowed to download. So, I was wondering which data
        should be preferred. Also, there are various data-formats that
        Navteq provides data in. Steve, have you downloaded any data
        which specifically has time-dependent edge weights?

        Though we will not want the module to follow Navteq standards,
        any time-dependent data would be very helpful for me, since I
        also want to try out some heuristics on that as part of my
        thesis. The work done by R. Geisberger, P. Sanders and others
        is experimented on the Germany data provided by PTV AG
        http://www.ptvag.com/company/contact/. I have requested them
        data for research purposes. Have you worked with their data by
        any chance?

        Regards,

        On Tue, Apr 5, 2011 at 8:05 PM, Stephen Woodbridge
        <woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>> wrote:

            On 4/5/2011 1:37 AM, Daniel Kastl wrote:

                Hi Jay,

                As Steve said, Navteq sample data is one possibility ...
                and it's better
                than nothing :wink:

                Well, I think we should avoid to support a single data
                provider, because
                who tells that the format they defined several years ago
                is the most
                suitable one. It might work perfectly for Navteq and
                road networks in
                countries they are operating, but this doesn't say there
                won't be a more
                clever way to store such an information.
                I think it will be always necessary to transform data
                into a format
                pgRouting algorithms can handle. So it's OK in my
                opinion to define some
                convenient format if there isn't an existing standard
                already (which
                doesn't exist afaik).
                But Navteq is good data for testing, I agree. For the
                beginning I think
                it might be even too complex model, as Steve mentioned
                there are even
                time dependent turn restrictions.

            I think that the value in looking at Navteq is not to use it
            all, but that it is a concrete data model that expresses all
            the various routing characteristics that you might run into
            in other data sets. Navteq has been the basis for almost all
            routing solution during the past 10-15 years. There are now
            others like TeleAtlas, and even OSM. So look it over and use
            as much or as little as you need to get started. Designing a
            data model is very complex and you can not do it in the
            abstract - you need to know what you are modeling.

            As far as defining an data model that is easy for users to
            work with, keep the tables simple to understand and load
            with data. It is better to have 5 simple to work with tables
            than 1-2 complex ones. If you need to transform the data
            inside then have a preparation function that reads the user
            tables and applies them to the graph. So examples of user
            tables might be:

            o bus, train, ferry, airline schedules
            o live traffic data table
            o historical speed estimates by day/time (as Daniel mentions
            below)
            o transfer rules - required pre-deparature arrival time when
            transferring to a different transportation mode and
            post-scheduled arrival wait time when transferring from a
            mode. EG, must arrive at airport 2 hr before flight
            departure and allow 45 mins after arrival to collect baggage
            or longer on international flights. (this might not apply to
            your specific problem)

                A good place to discuss such a question might be also
                the "OSM routing"
                mailing list. In the worst case nobody will answer. But
                maybe you will
                start a long discussion as there are several people very
                interested in
                routing related topics. OSM data would be nice, if we
                could make use of
                it, but I fear that not many mappers really think about
                time-dependent attributes. Probably in Germany you can
                find such a data.

            Yes, working with OSM is another good possibility.

                I thought a bit about some possible cases for time
                dependent road networks:

                    * In Japan a big issue for navigation software are
                so called "School
                      Zones", which are areas around schools obviously,
                which are closed
                      for motorized traffic at certain times in the morning.
                    * In Europe I know about pedestrian areas for
                example, which can be
                      used for delivery of goods after regular business
                hours. Or heavy
                      trucks are not allowed to access roads during
                certain times.
                    * Some highways/roads in Germany have a speed limit
                during night time
                    * Ferry services might only operate during day time
                (so if you
                      missed the last ferry, you might have to take a
                longer way)
                    * In Japan they have so called VICS data

                  (http://www.mlit.go.jp/road/ITS/conf/2006/ts20.pdf)
                collected from
                      road sensors, which can tell the typical speed on
                roads during
                      certain hours.

                ... and so on ...

            One last thought on loading data. I work a lot with Navteq
            and LOTS of other data sets. The one common theme that I
            come back to is that I create data loaders for the various
            data sets I work with so I can load the data into the
            database and I always end up transforming the data into a
            simpler model that is easy to work with and then used by
            whatever application I am working on. Sometimes I transform
            the data in the loader and sometimes I just load it raw and
            transform it in the database and then drop the raw data tables.

            Hope this helps,
              -Steve

                I think what pgRouting is currently missing are some
                sort of "unit
                tests" on some test network. This can be a regular grid
                with costs
                assigned, that model a certain routing case. It would be
                really
                convenient to have something like this.

                Daniel

                2011/4/5 Jay Mahadeokar <jai.mahadeokar@gmail.com
                <mailto:jai.mahadeokar@gmail.com>
                <mailto:jai.mahadeokar@gmail.com
                <mailto:jai.mahadeokar@gmail.com>>>

                    Hi,

                    Since we will be working on time-dependent shortest
                path problem, I
                    was wondering if time-dependent geographic data is
                freely available
                    for research purposes. [1] states that we witness an
                increasing
                    number of navigation service providers (such as
                Navteq and
                    TeleAtlas) have started releasing their
                time-dependent travel-time
                    datasets for road networks at high-resolution
                temporal granularity
                    as fine as one sample for every five minutes.

                    I guess that data is not freely available. Anyways,
                if you know such
                    data-source can you please direct me? Besides this
                project, I am
                    also working on some new heuristics for
                time-dependent shortest path
                    as part of my thesis and the data would be really
                helpful for my work.

                    Thanks.

                    [1] http://portal.acm.org/citation.cfm?id=1869865

                    On Thu, Mar 31, 2011 at 7:49 PM, Stephen Woodbridge
                <woodbri@swoodbridge.com
                <mailto:woodbri@swoodbridge.com>
                <mailto:woodbri@swoodbridge.com
                <mailto:woodbri@swoodbridge.com>>> wrote:

                        On 3/30/2011 9:45 PM, Daniel Kastl wrote:

                                        float cost := getEdgeCost(time,
                vehicle_type,
                            node_from,
                                    node_to);

                                        or something like that. Where
                time could be NULL
                            for some
                                    default
                                        behavior, or a value that would
                be used to
                            figure out the cost.
                                        vehicle_type might be helpful if
                there are
                            multiple costs to
                                        traverse a link based on say,
                car, carpool, bus,
                            truck, walking,
                                        taxi, etc. This could also be
                used to implement
                            the rules
                                    for bus
                                        and train lines.

                            I think one of the difficulties with routing
                topic is that
                            everyone
                            (also myself) immediately think about
                routing in terms of
                            vehicle types.
                            It's the easiest example to explain
                pgRouting, but I think
                            one premise
                            of pgRouting is that it should work for any
                kind of network.
                            Let's say
                            your network would be the human nervous
                system. What is a
                            vehicle there?
                            Well, probably changing "vehicle_type" to
                "speed" would make
                            sense, right?

                        Sorry for using vehicle as the selector maybe
                "service_type"
                        would be better, but the point is not the name,
                "speed" is
                        equally misleading, the point is to be able to
                be able to pass a
                        selector to the under lying function so that
                based on the
                        selector we can compute an appropriate cost.

                        For my vehicle routing example, I chose: car,
                carpool, bus,
                        truck, walking, taxi, etc. because these might
                have different
                        rules associated to them. The selector values
                would be
                        appropriate to the model that you were working with.

                        car vs carpool vs bus - many cities have HOV
                lanes that bus and
                        carpool can use but not single occupancy cars.
                We might want to
                        allocate a higher speed to those lanes vs the
                normal lanes
                        during rush hours. Emergency vehicles many be
                allowed to make
                        u-turns on highways that other vehicles can not
                make. Trucks
                        might be banned from some streets so need to be
                costed
                        appropriately, etc.

                        If we had a live traffic feed information linked
                to segment ids
                        in another table, The cost function could be
                implemented to
                        check that table and if a record exists then use
                that
                        information or return the standard information.
                By keeping this
                        data in a separate table that is presumably much
                smaller and
                        dynamic than the street records it would make it
                much easier and
                        more cost effective to make dynmaic changes to
                that table and to
                        hide (abstract away complexity) by using a cost
                function
                        supplied to the underlying code.

                        -Steve

                        _______________________________________________
                        pgrouting-dev mailing list
                pgrouting-dev@lists.osgeo.org
                <mailto:pgrouting-dev@lists.osgeo.org>
                <mailto:pgrouting-dev@lists.osgeo.org
                <mailto:pgrouting-dev@lists.osgeo.org>>

                http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

                    --
                    Regards,
                    -Jay Mahadeokar

                    _______________________________________________
                    pgrouting-dev mailing list
                pgrouting-dev@lists.osgeo.org
                <mailto:pgrouting-dev@lists.osgeo.org>
                <mailto:pgrouting-dev@lists.osgeo.org
                <mailto:pgrouting-dev@lists.osgeo.org>>

                http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

                --
                Georepublic UG & Georepublic Japan
                eMail: daniel.kastl@georepublic.de
                <mailto:daniel.kastl@georepublic.de>
                <mailto:daniel.kastl@georepublic.de
                <mailto:daniel.kastl@georepublic.de>>
                Web: http://georepublic.de/&gt;

                _______________________________________________
                pgrouting-dev mailing list
                pgrouting-dev@lists.osgeo.org
                <mailto:pgrouting-dev@lists.osgeo.org>
                http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

            _______________________________________________
            pgrouting-dev mailing list
            pgrouting-dev@lists.osgeo.org
            <mailto:pgrouting-dev@lists.osgeo.org>
            http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

        --
        Regards,
        -Jay Mahadeokar

    --
    Regards,
    -Jay Mahadeokar

    _______________________________________________
    pgrouting-dev mailing list
    pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

--
Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de <mailto:daniel.kastl@georepublic.de>
Web: http://georepublic.de/&gt;

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Hi Daniel,

On Fri, Jun 3, 2011 at 7:45 AM, Daniel Kastl <daniel@georepublic.de> wrote:

Hi Jay,

Maybe I’m wrong, but I’m not sure it’s really necessary to have “live” traffic feeds available to make use of TDSP.
It will be hard to get such data for free and it’s difficult to guess how such data might be organized.

But for my understanding “time-dependent” doesn’t need to go that far to support such kind of feeds.
Time constraints can be simple access restrictions to parts of your network at certain times for example.

Test data can be very simple at the beginning and self made in my opinion. If at a later time it appears that there is functionality missing to support traffic feeds, then this can be added at a later time.

So for some sample data these cases come to my mind:

  • highways in urban areas have a speed limit during night times to reduce the noise
  • some roads in city centers are closed for cars during business hours
  • roads may have different cost in each direction in the morning, when people drive to work, and in the evening when the drive back home.
    In Germany these three examples are common and will also be available in OSM someday, I guess.

What do you think?

I agree. I have the same application in mind when it comes to time-dependent shortest paths. But again, its difficult to obtain this data. One work-around is that I can use the pgRouting-workshop “ways” table, and generate an additional time-dependent-cost table with random travel times for every edge_id, say for 24 - hour time cycles, intervals of 1 hour each. This can serve as good enough test data I think. We can also add some more logic to randomness and say tune the travel_times according to rush hours etc, (but that wont affect the algorithm, just the output! )

I was more interested in real-world actual data, than randomly generated data because that would also be useful in my college thesis work in future. But from GSoc point of view, such data would be a luxury!

Daniel

2011/5/27 Jay Mahadeokar <jai.mahadeokar@gmail.com>

Hi,

We had discussed some possible ways of getting the test time-dependent data, but reached no particular solution.

I found this link: http://bhelp.traffic.com/

It a Navteq service and provides live traffic information. You need to login, and then you can browse live traffic.
You can select each road and get following info:

  • Jam factor
  • Drive time now
  • delay
  • speed limit
  • average speed

I guess, this is exactly what we need. Even if we can record the drive-time now, for each road at intervals of 1 hour each for a particular city, we will have significant time dependent data.

I browsed the website but did not find any link where this data is made available. Is there any way to record this data? Any starting points?

On Thu, Apr 7, 2011 at 10:05 PM, Jay Mahadeokar <jai.mahadeokar@gmail.com> wrote:

Hello all,

Just an update - as Daniel suggested I posted a query about time-Dependent data in OSM routing list. It seems they dont have such data, but people have posted some things that might be useful for us in future. Here is link to the discussion - http://lists.openstreetmap.org/pipermail/routing/2011-April/001127.html You may want to have a look there.

Sorry for the delayed replies, presently, I am a bit occupied by college submissions. I will go through the links and the ideas proposed here by Daniel and Steve soon. As already said I guess we need to put a lot of thought in designing the data model, that would be easy for users to use, robust and flexible for different applications, and at the same time efficient in terms of query and processing time. I will try and come up with thoughts on that soon.

Regarding Navteq data, the website says that only one data-set will be allowed to download. So, I was wondering which data should be preferred. Also, there are various data-formats that Navteq provides data in. Steve, have you downloaded any data which specifically has time-dependent edge weights?

Though we will not want the module to follow Navteq standards, any time-dependent data would be very helpful for me, since I also want to try out some heuristics on that as part of my thesis. The work done by R. Geisberger, P. Sanders and others is experimented on the Germany data provided by PTV AG http://www.ptvag.com/company/contact/. I have requested them data for research purposes. Have you worked with their data by any chance?

Regards,

On Tue, Apr 5, 2011 at 8:05 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

On 4/5/2011 1:37 AM, Daniel Kastl wrote:

Hi Jay,

As Steve said, Navteq sample data is one possibility … and it’s better
than nothing :wink:

Well, I think we should avoid to support a single data provider, because
who tells that the format they defined several years ago is the most
suitable one. It might work perfectly for Navteq and road networks in
countries they are operating, but this doesn’t say there won’t be a more
clever way to store such an information.
I think it will be always necessary to transform data into a format
pgRouting algorithms can handle. So it’s OK in my opinion to define some
convenient format if there isn’t an existing standard already (which
doesn’t exist afaik).
But Navteq is good data for testing, I agree. For the beginning I think
it might be even too complex model, as Steve mentioned there are even
time dependent turn restrictions.

I think that the value in looking at Navteq is not to use it all, but that it is a concrete data model that expresses all the various routing characteristics that you might run into in other data sets. Navteq has been the basis for almost all routing solution during the past 10-15 years. There are now others like TeleAtlas, and even OSM. So look it over and use as much or as little as you need to get started. Designing a data model is very complex and you can not do it in the abstract - you need to know what you are modeling.

As far as defining an data model that is easy for users to work with, keep the tables simple to understand and load with data. It is better to have 5 simple to work with tables than 1-2 complex ones. If you need to transform the data inside then have a preparation function that reads the user tables and applies them to the graph. So examples of user tables might be:

o bus, train, ferry, airline schedules
o live traffic data table
o historical speed estimates by day/time (as Daniel mentions below)
o transfer rules - required pre-deparature arrival time when transferring to a different transportation mode and post-scheduled arrival wait time when transferring from a mode. EG, must arrive at airport 2 hr before flight departure and allow 45 mins after arrival to collect baggage or longer on international flights. (this might not apply to your specific problem)

A good place to discuss such a question might be also the “OSM routing”
mailing list. In the worst case nobody will answer. But maybe you will
start a long discussion as there are several people very interested in
routing related topics. OSM data would be nice, if we could make use of
it, but I fear that not many mappers really think about
time-dependent attributes. Probably in Germany you can find such a data.

Yes, working with OSM is another good possibility.

I thought a bit about some possible cases for time dependent road networks:

  • In Japan a big issue for navigation software are so called “School
    Zones”, which are areas around schools obviously, which are closed
    for motorized traffic at certain times in the morning.
  • In Europe I know about pedestrian areas for example, which can be
    used for delivery of goods after regular business hours. Or heavy
    trucks are not allowed to access roads during certain times.
  • Some highways/roads in Germany have a speed limit during night time
  • Ferry services might only operate during day time (so if you
    missed the last ferry, you might have to take a longer way)
  • In Japan they have so called VICS data
    (http://www.mlit.go.jp/road/ITS/conf/2006/ts20.pdf) collected from
    road sensors, which can tell the typical speed on roads during
    certain hours.

… and so on …

One last thought on loading data. I work a lot with Navteq and LOTS of other data sets. The one common theme that I come back to is that I create data loaders for the various data sets I work with so I can load the data into the database and I always end up transforming the data into a simpler model that is easy to work with and then used by whatever application I am working on. Sometimes I transform the data in the loader and sometimes I just load it raw and transform it in the database and then drop the raw data tables.

Hope this helps,
-Steve

I think what pgRouting is currently missing are some sort of “unit
tests” on some test network. This can be a regular grid with costs
assigned, that model a certain routing case. It would be really
convenient to have something like this.

Daniel

2011/4/5 Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)>

Hi,

Since we will be working on time-dependent shortest path problem, I
was wondering if time-dependent geographic data is freely available
for research purposes. [1] states that we witness an increasing
number of navigation service providers (such as Navteq and
TeleAtlas) have started releasing their time-dependent travel-time
datasets for road networks at high-resolution temporal granularity
as fine as one sample for every five minutes.

I guess that data is not freely available. Anyways, if you know such
data-source can you please direct me? Besides this project, I am
also working on some new heuristics for time-dependent shortest path
as part of my thesis and the data would be really helpful for my work.

Thanks.

[1] http://portal.acm.org/citation.cfm?id=1869865

On Thu, Mar 31, 2011 at 7:49 PM, Stephen Woodbridge

<woodbri@swoodbridge.com mailto:[woodbri@swoodbridge.com](mailto:woodbri@swoodbridge.com)> wrote:

On 3/30/2011 9:45 PM, Daniel Kastl wrote:

float cost := getEdgeCost(time, vehicle_type,
node_from,
node_to);

or something like that. Where time could be NULL
for some
default
behavior, or a value that would be used to
figure out the cost.
vehicle_type might be helpful if there are
multiple costs to
traverse a link based on say, car, carpool, bus,
truck, walking,
taxi, etc. This could also be used to implement
the rules
for bus
and train lines.

I think one of the difficulties with routing topic is that
everyone
(also myself) immediately think about routing in terms of
vehicle types.
It’s the easiest example to explain pgRouting, but I think
one premise
of pgRouting is that it should work for any kind of network.
Let’s say
your network would be the human nervous system. What is a
vehicle there?
Well, probably changing “vehicle_type” to “speed” would make
sense, right?

Sorry for using vehicle as the selector maybe “service_type”
would be better, but the point is not the name, “speed” is
equally misleading, the point is to be able to be able to pass a
selector to the under lying function so that based on the
selector we can compute an appropriate cost.

For my vehicle routing example, I chose: car, carpool, bus,
truck, walking, taxi, etc. because these might have different
rules associated to them. The selector values would be
appropriate to the model that you were working with.

car vs carpool vs bus - many cities have HOV lanes that bus and
carpool can use but not single occupancy cars. We might want to
allocate a higher speed to those lanes vs the normal lanes
during rush hours. Emergency vehicles many be allowed to make
u-turns on highways that other vehicles can not make. Trucks
might be banned from some streets so need to be costed
appropriately, etc.

If we had a live traffic feed information linked to segment ids
in another table, The cost function could be implemented to
check that table and if a record exists then use that
information or return the standard information. By keeping this
data in a separate table that is presumably much smaller and
dynamic than the street records it would make it much easier and
more cost effective to make dynmaic changes to that table and to
hide (abstract away complexity) by using a cost function
supplied to the underlying code.

-Steve


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Georepublic UG & Georepublic Japan

eMail: daniel.kastl@georepublic.de mailto:[daniel.kastl@georepublic.de](mailto:daniel.kastl@georepublic.de)
Web: http://georepublic.de <http://georepublic.de/>


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de

Web: http://georepublic.de


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

On 6/2/2011 10:35 PM, Jay Mahadeokar wrote:

Hi Daniel,

On Fri, Jun 3, 2011 at 7:45 AM, Daniel Kastl <daniel@georepublic.de
<mailto:daniel@georepublic.de>> wrote:

    Hi Jay,

    Maybe I'm wrong, but I'm not sure it's really necessary to have
    "live" traffic feeds available to make use of TDSP.
    It will be hard to get such data for free and it's difficult to
    guess how such data might be organized.

    But for my understanding "time-dependent" doesn't need to go that
    far to support such kind of feeds.
    Time constraints can be simple access restrictions to parts of your
    network at certain times for example.

    Test data can be very simple at the beginning and self made in my
    opinion. If at a later time it appears that there is functionality
    missing to support traffic feeds, then this can be added at a later
    time.

    So for some sample data these cases come to my mind:

        * highways in urban areas have a speed limit during night times
          to reduce the noise
        * some roads in city centers are closed for cars during business
          hours
        * roads may have different cost in each direction in the
          morning, when people drive to work, and in the evening when
          the drive back home.

    In Germany these three examples are common and will also
    be available in OSM someday, I guess.

    What do you think?

I agree. I have the same application in mind when it comes to
time-dependent shortest paths. But again, its difficult to obtain this
data. One work-around is that I can use the pgRouting-workshop "ways"
table, and generate an additional time-dependent-cost table with random
travel times for every edge_id, say for 24 - hour time cycles, intervals
of 1 hour each. This can serve as good enough test data I think. We can
also add some more logic to randomness and say tune the travel_times
according to rush hours etc, (but that wont affect the algorithm, just
the output! )

I was more interested in real-world actual data, than randomly generated
data because that would also be useful in my college thesis work in
future. But from GSoc point of view, such data would be a luxury!

Hi Jay,

I think that instead of just random times, I would take a different approach to generate this data. If we think about "rush hour" around a major city, the highways (based on road class) flowing into the city in the morning would get reduced average speeds you could apply curve like average speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%), 10am(85%) and do something similar in the evening rush. It might be too hard to figure on direction of flow in/out bound so apply the curve to all traffic. The assumption is that the highways are congested which will force traffic onto side streets. You might want to also reduce the lower class speeds by say a constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the table with that data.

-Steve

    Daniel

    2011/5/27 Jay Mahadeokar <jai.mahadeokar@gmail.com
    <mailto:jai.mahadeokar@gmail.com>>

        Hi,

        We had discussed some possible ways of getting the test
        time-dependent data, but reached no particular solution.

        I found this link: http://bhelp.traffic.com/

        It a Navteq service and provides live traffic information. You
        need to login, and then you can browse live traffic.
        You can select each road and get following info:

        - Jam factor
        - Drive time now
        - delay
        - speed limit
        - average speed

        I guess, this is exactly what we need. Even if we can record the
        drive-time now, for each road at intervals of 1 hour each for a
        particular city, we will have significant time dependent data.

        I browsed the website but did not find any link where this data
        is made available. Is there any way to record this data? Any
        starting points?

        On Thu, Apr 7, 2011 at 10:05 PM, Jay Mahadeokar
        <jai.mahadeokar@gmail.com <mailto:jai.mahadeokar@gmail.com>> wrote:

            Hello all,

            Just an update - as Daniel suggested I posted a query about
            time-Dependent data in OSM routing list. It seems they dont
            have such data, but people have posted some things that
            might be useful for us in future. Here is link to the
            discussion -
            http://lists.openstreetmap.org/pipermail/routing/2011-April/001127.html
            You may want to have a look there.

            Sorry for the delayed replies, presently, I am a bit
            occupied by college submissions. I will go through the links
            and the ideas proposed here by Daniel and Steve soon. As
            already said I guess we need to put a lot of thought in
            designing the data model, that would be easy for users to
            use, robust and flexible for different applications, and at
            the same time efficient in terms of query and processing
            time. I will try and come up with thoughts on that soon.

            Regarding Navteq data, the website says that only one
            data-set will be allowed to download. So, I was wondering
            which data should be preferred. Also, there are various
            data-formats that Navteq provides data in. Steve, have you
            downloaded any data which specifically has time-dependent
            edge weights?

            Though we will not want the module to follow Navteq
            standards, any time-dependent data would be very helpful for
            me, since I also want to try out some heuristics on that as
            part of my thesis. The work done by R. Geisberger, P.
            Sanders and others is experimented on the Germany data
            provided by PTV AG http://www.ptvag.com/company/contact/. I
            have requested them data for research purposes. Have you
            worked with their data by any chance?

            Regards,

            On Tue, Apr 5, 2011 at 8:05 PM, Stephen Woodbridge
            <woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>>
            wrote:

                On 4/5/2011 1:37 AM, Daniel Kastl wrote:

                    Hi Jay,

                    As Steve said, Navteq sample data is one possibility
                    ... and it's better
                    than nothing :wink:

                    Well, I think we should avoid to support a single
                    data provider, because
                    who tells that the format they defined several years
                    ago is the most
                    suitable one. It might work perfectly for Navteq and
                    road networks in
                    countries they are operating, but this doesn't say
                    there won't be a more
                    clever way to store such an information.
                    I think it will be always necessary to transform
                    data into a format
                    pgRouting algorithms can handle. So it's OK in my
                    opinion to define some
                    convenient format if there isn't an existing
                    standard already (which
                    doesn't exist afaik).
                    But Navteq is good data for testing, I agree. For
                    the beginning I think
                    it might be even too complex model, as Steve
                    mentioned there are even
                    time dependent turn restrictions.

                I think that the value in looking at Navteq is not to
                use it all, but that it is a concrete data model that
                expresses all the various routing characteristics that
                you might run into in other data sets. Navteq has been
                the basis for almost all routing solution during the
                past 10-15 years. There are now others like TeleAtlas,
                and even OSM. So look it over and use as much or as
                little as you need to get started. Designing a data
                model is very complex and you can not do it in the
                abstract - you need to know what you are modeling.

                As far as defining an data model that is easy for users
                to work with, keep the tables simple to understand and
                load with data. It is better to have 5 simple to work
                with tables than 1-2 complex ones. If you need to
                transform the data inside then have a preparation
                function that reads the user tables and applies them to
                the graph. So examples of user tables might be:

                o bus, train, ferry, airline schedules
                o live traffic data table
                o historical speed estimates by day/time (as Daniel
                mentions below)
                o transfer rules - required pre-deparature arrival time
                when transferring to a different transportation mode and
                post-scheduled arrival wait time when transferring from
                a mode. EG, must arrive at airport 2 hr before flight
                departure and allow 45 mins after arrival to collect
                baggage or longer on international flights. (this might
                not apply to your specific problem)

                    A good place to discuss such a question might be
                    also the "OSM routing"
                    mailing list. In the worst case nobody will answer.
                    But maybe you will
                    start a long discussion as there are several people
                    very interested in
                    routing related topics. OSM data would be nice, if
                    we could make use of
                    it, but I fear that not many mappers really think about
                    time-dependent attributes. Probably in Germany you
                    can find such a data.

                Yes, working with OSM is another good possibility.

                    I thought a bit about some possible cases for time
                    dependent road networks:

                        * In Japan a big issue for navigation software
                    are so called "School
                          Zones", which are areas around schools
                    obviously, which are closed
                          for motorized traffic at certain times in the
                    morning.
                        * In Europe I know about pedestrian areas for
                    example, which can be
                          used for delivery of goods after regular
                    business hours. Or heavy
                          trucks are not allowed to access roads during
                    certain times.
                        * Some highways/roads in Germany have a speed
                    limit during night time
                        * Ferry services might only operate during day
                    time (so if you
                          missed the last ferry, you might have to take
                    a longer way)
                        * In Japan they have so called VICS data

                      (http://www.mlit.go.jp/road/ITS/conf/2006/ts20.pdf) collected from
                          road sensors, which can tell the typical speed
                    on roads during
                          certain hours.

                    ... and so on ...

                One last thought on loading data. I work a lot with
                Navteq and LOTS of other data sets. The one common theme
                that I come back to is that I create data loaders for
                the various data sets I work with so I can load the data
                into the database and I always end up transforming the
                data into a simpler model that is easy to work with and
                then used by whatever application I am working on.
                Sometimes I transform the data in the loader and
                sometimes I just load it raw and transform it in the
                database and then drop the raw data tables.

                Hope this helps,
                  -Steve

                    I think what pgRouting is currently missing are some
                    sort of "unit
                    tests" on some test network. This can be a regular
                    grid with costs
                    assigned, that model a certain routing case. It
                    would be really
                    convenient to have something like this.

                    Daniel

                    2011/4/5 Jay Mahadeokar <jai.mahadeokar@gmail.com
                    <mailto:jai.mahadeokar@gmail.com>
                    <mailto:jai.mahadeokar@gmail.com
                    <mailto:jai.mahadeokar@gmail.com>>>

                        Hi,

                        Since we will be working on time-dependent
                    shortest path problem, I
                        was wondering if time-dependent geographic data
                    is freely available
                        for research purposes. [1] states that we
                    witness an increasing
                        number of navigation service providers (such as
                    Navteq and
                        TeleAtlas) have started releasing their
                    time-dependent travel-time
                        datasets for road networks at high-resolution
                    temporal granularity
                        as fine as one sample for every five minutes.

                        I guess that data is not freely available.
                    Anyways, if you know such
                        data-source can you please direct me? Besides
                    this project, I am
                        also working on some new heuristics for
                    time-dependent shortest path
                        as part of my thesis and the data would be
                    really helpful for my work.

                        Thanks.

                        [1] http://portal.acm.org/citation.cfm?id=1869865

                        On Thu, Mar 31, 2011 at 7:49 PM, Stephen Woodbridge
                    <woodbri@swoodbridge.com
                    <mailto:woodbri@swoodbridge.com>
                    <mailto:woodbri@swoodbridge.com
                    <mailto:woodbri@swoodbridge.com>>> wrote:

                            On 3/30/2011 9:45 PM, Daniel Kastl wrote:

                                            float cost :=
                    getEdgeCost(time, vehicle_type,
                                node_from,
                                        node_to);

                                            or something like that.
                    Where time could be NULL
                                for some
                                        default
                                            behavior, or a value that
                    would be used to
                                figure out the cost.
                                            vehicle_type might be
                    helpful if there are
                                multiple costs to
                                            traverse a link based on
                    say, car, carpool, bus,
                                truck, walking,
                                            taxi, etc. This could also
                    be used to implement
                                the rules
                                        for bus
                                            and train lines.

                                I think one of the difficulties with
                    routing topic is that
                                everyone
                                (also myself) immediately think about
                    routing in terms of
                                vehicle types.
                                It's the easiest example to explain
                    pgRouting, but I think
                                one premise
                                of pgRouting is that it should work for
                    any kind of network.
                                Let's say
                                your network would be the human nervous
                    system. What is a
                                vehicle there?
                                Well, probably changing "vehicle_type"
                    to "speed" would make
                                sense, right?

                            Sorry for using vehicle as the selector
                    maybe "service_type"
                            would be better, but the point is not the
                    name, "speed" is
                            equally misleading, the point is to be able
                    to be able to pass a
                            selector to the under lying function so that
                    based on the
                            selector we can compute an appropriate cost.

                            For my vehicle routing example, I chose:
                    car, carpool, bus,
                            truck, walking, taxi, etc. because these
                    might have different
                            rules associated to them. The selector
                    values would be
                            appropriate to the model that you were
                    working with.

                            car vs carpool vs bus - many cities have HOV
                    lanes that bus and
                            carpool can use but not single occupancy
                    cars. We might want to
                            allocate a higher speed to those lanes vs
                    the normal lanes
                            during rush hours. Emergency vehicles many
                    be allowed to make
                            u-turns on highways that other vehicles can
                    not make. Trucks
                            might be banned from some streets so need to
                    be costed
                            appropriately, etc.

                            If we had a live traffic feed information
                    linked to segment ids
                            in another table, The cost function could be
                    implemented to
                            check that table and if a record exists then
                    use that
                            information or return the standard
                    information. By keeping this
                            data in a separate table that is presumably
                    much smaller and
                            dynamic than the street records it would
                    make it much easier and
                            more cost effective to make dynmaic changes
                    to that table and to
                            hide (abstract away complexity) by using a
                    cost function
                            supplied to the underlying code.

                            -Steve

                            _______________________________________________
                            pgrouting-dev mailing list
                    pgrouting-dev@lists.osgeo.org
                    <mailto:pgrouting-dev@lists.osgeo.org>
                    <mailto:pgrouting-dev@lists.osgeo.org
                    <mailto:pgrouting-dev@lists.osgeo.org>>

                    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

                        --
                        Regards,
                        -Jay Mahadeokar

                        _______________________________________________
                        pgrouting-dev mailing list
                    pgrouting-dev@lists.osgeo.org
                    <mailto:pgrouting-dev@lists.osgeo.org>
                    <mailto:pgrouting-dev@lists.osgeo.org
                    <mailto:pgrouting-dev@lists.osgeo.org>>

                    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

                    --
                    Georepublic UG & Georepublic Japan
                    eMail: daniel.kastl@georepublic.de
                    <mailto:daniel.kastl@georepublic.de>
                    <mailto:daniel.kastl@georepublic.de
                    <mailto:daniel.kastl@georepublic.de>>
                    Web: http://georepublic.de/&gt;

                    _______________________________________________
                    pgrouting-dev mailing list
                    pgrouting-dev@lists.osgeo.org
                    <mailto:pgrouting-dev@lists.osgeo.org>
                    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

                _______________________________________________
                pgrouting-dev mailing list
                pgrouting-dev@lists.osgeo.org
                <mailto:pgrouting-dev@lists.osgeo.org>
                http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

            --
            Regards,
            -Jay Mahadeokar

        --
        Regards,
        -Jay Mahadeokar

        _______________________________________________
        pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

    --
    Georepublic UG & Georepublic Japan
    eMail: daniel.kastl@georepublic.de <mailto:daniel.kastl@georepublic.de>
    Web: http://georepublic.de/&gt;

    _______________________________________________
    pgrouting-dev mailing list
    pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

--
Regards,
-Jay Mahadeokar

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Hi Jay,

I think that instead of just random times, I would take a different approach to generate this data. If we think about “rush hour” around a major city, the highways (based on road class) flowing into the city in the morning would get reduced average speeds you could apply curve like average speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%), 10am(85%) and do something similar in the evening rush. It might be too hard to figure on direction of flow in/out bound so apply the curve to all traffic. The assumption is that the highways are congested which will force traffic onto side streets. You might want to also reduce the lower class speeds by say a constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the table with that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data corresponding to the ways table in pgrouting workshop. As suggested by Steve above, instead of generating random data, I will follow patterns (see above message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc. I saw the attribute class_id in ways table. It has 14 distinct values:
class_id

102
122
106
111
108
100
109
112
101
110
401
119
117
114

Any specific meaning attached to these values? I did not find any information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about "rush hour" around a
major
city, the highways (based on road class) flowing into the city in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%), 10am(85%)
and do something similar in the evening rush. It might be too hard to
figure
on direction of flow in/out bound so apply the curve to all traffic. The
assumption is that the highways are congested which will force traffic
onto
side streets. You might want to also reduce the lower class speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As suggested by Steve
above, instead of generating random data, I will follow patterns (see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc. I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id

----------

102

122

106

111

108

100

109

112

101

110

401

119

117

      114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html

--
Regards,
-Jay Mahadeokar

--
Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de
Web: http://georepublic.de

Tel: +49 (089) 420 959 519
Sip: 1959519@sipgate.de

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev <anton.patrushev@georepublic.de> wrote:

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about “rush hour” around a
major
city, the highways (based on road class) flowing into the city in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%), 10am(85%)
and do something similar in the evening rush. It might be too hard to
figure
on direction of flow in/out bound so apply the curve to all traffic. The
assumption is that the highways are congested which will force traffic
onto
side streets. You might want to also reduce the lower class speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As suggested by Steve
above, instead of generating random data, I will follow patterns (see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc. I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de
Web: http://georepublic.de

Tel: +49 (089) 420 959 519
Sip: 1959519@sipgate.de

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

Jay,

Try:

select class_id, count(*) as cnt from ways group by class_id oder by classid;

Typically you should a a distribution in real world data something like:

5% limited access major highways
15% major roads
75% minor roads
5% trails, pedestrian ways, etc

Well in the US anyway. Also if this is OSM data then you might get a better clue on classes by looking to that .... OH!, look what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Looks like first digit is type and the three digits are from the classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev
<anton.patrushev@georepublic.de <mailto:anton.patrushev@georepublic.de>>
wrote:

    Hi Jay,

    No, there was no specific meaning, just king of cyphering - first
    digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using
this info?

    Anton.

    On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com
    <mailto:jai.mahadeokar@gmail.com>> wrote:
     >> Hi Jay,
     >>
     >> I think that instead of just random times, I would take a different
     >> approach to generate this data. If we think about "rush hour"
    around a
     >> major
     >> city, the highways (based on road class) flowing into the city
    in the
     >> morning would get reduced average speeds you could apply curve like
     >> average
     >> speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
    10am(85%)
     >> and do something similar in the evening rush. It might be too
    hard to
     >> figure
     >> on direction of flow in/out bound so apply the curve to all
    traffic. The
     >> assumption is that the highways are congested which will force
    traffic
     >> onto
     >> side streets. You might want to also reduce the lower class
    speeds by say
     >> a
     >> constant 80% during rush hour.
     >>
     >> If we can get OSM data then it should be easy to populate the
    table with
     >> that data.
     >>
     >> -Steve
     >>
     >
     > I am trying to write plpgsql query to generate time-dependent data
     > corresponding to the ways table in pgrouting workshop. As
    suggested by Steve
     > above, instead of generating random data, I will follow patterns
    (see above
     > message) so that the data is nearer to the real worlds scenario.
     >
     > So, now I need to make distinction between highways, streets etc.
    I saw the
     > attribute class_id in ways table. It has 14 distinct values:
     > class_id
     >
     > ----------
     >
     > 102
     >
     > 122
     >
     > 106
     >
     > 111
     >
     > 108
     >
     > 100
     >
     > 109
     >
     > 112
     >
     > 101
     >
     > 110
     >
     > 401
     >
     > 119
     >
     > 117
     >
     > 114
     >
     > Any specific meaning attached to these values? I did not find any
     > information on the pgRouting-workshop website [1].
     >
     > Thanks in advance.
     >
     > [1] http://workshop.pgrouting.org/chapters/topology.html
     >
     > --
     > Regards,
     > -Jay Mahadeokar
     >

    --
    Georepublic UG (haftungsbeschränkt)
    Salzmannstraße 44,
    81739 München, Germany

    Anton Patrushev
    CTO

    eMail: anton.patrushev@georepublic.de
    <mailto:anton.patrushev@georepublic.de>
    Web: http://georepublic.de

    Tel: +49 (089) 420 959 519
    Sip: 1959519@sipgate.de <mailto:1959519@sipgate.de>

    Commercial register: Amtsgericht München, HRB 181428
    CEO: Daniel Kastl
    _______________________________________________
    pgrouting-dev mailing list
    pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

--
Regards,
-Jay Mahadeokar

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

Jay,

Try:

select class_id, count(*) as cnt from ways group by class_id oder by classid;

Typically you should a a distribution in real world data something like:

5% limited access major highways
15% major roads
75% minor roads
5% trails, pedestrian ways, etc

Well in the US anyway. Also if this is OSM data then you might get a better clue on classes by looking to that … OH!, look what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Hi Steve,

Thanks for giving me the link. I somehow never tried doing advanced part of the workshop.

Well, it is using routing database which we generate during this step: http://workshop.pgrouting.org/chapters/osm2pgrouting.html

I am doing exact steps outlined there but unfortunately, after I run osmtopgrouting command, get following output:

<lots of mesages regarding different class name, and ids>

class name = roundabout
class id = 401
class id = 401 name = roundabout added to type name=junction
Trying to load data
Trying to parse data

I find only the following 3 tables generated in routing database:
List of relations
Schema | Name | Type | Owner
--------±------------------±------±---------
public | geography_columns | view | postgres
public | geometry_columns | table | postgres
public | spatial_ref_sys | table | postgres
(3 rows)

The tutorial says a total of 8 tables should be generated.

I do not get any other warning or error messages.

On other hand, I am able to do all steps here: http://workshop.pgrouting.org/chapters/topology.html correctly, and hence till now I was working with pgrouting-workshop database.

I am sorry if this are very silly errors, but I have no previous experience working with such data. Any hint/link why I am not able to generate routing database?

Looks like first digit is type and the three digits are from the classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev

<anton.patrushev@georepublic.de mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>

wrote:

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using
this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about “rush hour”
around a
major
city, the highways (based on road class) flowing into the city
in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
10am(85%)
and do something similar in the evening rush. It might be too
hard to
figure
on direction of flow in/out bound so apply the curve to all
traffic. The
assumption is that the highways are congested which will force
traffic
onto
side streets. You might want to also reduce the lower class
speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the
table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As
suggested by Steve
above, instead of generating random data, I will follow patterns
(see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc.
I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de

mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)

Web: http://georepublic.de

Tel: +49 (089) 420 959 519

Sip: 1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

On 6/12/2011 2:59 PM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge
<woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>> wrote:

    Jay,

    Try:

    select class_id, count(*) as cnt from ways group by class_id oder by
    classid;

    Typically you should a a distribution in real world data something like:

    5% limited access major highways
    15% major roads
    75% minor roads
    5% trails, pedestrian ways, etc

    Well in the US anyway. Also if this is OSM data then you might get a
    better clue on classes by looking to that .... OH!, look what I
    found in google :slight_smile:

    http://workshop.pgrouting.org/chapters/advanced.html

Hi Steve,

Thanks for giving me the link. I somehow never tried doing advanced part
of the workshop.

Well, it is using routing database which we generate during this step:
http://workshop.pgrouting.org/chapters/osm2pgrouting.html

I am doing exact steps outlined there but unfortunately, after I run
osmtopgrouting command, get following output:
.....
<lots of mesages regarding different class name, and ids>
.......
class name = roundabout
class id = 401
class id = 401 name = roundabout added to type name=junction
Trying to load data
Trying to parse data

I find only the following 3 tables generated in routing database:
                List of relations
  Schema | Name | Type | Owner
--------+-------------------+-------+----------
  public | geography_columns | view | postgres
  public | geometry_columns | table | postgres
  public | spatial_ref_sys | table | postgres
(3 rows)

The tutorial says a total of 8 tables should be generated.

I do not get any other warning or error messages.

On other hand, I am able to do all steps here:
http://workshop.pgrouting.org/chapters/topology.html correctly, and
hence till now I was working with pgrouting-workshop database.

I am sorry if this are very silly errors, but I have no previous
experience working with such data. Any hint/link why I am not able to
generate routing database?

Jay,

Sorry, I can not help as I have rarely used OSM data. I guess I need to make time to work through those examples at some point.

Regardless, of the missing tables, if you have enough data to work with and the doc link helps you understand it, then move forward if you can. I will have to leave additional explaination up to others who will hopefully chime in.

-Steve

    Looks like first digit is type and the three digits are from the
    classes table.

    -Steve

    On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

        On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev
        <anton.patrushev@georepublic.de
        <mailto:anton.patrushev@georepublic.de>
        <mailto:anton.patrushev@georepublic.de
        <mailto:anton.patrushev@georepublic.de>>>

        wrote:

            Hi Jay,

            No, there was no specific meaning, just king of cyphering -
        first
            digit for road class and then two last digits for road type.

        Hi Anton,

        So, as you said last 2 digits are for road type. I can see they are
        mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

        Road class is just 1 or 4.

        Can I differentiate major highways, minor highways, streets etc
        using
        this info?

            Anton.

            On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com
        <mailto:jai.mahadeokar@gmail.com>
        <mailto:jai.mahadeokar@gmail.com
        <mailto:jai.mahadeokar@gmail.com>>> wrote:
         >> Hi Jay,
         >>
         >> I think that instead of just random times, I would take a
        different
         >> approach to generate this data. If we think about "rush hour"
            around a
         >> major
         >> city, the highways (based on road class) flowing into the city
            in the
         >> morning would get reduced average speeds you could apply
        curve like
         >> average
         >> speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
            10am(85%)
         >> and do something similar in the evening rush. It might be too
            hard to
         >> figure
         >> on direction of flow in/out bound so apply the curve to all
            traffic. The
         >> assumption is that the highways are congested which will force
            traffic
         >> onto
         >> side streets. You might want to also reduce the lower class
            speeds by say
         >> a
         >> constant 80% during rush hour.
         >>
         >> If we can get OSM data then it should be easy to populate the
            table with
         >> that data.
         >>
         >> -Steve
         >>
         >
         > I am trying to write plpgsql query to generate time-dependent
        data
         > corresponding to the ways table in pgrouting workshop. As
            suggested by Steve
         > above, instead of generating random data, I will follow patterns
            (see above
         > message) so that the data is nearer to the real worlds scenario.
         >
         > So, now I need to make distinction between highways, streets etc.
            I saw the
         > attribute class_id in ways table. It has 14 distinct values:
         > class_id
         >
         > ----------
         >
         > 102
         >
         > 122
         >
         > 106
         >
         > 111
         >
         > 108
         >
         > 100
         >
         > 109
         >
         > 112
         >
         > 101
         >
         > 110
         >
         > 401
         >
         > 119
         >
         > 117
         >
         > 114
         >
         > Any specific meaning attached to these values? I did not find any
         > information on the pgRouting-workshop website [1].
         >
         > Thanks in advance.
         >
         > [1] http://workshop.pgrouting.org/chapters/topology.html
         >
         > --
         > Regards,
         > -Jay Mahadeokar
         >

            --
            Georepublic UG (haftungsbeschränkt)
            Salzmannstraße 44,
            81739 München, Germany

            Anton Patrushev
            CTO

            eMail: anton.patrushev@georepublic.de
        <mailto:anton.patrushev@georepublic.de>
        <mailto:anton.patrushev@georepublic.de
        <mailto:anton.patrushev@georepublic.de>>

            Web: http://georepublic.de

            Tel: +49 (089) 420 959 519
            Sip: 1959519@sipgate.de <mailto:1959519@sipgate.de>
        <mailto:1959519@sipgate.de>

            Commercial register: Amtsgericht München, HRB 181428
            CEO: Daniel Kastl
            _______________________________________________
            pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>
        <mailto:pgrouting-dev@lists.osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>>

        http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

        --
        Regards,
        -Jay Mahadeokar

        _______________________________________________
        pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

    _______________________________________________
    pgrouting-dev mailing list
    pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
    http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

--
Regards,
-Jay Mahadeokar

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Jay, there should be more tables.
So something goes wrong with osm2pgrouitng. but from your output I can’t guess what it is.

Can you give some details (maybe in a new thread)

Daniel

Well in the US anyway. Also if this is OSM data then you might get a better clue on classes by looking to that … OH!, look what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Hi Steve,

Thanks for giving me the link. I somehow never tried doing advanced part of the workshop.

Well, it is using routing database which we generate during this step: http://workshop.pgrouting.org/chapters/osm2pgrouting.html

I am doing exact steps outlined there but unfortunately, after I run osmtopgrouting command, get following output:

<lots of mesages regarding different class name, and ids>

class name = roundabout
class id = 401
class id = 401 name = roundabout added to type name=junction
Trying to load data
Trying to parse data

I find only the following 3 tables generated in routing database:
List of relations
Schema | Name | Type | Owner
--------±------------------±------±---------
public | geography_columns | view | postgres
public | geometry_columns | table | postgres
public | spatial_ref_sys | table | postgres
(3 rows)

The tutorial says a total of 8 tables should be generated.

I do not get any other warning or error messages.

On other hand, I am able to do all steps here: http://workshop.pgrouting.org/chapters/topology.html correctly, and hence till now I was working with pgrouting-workshop database.

I am sorry if this are very silly errors, but I have no previous experience working with such data. Any hint/link why I am not able to generate routing database?

Looks like first digit is type and the three digits are from the classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev

<anton.patrushev@georepublic.de mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>

wrote:

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using
this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about “rush hour”
around a
major
city, the highways (based on road class) flowing into the city
in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
10am(85%)
and do something similar in the evening rush. It might be too
hard to
figure
on direction of flow in/out bound so apply the curve to all
traffic. The
assumption is that the highways are congested which will force
traffic
onto
side streets. You might want to also reduce the lower class
speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the
table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As
suggested by Steve
above, instead of generating random data, I will follow patterns
(see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc.
I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de

mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)

Web: http://georepublic.de

Tel: +49 (089) 420 959 519

Sip: 1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de
Web: http://georepublic.de

On Mon, Jun 13, 2011 at 7:56 AM, Daniel Kastl <daniel@georepublic.de> wrote:

Jay, there should be more tables.
So something goes wrong with osm2pgrouitng. but from your output I can’t guess what it is.

Can you give some details (maybe in a new thread)

Hi Daniel,

Well, I must have been doing a silly mistake somewhere, it worked this time.

Daniel

Well in the US anyway. Also if this is OSM data then you might get a better clue on classes by looking to that … OH!, look what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Hi Steve,

Thanks for giving me the link. I somehow never tried doing advanced part of the workshop.

Well, it is using routing database which we generate during this step: http://workshop.pgrouting.org/chapters/osm2pgrouting.html

I am doing exact steps outlined there but unfortunately, after I run osmtopgrouting command, get following output:

<lots of mesages regarding different class name, and ids>

class name = roundabout
class id = 401
class id = 401 name = roundabout added to type name=junction
Trying to load data
Trying to parse data

I find only the following 3 tables generated in routing database:
List of relations
Schema | Name | Type | Owner
--------±------------------±------±---------
public | geography_columns | view | postgres
public | geometry_columns | table | postgres
public | spatial_ref_sys | table | postgres
(3 rows)

The tutorial says a total of 8 tables should be generated.

I do not get any other warning or error messages.

On other hand, I am able to do all steps here: http://workshop.pgrouting.org/chapters/topology.html correctly, and hence till now I was working with pgrouting-workshop database.

I am sorry if this are very silly errors, but I have no previous experience working with such data. Any hint/link why I am not able to generate routing database?

Looks like first digit is type and the three digits are from the classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev

<anton.patrushev@georepublic.de mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>

wrote:

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using
this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about “rush hour”
around a
major
city, the highways (based on road class) flowing into the city
in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
10am(85%)
and do something similar in the evening rush. It might be too
hard to
figure
on direction of flow in/out bound so apply the curve to all
traffic. The
assumption is that the highways are congested which will force
traffic
onto
side streets. You might want to also reduce the lower class
speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the
table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As
suggested by Steve
above, instead of generating random data, I will follow patterns
(see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc.
I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de

mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)

Web: http://georepublic.de

Tel: +49 (089) 420 959 519

Sip: 1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de
Web: http://georepublic.de


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

Jay,

Try:

select class_id, count(*) as cnt from ways group by class_id oder by classid;

Typically you should a a distribution in real world data something like:

5% limited access major highways
15% major roads
75% minor roads
5% trails, pedestrian ways, etc

Hi,

We have got following data in the pgrouting-workshop ways table.

pgrouting-workshop=# select distinct(count(class_id)) as no_of_entries,class_id from ways group by class_id order by no_of_entries;
no_of_entries | class_id
---------------±---------
2 | 111
11 | 117
17 | 102
21 | 101
43 | 100
45 | 122
90 | 112
109 | 401
221 | 108
234 | 106
248 | 109
252 | 119
1259 | 114
2761 | 110
(14 rows)

The classes table in routing database gives more information on the class_id field. Also available here: http://workshop.pgrouting.org/chapters/advanced.html

So, we have:

class_id name no_of_entries

110 track 2761
114 path 1259
119 steps 252
109 service 248
106 primary 234
108 living_street 221
401 roundabout 109

These are the major class_types with more than 100 entries in ways table.

Steve had earlier suggested following idea for time dependent data generation:

“If we think about “rush hour” around a major city, the highways (based on road class) flowing into the city in the morning would get reduced average speeds you could apply curve like average speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%), 10am(85%) and do something similar in the evening rush. It might be too hard to figure on direction of flow in/out bound so apply the curve to all traffic. The assumption is that the highways are congested which will force traffic onto side streets. You might want to also reduce the lower class speeds by say a constant 80% during rush hour.”

So, what classes should I consider as highways, what classes as streets and so on? Or What should be the pattern of speed changes in various classes?

The main focus would be, we should be routed through less congested areas during rush hours right?

Once we finalise this model, I can write the plsql function to generate the corresponding data.

Well in the US anyway. Also if this is OSM data then you might get a better clue on classes by looking to that … OH!, look what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Looks like first digit is type and the three digits are from the classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev

<anton.patrushev@georepublic.de mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>

wrote:

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using
this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about “rush hour”
around a
major
city, the highways (based on road class) flowing into the city
in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
10am(85%)
and do something similar in the evening rush. It might be too
hard to
figure
on direction of flow in/out bound so apply the curve to all
traffic. The
assumption is that the highways are congested which will force
traffic
onto
side streets. You might want to also reduce the lower class
speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the
table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As
suggested by Steve
above, instead of generating random data, I will follow patterns
(see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc.
I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de

mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)

Web: http://georepublic.de

Tel: +49 (089) 420 959 519

Sip: 1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

Hi,

Here is an interesting look into the data in ways table:

pgrouting-workshop=# select round(avg(length)*10000) as avg, round(min(length)*10000) as min, round(max(length)10000) as max,count() as count, class_id from ways group by class_id order by avg desc;

avg | min | max | count | class_id
------±-----±------±------±---------
5320 | 250 | 12163 | 21 | 101
2135 | 1885 | 2385 | 2 | 111
1970 | 396 | 5168 | 17 | 102
1343 | 10 | 27485 | 234 | 106
1115 | 33 | 7964 | 221 | 108
1037 | 14 | 20020 | 248 | 109
938 | 9 | 23142 | 2761 | 110
837 | 21 | 2212 | 43 | 100
626 | 8 | 3327 | 90 | 112
619 | 26 | 9089 | 252 | 119
486 | 123 | 1618 | 11 | 117
473 | 7 | 16582 | 1259 | 114
364 | 97 | 1578 | 45 | 122
260 | 4 | 718 | 109 | 401
(14 rows)

So, I am going by the average length figure and considering class_id = (1001,111,102) as Type I (major_highways), which will be affected most by the traffic.

class_id = (106,108,109,110,100) as Type II (minor_highways) which be comparatively less populated.

class_id = (112,119,117,114,122,401) as Type III (streets) which will have least traffic.

We want to have model such that during traffic hours the shortest path should go through streets.

So, I am dividing day into following intervals, hope it sounds reasonable. I will write the corresponding plsql function that will generate the data accordingly. Note that the speed is in percentage of average speed. Since, we want to deal with time, we can effectively increase the lengths of the edges by same factor and assume speed as constant.

Time Interval Speed for Type I Speed for Type II Speed for Type III




10 PM – 6 AM 100 100 100
6 AM – 7 AM 95 90 100
7 AM – 8 AM 80 75 90
8 AM – 9 AM 50 45 85
9 AM – 10 AM 60 55 85
10 AM – 11 AM 90 85 95
11 AM – 5 PM 100 100 100
5 PM – 6 PM 90 85 95
6 PM – 7 PM 75 70 90
7 PM – 8 PM 50 45 85
8 PM – 9 PM 60 55 85
9 PM – 10 PM
95 90 95

Any feedback is welcome.

I am currently stuck with a bug in the core time-dependent function, there seems to be a problem with non-integer data. Will try and fix that soon.

On Wed, Jun 15, 2011 at 7:26 AM, Jay Mahadeokar <jai.mahadeokar@gmail.com> wrote:

On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

Jay,

Try:

select class_id, count(*) as cnt from ways group by class_id oder by classid;

Typically you should a a distribution in real world data something like:

5% limited access major highways
15% major roads
75% minor roads
5% trails, pedestrian ways, etc

Hi,

We have got following data in the pgrouting-workshop ways table.

pgrouting-workshop=# select distinct(count(class_id)) as no_of_entries,class_id from ways group by class_id order by no_of_entries;
no_of_entries | class_id
---------------±---------
2 | 111
11 | 117
17 | 102
21 | 101
43 | 100
45 | 122
90 | 112
109 | 401
221 | 108
234 | 106
248 | 109
252 | 119
1259 | 114
2761 | 110
(14 rows)

The classes table in routing database gives more information on the class_id field. Also available here: http://workshop.pgrouting.org/chapters/advanced.html

So, we have:

class_id name no_of_entries

110 track 2761
114 path 1259
119 steps 252
109 service 248
106 primary 234
108 living_street 221
401 roundabout 109

These are the major class_types with more than 100 entries in ways table.

Steve had earlier suggested following idea for time dependent data generation:

“If we think about “rush hour” around a major city, the highways (based on road class) flowing into the city in the morning would get reduced average speeds you could apply curve like average speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%), 10am(85%) and do something similar in the evening rush. It might be too hard to figure on direction of flow in/out bound so apply the curve to all traffic. The assumption is that the highways are congested which will force traffic onto side streets. You might want to also reduce the lower class speeds by say a constant 80% during rush hour.”

So, what classes should I consider as highways, what classes as streets and so on? Or What should be the pattern of speed changes in various classes?

The main focus would be, we should be routed through less congested areas during rush hours right?

Once we finalise this model, I can write the plsql function to generate the corresponding data.

Well in the US anyway. Also if this is OSM data then you might get a better clue on classes by looking to that … OH!, look what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Looks like first digit is type and the three digits are from the classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev

<anton.patrushev@georepublic.de mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>

wrote:

Hi Jay,

No, there was no specific meaning, just king of cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets etc using
this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com

mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)> wrote:

Hi Jay,

I think that instead of just random times, I would take a different
approach to generate this data. If we think about “rush hour”
around a
major
city, the highways (based on road class) flowing into the city
in the
morning would get reduced average speeds you could apply curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
10am(85%)
and do something similar in the evening rush. It might be too
hard to
figure
on direction of flow in/out bound so apply the curve to all
traffic. The
assumption is that the highways are congested which will force
traffic
onto
side streets. You might want to also reduce the lower class
speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to populate the
table with
that data.

-Steve

I am trying to write plpgsql query to generate time-dependent data
corresponding to the ways table in pgrouting workshop. As
suggested by Steve
above, instead of generating random data, I will follow patterns
(see above
message) so that the data is nearer to the real worlds scenario.

So, now I need to make distinction between highways, streets etc.
I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de

mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)

Web: http://georepublic.de

Tel: +49 (089) 420 959 519

Sip: 1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


Regards,
-Jay Mahadeokar

Hi Jay,

I think your proposed idea is good.
It usually happens that later modifications are required, but as long as you document what you did and it’s possible to recreate such a sample data in the same manner, it’s fine.

It’s probably more difficult to see the influence of time dependent cost, when you just increase or decrease the cost for a certain time interval. So I would also block some road class completely during a certain time, so that it will not be allowed to travel on those road segments at that time interval.
For demonstration purpose this has some stronger impact because it makes sure, that such a road will not be selected.
So in your example you could set some speed to “0%” if I understand you right.

Daniel

2011/6/17 Jay Mahadeokar <jai.mahadeokar@gmail.com>

Hi,

Here is an interesting look into the data in ways table:

pgrouting-workshop=# select round(avg(length)*10000) as avg, round(min(length)*10000) as min, round(max(length)10000) as max,count() as count, class_id from ways group by class_id order by avg desc;

avg | min | max | count | class_id
------±-----±------±------±---------
5320 | 250 | 12163 | 21 | 101
2135 | 1885 | 2385 | 2 | 111
1970 | 396 | 5168 | 17 | 102
1343 | 10 | 27485 | 234 | 106
1115 | 33 | 7964 | 221 | 108
1037 | 14 | 20020 | 248 | 109
938 | 9 | 23142 | 2761 | 110
837 | 21 | 2212 | 43 | 100
626 | 8 | 3327 | 90 | 112
619 | 26 | 9089 | 252 | 119
486 | 123 | 1618 | 11 | 117
473 | 7 | 16582 | 1259 | 114
364 | 97 | 1578 | 45 | 122
260 | 4 | 718 | 109 | 401
(14 rows)

So, I am going by the average length figure and considering class_id = (1001,111,102) as Type I (major_highways), which will be affected most by the traffic.

class_id = (106,108,109,110,100) as Type II (minor_highways) which be comparatively less populated.

class_id = (112,119,117,114,122,401) as Type III (streets) which will have least traffic.

We want to have model such that during traffic hours the shortest path should go through streets.

So, I am dividing day into following intervals, hope it sounds reasonable. I will write the corresponding plsql function that will generate the data accordingly. Note that the speed is in percentage of average speed. Since, we want to deal with time, we can effectively increase the lengths of the edges by same factor and assume speed as constant.

Time Interval Speed for Type I Speed for Type II Speed for Type III




10 PM – 6 AM 100 100 100
6 AM – 7 AM 95 90 100
7 AM – 8 AM 80 75 90
8 AM – 9 AM 50 45 85
9 AM – 10 AM 60 55 85
10 AM – 11 AM 90 85 95
11 AM – 5 PM 100 100 100
5 PM – 6 PM 90 85 95
6 PM – 7 PM 75 70 90
7 PM – 8 PM 50 45 85
8 PM – 9 PM 60 55 85
9 PM – 10 PM
95 90 95

Any feedback is welcome.

I am currently stuck with a bug in the core time-dependent function, there seems to be a problem with non-integer data. Will try and fix that soon.


Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de
Web: http://georepublic.de

On Fri, Jun 17, 2011 at 10:23 AM, Daniel Kastl <daniel@georepublic.de> wrote:

Hi Jay,

I think your proposed idea is good.
It usually happens that later modifications are required, but as long as you document what you did and it’s possible to recreate such a sample data in the same manner, it’s fine.

It’s probably more difficult to see the influence of time dependent cost, when you just increase or decrease the cost for a certain time interval. So I would also block some road class completely during a certain time, so that it will not be allowed to travel on those road segments at that time interval.
For demonstration purpose this has some stronger impact because it makes sure, that such a road will not be selected.
So in your example you could set some speed to “0%” if I understand you right.

Hi Daniel,

Thanks for the input. I will keep this in mind while generating the test data.

Daniel

2011/6/17 Jay Mahadeokar <jai.mahadeokar@gmail.com>

Hi,

Here is an interesting look into the data in ways table:

pgrouting-workshop=# select round(avg(length)*10000) as avg, round(min(length)*10000) as min, round(max(length)10000) as max,count() as count, class_id from ways group by class_id order by avg desc;

avg | min | max | count | class_id
------±-----±------±------±---------
5320 | 250 | 12163 | 21 | 101
2135 | 1885 | 2385 | 2 | 111
1970 | 396 | 5168 | 17 | 102
1343 | 10 | 27485 | 234 | 106
1115 | 33 | 7964 | 221 | 108
1037 | 14 | 20020 | 248 | 109
938 | 9 | 23142 | 2761 | 110
837 | 21 | 2212 | 43 | 100
626 | 8 | 3327 | 90 | 112
619 | 26 | 9089 | 252 | 119
486 | 123 | 1618 | 11 | 117
473 | 7 | 16582 | 1259 | 114
364 | 97 | 1578 | 45 | 122
260 | 4 | 718 | 109 | 401
(14 rows)

So, I am going by the average length figure and considering class_id = (1001,111,102) as Type I (major_highways), which will be affected most by the traffic.

class_id = (106,108,109,110,100) as Type II (minor_highways) which be comparatively less populated.

class_id = (112,119,117,114,122,401) as Type III (streets) which will have least traffic.

We want to have model such that during traffic hours the shortest path should go through streets.

So, I am dividing day into following intervals, hope it sounds reasonable. I will write the corresponding plsql function that will generate the data accordingly. Note that the speed is in percentage of average speed. Since, we want to deal with time, we can effectively increase the lengths of the edges by same factor and assume speed as constant.

Time Interval Speed for Type I Speed for Type II Speed for Type III




10 PM – 6 AM 100 100 100
6 AM – 7 AM 95 90 100
7 AM – 8 AM 80 75 90
8 AM – 9 AM 50 45 85
9 AM – 10 AM 60 55 85
10 AM – 11 AM 90 85 95
11 AM – 5 PM 100 100 100
5 PM – 6 PM 90 85 95
6 PM – 7 PM 75 70 90
7 PM – 8 PM 50 45 85
8 PM – 9 PM 60 55 85
9 PM – 10 PM
95 90 95

Any feedback is welcome.

I am currently stuck with a bug in the core time-dependent function, there seems to be a problem with non-integer data. Will try and fix that soon.


Georepublic UG & Georepublic Japan
eMail: daniel.kastl@georepublic.de
Web: http://georepublic.de


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

Hi Jay,

I am back from my trip and wading through emails.

I am interested in what your rationale for looking a length as a classifier is. It would seem to me the length of a given segment has nothing to do with classifying a segment with respect to speed or road class. The length of a segment is typically a function of how often that route is intersected by other features. For example and a path through a city will have more intersections than a path through a rural country side. A mountain pass could be a very long segment but might be a very slow path because it is twisty and has a lot of elevation changes. A major road through a city might have intersections at every block hence have short segments but could still move a lot of traffic from one side of the city to another.

For testing purposes, any random classification is fine, but I like to pick classifications the reasonably model real life so when I see the results they reflect some general cognitive expectations and I can understand then or detect anomalies which might indicat a bug in the algorithm.

Maybe I am missing the point, anyway just trying to understand and not suggesting that you change anything at this point.

-Steve

On 6/17/2011 12:42 AM, Jay Mahadeokar wrote:

Hi,

Here is an interesting look into the data in ways table:

pgrouting-workshop=# select round(avg(length)*10000) as avg,
round(min(length)*10000) as min, round(max(length)*10000) as
max,count(*) as count, class_id from ways group by class_id order by avg
desc;

  avg | min | max | count | class_id
------+------+-------+-------+----------
  5320 | 250 | 12163 | 21 | 101
  2135 | 1885 | 2385 | 2 | 111
  1970 | 396 | 5168 | 17 | 102
  1343 | 10 | 27485 | 234 | 106
  1115 | 33 | 7964 | 221 | 108
  1037 | 14 | 20020 | 248 | 109
   938 | 9 | 23142 | 2761 | 110
   837 | 21 | 2212 | 43 | 100
   626 | 8 | 3327 | 90 | 112
   619 | 26 | 9089 | 252 | 119
   486 | 123 | 1618 | 11 | 117
   473 | 7 | 16582 | 1259 | 114
   364 | 97 | 1578 | 45 | 122
   260 | 4 | 718 | 109 | 401
(14 rows)

So, I am going by the average length figure and considering class_id =
(1001,111,102) as Type I (major_highways), which will be affected most
by the traffic.

class_id = (106,108,109,110,100) as Type II (minor_highways) which be
comparatively less populated.

class_id = (112,119,117,114,122,401) as Type III (streets) which will
have least traffic.

We want to have model such that during traffic hours the shortest path
should go through streets.

So, I am dividing day into following intervals, hope it sounds
reasonable. I will write the corresponding plsql function that will
generate the data accordingly. Note that the speed is in percentage of
average speed. Since, we want to deal with time, we can effectively
increase the lengths of the edges by same factor and assume speed as
constant.

Time Interval Speed for Type I Speed for Type II Speed for Type III

10 PM – 6 AM 100 100 100
6 AM – 7 AM 95 90 100
7 AM – 8 AM 80 75 90
8 AM – 9 AM 50 45 85
9 AM – 10 AM 60 55 85
10 AM – 11 AM 90 85 95
11 AM – 5 PM 100 100 100
5 PM – 6 PM 90 85 95
6 PM – 7 PM 75 70 90
7 PM – 8 PM 50 45 85
8 PM – 9 PM 60 55 85
9 PM – 10 PM
  95 90 95

Any feedback is welcome.

I am currently stuck with a bug in the core time-dependent function,
there seems to be a problem with non-integer data. Will try and fix that
soon.

On Wed, Jun 15, 2011 at 7:26 AM, Jay Mahadeokar
<jai.mahadeokar@gmail.com <mailto:jai.mahadeokar@gmail.com>> wrote:

    On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge
    <woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>> wrote:

        Jay,

        Try:

        select class_id, count(*) as cnt from ways group by class_id
        oder by classid;

        Typically you should a a distribution in real world data
        something like:

        5% limited access major highways
        15% major roads
        75% minor roads
        5% trails, pedestrian ways, etc

    Hi,

    We have got following data in the pgrouting-workshop ways table.

    pgrouting-workshop=# select distinct(count(class_id)) as
    no_of_entries,class_id from ways group by class_id order by
    no_of_entries;
      no_of_entries | class_id
    ---------------+----------
                  2 | 111
                 11 | 117
                 17 | 102
                 21 | 101
                 43 | 100
                 45 | 122
                 90 | 112
                109 | 401
                221 | 108
                234 | 106
                248 | 109
                252 | 119
               1259 | 114
               2761 | 110
    (14 rows)

    The classes table in routing database gives more information on the
    class_id field. Also available here:
    http://workshop.pgrouting.org/chapters/advanced.html

    So, we have:

    class_id name no_of_entries

    110 track 2761
    114 path 1259
    119 steps 252
    109 service 248
    106 primary 234
    108 living_street 221
    401 roundabout 109

    These are the major class_types with more than 100 entries in ways
    table.

    Steve had earlier suggested following idea for time dependent data
    generation:

    "If we think about "rush hour" around a major city, the highways
    (based on road class) flowing into the city in the morning would get
    reduced average speeds you could apply curve like average
    speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
    10am(85%) and do something similar in the evening rush. It might be
    too hard to figure on direction of flow in/out bound so apply the
    curve to all traffic. The assumption is that the highways are
    congested which will force traffic onto side streets. You might want
    to also reduce the lower class speeds by say a constant 80% during
    rush hour."

    So, what classes should I consider as highways, what classes as
    streets and so on? Or What should be the pattern of speed changes in
    various classes?

    The main focus would be, we should be routed through less congested
    areas during rush hours right?

    Once we finalise this model, I can write the plsql function to
    generate the corresponding data.

        Well in the US anyway. Also if this is OSM data then you might
        get a better clue on classes by looking to that .... OH!, look
        what I found in google :slight_smile:

        http://workshop.pgrouting.org/chapters/advanced.html

        Looks like first digit is type and the three digits are from the
        classes table.

        -Steve

        On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

            On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev
            <anton.patrushev@georepublic.de
            <mailto:anton.patrushev@georepublic.de>
            <mailto:anton.patrushev@georepublic.de
            <mailto:anton.patrushev@georepublic.de>>>

            wrote:

                Hi Jay,

                No, there was no specific meaning, just king of
            cyphering - first
                digit for road class and then two last digits for road type.

            Hi Anton,

            So, as you said last 2 digits are for road type. I can see
            they are
            mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

            Road class is just 1 or 4.

            Can I differentiate major highways, minor highways, streets
            etc using
            this info?

                Anton.

                On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com
            <mailto:jai.mahadeokar@gmail.com>
            <mailto:jai.mahadeokar@gmail.com
            <mailto:jai.mahadeokar@gmail.com>>> wrote:
             >> Hi Jay,
             >>
             >> I think that instead of just random times, I would take
            a different
             >> approach to generate this data. If we think about "rush
            hour"
                around a
             >> major
             >> city, the highways (based on road class) flowing into
            the city
                in the
             >> morning would get reduced average speeds you could apply
            curve like
             >> average
             >> speed*percent based on 6am (90%), 7am(75%), 8am(45%),
            9am(50%),
                10am(85%)
             >> and do something similar in the evening rush. It might
            be too
                hard to
             >> figure
             >> on direction of flow in/out bound so apply the curve to all
                traffic. The
             >> assumption is that the highways are congested which will
            force
                traffic
             >> onto
             >> side streets. You might want to also reduce the lower class
                speeds by say
             >> a
             >> constant 80% during rush hour.
             >>
             >> If we can get OSM data then it should be easy to
            populate the
                table with
             >> that data.
             >>
             >> -Steve
             >>
             >
             > I am trying to write plpgsql query to generate
            time-dependent data
             > corresponding to the ways table in pgrouting workshop. As
                suggested by Steve
             > above, instead of generating random data, I will follow
            patterns
                (see above
             > message) so that the data is nearer to the real worlds
            scenario.
             >
             > So, now I need to make distinction between highways,
            streets etc.
                I saw the
             > attribute class_id in ways table. It has 14 distinct values:
             > class_id
             >
             > ----------
             >
             > 102
             >
             > 122
             >
             > 106
             >
             > 111
             >
             > 108
             >
             > 100
             >
             > 109
             >
             > 112
             >
             > 101
             >
             > 110
             >
             > 401
             >
             > 119
             >
             > 117
             >
             > 114
             >
             > Any specific meaning attached to these values? I did not
            find any
             > information on the pgRouting-workshop website [1].
             >
             > Thanks in advance.
             >
             > [1] http://workshop.pgrouting.org/chapters/topology.html
             >
             > --
             > Regards,
             > -Jay Mahadeokar
             >

                --
                Georepublic UG (haftungsbeschränkt)
                Salzmannstraße 44,
                81739 München, Germany

                Anton Patrushev
                CTO

                eMail: anton.patrushev@georepublic.de
            <mailto:anton.patrushev@georepublic.de>
            <mailto:anton.patrushev@georepublic.de
            <mailto:anton.patrushev@georepublic.de>>

                Web: http://georepublic.de

                Tel: +49 (089) 420 959 519
                Sip: 1959519@sipgate.de <mailto:1959519@sipgate.de>
            <mailto:1959519@sipgate.de>

                Commercial register: Amtsgericht München, HRB 181428
                CEO: Daniel Kastl
                _______________________________________________
                pgrouting-dev mailing list
            pgrouting-dev@lists.osgeo.org
            <mailto:pgrouting-dev@lists.osgeo.org>
            <mailto:pgrouting-dev@lists.osgeo.org
            <mailto:pgrouting-dev@lists.osgeo.org>>

            http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

            --
            Regards,
            -Jay Mahadeokar

            _______________________________________________
            pgrouting-dev mailing list
            pgrouting-dev@lists.osgeo.org
            <mailto:pgrouting-dev@lists.osgeo.org>
            http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

        _______________________________________________
        pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

    --
    Regards,
    -Jay Mahadeokar

--
Regards,
-Jay Mahadeokar

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

On Wed, Jun 22, 2011 at 7:57 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

Hi Jay,

I am back from my trip and wading through emails.

I am interested in what your rationale for looking a length as a classifier is. It would seem to me the length of a given segment has nothing to do with classifying a segment with respect to speed or road class. The length of a segment is typically a function of how often that route is intersected by other features. For example and a path through a city will have more intersections than a path through a rural country side. A mountain pass could be a very long segment but might be a very slow path because it is twisty and has a lot of elevation changes. A major road through a city might have intersections at every block hence have short segments but could still move a lot of traffic from one side of the city to another.

For testing purposes, any random classification is fine, but I like to pick classifications the reasonably model real life so when I see the results they reflect some general cognitive expectations and I can understand then or detect anomalies which might indicat a bug in the algorithm.

Maybe I am missing the point, anyway just trying to understand and not suggesting that you change anything at this point.

Hi Steve,

Well I was very confused regarding the classification too since I have zero experience with real world data, and so I just choose length as criteria. This data is just for test purpose. We can modify the model and criteria any time, since writing the plsql procedure to generate such does not take too much effort. Also, the data does not affect the internal working of the algorithm, so I think for now, I can work with the currently generated test data.

Any other ideas/ criteria for classification are welcome, and I would write the scripts to generate corresponding data.

-Steve

On 6/17/2011 12:42 AM, Jay Mahadeokar wrote:

Hi,

Here is an interesting look into the data in ways table:

pgrouting-workshop=# select round(avg(length)*10000) as avg,
round(min(length)*10000) as min, round(max(length)10000) as
max,count(
) as count, class_id from ways group by class_id order by avg
desc;

avg | min | max | count | class_id
------±-----±------±------±---------
5320 | 250 | 12163 | 21 | 101
2135 | 1885 | 2385 | 2 | 111
1970 | 396 | 5168 | 17 | 102
1343 | 10 | 27485 | 234 | 106
1115 | 33 | 7964 | 221 | 108
1037 | 14 | 20020 | 248 | 109
938 | 9 | 23142 | 2761 | 110
837 | 21 | 2212 | 43 | 100
626 | 8 | 3327 | 90 | 112
619 | 26 | 9089 | 252 | 119
486 | 123 | 1618 | 11 | 117
473 | 7 | 16582 | 1259 | 114
364 | 97 | 1578 | 45 | 122
260 | 4 | 718 | 109 | 401
(14 rows)

So, I am going by the average length figure and considering class_id =
(1001,111,102) as Type I (major_highways), which will be affected most
by the traffic.

class_id = (106,108,109,110,100) as Type II (minor_highways) which be
comparatively less populated.

class_id = (112,119,117,114,122,401) as Type III (streets) which will
have least traffic.

We want to have model such that during traffic hours the shortest path
should go through streets.

So, I am dividing day into following intervals, hope it sounds
reasonable. I will write the corresponding plsql function that will
generate the data accordingly. Note that the speed is in percentage of
average speed. Since, we want to deal with time, we can effectively
increase the lengths of the edges by same factor and assume speed as
constant.

Time Interval Speed for Type I Speed for Type II Speed for Type III

10 PM – 6 AM 100 100 100
6 AM – 7 AM 95 90 100
7 AM – 8 AM 80 75 90
8 AM – 9 AM 50 45 85
9 AM – 10 AM 60 55 85
10 AM – 11 AM 90 85 95
11 AM – 5 PM 100 100 100
5 PM – 6 PM 90 85 95
6 PM – 7 PM 75 70 90
7 PM – 8 PM 50 45 85
8 PM – 9 PM 60 55 85
9 PM – 10 PM
95 90 95

Any feedback is welcome.

I am currently stuck with a bug in the core time-dependent function,
there seems to be a problem with non-integer data. Will try and fix that
soon.

On Wed, Jun 15, 2011 at 7:26 AM, Jay Mahadeokar

<jai.mahadeokar@gmail.com mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)> wrote:

On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge

<woodbri@swoodbridge.com mailto:[woodbri@swoodbridge.com](mailto:woodbri@swoodbridge.com)> wrote:

Jay,

Try:

select class_id, count(*) as cnt from ways group by class_id
oder by classid;

Typically you should a a distribution in real world data
something like:

5% limited access major highways
15% major roads
75% minor roads
5% trails, pedestrian ways, etc

Hi,

We have got following data in the pgrouting-workshop ways table.

pgrouting-workshop=# select distinct(count(class_id)) as
no_of_entries,class_id from ways group by class_id order by
no_of_entries;
no_of_entries | class_id
---------------±---------
2 | 111
11 | 117
17 | 102
21 | 101
43 | 100
45 | 122
90 | 112
109 | 401
221 | 108
234 | 106
248 | 109
252 | 119
1259 | 114
2761 | 110
(14 rows)

The classes table in routing database gives more information on the
class_id field. Also available here:
http://workshop.pgrouting.org/chapters/advanced.html

So, we have:

class_id name no_of_entries

110 track 2761
114 path 1259
119 steps 252
109 service 248
106 primary 234
108 living_street 221
401 roundabout 109

These are the major class_types with more than 100 entries in ways
table.

Steve had earlier suggested following idea for time dependent data
generation:

“If we think about “rush hour” around a major city, the highways
(based on road class) flowing into the city in the morning would get
reduced average speeds you could apply curve like average
speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
10am(85%) and do something similar in the evening rush. It might be
too hard to figure on direction of flow in/out bound so apply the
curve to all traffic. The assumption is that the highways are
congested which will force traffic onto side streets. You might want
to also reduce the lower class speeds by say a constant 80% during
rush hour.”

So, what classes should I consider as highways, what classes as
streets and so on? Or What should be the pattern of speed changes in
various classes?

The main focus would be, we should be routed through less congested
areas during rush hours right?

Once we finalise this model, I can write the plsql function to
generate the corresponding data.

Well in the US anyway. Also if this is OSM data then you might
get a better clue on classes by looking to that … OH!, look
what I found in google :slight_smile:

http://workshop.pgrouting.org/chapters/advanced.html

Looks like first digit is type and the three digits are from the
classes table.

-Steve

On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev
<anton.patrushev@georepublic.de
mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)
<mailto:anton.patrushev@georepublic.de
mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>>

wrote:

Hi Jay,

No, there was no specific meaning, just king of
cyphering - first
digit for road class and then two last digits for road type.

Hi Anton,

So, as you said last 2 digits are for road type. I can see
they are
mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

Road class is just 1 or 4.

Can I differentiate major highways, minor highways, streets
etc using
this info?

Anton.

On 6/12/11, Jay Mahadeokar <jai.mahadeokar@gmail.com
mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)
<mailto:jai.mahadeokar@gmail.com
mailto:[jai.mahadeokar@gmail.com](mailto:jai.mahadeokar@gmail.com)>> wrote:

Hi Jay,

I think that instead of just random times, I would take
a different
approach to generate this data. If we think about “rush
hour”
around a
major
city, the highways (based on road class) flowing into
the city
in the
morning would get reduced average speeds you could apply
curve like
average
speed*percent based on 6am (90%), 7am(75%), 8am(45%),
9am(50%),
10am(85%)
and do something similar in the evening rush. It might
be too
hard to
figure
on direction of flow in/out bound so apply the curve to all
traffic. The
assumption is that the highways are congested which will
force
traffic
onto
side streets. You might want to also reduce the lower class
speeds by say
a
constant 80% during rush hour.

If we can get OSM data then it should be easy to
populate the
table with
that data.

-Steve

I am trying to write plpgsql query to generate
time-dependent data
corresponding to the ways table in pgrouting workshop. As
suggested by Steve
above, instead of generating random data, I will follow
patterns
(see above
message) so that the data is nearer to the real worlds
scenario.

So, now I need to make distinction between highways,
streets etc.
I saw the
attribute class_id in ways table. It has 14 distinct values:
class_id


102

122

106

111

108

100

109

112

101

110

401

119

117

114

Any specific meaning attached to these values? I did not
find any
information on the pgRouting-workshop website [1].

Thanks in advance.

[1] http://workshop.pgrouting.org/chapters/topology.html


Regards,
-Jay Mahadeokar


Georepublic UG (haftungsbeschränkt)
Salzmannstraße 44,
81739 München, Germany

Anton Patrushev
CTO

eMail: anton.patrushev@georepublic.de
mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)
<mailto:anton.patrushev@georepublic.de
mailto:[anton.patrushev@georepublic.de](mailto:anton.patrushev@georepublic.de)>

Web: http://georepublic.de

Tel: +49 (089) 420 959 519
Sip: 1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)

<mailto:1959519@sipgate.de mailto:[1959519@sipgate.de](mailto:1959519@sipgate.de)>

Commercial register: Amtsgericht München, HRB 181428
CEO: Daniel Kastl


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)
<mailto:pgrouting-dev@lists.osgeo.org
mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)>

http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar


Regards,
-Jay Mahadeokar


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


Regards,
-Jay Mahadeokar

Hi Jay,

For now just push forward with what you have for testing that should be fine.

In general, the OSM data has lots of options for classification, but it does not have clear standards or descriptions on how segments SHOULD be classified, so it is easy for different people to interpret the classifications differently. Hence, you end up with a huge list of segment classes like on:

http://workshop.pgrouting.org/chapters/advanced.html

with only short 1-2 word descriptions. So for example what is the difference between motorway, motorway_link, motorway_junction or for that matter a lane, opposite, opposite_lane, track, byway, circleway, living_street, residential, road, secondary, tertiary, track, roundabout and grade* types and how should these be represented as classes or for average speeds?

In the link above they are trying to deal with this same issue by assigning a cost to the classes table based on the type name. They then use that cost as a multiplier of the length which is weird, but kind of works. This assumes the a cost multiplier of 2.0 means that that class takes 2X as long to traverse that segment as a class with a cost multiplier of 1.0.

UPDATE classes SET cost=2.0 WHERE name IN ('pedestrian','steps','footway');

versus:

UPDATE classes SET cost=0.3 WHERE name IN ('motorway','motorway_junction','motorway_link');

and in these segments vehicle speed is faster to the cost is smaller.

I take a more intuitive approach to this problem, by assigning an average speed for each class of segment, then length / average speed represents the average traversal time. So it is easy to make adjustments to the model and you can easily do shortest time or distance.

-Steve

On 6/22/2011 10:42 AM, Jay Mahadeokar wrote:

On Wed, Jun 22, 2011 at 7:57 PM, Stephen Woodbridge
<woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>> wrote:

    Hi Jay,

    I am back from my trip and wading through emails.

    I am interested in what your rationale for looking a length as a
    classifier is. It would seem to me the length of a given segment has
    nothing to do with classifying a segment with respect to speed or
    road class. The length of a segment is typically a function of how
    often that route is intersected by other features. For example and a
    path through a city will have more intersections than a path through
    a rural country side. A mountain pass could be a very long segment
    but might be a very slow path because it is twisty and has a lot of
    elevation changes. A major road through a city might have
    intersections at every block hence have short segments but could
    still move a lot of traffic from one side of the city to another.

    For testing purposes, any random classification is fine, but I like
    to pick classifications the reasonably model real life so when I see
    the results they reflect some general cognitive expectations and I
    can understand then or detect anomalies which might indicat a bug in
    the algorithm.

    Maybe I am missing the point, anyway just trying to understand and
    not suggesting that you change anything at this point.

Hi Steve,

Well I was very confused regarding the classification too since I have
zero experience with real world data, and so I just choose length as
criteria. This data is just for test purpose. We can modify the model
and criteria any time, since writing the plsql procedure to generate
such does not take too much effort. Also, the data does not affect the
internal working of the algorithm, so I think for now, I can work with
the currently generated test data.

Any other ideas/ criteria for classification are welcome, and I would
write the scripts to generate corresponding data.

    -Steve

    On 6/17/2011 12:42 AM, Jay Mahadeokar wrote:

        Hi,

        Here is an interesting look into the data in ways table:

        pgrouting-workshop=# select round(avg(length)*10000) as avg,
        round(min(length)*10000) as min, round(max(length)*10000) as
        max,count(*) as count, class_id from ways group by class_id
        order by avg
        desc;

          avg | min | max | count | class_id
        ------+------+-------+-------+ ----------
          5320 | 250 | 12163 | 21 | 101
          2135 | 1885 | 2385 | 2 | 111
          1970 | 396 | 5168 | 17 | 102
          1343 | 10 | 27485 | 234 | 106
          1115 | 33 | 7964 | 221 | 108
          1037 | 14 | 20020 | 248 | 109
           938 | 9 | 23142 | 2761 | 110
           837 | 21 | 2212 | 43 | 100
           626 | 8 | 3327 | 90 | 112
           619 | 26 | 9089 | 252 | 119
           486 | 123 | 1618 | 11 | 117
           473 | 7 | 16582 | 1259 | 114
           364 | 97 | 1578 | 45 | 122
           260 | 4 | 718 | 109 | 401
        (14 rows)

        So, I am going by the average length figure and considering
        class_id =
        (1001,111,102) as Type I (major_highways), which will be
        affected most
        by the traffic.

        class_id = (106,108,109,110,100) as Type II (minor_highways)
        which be
        comparatively less populated.

        class_id = (112,119,117,114,122,401) as Type III (streets) which
        will
        have least traffic.

        We want to have model such that during traffic hours the
        shortest path
        should go through streets.

        So, I am dividing day into following intervals, hope it sounds
        reasonable. I will write the corresponding plsql function that will
        generate the data accordingly. Note that the speed is in
        percentage of
        average speed. Since, we want to deal with time, we can effectively
        increase the lengths of the edges by same factor and assume speed as
        constant.

        Time Interval Speed for Type I Speed for Type II
        Speed for Type III

        10 PM – 6 AM 100 100 100
        6 AM – 7 AM 95 90 100
        7 AM – 8 AM 80 75 90
        8 AM – 9 AM 50 45 85
        9 AM – 10 AM 60 55 85
        10 AM – 11 AM 90 85 95
        11 AM – 5 PM 100 100 100
        5 PM – 6 PM 90 85 95
        6 PM – 7 PM 75 70 90
        7 PM – 8 PM 50 45 85
        8 PM – 9 PM 60 55 85
        9 PM – 10 PM
                95 90 95

        Any feedback is welcome.

        I am currently stuck with a bug in the core time-dependent function,
        there seems to be a problem with non-integer data. Will try and
        fix that
        soon.

        On Wed, Jun 15, 2011 at 7:26 AM, Jay Mahadeokar
        <jai.mahadeokar@gmail.com <mailto:jai.mahadeokar@gmail.com>
        <mailto:jai.mahadeokar@gmail. com
        <mailto:jai.mahadeokar@gmail.com>>> wrote:

            On Sun, Jun 12, 2011 at 8:00 PM, Stephen Woodbridge
        <woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>
        <mailto:woodbri@swoodbridge. com
        <mailto:woodbri@swoodbridge.com>>> wrote:

                Jay,

                Try:

                select class_id, count(*) as cnt from ways group by class_id
                oder by classid;

                Typically you should a a distribution in real world data
                something like:

                5% limited access major highways
                15% major roads
                75% minor roads
                5% trails, pedestrian ways, etc

            Hi,

            We have got following data in the pgrouting-workshop ways table.

            pgrouting-workshop=# select distinct(count(class_id)) as
            no_of_entries,class_id from ways group by class_id order by
            no_of_entries;
              no_of_entries | class_id
            ---------------+----------
                          2 | 111
                         11 | 117
                         17 | 102
                         21 | 101
                         43 | 100
                         45 | 122
                         90 | 112
                        109 | 401
                        221 | 108
                        234 | 106
                        248 | 109
                        252 | 119
                       1259 | 114
                       2761 | 110
            (14 rows)

            The classes table in routing database gives more information
        on the
            class_id field. Also available here:
        http://workshop.pgrouting.org/ chapters/advanced.html
        <http://workshop.pgrouting.org/chapters/advanced.html&gt;

            So, we have:

            class_id name no_of_entries

            110 track 2761
            114 path 1259
            119 steps 252
            109 service 248
            106 primary 234
            108 living_street 221
            401 roundabout 109

            These are the major class_types with more than 100 entries
        in ways
            table.

            Steve had earlier suggested following idea for time
        dependent data
            generation:

        "If we think about "rush hour" around a major city, the highways
            (based on road class) flowing into the city in the morning
        would get
            reduced average speeds you could apply curve like average
            speed*percent based on 6am (90%), 7am(75%), 8am(45%), 9am(50%),
            10am(85%) and do something similar in the evening rush. It
        might be
            too hard to figure on direction of flow in/out bound so
        apply the
            curve to all traffic. The assumption is that the highways are
            congested which will force traffic onto side streets. You
        might want
            to also reduce the lower class speeds by say a constant 80%
        during
            rush hour."

            So, what classes should I consider as highways, what classes as
            streets and so on? Or What should be the pattern of speed
        changes in
            various classes?

            The main focus would be, we should be routed through less
        congested
            areas during rush hours right?

            Once we finalise this model, I can write the plsql function to
            generate the corresponding data.

                Well in the US anyway. Also if this is OSM data then you
        might
                get a better clue on classes by looking to that ....
        OH!, look
                what I found in google :slight_smile:

        http://workshop.pgrouting.org/ chapters/advanced.html
        <http://workshop.pgrouting.org/chapters/advanced.html&gt;

                Looks like first digit is type and the three digits are
        from the
                classes table.

                -Steve

                On 6/12/2011 4:33 AM, Jay Mahadeokar wrote:

                    On Sun, Jun 12, 2011 at 1:32 PM, Anton Patrushev
        <anton.patrushev@georepublic. de
        <mailto:anton.patrushev@georepublic.de>
        <mailto:anton.patrushev@ georepublic.de
        <mailto:anton.patrushev@georepublic.de>>
        <mailto:anton.patrushev@ georepublic.de
        <mailto:anton.patrushev@georepublic.de>
        <mailto:anton.patrushev@ georepublic.de
        <mailto:anton.patrushev@georepublic.de>>>>

                    wrote:

                        Hi Jay,

                        No, there was no specific meaning, just king of
                    cyphering - first
                        digit for road class and then two last digits
        for road type.

                    Hi Anton,

                    So, as you said last 2 digits are for road type. I
        can see
                    they are
                    mainly 00, 01, 02, 06, 08, 09, 10, 11, 12 ,14, 17.

                    Road class is just 1 or 4.

                    Can I differentiate major highways, minor highways,
        streets
                    etc using
                    this info?

                        Anton.

                        On 6/12/11, Jay Mahadeokar
        <jai.mahadeokar@gmail.com <mailto:jai.mahadeokar@gmail.com>
        <mailto:jai.mahadeokar@gmail. com <mailto:jai.mahadeokar@gmail.com>>
        <mailto:jai.mahadeokar@gmail. com <mailto:jai.mahadeokar@gmail.com>
        <mailto:jai.mahadeokar@gmail. com
        <mailto:jai.mahadeokar@gmail.com>>>> wrote:
         >> Hi Jay,
         >>
         >> I think that instead of just random times, I would take
                    a different
         >> approach to generate this data. If we think about "rush
                    hour"
                        around a
         >> major
         >> city, the highways (based on road class) flowing into
                    the city
                        in the
         >> morning would get reduced average speeds you could apply
                    curve like
         >> average
         >> speed*percent based on 6am (90%), 7am(75%), 8am(45%),
                    9am(50%),
                        10am(85%)
         >> and do something similar in the evening rush. It might
                    be too
                        hard to
         >> figure
         >> on direction of flow in/out bound so apply the curve to all
                        traffic. The
         >> assumption is that the highways are congested which will
                    force
                        traffic
         >> onto
         >> side streets. You might want to also reduce the lower class
                        speeds by say
         >> a
         >> constant 80% during rush hour.
         >>
         >> If we can get OSM data then it should be easy to
                    populate the
                        table with
         >> that data.
         >>
         >> -Steve
         >>
         >
         > I am trying to write plpgsql query to generate
                    time-dependent data
         > corresponding to the ways table in pgrouting workshop. As
                        suggested by Steve
         > above, instead of generating random data, I will follow
                    patterns
                        (see above
         > message) so that the data is nearer to the real worlds
                    scenario.
         >
         > So, now I need to make distinction between highways,
                    streets etc.
                        I saw the
         > attribute class_id in ways table. It has 14 distinct values:
         > class_id
         >
         > ----------
         >
         > 102
         >
         > 122
         >
         > 106
         >
         > 111
         >
         > 108
         >
         > 100
         >
         > 109
         >
         > 112
         >
         > 101
         >
         > 110
         >
         > 401
         >
         > 119
         >
         > 117
         >
         > 114
         >
         > Any specific meaning attached to these values? I did not
                    find any
         > information on the pgRouting-workshop website [1].
         >
         > Thanks in advance.
         >
         > [1] http://workshop.pgrouting.org/ chapters/topology.html
        <http://workshop.pgrouting.org/chapters/topology.html&gt;
         >
         > --
         > Regards,
         > -Jay Mahadeokar
         >

                        --
                        Georepublic UG (haftungsbeschränkt)
                        Salzmannstraße 44,
                        81739 München, Germany

                        Anton Patrushev
                        CTO

                        eMail: anton.patrushev@georepublic.de
        <mailto:anton.patrushev@georepublic.de>
        <mailto:anton.patrushev@ georepublic.de
        <mailto:anton.patrushev@georepublic.de>>
        <mailto:anton.patrushev@ georepublic.de
        <mailto:anton.patrushev@georepublic.de>
        <mailto:anton.patrushev@ georepublic.de
        <mailto:anton.patrushev@georepublic.de>>>

                        Web: http://georepublic.de

                        Tel: +49 (089) 420 959 519
                        Sip: 1959519@sipgate.de
        <mailto:1959519@sipgate.de> <mailto:1959519@sipgate.de
        <mailto:1959519@sipgate.de>>
        <mailto:1959519@sipgate.de
        <mailto:1959519@sipgate.de>>

                        Commercial register: Amtsgericht München, HRB 181428
                        CEO: Daniel Kastl
                        ______________________________ _________________
                        pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        <mailto:pgrouting-dev@lists. osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>>
        <mailto:pgrouting-dev@lists. osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>
        <mailto:pgrouting-dev@lists. osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>>>

        http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
        <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

                    --
                    Regards,
                    -Jay Mahadeokar

                    ______________________________ _________________
                    pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        <mailto:pgrouting-dev@lists. osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>>
        http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
        <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

                ______________________________ _________________
                pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>
        <mailto:pgrouting-dev@lists. osgeo.org
        <mailto:pgrouting-dev@lists.osgeo.org>>
        http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
        <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

            --
            Regards,
            -Jay Mahadeokar

        --
        Regards,
        -Jay Mahadeokar

        ______________________________ _________________
        pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
        <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

    ______________________________ _________________
    pgrouting-dev mailing list
    pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
    http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
    <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

--
Regards,
-Jay Mahadeokar

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev