I have a map that is made up of polygons that apparently cover the whole area without leaving gaps, each representing a field, a wood, a road, a house etc. Each polygon has a score in the attributes column representing how difficult, relatively, it is for an animal to move through that habitat type. Some of the polygons are Home habitat patches, with a permeability score of 0. I would like to calculate the least-cost-path to the nearest or most easily accessible neighbouring Home habitat patch for each of the Home habitat patches. My attempts so far result in a single small squiggle going in no particular direction from one point to nowhere. All the instructions I can find either assume an understanding of programming language and/or the overall order of steps needed; and they are for only two points - a start and a finish; or they are for calculating paths through mountain ranges or similar, which seems more complicated than I need as it goes by relative rather than absolute scores for grid squares (for mountains the path depends on how much higher your neighbouring patch is, not how easy it is to move through in itself).

I am currently using QGIS on an elderly laptop, but I have access to ArcGIS in a computer lab if necessary.

I think the steps go like this, but I would welcome any clarification:

1) Turn the vector layer into a raster layer based on the permeability score column. I can do this easily in QGIS, and it looks correct; although I am worried that I might need to make sure that all the polygons actually join up with no gaps first, as I guess that there might be some little hidden "no data" areas in there otherwise.

2) Define starting and stopping points. I have seen this done as points on separate layers, and as grids squares on the same layer, and as shapes, in the examples - I'm not sure which is best in this case. From the ArcGIS manual it looks as though you can get it to make least-cost-paths connecting all points in a network, rather than just A and B, but I don't know how to do this, and I'd imagine that it multiplies up the computer power needed at a massive rate, as the more points you have the more possible paths and possible nearest points to get to there are. Or that most algorithms for networks are designed to amalgamate the paths to make roads for people, rather than animals going any old way. But perhaps not?

3) Make some sort of intermediate layers that show how hard it is to get to any given square from a home patch?

4) Add a direction indicator layer on top of that layer?

5) Run an algorithm that chooses between the possible paths over these layers. Which is the right one?

Am I on the right track? There are 60 patches. Am I attempting the impossible? If not, are there any fool-proof instructions for beginners?

1 Answer 1


I don't have any experience with this topic using QGIS, but I've tackled it before using LinkageMapper (free and open source!), which runs within Arc. You can learn about LM, along with a suite of related connectivity tools, at http://www.circuitscape.org/.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.