12

Is there any options other than ArcGIS for Desktop for topological rules and automatic topology integrity enforcing in a Desktop GIS? I am looking for something that will automatically snap features to some base layer bounds (eliminating gaps and overlaps in dataset).

I know about PostGIS topology functions but I would like something in a Desktop GIS.

QGIS 2 is trying to implement topological rules but nothing to automatically clean the data.

Is Esri's ArcGIS for Desktop actually the only solution?

5
  • QGIS GRASS? tools for automatically clean are available youtube.com/watch?v=YvEPOfSzhO0 Jul 26, 2013 at 13:39
  • ian-ko.com/ET_GeoTools/UserGuide/etgt_UserGuide.htm Have you looked at ET Tools? I dont think there is automation for the exact tools you are looking for, but this could be an option for you. Jul 26, 2013 at 13:41
  • You can preserve "fabric" topology (no gaps & no overlaps in a layer) by mimicking the coverage model. You would have a layer of non overlapping lines that would "hold" the shapes, and a layer of points that would hold the attributes. Then you would use a tool (in QGIS it is the line to polygon tool) to build the polygons and a spatial join of those with the points to give them attributes. In ArcGIS the Feature to Polygon tool can use the points to add attributes without needing a join. You edit lines and points and build polygons when you are done.
    – John
    Jul 26, 2013 at 17:30
  • interessant idea! but how can it be applied if you have an official cities table and one that is made of subdivisions of cities (neighboors) and want the second to fit exactly to the first one where they share boundaries. Jul 26, 2013 at 17:50
  • You could delete the unwanted lines or sections of them, and then copy and paste the wanted lines in its place. You can also use the trace tool to add sections of line that match another, or to reshape a line. For individual vertices you can move them with snapping on.
    – John
    Jul 30, 2013 at 20:54

2 Answers 2

10

"Back in the “olden-days” GIS users, particularly ArcInfo users, were well versed in geospatial topology because of the coverage" (Geospatial Topology, the Basics)

But ESRI is not the only solution:

  • From these beginnings (at the same time as ArcInfo), GRASS GIS is also a full topological GIS with rules that differ from those of ESRI:
  • The topology in PostGIS is much more recent with other rules

The GRASS GIS Topology Data Model (from GRASS wiki and Full planar topology in GRASS, in Italian).

In the GRASS GIS data model are defined various topological elements:

  • nodes - 0D elements:

     for each node is defined which lines/boundaries starts and ends in this node;
    
  • lines - 1D elements which cannot form areas:

      for each line is defined a start and end node;
    
  • boundaries - 1D elements which can form areas:

      for each boundary is defined a start and end node, and an area on the left and right
    
  • centroid : point located inside area:

      for each centroid is defined an area 
    
  • areas - 2D elements formed by closed set of boundaries and optionally by one centroid located inside the area:

      for each area is defined the list of boundaries which forms the area 
      (outer ring), and the list of isles located inside the area
    
  • isle - 2D elements formed by areas:

      for each isle is defined the list of boundaries which forms the isle (it's outer ring), 
      and optionally by the area where the isle is located. 
    

The PostGIS Topology Model:

The model defines only topological elements

  • nodes - 0D elements

    Is defined by geometry (point) and by the face where the node is located (can be NULL) 
    
  • edges - 1D elements

    Is defined by geometry (linestring), start and end node, next left and right edge 
    (ie. connectivity) and by the face on the left and right. 
    
  • faces - 2D elements

    Is defined by bounding box. 
    

So:

  • when you import a shapefile or a QGIS layer in GRASS GIS, they are modified to comply with the topological rules (GRASS layers, see Vector data processing in GRASS GIS, v.clean,v.build)
  • The same is true when digitizing new vector maps

You can use GRASS GIS only or GRASS GIS from QGIS with the grass plugin or the Sextante plugin, but be careful, even if the layer is topologically correct in GRASS GIS, this would not be the case of the resulting layer in QGIS (no topology) !

4
  • 1
    The problem I have seen with GRASS is when you want two layers to share the same boundaries, you cannot define the base layer, the one the others will snap to. The layers are snapped in a way you cant know wich one has been modified, probably all layers are slightly modified, what you dont want in real life. Jul 26, 2013 at 17:47
  • 1
    This is not true, try to understand what you can do with v.clean
    – gene
    Jul 26, 2013 at 18:12
  • I don't understand your problem: I use GRASS GIS to digitalize geological maps (with a specific topology) in the same way I used ArcInfo over time. More, learn GRASS GIS because it has a multilayer vector library (vector library) and you can snap the layers with vertices ans/or edges (I do it).
    – gene
    Jul 26, 2013 at 20:53
  • @gene old topic revival. Could you give examples of how to use multilayer feature to snap polygons boundaries to a set of reference vertices or a reference boundary? It's not documented in v.clean.snap doc
    – rha
    Jul 12, 2019 at 9:23
1

For vector conflation, you can use OpenJUMP (http://openjump.org/) with the RoadMatcher plugin (http://sourceforge.net/projects/jump-pilot/files/OpenJUMP_plugins/More%20Plugins/Roadmatcher%201.4%20for%20OJ/).

Conflation can be done automatically or manually.

1
  • 1
    Yes I am testing OpenJump and RoadMatcher right now, but I dont know how to conflate polygon layers, it seems to be made for polylines only Aug 1, 2013 at 14:51

Your Answer

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

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