arcgis如何生成邻接矩阵/邻接关系分析

arcgis如何生成邻接矩阵/邻接关系分析

作者:地理小子


著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这里借鉴知乎,加以补充操作步骤:

我现在有一个区域内的点和线的矢量信息,点位于线的交点上,想得到整个图的邻接矩阵。

比如这个图中:

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_matlab压缩邻接表转矩阵

有三个点,1,2,3,。1与2相连,2与3相连。邻接矩阵为:

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接矩阵_02

分析:这里的邻接矩阵生成前提条件可由ArgGis生成节点与线段的空间邻近关系得到,以下是一位朋友的分析,但是没有加上操作步骤,也没有加上由节点与选段之间的空间邻近关系获得邻接矩阵。

1、【实验数据】首先动手制作一个样例数据:

说明:黑色数字为节点编号。粉色数字为线编号。

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_matlab压缩邻接表转矩阵_03

2、【问题分析】既然要求每个节点与线的邻接矩阵,则就是一个临近度分析,但由于这里的“邻近”实际上是相连的,即“什么在什么上”的问题,那么又是一个叠加分析。所以,直接用叠加分析的思路即可解决。

3、【解决方案】如果用过ArcGIS,必定经常用一个强大的基础矢量数据叠加空间,即【空间连接】用这个工具即可解决。

4、【操作方法】输入要素是节点,连接要素是线,连接方式选one_to_many(关键)。然后保持默认。运行即可得到邻接表。

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接矩阵_04

5、【分析结果】j打开生成的属性表,即可得到邻接要素ID映射表。至于变换为矩阵,ArcGIS也可以,Excel也可以。

注:为什么节点3和节点5只有两个邻接边,那是因为我的实验数据中线段1-6是一条线,并没有打断。

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接关系_05

2ArcGis中操作步骤:

1以下以ArcMap10.6分析,加载节点数据和路段数据之后点击工具箱

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接矩阵_06

2找到空间邻近分析

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接矩阵_07

3选择你要的效果

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接关系_08

3.结果

当选择节点与线段的邻接关系生成的表结果如下:

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接矩阵_09

                   

如何使用arcgis软件构建31个省域的空间权重数据 arcgis生成空间权重矩阵方法_邻接矩阵_10

4.总结

1.第一种图可以生成上面的邻接矩阵,博主已经用matlab实现,并不难,后面将会更新。

2.第二种图可表示单向路径邻接关系

arcgis如何生成邻接矩阵/邻接关系分析相关教程