Log Route matrix in HMA This module creates the node Route matrix, which contains the driving instructions from all areas to all other areas. Distances calculates the distances (by road) between the areas. To make the construction of Route matrix as simple as possible for a new city, the roads are defined in the following way. First, the whole metropolitan are is divided into 15 regions, and these regions are further divided into 129 areas with 7300 inhabitants on average. The 129 areas are standard areas for urban planning, but the regions were formed for this particular purpose. The criteria for forming a region were that they 1) are exclusive and mutually exhaustive 2) are as large as possible without creating very unrealistic routes between areas. Routes are defined in a way that between any two regions, there is only one specific road that is used to cross the region borders (and travel the distance between the regions if they are not neighbours). It is thus necessary to describe the routes between all areas within each region, and the routes between all regions. However, then it is possible to deduce the detailed routes between two areas that are in different regions using these hierarchical instructions. The routes are described as lists of areas that are along the road between the origin and destination. The route description needs not be in full detail if the details between two areas are defined in Roads node. A minimum number of existing roads were selected so that the routes in the model would not be very unrealistic. This work was done manually with a map. Note that the absolute numbers of 'Average vehicle flow on the 30 most busy roads' are likely biased upwards because all traffic from smaller streets is packed to the major roads in the model. jtue 8. Aprta 2004 14:15 ktluser 10. Novta 2008 10:21 48,24 1,208,128,631,361,17 2,102,90,476,282 Arial, 13 0,Linkmodule Route_matrix_in_hma1,2,2,-32766,1,Route matrix in HMA.ANA Route matrix in HMA The complete route instruction matrix including all relevant information. var a:= Prematrix; index e:= 1..max(max((textlength(a)+1)/5,From),To1); var g:= for x[]:= a do slice(splittext(x,','),e); g:= if g=null then 'tyhjŠ' else g; var y:= 1; while y<=size(e)-1 do ( var x:= 1; while x<= size(Road_mirror) do ( var h:= Road_mirror[.a=x]; var b:= g[.e=y]; var c:= g[.e=y+1]; var d:= findintext(b,h); var f:= findintext(c,h); a:= if d>0 and f>0 and f>d then Textreplace(a,b&','&c,selecttext(h,d,f+3),true) else a; x:=x+1); y:=y+1); a 288,200,1 48,24 1,1,1,1,1,1,0,,1, 2,478,35,476,480 2,70,80,784,348,0,MIDM [To1,From] Distances km The length of each origin-destination trip. var b:= for x[]:= Route_matrix_in_hma do ( var a:= if findintext(links_1,x)>0 then link_length1 else 0; sum(a,links_1) ); b + in_area_distance[area1=From] + in_area_distance[area1=To1] 400,200,1 48,24 2,32,14,476,521 2,27,18,883,552,0,MIDM [To1,From] In-area distance km The distance that is travelled within an area collecting people before the actual trip to another area starts. Distances are rough estimates measured with a string and a ruler. This approach was considered exact enough, as the road structure is the same in all scenarios considered. Note that although not quite realistic, this value is the same for both composite and car traffic. Table(Area1)( 1,1,0.6,0.6,0.6,1,1,0.1,1,1,1,1,1.5,1.5,1,1,0.6,0.6,1,1,0.6,0.6,1,1.5,1.5,2.5,1.5,1.5,1.5,2.5,1.5,1.5,1.5,1.5,2.5,1.5,1.5,1.5,1.5,1,1.5,1.5,1.5,2.5,1.5,1,2.5,1.5,1.5,2.5,1.5,1,4,1.5,1.5,2.5,1.5,1.5,1,2.5,1.5,1.5,1.5,2.5,1.5,0.6,0.6,1.5,1.5,1.5,1.5,2.5,2.5,2.5,2.5,2.5,2.5,1.5,2.5,2.5,0.6,1.5,1.5,1.5,1.5,1,1.5,2.5,2.5,2.5,4,4,4,8,2.5,4,4,4,8,2.5,1.5,2.5,2.5,2.5,4,8,4,1.5,1.5,1.5,1,2.5,1.5,1.5,1.5,1.5,1.5,2.5,2.5,1.5,1.5,2.5,1.5,4,2.5,2.5,4,4,4,0) 400,32,1 48,24 2,148,93,416,561,0,MIDM 65535,52427,65534 Data based on a map of Helsinki Metropolitan area (YTV liikenne: PŠŠkaupunkiseudun joukkoliikennekartta 11.8.2002). Area name The name of each area. Table(Area1)( 'Kluuvi','Kamppi','Punavuori','Kaartinkaupunki','Kruunuhaka','Katajanokka','Kaivopuisto','Munkkisaari','Ruoholahti','Salmisaari','Etu-Töölö','Taka-Töölö','Meilahti','Ruskeasuo','Länsi-Pasila','Pohjois-Pasila','Itä-Pasila','Hakaniemi','Kallio','Sörnäinen','Alppila','Vallila','Hermanni','Arabianranta','Käpylä','Lauttasaari','Munkkiniemi','Munkkivuori','Etelä-Haaga','Pohjois-Haaga','Pitäjänmäki','Konala','Malminkartano','Kannelmäki','Hakuninmaa','Maunula','Patola','Länsi-Pakila','Paloheinä','Itä-Pakila','Pukinmäki','Viikki','Pihlajamäki','Malmi','Malmin lentokenttä','Tapanila','Tapaninvainio','Siltamäki','Tapulikaupunki','Puistola','Jakomäki','Kulosaari','Laajasalo','Roihuvuori','Herttoniemenranta','Herttoniemi','Puotila','Puotinharju','Myllypuro','Kontula','Vartioharju','Mellunmäki','Vuosaari','Kallahti','Niinisaari','Suomenlinna','Keilaniemi','Otaniemi','Tapiola','Pohjois-Tapiola','Niittykumpu','Mankkaa','Westend','Matinkylä','Olari','Iivisniemi','Suvisaaristo','Espoonlahti','Nöykkiö','Saunalahti','Mäkkylä','Lintuvaara','Etelä-Leppävaara','Laajalahti','Sepänkylä','Kuninkainen','Karakallio','Laaksolahti','Viherlaakso','Kauniainen','Tuomarila','Muurala','Bemböle','Nuuksio','Kauklahti','Espoonkartano','Vanhakartano','Röylä','Kalajärvi','Hämeenkylä','Varisto','Myyrmäki','Martinlaakso','Petikko','Kivistö','Seutula','Viinikkala','Ylästö','Pakkala','Veromies','Helsinki airport','Koivuhaka','Tikkurila','Ruskeasanta','Simonkylä','Jokiniemi','Kuninkaala','Hakkila','Päiväkumpu','Havukoski','Rekola','Koivukylä','Ilola','Korso','Metsola','Jokivarsi','Sotunki','Hakunila','Länsimäki','Vaihtopiste') 512,32,1 48,24 2,102,90,476,452 2,510,11,258,615,0,MIDM 65535,52427,65534 Modified names from the Area 129 coding by Helsinki Metropolitan Area Council. A dummy index. [1,2,3,4,5,6,7,8,9,10,11,12,13,14] 64,64,1 48,12 [1,2,3,4,5,6,7,8,9,10,11,12,13,14] A dummy index. [1,2,3,4,5,6,7,8,9,10,11,12,13,14] 64,88,1 48,12 [1,2,3,4,5,6,7,8,9,10,11,12,13,14] Roads A list of frequently used roads. The purpose of this node is to simplify definitions in nodes Routes outside and routes inside. Table(Self)( '1078,1076,1074,1073,1067,1010,1002,1001','1093,1085,1084,1028','1104,1032,1029,1028,1027,1013,1011,1002','1105,1103,1102,1035,1034,1030,1014,1012,1001','1123,1112,1109,1040,1025,1022,1020,1001,1002,1010','1125,1127,1128,1045,1042,1024,1025,1016,1014,1029','1062,1061,1058,1054,1055,1052,1020,1018,1001','1095,1093,1097,1104,1103,1107,1110,1109,1117,1128,1129','1067,1068,1084,1083,1032,1034,1038,1040,1041,1043,1045,1060,1058','1080,1078,1076,1074,1073,1067,1068','1096,1095,1093,1094','1090,1085,1084,1083,1082','1088,1087,1083,1084','1042,1041,1047,1048','1042,1043,1044,1046,1049','1052,1055,1054,1058,1057,1063,1065','1059,1060,1062,1065','1026,1010,1002,1001,1005,1006','1008,1003,1004,1001','1008,1003,1004,1005,1006','1032,1029,1014,1016,1025,1024') [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21] 288,32,1 48,24 2,166,156,470,457,0,MIDM 2,104,114,802,486,0,MIDM 65535,52427,65534 Data based on a map of Helsinki Metropolitan area (YTV liikenne: PŠŠkaupunkiseudun joukkoliikennekartta 11.8.2002). Routes outside Routes are defined in a way that between any two regions, there is only one route that is used. This route is described in this node. The route description needs not be in full detail, e.g. if a route between two areas is defined in Roads node, it is enough to define the start and end areas here. Table(In3,In4)( '+LŠnsi-Espoo,1093,1097,+Pohjois-Espoo',0,0,0,0,0,0,0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1085,1074,+EtelŠ-Espoo','+Pohjois-Espoo,1097,1093,1085,1074,+EtelŠ-Espoo',0,0,0,0,0,0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1085,+Keski-Espoo','+Pohjois-Espoo,1097,1093,1085,+Keski-Espoo','+EtelŠ-Espoo,1068,1084,+Keski-Espoo',0,0,0,0,0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1104,+LŠnsi-Vantaa','+Pohjois-Espoo,1097,1104,+LŠnsi-Vantaa','+EtelŠ-Espoo,1068,1032,1104,+LŠnsi-Vantaa','+Keski-Espoo,1084,1032,1104,+LŠnsi-Vantaa',0,0,0,0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1110,+Keski-Vantaa','+Pohjois-Espoo,1097,1104,1110,+Keski-Vantaa','+EtelŠ-Espoo,1068,1040,1109,+Keski-Vantaa','+Keski-Espoo,1084,1040,1109,+Keski-Vantaa','+LŠnsi-Vantaa,1107,1110,+Keski-Vantaa',0,0,0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1128,1127,+Pohjois-Vantaa','+Pohjois-Espoo,1097,1128,1127,+Pohjois-Vantaa','+EtelŠ-Espoo,1068,1045,1127,+Pohjois-Vantaa','+Keski-Espoo,1084,1045,1127,+Pohjois-Vantaa','+LŠnsi-Vantaa,1107,1128,1127,+Pohjois-Vantaa','+Keski-Vantaa,1109,1128,1127,+Pohjois-Vantaa',0,0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1128,+ItŠ-Vantaa','+Pohjois-Espoo,1097,1128,+ItŠ-Vantaa','+EtelŠ-Espoo,1068,1045,1128,+ItŠ-Vantaa','+Keski-Espoo,1084,1045,1128,+ItŠ-Vantaa','+LŠnsi-Vantaa,1107,1128,+ItŠ-Vantaa','+Keski-Vantaa,1109,1117,1128,+ItŠ-Vantaa','+Pohjois-Vantaa,1127,1128,+ItŠ-Vantaa',0,0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1028,1011,+Kanta-Helsinki','+Pohjois-Espoo,1097,1104,1011,+Kanta-Helsinki','+EtelŠ-Espoo,1067,1010,+Kanta-Helsinki','+Keski-Espoo,1084,1028,1011,+Kanta-Helsinki','+LŠnsi-Vantaa,1102,1001,+Kanta-Helsinki','+Keski-Vantaa,1109,1001,+Kanta-Helsinki','+Pohjois-Vantaa,1127,1025,1001,+Kanta-Helsinki','+ItŠ-Vantaa,1128,1025,1001,+Kanta-Helsinki',0,0,0,0,0,0, '+LŠnsi-Espoo,1093,1028,+LŠnsi-Helsinki','+Pohjois-Espoo,1097,1104,1029,+LŠnsi-Helsinki','+EtelŠ-Espoo,1068,1084,1028,+LŠnsi-Helsinki','+Keski-Espoo,1084,1028,+LŠnsi-Helsinki','+LŠnsi-Vantaa,1102,1014,+LŠnsi-Helsinki','+Keski-Vantaa,1109,1025,1016,+LŠnsi-Helsinki','+Pohjois-Vantaa,1127,1016,+LŠnsi-Helsinki','+ItŠ-Vantaa,1128,1016,+LŠnsi-Helsinki','+Kanta-Helsinki,1001,1012,+LŠnsi-Helsinki',0,0,0,0,0, '+LŠnsi-Espoo,1093,1028,1029,1025,+Vanha-Helsinki','+Pohjois-Espoo,1097,1104,1029,1025,+Vanha-Helsinki','+EtelŠ-Espoo,1068,1032,1025,+Vanha-Helsinki','+Keski-Espoo,1084,1028,1029,1025,+Vanha-Helsinki','+LŠnsi-Vantaa,1102,1014,1025,+Vanha-Helsinki','+Keski-Vantaa,1109,1025,+Vanha-Helsinki','+Pohjois-Vantaa,1127,1024,+Vanha-Helsinki','+ItŠ-Vantaa,1128,1024,+Vanha-Helsinki','+Kanta-Helsinki,1001,1018,+Vanha-Helsinki','+LŠnsi-Helsinki,1016,1025,+Vanha-Helsinki',0,0,0,0, '+LŠnsi-Espoo,1093,1084,1032,+Konalanseutu','+Pohjois-Espoo,1097,1104,1032,+Konalanseutu','+EtelŠ-Espoo,1068,1032,+Konalanseutu','+Keski-Espoo,1084,1032,+Konalanseutu','+LŠnsi-Vantaa,1102,1035,+Konalanseutu','+Keski-Vantaa,1109,1040,1034,+Konalanseutu','+Pohjois-Vantaa,1127,1045,1034,+Konalanseutu','+ItŠ-Vantaa,1128,1045,1034,+Konalanseutu','+Kanta-Helsinki,1001,1030,+Konalanseutu','+LŠnsi-Helsinki,1014,1030,+Konalanseutu','+Vanha-Helsinki,1025,1014,1030,+Konalanseutu',0,0,0, '+LŠnsi-Espoo,1093,1084,1032,1038,+Pakilanseutu','+Pohjois-Espoo,1097,1104,1032,1038,+Pakilanseutu','+EtelŠ-Espoo,1068,1038,+Pakilanseutu','+Keski-Espoo,1084,1038,+Pakilanseutu','+LŠnsi-Vantaa,1102,1034,1038,+Pakilanseutu','+Keski-Vantaa,1109,1040,+Pakilanseutu','+Pohjois-Vantaa,1127,1045,1040,+Pakilanseutu','+ItŠ-Vantaa,1128,1045,1040,+Pakilanseutu','+Kanta-Helsinki,1001,1020,1040,+Pakilanseutu','+LŠnsi-Helsinki,1014,1030,1034,1038,+Pakilanseutu','+Vanha-Helsinki,1025,1040,+Pakilanseutu','+Konalanseutu,1034,1038,+Pakilanseutu',0,0, '+LŠnsi-Espoo,1093,1084,1041,+Malminseutu','+Pohjois-Espoo,1097,1104,1032,1041,+Malminseutu','+EtelŠ-Espoo,1068,1041,+Malminseutu','+Keski-Espoo,1084,1041,+Malminseutu','+LŠnsi-Vantaa,1102,1034,1041,+Malminseutu','+Keski-Vantaa,1109,1040,1041,+Malminseutu','+Pohjois-Vantaa,1127,1045,+Malminseutu','+ItŠ-Vantaa,1128,1045,+Malminseutu','+Kanta-Helsinki,1001,1020,1040,1041,+Malminseutu','+LŠnsi-Helsinki,1014,1030,1034,1041,+Malminseutu','+Vanha-Helsinki,1025,1040,1041,+Malminseutu','+Konalanseutu,1034,1041,+Malminseutu','+Pakilanseutu,1040,1041,+Malminseutu',0, '+LŠnsi-Espoo,1093,1084,1045,1060,+ItŠ-Helsinki','+Pohjois-Espoo,1097,1104,1032,1045,1060,+ItŠ-Helsinki','+EtelŠ-Espoo,1068,1045,1060,+ItŠ-Helsinki','+Keski-Espoo,1084,1045,1060,+ItŠ-Helsinki','+LŠnsi-Vantaa,1102,1034,1045,1060,+ItŠ-Helsinki','+Keski-Vantaa,1109,1040,1045,1060,+ItŠ-Helsinki','+Pohjois-Vantaa,1127,1045,1060,+ItŠ-Helsinki','+ItŠ-Vantaa,1128,1045,1060,+ItŠ-Helsinki','+Kanta-Helsinki,1001,1020,1052,+ItŠ-Helsinki','+LŠnsi-Helsinki,1014,1030,1034,1045,1060,+ItŠ-Helsinki','+Vanha-Helsinki,1020,1052,+ItŠ-Helsinki','+Konalanseutu,1034,1045,1060,+ItŠ-Helsinki','+Pakilanseutu,1040,1045,1060,+ItŠ-Helsinki','+Malminseutu,1045,1060,+ItŠ-Helsinki' ) 64,32,1 48,24 2,560,183,476,508 2,70,2,872,335,0,MIDM 2,198,39,805,439,0,MIDM 65535,52427,65534 [In3,In4] [In3,In4] Data based on a map of Helsinki Metropolitan area (YTV liikenne: PŠŠkaupunkiseudun joukkoliikennekartta 11.8.2002). Route list Changes the Routes outside into a one-dimensional list. var c:= if Routes_outside=0 then 0 else 1; c:= sum(sum(c,in3),in4); Index a:= 1..c; Index b:= ['In3','In4','Data']; var d:= Mdarraytotable(Routes_outside,a,b); d:= d[.b='Data']; d 64,136,1 48,24 2,102,90,476,297 2,214,56,537,610,0,MIDM Region explode 'Explodes' the regional route lists in a way that any driving instruction that applies to a region, applies also to all areas within the region. var b:= route_list; var x:= 1; while x<= size(Region) do ( {KŠy lŠpi jokainen alue} var c:= slice(Region,x); var d:= slice(Regions,x); var h:= b; var j:= size(b); d:= splittext(d,','); var y:= 1; while y<= size(b) do ( {KŠy lŠpi jokainen ajo-ohje} var f:= slice(h,y); f:= if Istext(f) then f else ''; (if findintext(c,f)>0 then ( f:= textreplace(f,c,d,true); {Korvaa ryhmŠaluenimet aluenimillŠ} b:= concat(b,f)) else 0); y:= y+1); x:= x+1); {TŠstŠ alkaa vanha Aluerajaytys_b} index In3:= 1..size(b); b:= slice(b, In3); b:= (if findintext('+',b)>0 then null else b); { HŠvitetŠŠn aluenimet var c:= unique(b,in3); Romauta kaikki toistuvat rivit b:= slice(b,in3,c); b:= slice(b,in3);} var c:= subset(istext(b)); {Romauta kaikki tyhjŠt rivit} b:= slice(b,in3,c); index in5:= 1..size(b); b:= slice(b,in5); {Poista reitistŠ samat toistuvat pisteet x:=1; while x<=size(mista) do ( c:= slice(mista,x)&''; b:= textreplace(b,c&','&c,c,true); x:=x+1 ); b} 64,200,1 48,24 2,102,90,476,590 2,10,11,474,620,0,MIDM Regions Describes the small areas that belong into each larger region. The region names must start with '+'. All areas must be mentioned exactly once. Regions were selected in a way that they are as large as possible without creating very unrealistic routes between areas. Table(Region)( '1091,1092,1093,1094,1095,1096','1097,1098,1099','1067,1068,1069,1070,1071,1073,1074,1075,1076,1077,1078,1079,1080','1072,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090','1100,1101,1102,1103,1104,1105,1106,1107,1108','1109,1110,1111,1112,1113,1114,1115,1116,1123','1118,1119,1120,1121,1122,1124,1125,1126,1127','1117,1128,1129','1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1026,1066','1012,1013,1014,1015,1016,1027,1028,1029','1017,1018,1019,1020,1021,1022,1023,1024,1025','1030,1031,1032,1033,1034,1035','1036,1037,1038,1039,1040','1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051','1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065') 64,264,1 48,24 2,88,98,771,523,0,MIDM 2,20,224,651,394,0,MIDM 52425,39321,65535 Data based on a map of Helsinki Metropolitan area (YTV liikenne: PŠŠkaupunkiseudun joukkoliikennekartta 11.8.2002). Prematrix The crude route instruction matrix without the information from Routes inside and Roads nodes. var mirror2:= mirror(region_explode,region_explode.in5); var a:= mirror2; a:= evaluate(selecttext(a,1,4))*10000+evaluate(selecttext(a,textlength(a)-3)); index b:=a; index c:= [1]; index d:= 2..size(Mirror2.a); var e:= concat(c,d,c,d,b); e:= slice(Mirror2,Mirror2.a,e); e:= e[.b=From*10000+To1]; if e=null then From&','&To1 else e 176,200,1 48,24 2,102,90,476,586 2,212,13,759,604,0,MIDM [To1,From] 1,I,4,2,0,0 Road mirror 'Mirrors' the driving instructions in a way that if an instruction applies to 'from A to B', its reverse applies to 'from B to A'. index roa:= 1..size(route_list1)+size(roads); var a:= concat(roads,route_list1,roads,route_list1.a,roa); a:= mirror(a,roa); a:= clean_rows(a); var c:= for y[]:= a do ( var e:= (if findintext(y,a)>0 then 1 else 0); e:= sum(e,e.a)-1 ); a:= if c>0 then 0 else a; clean_rows(a) 288,136,1 48,24 2,102,90,476,409 2,219,-3,563,627,0,MIDM Routes inside Defines the routes between every two areas within a region. The route description needs not be in full detail, e.g. if a route between two areas is defined in Roads node, it is enough to define the start and end areas here. A minimum number of existing roads were selected so that the routes in the model would not be very unrealistic. This work was done manually with a map. Table(In3,In4,region)( '1091,1092','1097,1098','1067,1068','1072,1085,1084,1083,1081','1100,1101','1109,1110','1118,1127,1119','1117,1128','1001,1002','1012,1013','1017,1019,1018','1030,1034,1031','1036,1037','1041,1042','1052,1055,1053', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, '1091,1092,1093','1097,1099','1067,1069','1072,1085,1084,1083,1082','1100,1101,1102','1109,1110,1111','1118,1120','1117,1128,1129','1001,1004,1003','1012,1014','1017,1019','1030,1034,1032','1036,1038','1041,1043','1052,1055,1054', '1092,1093','1098,1097,1099','1068,1069','1081,1082','1101,1102','1110,1111','1119,1127,1120','1128,1129','1002,1004,1003','1013,1014','1018,1019','1031,1032','1037,1036,1038','1042,1043','1053,1055,1054', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, '1091,1092,1093,1094',0,'1067,1073,1070','1072,1085,1084,1083','1100,1104,1103','1109,1112','1118,1120,1121','1117,1130','1001,1004','1012,1015','1017,1020','1030,1034,1032,1033','1036,1038,1039','1041,1044','1052,1055', '1092,1093,1094',0,'1068,1070','1081,1083','1101,1103','1110,1109,1112','1119,1121','1128,1130','1002,1004','1013,1015','1018,1020','1031,1032,1033','1037,1040,1039','1042,1043,1044','1053,1055', '1093,1094',0,'1069,1070','1082,1083','1102,1103','1111,1112','1120,1121','1129,1130','1003,1004','1014,1016,1015','1019,1020','1032,1033','1038,1039','1043,1044','1054,1055', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, '1091,1092,1095',0,'1067,1073,1071','1072,1085,1084','1100,1104','1109,1113','1118,1120,1122',0,'1001,1005','1012,1015,1016','1017,1021','1030,1034','1036,1038,1040','1041,1043,1045','1052,1055,1056', '1092,1095',0,'1068,1070,1071','1081,1083,1084','1101,1104','1110,1109,1113','1119,1121,1122',0,'1002,1001,1005','1013,1015,1016','1018,1019,1021','1031,1034','1037,1040','1042,1045','1053,1055,1056', '1093,1095',0,'1069,1071','1082,1083,1084','1102,1101,1104','1111,1110,1109,1113','1120,1122',0,'1003,1004,1005','1014,1016','1019,1021','1032,1034','1038,1040','1043,1045','1054,1056', '1094,1093,1095',0,'1070,1071','1083,1084','1103,1104','1112,1113','1121,1122',0,'1004,1005','1015,1016','1020,1021','1033,1032,1034','1039,1040','1044,1043,1045','1055,1056', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, '1091,1092,1095,1096',0,'1067,1073','1072,1085','1100,1104,1103,1105','1109,1112,1114','1118,1120,1121,1124',0,'1001,1005,1006','1012,1013,1027','1017,1022','1030,1034,1035',0,'1041,10441046','1052,1055,1054,1058,1057', '1092,1095,1096',0,'1068,1067,1073','1081,1083,1084,1085','1101,1103,1105','1110,1109,1112,1114','1119,1121,1124',0,'1002,1001,1005,1006','1013,1027','1018,1020,1022','1031,1034,1035',0,'1042,1043,10441046','1053,1055,1054,1058,1057', '1093,1095,1096',0,'1069,1073','1082,1083,1084,1085','1102,1103,1105','1111,1110,1109,1112,1114','1120,1121,1124',0,'1003,1004,1005,1006','1014,1013,1027','1019,1022','1032,1035',0,'1043,1044,1046','1054,1058,1057', '1094,1093,1095,1096',0,'1070,1073','1083,1084,1085','1103,1105','1112,1114','1121,1124',0,'1004,1006','1015,1027','1020,1022','1033,1032,1035',0,'1044,1046','1055,1054,1058,1057', '1095,1096',0,'1071,1073','1084,1085','1104,1103,1105','1113,1114','1122,1121,1124',0,'1005,1006','1016,1015,1013,1027','1021,1022','1034,1035',0,'1045,1044,1046','1056,1054,1058,1057', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074','1072,1085,1086','1100,1104,1103,1106','1109,1113,1115','1118,1127,1125',0,'1001,1004,1007','1012,1013,1027,1028','1017,1022,1023','1030,1014',0,'1041,1047','1052,1055,1054,1058', 0,0,'1068,1067,1073,1074','1081,1083,1086','1101,1103,1106','1110,1109,1113,1115','1119,1126,1125',0,'1002,1004,1007','1013,1027,1028','1018,1020,1023','1031,1029,1014',0,'1042,1041,1047','1053,1055,1054,1058', 0,0,'1069,1073,1074','1082,1086','1102,1103,1106','1111,1110,1109,1113,1115','1120,1121,1125',0,'1003,1007','1014,1029,1028','1019,1022,1023','1032,1029,1014',0,'1043,1041,1047','1054,1058', 0,0,'1070,1073,1074','1083,1086','1103,1106','1112,1115','1121,1125',0,'1004,1007','1015,1013,1027,1028','1020,1023','1033,1032,1029,1014',0,'1044,1047','1055,1054,1058', 0,0,'1071,1074','1084,1086','1104,1103,1106','1113,1115','1122,1121,1125',0,'1005,1007','1016,1014,1029,1028','1021,1022,1023','1034,1030,1014',0,'1045,1044,1047','1056,1054,1058', 0,0,'1073,1074','1085,1086','1105,1106','1114,1115','1124,1125',0,'1006,1005,1007','1027,1028','1022,1023','1035,1034,1030,1014',0,'1046,1047','1057,1058', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074,1075','1072,1085,1086,1087','1100,1104,1103,1107','1109,1113,1116','1118,1127,1125,1126',0,'1001,1004,1003,1008','1012,1014,1029','1017,1025,1024',0,0,'1041,1047,1048','1052,1055,1054,1059', 0,0,'1068,1067,1073,1074,1075','1081,1083,1087','1101,1103,1107','1110,1109,1113,1116','1119,1126',0,'1002,1004,1003,1008','1013,1027,1028,1029','1018,1020,1023,1024',0,0,'1042,1041,1047,1048','1053,1055,1054,1059', 0,0,'1069,1073,1074,1075','1082,1087','1102,1107','1111,1110,1109,1113,1116','1120,1121,1125,1126',0,'1003,1008','1014,1029','1019,1022,1023,1024',0,0,'1043,1041,1047,1048','1054,1059', 0,0,'1070,1073,1074,1075','1083,1087','1103,1107','1112,1115,1116','1121,1125,1126',0,'1004,1008','1015,1016,1014,1029','1020,1023,1024',0,0,'1044,1047,1048','1055,1054,1059', 0,0,'1071,1074,1075','1084,1086,1087','1104,1103,1107','1113,1116','1122,1121,1125,1126',0,'1005,1008','1016,1014,1029','1021,1022,1023,1024',0,0,'1045,1044,1047,1048','1056,1059', 0,0,'1073,1074,1075','1085,1086,1087','1105,1103,1107','1114,1115,1116','1124,1125,1126',0,'1006,1008','1027,1028,1029','1022,1023,1024',0,0,'1046,1048','1057,1060,1059', 0,0,'1074,1075','1086,1087','1106,1103,1107','1115,1116','1125,1126',0,'1007,1003,1008','1028,1029','1023,1024',0,0,'1047,1048','1058,1059', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074,1076','1072,1085,1090,1089,1088','1100,1104,1103,1108','1109,1112,1123','1118,1127',0,'1001,1002,1009',0,'1017,1025',0,0,'1041,1044,1046,1049','1052,1055,1054,1058,1060', 0,0,'1068,1067,1073,1074,1076','1081,1083,1087,1088','1101,1103,1108','1110,1109,1112,1123','1119,1127',0,'1002,1009',0,'1018,1020,1022,1025',0,0,'1042,1043,1044,1046,1049','1053,1055,1054,1058,1060', 0,0,'1069,1073,1074,1076','1082,1087,1088','1102,1108','1111,1110,1109,1112,1123','1120,1127',0,'1003,1009',0,'1019,1022,1025',0,0,'1043,1044,1046,1049','1054,1058,1060', 0,0,'1070,1073,1074,1076','1083,1087,1088','1103,1108','1112,1123','1121,1120,1127',0,'1004,1009',0,'1020,1022,1025',0,0,'1044,1046,1049','1055,1054,1058,1060', 0,0,'1071,1074,1076','1084,1083,1087,1088','1104,1103,1108','1113,1112,1123','1122,1120,1127',0,'1005,1004,1009',0,'1021,1025',0,0,'1045,1044,1046,1049','1056,1059,1060', 0,0,'1073,1074,1076','1085,1090,1089,1088','1105,1103,1108','1114,1123','1124,1125,1127',0,'1006,1005,1004,1009',0,'1022,1025',0,0,'1046,1049','1057,1060', 0,0,'1074,1076','1086,1087,1088','1106,1103,1108','1115,1114,1123','1125,1127',0,'1007,1003,1009',0,'1023,1022,1025',0,0,'1047,1046,1049','1058,1060', 0,0,'1075,1076','1087,1088','1107,1108','1116,1115,1114,1123','1126,1127',0,'1008,1003,1009',0,'1024,1025',0,0,'1048,1049','1059,1060', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074,1076,1077','1072,1085,1090,1089',0,0,0,0,'1001,1002,1010',0,0,0,0,'1041,1043,1050','1052,1055,1054,1058,1061', 0,0,'1068,1067,1073,1074,1076,1077','1081,1083,1087,1089',0,0,0,0,'1002,1010',0,0,0,0,'1042,1043,1050','1053,1055,1054,1058,1061', 0,0,'1069,1073,1074,1076,1077','1082,1087,1089',0,0,0,0,'1003,1010',0,0,0,0,'1043,1050','1054,1058,1061', 0,0,'1070,1073,1074,1076,1077','1083,1087,1089',0,0,0,0,'1004,1010',0,0,0,0,'1044,1046,1050','1055,1054,1058,1061', 0,0,'1071,1074,1076,1077','1084,1083,1087,1089',0,0,0,0,'1005,1001,1002,1010',0,0,0,0,'1045,1050','1056,1054,1058,1061', 0,0,'1073,1074,1076,1077','1085,1090,1089',0,0,0,0,'1006,1005,1001,1002,1010',0,0,0,0,'1046,1050','1057,1061', 0,0,'1074,1076,1077','1086,1087,1089',0,0,0,0,'1007,1003,1010',0,0,0,0,'1047,1046,1050','1058,1061', 0,0,'1075,1076,1077','1087,1089',0,0,0,0,'1008,1003,1010',0,0,0,0,'1048,1046,1050','1059,1060,1061', 0,0,'1076,1077','1088,1089',0,0,0,0,'1009,1010',0,0,0,0,'1049,1050','1060,1061', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074,1076,1078','1072,1085,1090',0,0,0,0,'1001,1002,1011',0,0,0,0,'1041,1043,1045,1051','1052,1055,1054,1058,1061,1062', 0,0,'1068,1067,1073,1074,1076,1078','1081,1083,1084,1085,1090',0,0,0,0,'1002,1011',0,0,0,0,'1042,1045,1051','1053,1055,1054,1058,1061,1062', 0,0,'1069,1073,1074,1076,1078','1082,1083,1084,1085,1090',0,0,0,0,'1003,1002,1011',0,0,0,0,'1043,1045,1051','1054,1058,1061,1062', 0,0,'1070,1073,1074,1076,1078','1083,1084,1085,1090',0,0,0,0,'1004,1002,1011',0,0,0,0,'1044,1043,1045,1051','1055,1054,1058,1061,1062', 0,0,'1071,1074,1076,1078','1084,1085,1090',0,0,0,0,'1005,1001,1002,1011',0,0,0,0,'1045,1051','1056,1054,1058,1061,1062', 0,0,'1073,1074,1076,1078','1085,1090',0,0,0,0,'1006,1005,1001,1002,1011',0,0,0,0,'1046,1050,1051','1057,1061,1062', 0,0,'1074,1076,1078','1086,1090',0,0,0,0,'1007,1003,1002,1011',0,0,0,0,'1047,1046,1050,1051','1058,1061,1062', 0,0,'1075,1076,1078','1087,1089,1090',0,0,0,0,'1008,1003,1002,1011',0,0,0,0,'1048,1046,1050,1051','1059,1060,1062', 0,0,'1076,1078','1088,1089,1090',0,0,0,0,'1009,1002,1011',0,0,0,0,'1049,1050,1051','1060,1062', 0,0,'1077,1078','1089,1090',0,0,0,0,'1010,1002,1011',0,0,0,0,'1050,1051','1061,1062', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074,1076,1079',0,0,0,0,0,'1001,1002,1010,1026',0,0,0,0,0,'1052,1055,1054,1058,1057,1063', 0,0,'1068,1067,1073,1074,1076,1079',0,0,0,0,0,'1002,1010,1026',0,0,0,0,0,'1053,1055,1054,1058,1057,1063', 0,0,'1069,1073,1074,1076,1079',0,0,0,0,0,'1003,1010,1026',0,0,0,0,0,'1054,1058,1057,1063', 0,0,'1070,1073,1074,1076,1079',0,0,0,0,0,'1004,1010,1026',0,0,0,0,0,'1055,1054,1058,1057,1063', 0,0,'1071,1074,1076,1079',0,0,0,0,0,'1005,1001,1002,1010,1026',0,0,0,0,0,'1056,1054,1058,1057,1063', 0,0,'1073,1074,1076,1079',0,0,0,0,0,'1006,1005,1001,1002,1010,1026',0,0,0,0,0,'1057,1063', 0,0,'1074,1076,1079',0,0,0,0,0,'1007,1003,1010,1026',0,0,0,0,0,'1058,1057,1063', 0,0,'1075,1076,1079',0,0,0,0,0,'1008,1003,1010,1026',0,0,0,0,0,'1059,1060,1057,1063', 0,0,'1076,1079',0,0,0,0,0,'1009,1010,1026',0,0,0,0,0,'1060,1057,1063', 0,0,'1077,1076,1079',0,0,0,0,0,'1010,1026',0,0,0,0,0,'1061,1057,1063', 0,0,'1078,1079',0,0,0,0,0,'1011,1002,1010,1026',0,0,0,0,0,'1062,1063', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,'1067,1073,1074,1076,1078,1080',0,0,0,0,0,'1001,1005,1066',0,0,0,0,0,'1052,1055,1054,1058,1057,1063,1064', 0,0,'1068,1067,1073,1074,1076,1078,1080',0,0,0,0,0,'1002,1001,1005,1066',0,0,0,0,0,'1053,1055,1054,1058,1057,1063,1064', 0,0,'1069,1073,1074,1076,1078,1080',0,0,0,0,0,'1003,1004,1005,1066',0,0,0,0,0,'1054,1058,1057,1063,1064', 0,0,'1070,1073,1074,1076,1078,1080',0,0,0,0,0,'1004,1005,1066',0,0,0,0,0,'1055,1054,1058,1057,1063,1064', 0,0,'1071,1074,1076,1078,1080',0,0,0,0,0,'1005,1066',0,0,0,0,0,'1056,1054,1058,1057,1063,1064', 0,0,'1073,1074,1076,1078,1080',0,0,0,0,0,'1006,1005,1066',0,0,0,0,0,'1057,1063,1064', 0,0,'1074,1076,1078,1080',0,0,0,0,0,'1007,1005,1066',0,0,0,0,0,'1058,1057,1063,1064', 0,0,'1075,1076,1078,1080',0,0,0,0,0,'1008,1003,1004,1005,1066',0,0,0,0,0,'1059,1060,1057,1063,1064', 0,0,'1076,1078,1080',0,0,0,0,0,'1009,1002,1001,1005,1066',0,0,0,0,0,'1060,1057,1063,1064', 0,0,'1077,1078,1080',0,0,0,0,0,'1010,1002,1001,1005,1066',0,0,0,0,0,'1061,1057,1063,1064', 0,0,'1078,1080',0,0,0,0,0,'1011,1002,1001,1005,1066',0,0,0,0,0,'1062,1063,1064', 0,0,'1079,1080',0,0,0,0,0,'1026,1010,1002,1001,1005,1066',0,0,0,0,0,'1063,1064', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1052,1055,1054,1058,1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1053,1055,1054,1058,1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1054,1058,1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1055,1054,1058,1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1056,1054,1058,1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1058,1057,1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1059,1060,1062,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1060,1062,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1061,1062,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1062,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1063,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'1064,1065', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ) 176,32,1 48,24 2,109,4,872,346,0,MIDM 2,184,194,805,439,0,MIDM 65535,52427,65534 [In3,In4] [In3,In4] Data based on a map of Helsinki Metropolitan area (YTV liikenne: PŠŠkaupunkiseudun joukkoliikennekartta 11.8.2002). Route list Changes the Routes inside into a one-dimensional list. var c:= if Routes_inside=0 then 0 else 1; c:= sum(sum(sum(c,in3),in4),region); Index f:= 1..c; Index b:= ['Region','In3','In4','Data']; var d:= Mdarraytotable(Routes_inside,f,b); d:= d[.b='Data']; d:= if textlength(d)=9 then 0 else d; clean_rows(d) 176,136,1 48,24 2,283,96,476,346 2,49,13,370,610,0,MIDM Link length km The distance between two areas. Distances are rough estimates measured with a string and a ruler. This approach was considered exact enough, as the road structure is the same in all scenarios considered. Table(Links_1)( 0,0.8,1,0.6,1.7,1.1,1.2,1.5,1.7,1.2,0.8,0.8,0.8,2.1,2.9,2.2,1.1,0.8,3,2.4,1.1,1.3,3.3,1.7,9999,9999,3,5.4,2.8,3,3.6,3,2,2.6,1,9999,1.6,9999,1.2,1.4,1,9999,9999,1,9999,2.3,2.2,1.1,1.6,1.8,9999,1.1,1.4,1.2,1,1.1,1.7,0.8,0.9,9999,2.4,1.6,2.3,0.4,1.8,2.4,1.9,2.5,9999,9999,4,0.8,9999,1.3,9999,3.7,9999,2.8,1.8,1.9,2.5,2.4,2.1,2.8,3.4,5.6,1.4,1.7,9999,1.8,1.8,0.8,2.6,2.7,1.2,2.2,2.8,5.3,1.9,1.3,1.4,2.3,2,2,1.4,1.2,4.6,3.2,1.7,1.8,4,2.9,9999,9999,9999,9999,9999,9999,9999,2.2,9999,9999,9999,9999,9999,5,2.4,3.6,1.4,2.4,1.6,3,3.2,2,1.5,1.5,2.1,1.2,1.1,2.6,9999,1.7,9999,9999,2.6,1,2.2,1.3,2.6,2.7,2.6,1.9,1.1,2.5,4,2,3,9999,3,1.3,2.7,3.2,2.6,1.7,1.1,2,0.9,2.8,1.6,2.4,1.5,2.8,1.7,2.7,1.3,1.5,3,2.8,2.7,5,2.2,3.8,4.2,3.4,5.2,4.7,1.1,5.5,1,0.9,1.2,9999,3,2.9,1.1,2.8,2.3,3.3,3,3,2.1,6.8,1.5,4.1,3.2,2,1.7,2,1.4,3.2,4.8,3.6,5.8,6.8,2.3,5.2,8.7,4.2,1.6,3.4,9999,3,5.4,4.1,3.6,5.9,5.4,3.6,2,6.8,1.6,3,6.2,2.1,4.2,1.4,2.3,4,3.6,2.8,9999,3.4,2,3.8,9999,1.8,3.4,1.8,2,9999,3.2,9999,1.5,1.2,9999,9999,9999,2.5,4.1,3,3,9999,2.9,2.3,2.2,1.8,2,1.6,2.4,3.5,2,0.9,4.7,3.6,2.8) 400,112,1 48,24 2,743,190,227,419,0,MIDM 2,288,18,177,576,0,MIDM 65535,52427,65534 1,D,4,2,0,0 Data based on a map of Helsinki Metropolitan area (YTV liikenne: PŠŠkaupunkiseudun joukkoliikennekartta 11.8.2002). Index showing the direct links that exist in reality, i.e. excluding those routes from one area to another where you have to go through a third area. ['1001,1001','1001,1002','1001,1004','1001,1005','1001,1012','1001,1018','1002,1003','1002,1004','1002,1009','1002,1010','1002,1011','1003,1004','1003,1007','1003,1008','1003,1009','1003,1010','1004,1005','1004,1007','1004,1009','1004,1010','1005,1006','1005,1007','1005,1066','1009,1010','1009,1085','1009,1089','1010,1026','1010,1067','1011,1013','1012,1013','1012,1014','1012,1015','1013,1014','1013,1015','1013,1027','1013,1030','1014,1016','1014,1017','1014,1029','1014,1030','1015,1016','1015,1017','1015,1030','1016,1025','1016,1030','1017,1019','1017,1020','1017,1021','1017,1022','1017,1025','1017,1027','1018,1019','1018,1020','1019,1020','1019,1021','1019,1022','1020,1021','1020,1022','1020,1023','1020,1028','1020,1052','1021,1022','1021,1025','1022,1023','1022,1025','1023,1024','1024,1025','1024,1042','1025,1028','1025,1032','1025,1040','1027,1028','1027,1030','1028,1029','1028,1030','1028,1084','1029,1030','1029,1032','1030,1034','1031,1032','1031,1034','1032,1033','1032,1034','1032,1035','1032,1083','1032,1104','1034,1035','1034,1038','1034,1109','1035,1102','1036,1037','1036,1038','1037,1040','1038,1039','1038,1040','1039,1040','1040,1041','1040,1109','1041,1042','1041,1043','1041,1044','1041,1047','1042,1043','1042,1045','1043,1044','1043,1045','1043,1050','1044,1045','1044,1046','1044,1047','1045,1050','1045,1051','1045,1052','1045,1053','1045,1054','1045,1055','1045,1056','1045,1057','1045,1059','1045,1060','1045,1061','1045,1062','1045,1063','1045,1064','1045,1065','1045,1128','1046,1047','1046,1048','1046,1049','1046,1050','1047,1048','1048,1049','1049,1050','1050,1051','1052,1055','1053,1055','1054,1055','1054,1056','1054,1058','1054,1059','1054,1061','1055,1056','1055,1058','1055,1061','1056,1059','1057,1058','1057,1060','1057,1061','1057,1063','1058,1059','1058,1060','1058,1061','1059,1060','1060,1061','1060,1062','1061,1062','1062,1063','1062,1064','1062,1065','1063,1064','1063,1065','1064,1065','1067,1068','1067,1069','1067,1073','1068,1069','1068,1070','1068,1084','1069,1070','1069,1071','1069,1073','1070,1071','1070,1073','1071,1073','1071,1074','1072,1085','1073,1074','1074,1075','1074,1076','1074,1085','1075,1076','1076,1077','1076,1078','1076,1079','1077,1078','1078,1079','1078,1080','1079,1080','1081,1082','1081,1083','1082,1083','1082,1084','1082,1086','1082,1087','1083,1084','1083,1086','1083,1087','1084,1085','1084,1086','1085,1086','1085,1090','1085,1093','1086,1087','1086,1090','1087,1088','1087,1089','1088,1089','1089,1090','1091,1092','1092,1093','1092,1095','1093,1094','1093,1095','1093,1097','1095,1096','1097,1098','1097,1099','1097,1104','1100,1101','1100,1104','1100,1111','1101,1102','1101,1103','1101,1104','1102,1103','1102,1107','1102,1108','1103,1104','1103,1105','1103,1106','1103,1107','1103,1108','1105,1106','1107,1108','1107,1110','1109,1110','1109,1112','1109,1113','1109,1117','1110,1111','1111,1117','1112,1113','1112,1114','1112,1115','1112,1117','1112,1123','1113,1114','1113,1115','1113,1116','1113,1117','1114,1115','1114,1117','1114,1123','1115,1116','1115,1117','1116,1117','1117,1123','1117,1128','1118,1120','1118,1127','1119,1121','1119,1125','1119,1126','1119,1127','1120,1121','1120,1122','1120,1127','1121,1122','1121,1124','1121,1125','1124,1125','1125,1126','1125,1127','1127,1128','1128,1129'] 400,144,1 48,12 1,D,4,2,0,0 ['1001,1001','1001,1002','1001,1004','1001,1005','1001,1012','1001,1018','1002,1003','1002,1004','1002,1009','1002,1010','1002,1011','1003,1004','1003,1007','1003,1008','1003,1009','1003,1010','1004,1005','1004,1007','1004,1009','1004,1010','1005,1006','1005,1007','1005,1066','1009,1010','1009,1085','1009,1089','1010,1026','1010,1067','1011,1013','1012,1013','1012,1014','1012,1015','1013,1014','1013,1015','1013,1027','1013,1030','1014,1016','1014,1017','1014,1029','1014,1030','1015,1016','1015,1017','1015,1030','1016,1025','1016,1030','1017,1019','1017,1020','1017,1021','1017,1022','1017,1025','1017,1027','1018,1019','1018,1020','1019,1020','1019,1021','1019,1022','1020,1021','1020,1022','1020,1023','1020,1028','1020,1052','1021,1022','1021,1025','1022,1023','1022,1025','1023,1024','1024,1025','1024,1042','1025,1028','1025,1032','1025,1040','1027,1028','1027,1030','1028,1029','1028,1030','1028,1084','1029,1030','1029,1032','1030,1034','1031,1032','1031,1034','1032,1033','1032,1034','1032,1035','1032,1083','1032,1104','1034,1035','1034,1038','1034,1109','1035,1102','1036,1037','1036,1038','1037,1040','1038,1039','1038,1040','1039,1040','1040,1041','1040,1109','1041,1042','1041,1043','1041,1044','1041,1047','1042,1043','1042,1045','1043,1044','1043,1045','1043,1050','1044,1045','1044,1046','1044,1047','1045,1050','1045,1051','1045,1052','1045,1053','1045,1054','1045,1055','1045,1056','1045,1057','1045,1059','1045,1060','1045,1061','1045,1062','1045,1063','1045,1064','1045,1065','1045,1128','1046,1047','1046,1048','1046,1049','1046,1050','1047,1048','1048,1049','1049,1050','1050,1051','1052,1055','1053,1055','1054,1055','1054,1056','1054,1058','1054,1059','1054,1061','1055,1056','1055,1058','1055,1061','1056,1059','1057,1058','1057,1060','1057,1061','1057,1063','1058,1059','1058,1060','1058,1061','1059,1060','1060,1061','1060,1062','1061,1062','1062,1063','1062,1064','1062,1065','1063,1064','1063,1065','1064,1065','1067,1068','1067,1069','1067,1073','1068,1069','1068,1070','1068,1084','1069,1070','1069,1071','1069,1073','1070,1071','1070,1073','1071,1073','1071,1074','1072,1085','1073,1074','1074,1075','1074,1076','1074,1085','1075,1076','1076,1077','1076,1078','1076,1079','1077,1078','1078,1079','1078,1080','1079,1080','1081,1082','1081,1083','1082,1083','1082,1084','1082,1086','1082,1087','1083,1084','1083,1086','1083,1087','1084,1085','1084,1086','1085,1086','1085,1090','1085,1093','1086,1087','1086,1090','1087,1088','1087,1089','1088,1089','1089,1090','1091,1092','1092,1093','1092,1095','1093,1094','1093,1095','1093,1097','1095,1096','1097,1098','1097,1099','1097,1104','1100,1101','1100,1104','1100,1111','1101,1102','1101,1103','1101,1104','1102,1103','1102,1107','1102,1108','1103,1104','1103,1105','1103,1106','1103,1107','1103,1108','1105,1106','1107,1108','1107,1110','1109,1110','1109,1112','1109,1113','1109,1117','1110,1111','1111,1117','1112,1113','1112,1114','1112,1115','1112,1117','1112,1123','1113,1114','1113,1115','1113,1116','1113,1117','1114,1115','1114,1117','1114,1123','1115,1116','1115,1117','1116,1117','1117,1123','1117,1128','1118,1120','1118,1127','1119,1121','1119,1125','1119,1126','1119,1127','1120,1121','1120,1122','1120,1127','1121,1122','1121,1124','1121,1125','1124,1125','1125,1126','1125,1127','1127,1128','1128,1129'] For creating Links_1 This module is only for creating the index Links_1, and now when the index has been created, these nodes are no longer needed. ktluser 3. marta 2004 16:37 48,24 400,264,1 48,24 1,40,0,-2191,294,17 Link var x:= 1; var a:= slice(From,x)*10000+From; while x<size(From) do ( x:= x+1; var b:= slice(From,x)*10000+From; a:= concat(a,b) ) 48,88,1 48,12 2,146,145,416,303,0,MIDM 1,I,4,2,0,0 Links var a:=From&','&To1; var c:= for x[]:= a do ( var b:= if findintext(x,Route_matrix_in_hma)>0 then 1 else 0; sum(sum(b,From),To1) ); c:= c[From=floor(link/10000),To1=(link-floor(link/10000)*10000)]; c:= if c>0 then link else 0; c 48,56,1 48,24 2,102,90,476,283 2,44,74,598,377,0,MIDM [To1,From] 1,I,4,2,0,0 var c:= if floor(link/10000)>=(link-floor(link/10000)*10000) then 0 else links1; c:= unique(c,link); index b:= 1..size(c); c:= slice(c,b); floor(c/10000)&','&c-floor(c/10000)*10000 160,56,1 48,24 2,349,22,593,572,0,MIDM Link_teko2 var a:= max(distances,To1); link_teko; a 272,56,1 48,24 2,216,156,476,436 Route matrix, RDB format This changes the variable Route matrxix in HMA into a form that can be stored in the "Double" number format. var a:= Route_matrix_in_hma; a:= Textreplace(a,',','',true); var b:= array(part_1,(0..9)*4+1); a:= selecttext(a,b,b+3); evaluate(a) 288,264,1 48,24 1,1,1,1,1,1,0,,1, 2,200,210,565,309,0,MIDM [To1,From] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 [Part_1,3,From,1,To1,1] Part_1 Part_1 is an index in the Parameter dimension. It is used to divide a lengthy number sequence into smaller parts so that the parts can be stored in the "Double" number format. ['item 1','item 2','item 3','item 4','item 5','item 6','item 7','item 8','item 9','item 10'] 288,296,1 48,12 This changes the double number format into the form that can be used in the composite traffic model, i.e. "1XXX,1XXX,1XXX" where 1XXX is an area code between 1001..1129. var a:= Route_matrix__rdb_fo&''; a:= if a='0' then '' else a; a:= jointext(a, part_1, ','); texttrim(a,trimchars:',') 176,264,1 48,24 2,40,50,636,273,0,MIDM [To1,From] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 [''] [Part_1,4,From,1,To1,1]