According to Mike Bostock (and other contributors to the TopoJSON extension):
TopoJSON is an extension of GeoJSON that encodes topology. Rather than representing geometries discretely, geometries in TopoJSON files are stitched together from shared line segments called arcs. TopoJSON eliminates redundancy, offering much more compact representations of ...
Enable Topology Checker Plugin in Plugin Manager. Add your polygonal layer in Topology Rule Settings window, select "must not overlap" rule and add them. To see overlap errors click on Validate button.
I encountered similar issues as well with polygons. Maybe you have a similar problem.
Error Message by ESRI: "Invalid Topology (Incomplete Void Poly)"
Actual Error: "Invalid Geometry"
Fix: Run "Repair Geometry" (changes data in-place, be careful, there is no undo)
What happens is that the error reported is not using the ESRI terminology of Topology/...
The new Topology Checker Plugin will be available in the next release. You can see it at work in this video:
More info: https://github.com/qgis/Quantum-GIS/pull/356
There are TWO "right hand rules" (well, scores, if not hundreds, but the direction of magnetic force induced on a positive charge isn't relevant to this discussion).
One asserts that vertices be ordered in rings so that, if you walked the perimeter, with one hand within the figure, and one hand outside, that the right hand be inside: the exterior ring is ...
You can use the GRASS Toolbox for that.
Cleaning of topology of a SHAPE file using the GRASS Toolbox
Load the SHAPE file into QGIS
Use existing GRASS mapset (or create a new one) with matching projection settings
Now you have to transfer the SHAPE file from QGIS to GRASS using Toolbox -> File management -> Import into GRASS -> Import vector ...
Hypsography concerns the land's elevation, altitude or height above sea-level or some other reference surface. (Hypso is derived from the Greek Ύψος for height.)
Topography concerns physical and cultural features of the land and so includes hypsography, hydrology, the built environment, major boundaries, communication channels, etc. (Topo is derived from ...
CREATE EXTENSION postgis_topology;
... like always, it is when you ask the question that you found the solution... I wasn't because of the installation but topology has to be activated for every database you want to use id with...
I just had a similar problem, and the solution is the following:
You have many queries, so the first question is which one of them fails. I'd suggest bisecting the entire SQL query to find where the problem happens exactly. Comment one half of the query (but make it still work) and see if the problem is still there, if so, bisect this half, if not, the ...
The most successful way I've ever had of correcting topological errors in QGIS is actually to use GRASS. You can either:
run v.clean from the processing toolbox (manual here https://grass.osgeo.org/grass73/manuals/v.clean.html);
use the 'Repair Geometry' plugin (which is an automation of the v.clean tool); or if all else fails
import the dataset into GRASS ...
Couple of suggestions:
Run Check Geometry tool on your layer that you wish to clip, you could then follow that up with a Repair Geometry if it finds errors. You may wish to do that on a backed up copy.
Check whether the coordinate systems are different. Perhaps you are trying to Clip a dataset in Decimal Degrees with a dataset that is in Meters or vice ...
"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 ...
Topology functions are stored in the topology schema, topology data (edges, faces, nodes, relations) are stored in a user-defined schema, and relations (topo id, layer id, element id, element type) are stored with the geometry data.
From the command line you can view tables in the topology schema with:
Yes - there is no restriction on the actual shapes or positions of the polygons in a shapefile. The only real restriction is that you can't mix geometry types in a shapefile (so no points & polygons).
While it is good practice not to have self intersecting polygons in there I don't think the spec actually forbids it unlike some other formats.
In QGIS 3.4 you may need to enable Snapping toolbar by right-click the main menu bar and select Snapping toolbar, and you will find this menu:
The last three icons are Enable Topological Editing, Enable Snapping on Intersection and Enable Tracing, respectively.
Also, in QGIS 3.4 there is a new feature that you can enable Topological Check during digitizing ...
Here a generic soluion, that you can impĺement with PostGIS or any other OGC-compliant software.
NOTE: as I say before, a key concept in FOSS and GIS is standardization: the best solutions adopt standards, like OGC ones.
Your problem is to "find pseudo nodes"... But I think that it is a little more, "find non-pseudo nodes and join lines of pseudo nodes". ...
Here's an attempt with postgis. i've used data imported from natural earth data, admin level 1, 1:10m scale.
This will take a long time as it's a 4-way cartesian join with st_relate().
The magic number "FF2F11212" should match when two polygons' intersections are a line, but not when they join at a point. This uses something called DE-9IM. I use a ...
Yes, you can write back to the same source file geodatabase and you can even write back to the same featureclass. In the workspace below, I read in the featureclass EsriCitiesDetailed as the Clipee, then write out the clipped features right back to a featureclass with the same name in the same geodatabase.
The key is to drop the target table before you ...
This can be seen as a preliminary to @Underdark's answer whereby you can clean the topology of the vector layer before generalizing. GRASS has a v.clean function which contains a number of tools to repair the layer such as:
snap which 'snaps' lines to the nearest vertex
rmdangle which removes any annoying dangles
rmdupl which removes duplicated geometry ...
Assuming that the convex hull idea doesn't pan out, what about something like this:
convert the polygon vertices to points
convert the polygon to lines
split each line at each vertex (so you have line segments)
calculate the distance and angle of each vertex to the road
for each polygon, find the closest point (aka vertex) to the road
select the lines which ...
Refractions Research has made a Line Cleaner tool that seems to do what you want.
Line Cleaner cleanses networks by simplifying complex, cyclical, very
short and zero-length geometries, and removing pseudo-nodes and
insignificant vertexes. Most significantly, in the cleansing phase, it
is able to ensure that feature matches can be considered ...
There is a discussion about this on r-sig-geo. For a definitive answer you should ask there, cause there are peoples which know the insights of spatial R.
But, you can also do this in GIS desktop applications (export the shape using writeOGR command from rgdal or writePolyShape() from maptools) like QuantumGIS, GRASS or SAGA.
For QuantumGIS use Vector / ...
With a bit of programming, you can identify points where the number of lines that intersect the point is not 4.
You don't mention what version of arcgis, but with the lowest level (Basic, ArcView, or whatever Esri is calling it this week) you should be able to build a MapTopology.
The code in this answer can be edited to accomplish this, by replacing this ...
You can use the v.in.ogr GRASS module.
See Fixing Invalid Geometries With Quantum GIS
Regarding to your new questions, there is a phrase in the above link: Fire up the QGIS/GRASS plugin (or the GRASS native GUI if you prefer) and open/create a mapset and open the GRASS toolbox.
As you can see, it possible to clean topological error directly in QGIS (but ...
Here is a link to my PL/pgSQL function which does exactly what the OP is asking for: removing spikes from polygons and linestrings.
Here you can download it and read the documentation: PostGIS NormalizeGeometry.
As suggested in the comments, here is an example:
WITH temp (wkt) AS (
('LINESTRING(0 0, 2 2, 0 4, -5 4, 0 4.001, 2 6)'),
There are a few ways to do this. I have completed this in the past with great results using a combination of attributes and raster processing. The premise of the process is to assign each feature with a value of n (1, 2, 4, 8, 16, 32, 64, etc.). Assigning these values ensures that when you subtract layer one (1985) from layer 2 (1997) you get a unique ...
I've managed to solve this, without using the mentioned GRASS tools or topological functions.
Basically I take all start- and endnodes, put them in a new, temporary table, put a buffer around them, union the buffer objects, and move all found nodes in each buffer to the centroid of the buffer.
When that's done I move the original begin and end points to ...
In case you haven't tried it yet, the pgRouting Workshop is always a good place to get started.
When you used osm2po to convert your OSM data, then source and target attributes are already there and ready to use.
Sometimes the vertices table, that contains all source and target ID's, is useful to find the nearest vertex from a geographic point. The osm2po ...