利用Spatial Join进行分区统计

昨天,网友wangshanimm在留言板中留言寻求帮助,他的问题是:“有一个村界图polygon,一个整个范围的point,每个点都有值,现在需要将每个村的点求个平均值并赋值给村界图”。在ArcGIS中可以通过Spatial Join来轻松的达到这个目的。其步骤如下:

(1)有两个Shape文件:一个是village.shp,是村界图polygon;一个是point.shp,即整个范围的point。

(2)将这两个文件加载到ArcGIS的TOC窗口中,在Village.shp上右击,选择Joins and Relates—>Join…,如图一所示。

图一    如何调用Spatial Join
图一    如何调用Spatial Join

(3)在打开的Join对话框中进行如下的设置:

图二    Spatial Join对话框设置
图二    Spatial Join对话框设置

(4)设置完成后点击“确定”,等待计算结束后,名为Join_Output_2.shp的计算结果会自动添加到当前TOC窗口中。打开Join_Output_2.shp的属性表,我们可以在其中看到名为Vag_XXXX的字段(XXXX表示Point.shp中用于统计的字段),该字段即统计了每个村范围内的所有点的XXXX字段的平均值。

点击下载该操作视频

5 comments

  1. 你好,我用过这个办法统计一个市区里面每个镇的道路的总体长度,但是我之后进行总长统计发现道路长度明显与实际变大了许多。是为什么

  2. 非常感谢您的指导
    这个方法真的是目前发现最棒的方法了 一次性解决问题
    我在这分享一下我的笨办法:
    首先,我用intersect对两个图层进行了处理得到叠加数据(姑且命名为overlay吧)
    然后在overlay图层的属性表中用statistics工具对相同村名FID进行求平均值,输出一张属性表
    最后才将属性表和村界连接以达到目的
    和楼主的方法相比 我的办法真是太麻烦太笨咯

    1. 呵呵,能得到结果就是好办法。欢迎经常交流学习。

      1. 你好,我用过这个办法统计一个市区里面每个镇的道路的总体长度,但是我之后进行总长统计发现道路长度明显与实际变大了许多。是为什么

Comments are closed.