ArcGIS网络分析之常见问题分析、诊断篇

1
分享 2019-04-29
在进行网络分析时,经常会遇到AB两点之间找不到路径、停靠点无效、分析结果不对。本文将从这几个方面入手,告诉大家如何来排查及解决这些问题。

一般流程:

1、检查数据的坐标系,建议使用投影坐标系。
2、检查数据的连通性。
3、换一份数据测试。



一、停靠点无效

添加或导入停靠点后,发现停靠点前有问号。

说明停靠点没有捕捉到道路上,可以通过调整停靠点的位置或是搜索容差修正此问题。检查容差后没有问题,还需要检查数据的坐标系,建议使用投影坐标系。

调整搜索容差后,有问题的停靠点前还是会有问号,可以删除所有停靠点,再导入一次。
PS: 最好在导入停靠点时就设置好搜索容差。


二、构建网络数据集时,检测到孤立点

构建时,报错“Standalone user-defined junction is detected.”

在创建网络数据集时,如果点在网络数据集中没有任何意义(比如不代表公交站,也不表示道路端点的高程等),请不要让其参与创建。
此问题的解决方法是移除点要素类。


三、求解失败


遇见过这样一个案例,是因为停靠点超级多。减少停靠点后,就可以解决了。
如果不是停靠点个数的问题,建议使用其他数据测试一下,看是否还有此问题。

四、分析结果不符合预期


1、AB两点间没有路

停靠点之间明明应该是有结果的,但出现“错误:未找到解决方案。” Error: No solution found.

请按照如下步骤排查:
1)检查道路数据的交叉处,是否是连接上的,即路不是断开的。
最快的方式就是放大交叉处,看线是不是连在一起的。当然,如果数据较多,可以使用拓扑检查,使用不能有悬挂点(Must Not Have Dangles)规则。
如果交叉处是连接的,那么就不会有拓扑错误。

2)检查网络数据集的连通性。

关于连通性的介绍,可以参考:https://blog.csdn.net/ceibake/article/details/89504839
3)检查那一片路是不是孤路,也就是不和其他任何路连着。
和上一点类似。图中两点是没有分析结果的。

4)检查停靠点的捕捉方式。
如下图,进行OD分析时,起始点和目的地点都是30个,但是结果却只有529条路径。本应该有900条的。

停靠点默认设置是捕捉到最近的路上,但是本案例中,停靠点捕捉到了最近的铁路上,而铁路又无法到直接到其他道路上,所以导致分析不出结果。修改捕捉方式后,就有结果了。


2、服务区分析,设置中断值1公里,为什么结果是1.3公里?

这是ArcMap的已知问题。
BUG-000112091: Network Analyst uses geodesic distance instead of planar if the coordinate system is Web Mercator Auxiliary Sphere and there is only one cost attribute which uses the Shape field:
在特定条件下才会发生此问题:
  1. 在ArcMap中使用网络分析;
  2. 数据的投影是 Web Mercator Auxiliary Sphere 或 Web Mercator;
  3. 网络数据集仅有一个成本属性;
  4. 成本属性使用的是Shape字段。

根据以上列出的几个条件,有很多解决方法。比如新加一个成本属性,成本属性使用Shape_Length字段。推荐使用的方法是进行投影转换,可以选择一个等距投影,这样计算距离更准确。
在ArcGIS Pro中没有这个问题。

3、ArcGIS Pro中执行3D网络分析,结果不正确。同样的数据,在ArcScene中结果是正确的。

下图是模拟的楼梯走向,Pro中两点的分析结果是整个路线或是部分路线。Pro中执行分析后,会有警告"WARNING 030185: Your network data source is 3D, but it has an unknown Z coordinate system. Points will be located on the network as if the network were in a 2D plane, ignoring the network’s Z coordinates."

在ArcScene中结果是正确的。

ArcGIS Pro 3D网络分析中,网络分析图层、停靠点都需要带有Z值且有垂直坐标系,才能执行成功。

五、其他


1、创建网络数据集的选项是灰色的,网络分析工具条上的分析选项也是灰色的。


1)必须有网络分析扩展模块许可。 在ArcGIS Administrator(ArcGIS许可管理员),Availablity(可用性)中查看是否有Network Analyst。
2)必须激活网络分析扩展模块。 菜单栏Customize(自定义),Extensions(扩展模块),勾选Network Analyst。


2、创建网络数据集时,对话框中看不到下一步,重装也不行。


创建网络数据集的对话框没有缩放功能,所以无法调整大小。可以参考如下几个方法:
  • 方法1:更改操作系统的文本、应用等项目的大小。 我的电脑默认是推荐的150%,改为100%即可。
  • 方法2:将状态栏推拽到屏幕左侧。 这个电脑屏幕尺寸也有关系,如果对话框中的下一步还是显示不出来,还是用方法1吧。


3、服务区分析结果中,为什么设施点没有在服务区范围内?

分析结果是正确的,原因是设施点离网络边的距离太远。下图中,服务区半径是1km。

关于点为什么在服务区外面, 原因是我们在进行分析的时候,采用的是网络上的设施点。如果点没有在网络上,那么将点落在网络上(根据点到网络的最短距离得出网络上的设施点),然后利用网络上的点进行服务区分析。我们分析出来的服务区面是一个假想的面,实际分析处理的是网络上的线,然后采用不规则三角网(TIN)的算法构面。

4、创建网络数据集前,数据要不要都打断。

不需要。可以设置网络数据集的连通性。详细可参考ArcGIS网络分析之数据组织、连通性设置

5、创建网络网络数据集前,高速公路、国道、省道等是不是分要素类存储。

不需要。网络数据集支持子类型。点击这里查看子类型介绍和创建方法。
在网络分析数据集的连通性属性设置界面中,点击子类型,就可以设置连通性组、设置连通性规则了。


6、ArcGIS Pro中无法创建网络数据集。

2.4版本中将会添加此功能。2.4版本在2019年6月20号左右发布。


六、学习资料

ArcGIS网络分析入门公开课
ArcGIS三维网络分析
ArcGIS网络分析之中国邮递员问题
什么情况下需要构建网络数据集?
如何创建网络数据集
The first Demo,求两点间的最短路线
Hello,ArcGIS网络分析
网络分析官网帮助文档
网络分析官网案例教程
连通性

官网帮助文档中,网络分析这部分内容翻译的不是很好,有些词用的不准确。建议直接看英文。



文章来源:https://blog.csdn.net/ceibake/article/details/89361960

1 个评论

徐老师,想向您请教一个问题:
我在建立网络数据集,新建OD成本矩阵后,计算得出的属性表中,时间和长度属性为0,这是为什么呢?
除了尝试新建OD成本矩阵外,还尝试了新建最近设施点,时间和长度属性也为0,且无法通过几何计算出长度。
如何操作才能通过网络分析计算出最短路径的时间成本和距离成本呢?

要回复文章请先登录注册