I'm assessing areas for suitability for species relocations, so essentially I'm looking to quantify how similar a possible relocation site is to a source site in several metrics. The species may travel 10km for example, so I have a point location for a source site, surrounded by a 10km radius. Within the radius I have values for every pixel (arbitrary size), for say altitude, or other numeric variables on a continuous scale that represent the habitat. At the relocation site, I also have a central point and 10km radius, but this may or may not overlap slightly with the source site radius. The pixelated areas within the two radii are not necessarily the same size however, as they can contain coastal areas, so different coastlines means different land area within the radii, and no data for sea area. EDIT: Spatial variability is not so important as habitat variables change more gradually over space, and not like a chess board/mosaic.

I'm looking for a way to quantify the overall similarity between the two areas. Essentially, taking the values of every pixel in each radius, I have two vectors of values of different respective lengths. I've found the Jaccard Similarity Index. EDIT: something like the Jaccard Index would be good but this is inappropriate here.

Would this be the best thing to do or is there a method more commonly used for this sort of spatial comparison? Preferably this would be done in R, otherwise QGIS.


  • 1
    You can't use the Jaccard index for continuous data - it works on set membership and so for example the elevation values in area A might be all slightly different to elevations in area B and so Jaccard similarity = 0. You also can't use it on categorical data (eg land use class) over raster areas since it looks at sets, and sets have unique members, so an area with 99% grass pixels and 1% desert pixels would be exactly the same as one with 1% grass and 99% desert. – Spacedman Jun 15 at 11:53
  • 1
    I think you probably need to have a good think about what is scientifically similar for your example. It may be that an area divided into a western grassy half and an eastern desert half is different habitat quality to one with the same proportions but mixed evenly across the area. Is it the amount of spatial quantity or its variability? – Spacedman Jun 15 at 11:56
  • 1
    Thanks @Spacedman. Do you think the jaccard index could work then if continuous values were binned into say 8 groups? perhaps labelled as 0,1,2,3,4,5,6,7,8 integers (essentially countours)? Values in a set of several hundred pixels should then be common enough to produce some union between the two sets in the jaccard index? Honestly, I don't know how important variability or uniformity of the area will be yet. I suspect it might not be so important for something such as altitude that rarely has a finescale variability between high and low altitude, and will more likely be a gradual change. – Roasty247 Jun 16 at 1:39
  • Scratch that, I see what you mean about unique members in sets now. Integers wouldn't work either as I imagined there. – Roasty247 Jun 16 at 1:54
  • would something like cosine similarity work? I'm imagining summarizing your 10km radius areas in some fashion that can convert each into a vector of values (average elevation, count of each landcover type, average slope or roughness, etc) and computing cosine similarity for each pair of vectors. You could also add some measure of clustering or variability (are the landcover types evenly distributed or clustered, what is the distribution of elevation, etc). – 0mn1 Jun 20 at 1:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.