ObjectVision / NetworkModel_World

GNU General Public License v3.0
0 stars 0 forks source link

Null values in F2 of optimised network #14

Closed cjacobscrisioni closed 10 months ago

cjacobscrisioni commented 10 months ago

/NetworkSetup/Per_Continent/Australia_Oceania/NetwerkSpec/CreateMoreEfficientNetwork/OptimiseNetwork/Iter_2/IntermediateLinkSet/F2 throws 3 null values (after the commit on 14/12, 22:07, SHA 5edc8b510ba51e832c5b5aa6edad2d6220bbd552)

The issue comes into play in the second iteration because a number of JunctionFreeSection ids are not represented in ConnectorLinks/JunctionFreeSection_rel .

Solutions tried:

The issue is currently circumvened (after the commit on 15/12. 08:26, SHA 77a05e511e002a6422e0aafeb5751005b91d2509) but the cause is unknown. This merits a deeper look to understand the cause properly.

jipclaassens commented 10 months ago

image

Indeed now there are no issues

jipclaassens commented 10 months ago

image

jipclaassens commented 10 months ago

https://github.com/ObjectVision/AccessibilityModelling/wiki/Network-optimisation-algorithm

jipclaassens commented 10 months ago

de min(id(connector_link), connector_link/jfs_rel) gaf een undefned getal weer +4.2miljard, of 0 in het geval van max(). Dat is niet goed. Die zijn iig nu vervangen met first en last.

jipclaassens commented 10 months ago

Nu denk ie een jfs te zijn, maar geen connector links te hebben.

jipclaassens commented 10 months ago

/NetworkSetup/Per_Continent/Australia_Oceania/NetwerkSpec/CreateMoreEfficientNetwork/OptimiseNetwork/Iter_1/JunctionFreeSection/First_ConnectorLink_rel

In JFS record id 3018 has null for first_connector link and many other attributes. image

first_connector_rel := first(id( ConnectorLink ), ConnectorLink/JunctionFreeSection_rel ) But ConnectorLink/JunctionFreeSection_rel has no id 3018... ?!

image

How come a record in JFS is created for something that doesn't exist??!

jipclaassens commented 10 months ago

It might be due to unconnected parts in the network. Now added a connectiveness script after creating the initial network. Based on WebMercator. En still a lot of unconnected parts

cjacobscrisioni commented 10 months ago

The network is expected to consist of multiple unconnected parts by design - else we would drop all roads in eg Fiji. The rule is to accept small subnetworks if they happen to be the only one connected to a sep_unit (ie an island)

jipclaassens commented 10 months ago

Yes, i know. But still with your script there are subnetworks.

Still investigating, tbc

jipclaassens commented 10 months ago

Here, only connected links are selected (based on Chris' script, which takes islands/countries into consideration). /NetworkSetup/Per_Continent/Australia_Oceania/NetwerkSpec/CreateInitialWorkingNetwork/Roads_Connected

Next, the connect-operator is applied.

Then, I calculated the connectedness again on the result. And now there are unconnected links again...

image

image

jipclaassens commented 10 months ago

We have found it! Cleaning results in a cycle. And a cycleis again a JunctionFreeSection and thus can be cleaned again. But in this case we did not omit this in time.

image

image

jipclaassens commented 10 months ago

Fixed!

cjacobscrisioni commented 10 months ago

ahhhh whahoo congrats !!!!