ArcGIS网络分析之常见问题分析、诊断汇总
在进行网络分析时,经常会遇到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:
在特定条件下才会发生此问题:
在ArcMap中使用网络分析;
数据的投影是 Web Mercator Auxiliary Sphere 或 Web Mercator;
网络数据集仅有一个成本属性;
成本属性使用的是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、创建网络数据集前,数据要不要都打断。
不需要。可以设置网络数据集的连通性。
4、创建网络数据集前,高速公路、国道、省道等是不是分要素类存储。
不需要。网络数据集支持子类型。
在网络分析数据集的连通性属性设置界面中,点击子类型,就可以设置连通性组、设置连通性规则了。
5、服务区分析结果中,为什么设施点没有在服务区范围内?
分析结果是正确的,原因是设施点离网络边的距离太远。下图中,服务区半径是1km。
关于点为什么在服务区外面, 原因是我们在进行分析的时候,采用的是网络上的设施点。如果点没有在网络上,那么将点落在网络上(根据点到网络的最短距离得出网络上的设施点),然后利用网络上的点进行服务区分析。我们分析出来的服务区面是一个假想的面,实际分析处理的是网络上的线,然后采用不规则三角网(TIN)的算法构面。
6、ArcGIS Pro中无法创建网络数据集。
目前是计划在2.4版本中添加此功能。如果研发中我们没有遇到任何障碍,会在2019年6月末发布。如果它因为任何原因出现故障,它应该会在今年年底被纳入ArcGIS Pro 2.5中。
这是一种预估,而不是承诺。
- END -