2

我以前发布过这个,但我一直在使用 QGIS 的 QNEAT3 插件遇到一个难以理解的问题。我已经联系了插件的创建者,他也不确定这个问题。我正在尝试使用在整个中型国家随机生成的 10 个点来运行它,这些点包含使用 OSMIUM 下载的历史 OSM 数据。我正在进行一个研究项目,试图确定不同年份的整个国家的 OSM 数据是否可用于网络路由。

本质上,我偶尔会在计算 OD 矩阵的构建阶段遇到此错误,这在我的数据中似乎是随机的 -

Traceback (most recent call last):
File "C:/Users/dicki/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\QNEAT3\algs\OdMatrixFromPointsAsLines.py", line 207, in processAlgorithm
net = Qneat3Network(network, points, strategy, directionFieldName, forwardValue, backwardValue, bothValue, defaultDirection, analysisCrs, speedFieldName, defaultSpeed, tolerance, feedback)
File "C:/Users/dicki/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\QNEAT3\Qneat3Framework.py", line 130, in __init__
self.list_tiedPoints = self.director.makeGraph(self.builder, self.list_input_points, self.feedback)
Exception: unknown

Execution failed after 53.70 seconds 

我不确定我现在是否要解决这个问题,但我已经确定了两个可能的问题。这是引发错误的 QGIS 的“makegraph”C++ 代码部分。

创建者建议它可能与“QGIS API 文档给出的一个可能原因是:”有关if snappedPoints[i] == QgsPointXY(0.0,0.0) then snapping failed。我认为这不太可能,因为我尝试随机生成点,并尝试在缓冲区上生成它们,以便它们非常接近网络中的线。我偶尔也会注意到,当图表成功构建时,并非所有点都包含在最终输出中。

我还想知道我的一些 OSM 国家级数据是否会因为整个网络完全无法路由而失败。我注意到,当我使用 QGIS 的本机路由信息(不是 QNEAT 3)测试仅使用单点对点计算的迷你版本时,该图在 OD Matrix 版本中失败的相同层上失败。但是,我预计会出现一组与上面传达此问题的错误不同的错误。

所以,总而言之,我正在寻找:

-此错误消息的解决方案/解释它发生的原因和存在的原因

和/或

- QNEAT3 的 OD 矩阵的替代工具,我不必自己编写代码

和/或

- 确认这个问题是由于图表无法路由,这在某种程度上是对我的问题“这个国家今年的 OSM 数据可以用于路由吗?”的回答。

谢谢你的时间。我还在 Reddit 和 StackOverflow 上交叉发布了这个。

4

0 回答 0