Hot answers tagged

43

GRASS v.net.iso will give you a result like this: You might not want to run a convex hull algorithm on this output. Imagine the blue roads: A convex hull around them would contain a lot of parts that are not reachable in the time represented by "blue". Instead, you might want to look into alpha-shapes (related question: What are Definition, Algorithms ...


15

[Edit: this has been superseded by nx_spatial which is available from pypi (easy_install nx_spatial). Importing shapefiles is now standard in networkx 1.4] I've been kind of disappointed by the lack of geometric network tools in ESRI's Python GP API, so I wrote up something that loads Shapefiles and Feature Classes into networkx directional graphs (DiGraphs)...


15

If you are mostly interested in traversal/routing, go with pgRouting. If you don't find what you need to do there, networkx has a freakishly large number of algorithms for graphs and now loads shapefiles out-of-the-box using OGR. nx_spatial extends networkx in some minor ways mostly related to utility networks.


12

I found a couple of good examples lately and figured would update the thread with these pretty cool examples A recent article in the open journal PLoS, Redrawing the Map of Great Britain from a Network of Human Interactions by: Carlo Ratti, Stanislav Sobolevsky, Francesco Calabrese, Clio Andris, Jonathan Reades, Mauro Martino, Rob Claxton, Steven H. ...


12

I've described how to calculate service areas aka catchment zones in Catchment Areas with pgRouting driving_distance() and related posts. All of them use QGIS and pgRouting - a routing extension for PostGIS databases.


11

Similar to the graph suggestions by @Adam Matan there is a tool called Flow Map Layout that will create a tree like visual of data. Perhaps you can use something like that. http://graphics.stanford.edu/papers/flow_map_layout/


10

Although the thread is a bit old, I wanted to add a few links about routing in case someone ends here like I did: OSRM <- Recommended Routino


10

You can analyze polylines in amazing ways by using buffers. This is usually inefficient--buffers create many additional vertices--but (a) it is a technique available in many GISes (vector or raster based) and (b) it sometimes can produce information that is otherwise hard to get. In this case, buffering the road by a small amount and then buffering by the ...


10

A general way of solving this problem is to find all polylines having a node whose valence = 1. A valence table may be created either in memory or on disk, using a key that is the hash of the x&y of each end point of each polyline. You may wish to truncate x and y may be truncated if polylines are not snapped. Each node is labeled by its degree (or ...


10

Have you thought about using an IaaS such as Amazon Web Services to host your GIS stack? There are a bunch of Amazon Machine Images (AMI) that already fulfill your requirements. You could spin up an Amazon EC2 instance to run your GIS jobs and manage it remotely from your laptop. Here is a course that could get you spun up fairly quick (look at lessons 1-3):...


9

There are different methods depending on what you want to accomplish, how much data you have, and how pretty you want it. Your idea is a good idea and would probably work well. Of course another obvious answer is to show all of the relationships all the time but that would add a lot of visual clutter. Perhaps a nice compromise is to always show all of the ...


9

My basic intuition would be displaying the data as a graph, not as a map. Think of it as a subway line map: It does not display the lines on a geographic map, but as abstract lines which intersect on junctions. That way you can focus on the important part (i.e, the next station; how to move from one line to another) instead of being distracted the actual ...


9

There is an interesting project from Ilya Boyandin on the go - JFlowMap. It's not yet publicly available but screenshots look very promising indeed. More info here and here. You might be also interested in browsing some of the papers about movement geovisualization from Natalia & Gennady Andrienko. UPDATE: GraphRECAP and FlowMap might also be of ...


9

GRASS' v.net.iso can be used to to create the drive time 'network' which you could pass into a 'convex hull' command to get a polygon. Perhaps not ideal, but would work!


9

I had to do this just recently. Using ArcGIS 10: If you only want to symbolise the dead ends you can just set up a Topology on the roads featureclass and set the rule "Must not have dangles". this will put a marker on every feature that has a dead end. Alternatively, run the "Feature Vertices to Points" Tool (Located in Data Management Tools --> Features) ...


8

Well, potentially you could use v.net.iso from GRASS GIS. However it doesn't create polygons (AFAIK), but splits the lines by cost classes from the source. As for calculating drive times from OSM, you could import the data into GRASS with v.in.osm, and use the v.net.iso to calculate the cost zones. If you wanted travel times and you don't have road speed ...


8

If you have the roads in a spatial form, such as a Shapefile, you can load them into PostGIS and have it automatically find those using an SQL query. I've done this before - the SQL statement is designed to find for each road those that intersect geographically and create a nodal point for each crossing. I will try to clean this up later, but here is the ...


8

You might want to browse this post: Alternatives to pgRouting and look through the previous posts using the Network and Routing tags


8

You can start with this GRASS tutorial on network analysis. The aim of the exercise is to set up a GIS network to support the fire brigade interventions in the area of North Carolina. Here follows the steps of this process and the tools used: set up of network analysis: geometry and the appropriate database tables will be connected (v.net); ...


8

I tested your hypothesis with a python script. The attached script creates 500,000 points and buffers them to 5 units. I ran two trials for three runs--one without locking and one with. It appears that locking the desktop does indeed increase the processing time. # Import system modules import arcpy, os, time, ctypes from arcpy import env env....


6

Have a look at this paper: From spatial interaction data to spatial interaction information? Geovisualisation and spatial structures of migration from the 2001 UK census, by Alasdair Rae


6

Two tools I could suggest for some exploration: NetworkX python library; Gephi platform, especially with GeoLayout plug in. In both solutions you could specify geographic coordinates as the position of nodes and the get nice flow representations by intensity and/or direction. None of these tools offer easy export to web map, but with little bit of ...


6

Jay has covered a lot of the suggestions that I immediately thought of from the visualisation angle. However, does it have to be a network? Depending on the needs of the user and the clustering of the data a better solution may be to show relationships with color coding rather than lines. My suggestion: when a user clicks on a point then all the related ...


6

Yes, you could do this with FME for sure. There are many "transformers" that handle cleanup, intersections, and topology; I would try the TopologyBuilder transformer in this case. Any scripting is all done in a graphic environment, so it is very simple to do. You can always get a trial version from www.safe.com (Disclosure: Mark Ireland, aka FME ...


6

spatiaite has routing capabiliies with a GUI. I have never tried it. http://www.gaia-gis.it/spatialite/spatialite-network-2.3.1.html /Nicklas


6

Firstly, I am not clear on what kind of output you expect. Do the red and blue vertices consist of pairs? (i.e. do you want the shortest path from one of the red vertex to a specific blue Vertex?) You should have a look at creating shortest routes This requires all the stops that you route must past through. So assuming that your requirement is the shortest ...


6

I'm not sure exactly what your canal shapefile looks like, but here's how I would do that without using Network Analyst: In the likely case that your Canals.shp polylines are split into separate but connected segments, use Dissolve to unsplit them. Then run Select by Location, finding features in Canals.shp that INTERSECT or BOUNDARY_TOUCHES with ...


6

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


6

GRASS method: v.clean in={your input vector} tool=rmdangle thresh={your threshold} out={output vector}


6

You need to open an InsertCursor on the other feature class: import arcpy pipes = r"J:\PYTHON\Flow_Direction.gdb\Pipes" nodes = r"J:\PYTHON\Flow_Direction.gdb\Nodes" #Getting the mid point with arcpy.da.SearchCursor(pipes, "SHAPE@") as in_cursor, \ arcpy.da.InsertCursor(nodes, "SHAPE@") as out_cursor: for row in in_cursor: midpoint = row[...



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