I have a shapefile of city streets. I tried to run the Road Graph tool on them but the select box does not populate with the layer. I ran the Topology Checker on the layer and found that there are 2,000 pseudo nodes. I then ran the Dissolve tool on them and reduced the number to about 700 (these are pseudo nodes that are not in straight line segments in the layer).

I have also tried importing to GRASS, which fixes topology errors, but the layer results do not display on the map. Don't know why, tried several times.

Any suggestions for getting rid of all of these pseudo nodes in QGIS? I'm using QGIS 2.4, Chugiak.

This link: http://www.ian-ko.com/et/ETUserGuide/dictionary.htm

...describes pseudo nodes as

The definition of Pseudo node is "Pseudo nodes occur where a single line connects with itself or where only two Polylines intersect."

In QGIS, they look like points on the lines between legitimate intersecting nodes.

  • 1
    Could you share a good link which explains what a pseudonode is?
    – user30184
    Sep 7, 2014 at 17:36
  • Same problem as here gis.stackexchange.com/questions/90031/…?
    – underdark
    Sep 7, 2014 at 21:59
  • I think the problem with the layer not showing up in the road graph plugin box happens when the layer has invalid geometries. I have got the plugin to work when the geometries are valid.
    – Jim
    Sep 7, 2014 at 22:50
  • I understood that some pseudonodes are same then nodes with cardinality=2 (pass-through) in this Spatialite document gaia-gis.it/spatialite-2.3.1/spatialite-network-2.3.1.html. Such nodes have not made big trouble for me but nodes connecting a line to itself have. For example turning circles in OSM are often digitized as loops. In Spatialite I haven't tried to correct them but I have just deleted all the edges which has node_from=node_to. QGIS probably has different problems than Spatialite.
    – user30184
    Sep 8, 2014 at 11:13

1 Answer 1


Some options for pseudo-node removal with QGIS version 2.18:

  1. QGIS Dissolve will remove pseudo-nodes in a line data set. It creates multi-lines. By running QGIS Multipart to Singleparts, one gets back to "ordinary" lines with no pseudo-nodes, except for islands (lines that connect to themselves). The QGIS Dissolve tool does not scale well and is incredibly slow for larger datasets.

  2. GRASS v.build.polylines removes pseudo-nodes (except for islands). It is much faster than QGIS Dissolve. I have not been able to get it to work in QGIS Processing, but it works fine in the GRASS plugin.

SAGA (2.3.1) Line Dissolve is also faster than QGIS Dissolve, but does not remove pseudo-nodes - it only seems to collect the lines into multi-lines.

  • How does one not lose the individual line string attributes while using dissolve? When I used dissolve, I am just left with one row, and I am interested in retaining the origin attribute table as it has valuable information. Dec 10, 2020 at 0:31
  • Retaining the individual line string attributes while using dissolve is not possible. Dec 11, 2020 at 12:49
  • 1
    Do you know of any method where we can preserve the line string attributes and remove pseudo nodes? I want to use the network for OR-tools network optimization, and I am guessing one of the reasons it fails is that it has pseudo nodes. Dec 11, 2020 at 20:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.