ArcGIS求取与面要素相交的其他矢量图层的长度或面积

时间:2024-11-19 16:09:21

  本文介绍在ArcMap软件中,计算落入某个指定矢量面图层中的另一个线图层长度面图层面积等指标的方法。

  如下图所示,现在有2个矢量要素集,其中一个为面要素,表示某些区域;另一个为线要素,表示道路路网。我们希望对于面要素数据集中的每一个要素(也就是图中的每一个圆形区域),求取落入其中的所有道路的长度

  上述需求是求取落入面要素中线的长度。类似的,本文的方法还可以求取落入面要素中的面的面积;比如下图所示的这种情况,还可以求取落入每一个圆形区域中的不规则形状的面图层面积

  具体的操作方法也很简单。依次选择“Toolboxes”→“System Toolboxes”→“Analysis Tools.tbx”→“Overlay”→“Intersect”工具,如下图所示。

  随后,在打开的工具中,依次选择对应的要素数据集,并指定结果文件的路径和文件名称。以本文开头介绍的那个需求为例,那么这里就需要输入表示各个区域的面要素数据集,以及道路路网数据,如下图所示。

  执行上述工具,得到如下图所示的结果。其中,图中的圆形区域不是结果,只是我们为了让结果更清楚得表现,所以保留了原本的圆形区域要素数据集;而这些圆形区域中的路网(线条),才是上述工具的结果。

  得到了结果,我们进一步计算落入每一个要素中的道路长度。这里需要注意,如果计算长度、面积等属性,建议将矢量数据设置为投影坐标系,具体可以参考文章ArcMap地图投影:地理坐标系转换为投影坐标系的方法

  首先,需要为上述结果文件新建一个字段,用来统计每一个路网的长度。在上述结果文件的属性表的左上角右键,选择“Add Field”,如下图所示。

  随后,自行设置字段的名称,并将字段类型设置为Double,并设置字段的精度。这里大家按照实际情况来设置即可,或者设置为我这样也可以。

  随后,在属性表这个刚刚建立好的字段上右键,选择“Calculate Geometry”,如下图所示。

image-20241013153255142

  并在第一个下拉框中选择Length(如果是需要计算面积,那就可以选择Area),同时选择计算的单位,如下图所示。

  随后,可以看到这个字段就已经是对应记录的长度了;如下图所示。

  接下来,我们还需要对面图层进行分组——因为我们是希望计算每一个圆形区域中路网的总长度,而每一个区域中可能会有多条道路,但上述操作计算的仅仅是每一条道路;所以就需要对每一个区域再做一次求和操作。

  同样是在属性表中,找到一个表示各个面要素的字段(也可以是其他用来给面图层分组的字段),右键并选择“Summarize”,如下图所示。

  随后,找到表示长度的那个字段(也就是前面我们刚刚创建的字段),并选择Sum,如下图所示。

  随后,会得到一张结果表。在这个表上右键,选择“Open”,从而打开这张表;如下图所示。

  可以看到,其中就包含了每一个圆形区域(我这里每一个圆形区域就表示一个居委会)中,对应的道路总长度了;如下图所示。

  这里需要注意,如果某些区域(在我这里就是某些居委会)中不含任何道路的话,那么这个要素就不会出现在上图所示的这个结果表中。

  至此,大功告成。