Tag Info

Hot answers tagged

23

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


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

"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

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


7

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


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

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


5

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


5

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.


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

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

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


5

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


5

If you have an ArcEditor or ArcInfo license, you can use ArcGIS' Parcel Fabric tool. In the parcel fabric, parcels can be divided by area to create new parcels. Using the parcel division tool, you can divide parcels using the following area-based division methods: In equal widths By proportional area Into equal areas I assume you ...


5

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


5

If you run an intersection between the 2 different line feature classes, and specify the output type to be Point, then you should be able to do a count of the ids in the point table of the input lines.


4

If you have one target geometry with a batch of many test geometries, try using a prepared geometry. See this page for a good description of a prepared geometry.


4

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



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