Tag Info

Hot answers tagged

26

If your software doesn't support multi-part features you may have to go to extraordinary and complicated lengths to execute spatial operations. For example, the intersection of two polygons can, in general, have more than one connected component. It is convenient, both algorithmically and conceptually, to suppose that such an intersection returns a single ...


17

You could use ST_Touches instead: ST_Touches — Returns TRUE if the geometries have at least one point in common, but their interiors do not intersect. ST_Touches returns TRUE for eg Getting the counts should work something like this: SELECT a.id, count(*) FROM polygon_table as a JOIN polygon_table as b ON ST_Touches(a.the_geom,b.the_geom) GROUP ...


13

PostGIS topology has been a big topic in last weekend's 6th QGIS Developer Meeting Sandro was able to relay a lot of incredibly useful and detailed insight into the PostGIS topological data model to other developers which will prove invaluable in the future as we adopt this new PostGIS capability within QGIS. More information is available on Sandro ...


13

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 ...


11

Imagine joining population data to a table of single-part polygons representing countries. Depending on how you do the join, either every island would get the full population of that country or only one polygon of the set would get the full population. Without representing the country as a multi-part polygon you have to either apportion the population ...


11

GRASS is topology-aware. You can use v.generalize from the Processing toolbox to simplify polygons and if the input data is topologically correct so will the output.


10

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...


9

Very few contiguous cells in a detailed DEM will have identical values of both slope and aspect. Therefore, if the input features represent contiguous areas of common slope and common aspect, we should expect the result of this intersection procedure to have, on average, almost one feature per cell. There were originally 65,000 * 1000^2 = 6.5 E10 cells in ...


8

This can be done using a MapTopology. Although you cannot create or edit geodatabase topologies with ArcView (only ArcEditor and ArcInfo), you can create and edit map topologies in ArcView. Create a new Add-in button and copy the code from below. Add the roads layer to the map and start editing. Open the topology toolbar and create a map ...


8

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 ...


8

The new Topology Checker Plugin will be available in the next release. You can see it at work in this video: http://www.youtube.com/watch?v=huhkTZkoKC8 More info: https://github.com/qgis/Quantum-GIS/pull/356


8

"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 ...


7

This is a problem that everyone solves with a slight difference. IMHO, Yahoo did a great job with WOEIDs. As far as what is the most efficient way, it seems the answer is too subjective and dependent on your application.


7

Ben Reilly recently posted a link on another question to his utilitynetwork Python package, which uses the OGR bindings to convert data into networkx DiGraphs.


7

For a solution avoiding ArcGIS, use pysal. You could get the weights directly from shapefiles using: w = pysal.rook_from_shapefile("../pysal/examples/columbus.shp") or w = pysal.queen_from_shapefile("../pysal/examples/columbus.shp") Head for the docs for more info.


7

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 ...


7

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 ...


7

If you use the drop arrow on the snapping toolbar, you can select "intersection snapping". It will snap intersections even if there are no vertices.


6

Besides PostGIS, you could also use a topological open source GIS (GRASS): Download and install Start and select the Location manager, use the tool to generate a new project database from your SHAPE file (called "GRASS Location"), see here for a step-by-step guide Import the SHAPE file Use the "v.clean" tool which offers a series of options Export map back ...


6

I think what is happening is that your self-intersecting polygons becomes MULTIPOLYGONS when buffering. you have two options: 1 remove the constraint "enforce_geotype_the_geom", you can do that in pgAdmin 2 put the result in a new table instead of updating the old. that is often a good way of doing things because then you don't change anything in your ...


6

Use the return value of the Intersect method instead of the TopologicalOperator. Try the following instead (I use C#, not VB.NET, so hopefully this works. The casting business is really confusing): Dim topoOp As ITopologicalOperator = TryCast(pTestPoly2, ITopologicalOperator) Dim pOutPointCol As IPointCollection = ...


6

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 / ...


6

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 ...


5

Oops, I figured it out. In case anyone is wondering though: 3D Analyst Tools/Functional Surface/Interpolate Shape


5

Routing is a graph problem, not a pure geometry problem per se (I am using a bit loose terms here for the sake of clarity). What that means is that you have to grab the original geometries from your features - potentially from various different spatial tables (aka Feature Classes in ESRI speak) and build a graph representation (aka Network Topology ) that is ...


5

My understanding of the problem is as follows: If a polyline endpoint intersects a polygon then the polyline needs to be connected (by adding or adjusting vertices) to all additional polyline endpoints that intersect the same polygon. Some polyline endpoints don't intersect a polygon, being undershoots, but these should be connected as above. This answer ...


5

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 ...


5

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 ...


5

We had a similar problem a few weeks ago - as Fezter said, you will need to unregister your dataset as versioned. The resource centre lists the steps here. A word of caution - make sure that all of your versions have been reconciled and posted against default, and not just to your QA version or anything in between. We learnt this the hard way!


5

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 ...



Only top voted, non community-wiki answers of a minimum length are eligible