Tag Info

Hot answers tagged

5

In order to perform this task in ArcGIS 10.1, you will require the Spatial Analyst Extension which can perform analysis on rasters including Least-Cost Path. ESRI has created a series of tutorials to get you started with Spatial Analyst. The last of which creates the optimal route to a site. If you follow the tutorial you should be on your way to finding ...


4

As @dassouki said, the Network Analyst solution could be suitable here, if you specify connectivity groups. In your case the overpass and underpass would be in separate connectivity groups, so it would not be possible to traverse between them. (In cases where there are stairs, you can allow pedestrians to change elevations.) In terms of allowing ...


4

GRASS GIS has a C implementation in r.cost (source, documentation) which uses a min-heap. Alternatively, you could use a graph package like QuickGraph and Floyd-Warshall to compute the cost. Recent changes in GRASS 6.4 have made r.cost significantly faster, so perhaps performance may be good enough: on my laptop, it takes about 3s for a 1M cell region, or ...


4

A possible solution would be to use postgresql, postgis, pgrouting and osm2pgrouting. Insert your fixed locations in a postgis database. Insert the real road network in your database for the area that you need with an import of OSM data using osm2pgrouting. Optional: find the closest point on your road network from the user defined location. Use pgrouting ...


3

A simple approach, using your existing data structure and setup, would be to just use a for loop. ... for i in range(1,83): # i will have values from 1 to 82 route= "E:\\HEC\\strategicmap\\strategicmap.gdb\\route{0}".format(i) Uganda= "E:\\HEC\\strategicmap\\strategicmap.gdb\\Uganda{0}".format(i) arcpy.Select_analysis(PRIOUganda,Uganda, ...


3

There are several relevant commands in GRASS: r.drain traces a flow through a least-cost path in an elevation model r.cost determines the cumulative cost of moving to each cell on the input cost surface r.walk outputs a raster map layer showing the lowest cumulative cost of moving between each cell and the user-specified starting points This answer ...


3

NetworkX provides a ready-to-use library for the A* Algorithm. Basically the steps you want to take are: Read the slope (the slope numbers are the weight, the more weight the less optimal) Create the graph from the slope matrix. This is the hardest part. Feed the NetworkX lib the graph and according to docs it should do the rest. This is a canned ...


3

Julie, The question you have asked is non-trivial. I can't speak from experience on how ArcGIS handles least cost paths on a raster, because I haven't played around with it. But if you want to use a strictly raster approach, then you are correct in your assumption that you will need to model the over/under for bridges and tunnels. The other major issue ...


2

It looks like the Google Maps API has a service for this: http://code.google.com/apis/maps/documentation/javascript/distancematrix.html Limit of 25 destinations, though. You might also be able to leverage the api form http://www.mapnificent.net/, though it's based on public transportation.


2

You say you are a "Excel tinkerer". "Mapping" in Excel is possible to some extent. I once saw a very involved Excel dashboard application that used a line chart to plot out boundaries of a study area and then VBA to determine what portion of the study area a given point was located within - all based on X\Y locations of both the study are line vertices and ...


2

I have use the r.cost function in GRASS a lot. 1000 * 1000 grids were no problem on a normal laptop. There is also a R package (gdistance, http://r-forge.r-project.org/projects/gdistance/) under development. I found GRASS a lot faster.


2

You can use the A* search algorithm using slope as the cost between generated nodes. To see a quick visualization of what that looks like: See A* Search Algorithm (Wiki) and Python A* Search Algorithm (SO) to understand A*. For a slope map there are options out there - Here is one. With a slope map (raster) you can get cost values out of it with GDAL.


2

The ArcMap Path Distance tools can do this, although it's moderately complex. Specifically, you need to use the horizontal and vertical factors. This looks at the aspect/elevation to figure out whether it's going uphill, downhill, or parallel to the slope, and assigns a different weight to each direction of approach.


2

This is very similar to what our output looks like from the path distance tool incorporating a dem, vertical raster, and vertical factor specification (which is basically what you are trying to do with your resistance layer but it differentiates between uphill and downhill movement). It may just be what's expected given your elevation range and resistance ...


2

You want to favor edges that are "close" to the line segment joining the endpoints of the path (its "axis," let's say). One direct way to do this is to weight the edges accordingly. How you weight them will determine what kind of path is "nicest." Just make sure that edges further from the axis get proportionately greater weight. As an illustration, I ...


2

Choose a range of values for costs (e.g. 1 = low costs, 10 = height costs). Reclasify each input data to a cost raster. e.g.: reclassify elevation: altitude > 1000 m --> cost 10 altitude 900 to 1000 m -> cost 9 … altitude < 100 m --> cost 1 reclassify proximity to rivers: distance < 10 m --> cost 1 distance 10 to 200 m -> cost 2 … Distance > ...


2

The r.cost GRASS module expects start_points to be a map containing point features. It seems that your map doesn't contain any point features. Try using a map with point features. With QGIS you can easily digitize such a map. For more information on the parameters see the r.cost manual page for GRASS 6.4:


1

Kotebiya, you explained your problem, but it is "so open" in a algorithmic context. "Finding the best route" or "Pathfinding" is a Graph Theory (graph traversal) problem; GIS is an "user of graph solutions", so, is not really a core-GIS problem. Some of your inputs, for your pathfinding problem, can be from GIS, but, perhaps, not all. Let see your ...


1

Kotebiya, the topic you describe is a major focus of network analysis, outside of its earliest development in environmental system (as in, river flow and distribution). Check out this Transportation Science article, and this one on municipal commutes in Sardinia, Italy, as a starting point. Good luck! Interesting stuff.


1

I strongly doubt there is anything in ArcGIS 10 (or any other GIS for that matter) that will accomplish this accurately. One basis for this doubt is that I researched similar problems years ago and, finding no solutions, developed a general one. After five years of close review of related literature (including the GIS journals on which ESRI relies for ...


1

For the first problem, you might want to check out line rasterization algorithms. Bresenham's algorithm , which @whuber mentioned, is one of them. This is so because your nodes, with their von Neuman neighborhoods, can be treated as the center of a raster cell. Your "nice" path requirement is also similar to the raster approximation of a line. Below is an ...


1

The following script performs a least cost path analysis. Input parameters are a cost surface raster (e.g. slope) and start and stop coordinates. A raster with the created path is returned. It requires the skimage library and GDAL. For example the least cost path between point 1 and point 2 is created based on a slope raster: import gdal, osr from ...


1

I found an article called Calculate distance in Google spreadsheet that may be of use. It would take some tweaking to do exactly what you want, I think -- and Google's daily API caps could hinder you, but it's an interesting approach.


1

You might try to treat this as an indoor GIS problem. Implementing Dijkstra Shortest Route for 3D Indoor Navigation System It's not exactly brain surgery - but it's close.



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