Running Jaccard's index on feature classes between two vector layers

1495
2
05-17-2018 02:38 AM
Darrel_Chin_FungTiang
New Contributor

Hi, I'm a beginner GIS analyst working on monitoring landuse and deforestation.

So I have two vector layers, and both are of the same area but each is created by a different organisation. Both consists of polygons representing a landuse (i.e. forest, settlement, oil palm..etc..). I used Jaccard's index to compare similarity between the two layers ( to check how different the two organisations have digitized the study area) and it yielded a score of 0.9. I did this by using the "INTERSECT" tool then "UNION". Then dividing the former with the later (Area field in attribute table). Although very similar to each other, I can visually observe differences in the way the two parties categorise their landuse, for example, Organisation A's forest is Organisation B's oil palm. Is there a way to apply the same method of comparison (Jaccard's index) between each landuse class? Say i want to get just the forest feature class in the attribute tables and compare them like above. Is there a way to go around it? I thought of trying Selecting by attribute and then unionising/intersecting but is this possible in an attribute level?

Sorry for the lengthy question, it feels like there is a very simple solution to this but my neurons just dont seem to connect and produce that eureka moment..please help me out, anyone.

0 Kudos
2 Replies
DanPatterson_Retired
MVP Emeritus

Darrel, during your eureka moment you forgot to post some screen grabs so people might see what you are talking about.

 Similarity analysis or Jaccard's index (intersection over union) or other measures can also be implemented in scipy and sk_learn.  Other shape metrics may also be useful.

Darrel_Chin_FungTiang
New Contributor

Thanks Dan! Yep haha my bad, it didn't occur to me to add some screen grabs pertaining to my issue. Anyhow, I've found a solution earlier so I got my desired results. I just had to select feature classes i want in the attribute table and create a new layer from them. Then I can get the Jaccard's index for each class. Thanks for your tips and advice! Will surely look into other shape metrics and maybe using scipy in the future too!

0 Kudos