################################################################################ ### Compares possible transistions with connectivity codes (optional) ################################################################################ ### Description: ### - This script Tests if transistions at junctions correspond to the computed ### connectivity codes in networks from imported OSM data. ### Please, see tu_osm_import.sh for further details. ### ### Preconditions: ### ### Postconditions: ### ### Author: ### - Thomas Uchdorf, thomas.uchdorf(at)fernuni-hagen.de ################################################################################ open database beispielCity; delete CityNetwork; delete TestRoads; delete TestJunctions; let TestRoads = CityRoads feed filter [(.Road = 1) or (.Road = 22)] projectextend [Road, Length, Geometry; Dual: ifthenelse(.Road = 1,,), StartsSmaller: .StartsSmaller] consume; let TestJunctions = CityJunctions feed filter [(.Road1 = 1) and (.Road2 = 22)] remove [NewJunctionType] extend [NewJunctionType: ] consume; let CityNetwork = thenetwork( 1, 1.0, TestRoads, TestJunctions); # Testing Transitions at junctions # | # o 8 # | # o 4 # 5 1 | 3 7 # --o-o--x--o-o-- # | # o 2 # | # o 6 # | delete Spot1; delete Spot2; delete Spot3; delete Spot4; delete Spot5; delete Spot6; delete Spot7; delete Spot8; let Spot1 = point2gpoint(CityNetwork,[const point value(6800.0787 51236.7884)]); let Spot2 = point2gpoint(CityNetwork,[const point value(6800.7417 51236.2057)]); let Spot3 = point2gpoint(CityNetwork,[const point value(6801.3243 51236.0249)]); let Spot4 = point2gpoint(CityNetwork,[const point value(6801.1836 51236.6276)]); let Spot5 = point2gpoint(CityNetwork,[const point value(6799.7426 51236.9659)]); let Spot6 = point2gpoint(CityNetwork,[const point value(6800.6419 51236.1895)]); let Spot7 = point2gpoint(CityNetwork,[const point value(6801.5182 51235.9436)]); let Spot8 = point2gpoint(CityNetwork,[const point value(6801.2491 51236.7506)]); delete Transitions; let Transitions = makearray( ifthenelse(isdefined(shorTest_path(Spot1,Spot3)),1,0), ifthenelse(isdefined(shorTest_path(Spot1,Spot5)),1,0), ifthenelse(isdefined(shorTest_path(Spot1,Spot4)),1,0), ifthenelse(isdefined(shorTest_path(Spot1,Spot2)),1,0), ifthenelse(isdefined(shorTest_path(Spot3,Spot7)),1,0), ifthenelse(isdefined(shorTest_path(Spot3,Spot1)),1,0), ifthenelse(isdefined(shorTest_path(Spot3,Spot4)),1,0), ifthenelse(isdefined(shorTest_path(Spot3,Spot2)),1,0), ifthenelse(isdefined(shorTest_path(Spot2,Spot3)),1,0), ifthenelse(isdefined(shorTest_path(Spot2,Spot1)),1,0), ifthenelse(isdefined(shorTest_path(Spot2,Spot4)),1,0), ifthenelse(isdefined(shorTest_path(Spot2,Spot6)),1,0), ifthenelse(isdefined(shorTest_path(Spot4,Spot3)),1,0), ifthenelse(isdefined(shorTest_path(Spot4,Spot1)),1,0), ifthenelse(isdefined(shorTest_path(Spot4,Spot8)),1,0), ifthenelse(isdefined(shorTest_path(Spot4,Spot2)),1,0)); save Transitions to ''; #let Transitions = # [const rel(tuple([ # AupAup: int, # AupAdown: int, # AupBup: int, # AupBdown: int, # AdownAup: int, # AdownAdown: int, # AdownBup: int, # AdownBdown: int, # BupAup: int, # BupAdown: int, # BupBup: int, # BupBdown: int, # BdownAup: int, # BdownAdown: int, # BdownBup: int, # BdownBdown: int, # cc: int # ])) # value ()]; #update Transitions := # (ifthenelse(isdefined(shorTest_path(Spot1,Spot3)),1,0) # ifthenelse(isdefined(shorTest_path(Spot1,Spot5)),1,0) # ifthenelse(isdefined(shorTest_path(Spot1,Spot4)),1,0) # ifthenelse(isdefined(shorTest_path(Spot1,Spot2)),1,0) # ifthenelse(isdefined(shorTest_path(Spot3,Spot7)),1,0) # ifthenelse(isdefined(shorTest_path(Spot3,Spot1)),1,0) # ifthenelse(isdefined(shorTest_path(Spot3,Spot4)),1,0) # ifthenelse(isdefined(shorTest_path(Spot3,Spot2)),1,0) # ifthenelse(isdefined(shorTest_path(Spot2,Spot3)),1,0) # ifthenelse(isdefined(shorTest_path(Spot2,Spot1)),1,0) # ifthenelse(isdefined(shorTest_path(Spot2,Spot4)),1,0) # ifthenelse(isdefined(shorTest_path(Spot2,Spot6)),1,0) # ifthenelse(isdefined(shorTest_path(Spot4,Spot3)),1,0) # ifthenelse(isdefined(shorTest_path(Spot4,Spot1)),1,0) # ifthenelse(isdefined(shorTest_path(Spot4,Spot8)),1,0) # ifthenelse(isdefined(shorTest_path(Spot4,Spot2)),1,0) # ); close database;