pgRouting / osm2pgrouting

Import tool for OpenStreetMap data to pgRouting database
https://pgrouting.org
GNU General Public License v2.0
289 stars 111 forks source link

pseudo nodes #196

Open damiaan opened 6 years ago

damiaan commented 6 years ago

Is there any way to reduce the number of pseudo nodes in the created network? For my application, i need to calculate the optimal path between a large combination of points, on a network of primary roads containing all of the European Union. I have quite some computing power available and do not mind if these calculations would have to run for weeks, but still, the presence of many excess nodes seem such a waste... i'd rather invest computing time in improving working on a more detailed road network.

I see some people have been looking at the same problem, but most posts seem quite old... which makes me wonder, whether it's perhaps me doing something wrong or overlooking something obvious.

This post describes my problem quite precisely: https://gis.stackexchange.com/questions/31589/find-pseudo-nodes-in-free-gis-software ... but running this for a small country already took forever, and i need to scale it up to a continent. Also my SQL knowledge is too limited to fill in the last part, the question how to merge the line-segments on both sides of a pseudo-node.

also see https://gis.stackexchange.com/questions/23439/how-to-simplify-a-line-network-preserving-topology

I thought i'd ask here as it seems so close to the specific goal of osm2pgrouting, as far as i understand it.

cvvergara commented 6 years ago

osm2pgrouting does not create pseudo nodes this lasst version has a pointsOfInterest table defined, and creates some functions in the database where you can: remove them if they are of no interest for you add them, if osm did not have them process them with the function(s) given and use them with the withPoints family of functions

If you want to simplify the topology try the contraction functions. (but this is a pgRouting topic)

damiaan commented 6 years ago

Perhaps it's a semantic issue? With Pseudo-node, I meant a node shared by two edges, and both would have the same max-speed. I see a lot of these, for example

image

I guess they occur at crossings with not-included-lower-level roads, and other points. These many little edges cause my tables with optimal routes to become very big... Perhaps I only see them due to something wrong in my setup, or i could be exaggerating and should simply learn to live with this?

cvvergara commented 6 years ago

That is because the data had that segment apart from the longer segment, I don't know the city where that data comes from but reason of that happening in the data can be that nodes are speed bumps, stoplights, street crossings, an error from the person how volunteered making the section of the map, in those cases the geometry is already split. osm2pgrouting does not join geometries.

If the nodes are not intersections and are not speed bumps, stop lights, crosswalks (aka was an error) you can fix the data going to the Open street Map page and fix them (improve the quality of the data). if they are something, of the kind, then probably you wont be able to do something at data level.

To deal in the database level, there is the experimental pgr_contractGraph, which as I told you before is a pgRouting topic not osm2pgrouting. The experimental functions might have issues, if you use it, and find issues, please post them on the pgRouting's issues.