点与多边形的叠加分析
一个点图层与一个多边形图层叠加,计算每个多边形中有多少个点,是一个很长见的操作。但是如果没有意识到点落在多边形边界上的特殊情况,很可能,你会得到一个错误的结果。
比如看这个情景,多边形代表一些地区,点表示房产,每个点有个hhsize的属性,表示这个房产中有多少人。最后需要计算每个地区中的人数。
上图,把hhsize符号化表示出来。
具体方法很多,但比较“标准”的做法,是使用spatail join,如下图
比较重要的就是对hhsize使用merge rule,对于这个结果,有个地方可以注意到,hhsize的总和,变化了,原本是1621,但是在做了sptial join以后,竟然是1670,变多了,显然是有的hhsize被重复计算了
回过头来,看原始的数据,
这样看,就一目了然了,蓝色的八角星,就表示了位于边界上的点,这样的点上的hhsize就被重复计算,具体来说点A,位于5和6的边界上,A的hhsize就被重复计算了
那么怎么解决这个问题??
首先先定义这个问题,其实如果能够保持没有这样的意外的点,spatial join可以工作的很好,所以,首先看这种不好的点,是否存在
当然,在arcgis里这个问题很简单,使用select by location就可以解决
如果无法修改数据的话,那就要另一种方法来解决这个问题了,就是临近工具
arcgis 的临近工具,如near和generate near table,都有一个很有意思的特性,当如有两个feature是一样的距离的时候,他会随机的选择一个,作为最佳的选择,因此,就可以利用这一点来解决这个问题。
好,上图就是解决这个问题的model
最后,可以总结一下,
1,用Select By Location来判断是否有会引起错误的点
2,如果没有这样的点,Spatail join运行的很好
3,如果有这样的点,可以考虑使用这个model
4,注意使用统计功能来验证输入与输出
转载自:https://blog.csdn.net/esrichinacd/article/details/20124309