I am finding that CE takes artistic license when constructing street objects on top of imported OSM road networks. In particular, some roads have extra curvature and they diverge noticeably from the original road layout. But the underlying segments and nodes are apparently not adjusted to match, so that when exported they do not line up with the street objects. This causes trouble when modeling traffic flows using SUMO then trying to re-integrate the results with the CityEngine models (traffic plows along sidewalks or worse). So, how to get these to line up? Or how to match street geometry with underlying nodes and segments to adjust them myself? TIA!
Could you show us a few images of the worst of these OSM situations, in order to help see some possible fixes?
I have other examples (and issues with some moderately complex intersections getting completely munged). But I've included a simple example below in which the ~90 sweeping curve on the left is changed to arc from both ends of the segment(s), and the ~90 tighter curve on the right becomes a wider arc and it seems alters the geometry of the straight segment coming from the south. This happens to be a piece of Seal Beach CA directly from OSM. TIA
From JOSM reading the OSM file directly:
And from CE reading the same OSM file (the outlines are the same both before and after we assign additional properties to the edges):
Hi Thomas, this is caused by the "simplify graph" streets filter. This filter tries to match curved streets to the imported straight street segments from OSM, but seems to get it wrong in this case. This can be solved by disabling the filter during import:
But then the streets will not be curved.
A further option is to then run the tool manually (graph menu -> simplify graph), and lower the "threshold angle" to something like 31 degrees (or lower...) to see if it improves the result.
We have the OSM importing done via python to make it repeatable across cases. I'm not seeing any useful parameters advertised in the OSMImportSettings class which is where I would expect to see them. Is there another way to influence these behaviors without clicking buttons?
Unfortunately there is no way to disable this feature using Python at this time. I've added a feature request, hopefully this will be fixed in future versions of cityEngine.
Thanks Tom for getting this in the queue. How would I track the issue?