Strange “Exception Unknown” Error - Alternatives to OD matrix from QNEAT3? Possible graph failure with OSM data?

214 Views Asked by At

I have previously posted this but I've been running into a hard to understand problem using QGIS's QNEAT3 Plugin. I've contacted the creator of the plugin and he was unsure of the problem too. I'm attempting to run it using 10 points generated at random across an entire medium-sized countries worth of historical OSM data, downloaded using OSMIUM. I'm working on a research project that attempts to ascertain if OSM data for entire countries from different years can be used for network routing.

Essentially, occasionally I'm getting this error during the build stage of calculating OD matrices, seemingly at random in my data -

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 

I'm not sure if I'm going to solve this at this point, but I've got two possible problems I've identified. This is the section of QGIS's "makegraph" C++ code thats throwing the error.

the creator suggested it might have to do with "One possible cause that the QGIS API Documentation gives is:" if snappedPoints[i] == QgsPointXY(0.0,0.0) then snapping failed. I think this is pretty unlikely, as I tried generating the points randomly, and I tried generating them on a buffer so that they are extremely close to the lines within the network. I also notice occasionally, when the graph builds successfully, not all the points are included in the final output.

I am also wondering if some of my OSM country-level data might fail because the entire network is entirely unrouteable. I have noticed that when I test a mini-version with just a single point to point calculation using QGIS's native routing info (Not QNEAT 3), the graph fails on the same layers that fail in the OD Matrix version. However, I would have expected a different set of errors than the one above that communicates this issue.

So, in conclusion, I am looking for:

-A solution to this error message/ an explanation of why it is happening and why it exists

AND/OR

-An alternative tool to QNEAT3's OD matrix that I don't have to code myself

AND/OR

-Confirmation that this problem is due to the graph being unroutable, which in a way is an answer to my question of "Can this countries OSM data from this year be used for routing?"

Thanks for your time. I've also crossposted this on Reddit and in StackOverflow.

0

There are 0 best solutions below