Between points integrated and estimated times
Between points integrated and estimated times

file:a/betweenpoint.load.php (deleted)
--- a/betweenpoint.load.php
+++ /dev/null
@@ -1,76 +1,1 @@
-<?php

-/*

- * GeoPo Encode in PHP

- * @author : Shintaro Inagaki

- * @param $location (Array)

- * @return $geopo (String)

- */

-function geopoEncode($lat, $lng) {

-	// 64characters (number + big and small letter + hyphen + underscore)

-	$chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";

-

-	$geopo = "";

-	$scale = 7;

-	

-	// Change a degree measure to a decimal number

-	$lat = ($lat + 90) / 180 * pow(8, 10);

-	$lng = ($lng + 180) / 360 * pow(8, 10);

-	// Compute a GeoPo code from head and concatenate

-	for($i = 0; $i < $scale; $i++) {

-		$geopo .= substr($chars, floor($lat / pow(8, 9 - $i) % 8) + floor($lng / pow(8, 9 - $i) % 8) * 8, 1);

-	}

-	return $geopo;

-}		

-

-/*

- * GeoPo Decode in PHP

- * @author : Shintaro Inagaki

- * @param $geopo (String)

- * @return $location (Array)

- */

-function geopoDecode($geopo) {

-	// 64characters (number + big and small letter + hyphen + underscore)

-	$chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";

-	// Array for geolocation

-	$location = array ();

-

-	for ($i = 0; $i < strlen($geopo); $i++) {

-		// What number of character that equal to a GeoPo code (0-63)

-		$order = strpos($chars, substr($geopo, $i, 1));

-		// Lat/Lng plus geolocation value of scale 

-		$location['lat'] = $location['lat'] + floor($order % 8) * pow(8, 9 - $i);

-		$location['lng'] = $location['lng'] + floor($order / 8) * pow(8, 9 - $i);

-	}

-

-	// Change a decimal number to a degree measure, and plus revised value that shift center of area

-	$location['lat'] = $location['lat'] * 180 / pow(8, 10) + 180 / pow(8, strlen($geopo)) / 2 - 90;

-	$location['lng'] = $location['lng'] * 360 / pow(8, 10) + 360 / pow(8, strlen($geopo)) / 2 - 180;

-	$location['scale'] = strlen($geopo);

-

-	return $location;

-}	

-

-$conn = pg_connect("dbname=bus user=postgres password=snmc");

-if (!$conn) {

-  echo "An error occured.\n";

-  exit;

-}

-$xml = simplexml_load_file("04-locatebetweenpoints.osm");

-

-/* Access the <rating> nodes of the first movie.

- * Output the rating scale, too. */

-foreach ($xml->node as $node) {

-	$geoPo = geopoEncode((float)$node['lat'],(float)$node['lon']);

-	$node['lat'] = (int) ((float)$node['lat']*10000000);

-	$node['lon'] = (int) ((float)$node['lon']*10000000);

-	echo($node['lat'].",".$node['lon']."=$geoPo<br>");

-   $sql = "INSERT INTO stops (geohash, lat, lng) VALUES('$geoPo','{$node['lat']}','{$node['lon']}')";

-     $result = pg_query($conn, $sql);

-     if (!$result) {

-         echo("Error in SQL query: " . pg_last_error() ."<br>\n");

-     }

-flush();

-    

-}

-?>

 

--- a/betweenpoint.php
+++ b/betweenpoint.php
@@ -126,7 +126,7 @@
           if (($fname != '.') && ($fname != '..')) {
               $timetable = Spyc::YAMLLoad("maxious-canberra-transit-feed/output/" . $fname);
 		// Strip off individual platforms because it usually doesn't matter for routes
-		$timetable["time_points"] = preg_replace("/-.* Platform.*/","",$timetable["time_points"]);
+		$timetable["time_points"] = preg_replace("/(Platform.*/","",$timetable["time_points"]);
               for ($i = 0; $i < sizeof($timetable["time_points"]) - 1; $i++) {
                   @$paths[trim($timetable["time_points"][$i]) . "->" . trim($timetable["time_points"][$i + 1])] .= $timetable["short_name"] . ";";
               }

file:a/busui/list.php (deleted)
--- a/busui/list.php
+++ /dev/null
@@ -1,22 +1,1 @@
-<div id="get">
-    <div class="toolbar">
-        <h1>GET Example</h1>
-        <a class="back" href="#">AJAX</a>
-    </div>
-    <div class="info">
-        This page was loaded via AJAX.
-    </div>
-    <ul class="rounded">
-        <li><a href="#livetest">Test live events</a></li>
-    </ul>
-</div>
-<div id="livetest">
-    <div class="toolbar">
-        <h1>Events test</h1>
-        <a class="back" href="#">AJAX</a>
-        <a class="button goback" href="#home">Home</a>
-    </div>
-    <div class="info">
-        This is a test of live events.
-    </div>
-</div>
+

--- a/maxious-canberra-transit-feed/01-extracttimes.rb
+++ b/maxious-canberra-transit-feed/01-extracttimes.rb
@@ -14,7 +14,11 @@
 	timetable = {"between_stops" => [], "short_name" => short_name}
 	time_points = table.xpath('tr[1]//th').map do |tp|
 		if tp.content != "\302\240" && tp.content != "" && tp.content != "<br/>"
-			timing_point = tp.content.squeeze(" ").gsub("\r\n Platform"," - Platform").gsub("  - "," - ").gsub("\n","").gsub("\r","").gsub("\\"," / ").strip
+			timing_point = tp.content.squeeze(" ").gsub(" Platform"," (Platform").gsub("  - "," - ").gsub("\n","").gsub("\r","").gsub("\\"," / ").squeeze(" ").strip
+			if (tp.content.match('Platform'))
+			  timing_point.concat(")")
+			end;
+			timing_point
 		end
 	end
 	time_points.delete(nil)
@@ -42,7 +46,7 @@
 	timetable[period] = periodtimes.to_a
 	# pp timetable
 	filename = timetable["short_name"] + "-" + timetable["long_name"]+ "." + period + ".yml"
-	filename = filename.downcase.gsub(" ","-").gsub("/","-")
+	filename = filename.downcase.gsub(" ","-").gsub("/","-").gsub("(","").gsub(")","")
 	puts "Saving " + filename
 	File.open("#{File.dirname(__FILE__)}/output/"+filename, "w") do |f|
 		f.write timetable.to_yaml

--- a/maxious-canberra-transit-feed/02-tidytimepoints.rb
+++ b/maxious-canberra-transit-feed/02-tidytimepoints.rb
@@ -2,9 +2,9 @@
 require 'pp'
 require 'yaml'
 class Array
-  def to_yaml_style
-    :inline
-  end
+ def to_yaml_style
+  :inline
+ end
 end
 Dir.chdir("output")
 
@@ -25,59 +25,60 @@
 #pp $time_points_sources.sort
 
 time_point_corrections = {"North Lynehamham" => "North Lyneham",
-			  "Lathlain St Platform 2" => "Lathlain St Bus Station - Platform 2",
-			  "Lathlain St Sation - Platform 5" => "Lathlain St Bus Station - Platform 5",
-	 		  "Lathlain Steet Station" => "Lathlain St Bus Station",
-			  "Lathlain St - Platform 3"  => "Lathlain St Bus Station - Platform 3",
-			  "Lathlain Steet Station - Platform 3"	  => "Lathlain St Bus Station - Platform 3",
-			  "Lathlain St Station" => "Lathlain St Bus Station",
-			  "Lathlain St Station - Platform 1" => "Lathlain St Bus Station - Platform 1",
-			  "Lathlain St Station - Platform 2" => "Lathlain St Bus Station - Platform 2",
-			  "Lathlain St Station - Platform 3" => "Lathlain St Bus Station - Platform 3",
-			  "Lathlain St Station - Platform 4" => "Lathlain St Bus Station - Platform 4",
-			  "Lathlain St Station - Platform 5" => "Lathlain St Bus Station - Platform 5",
-			  "Lathlain St Station - Platform 6" => "Lathlain St Bus Station - Platform 6",
-			  "Flemington Rd, Sandford St" => "Flemington Rd/Sandford St",
-			  "Erindale Centre /Sternberg Crescent" => "Erindale Drive/Sternberg",
-			  "Canberra Hospita" => "Canberra Hospital",
-			  "Cohen Str Station - Platform 1" => "Cohen St Bus Station - Platform 1",
-			  "Cohen Street Station" => "Cohen St Bus Station",
-			  "Cohen Street Station - Platform 2" => "Cohen St Bus Station - Platform 2",
-			  "Cohn St Station - Platform 3" => "Cohen St Bus Station - Platform 3",
-			  "Cohen St Station" => "Cohen St Bus Station",
-			  "Cohen St Station - Platform 1" => "Cohen St Bus Station - Platform 1",
-			  "Cohen St Station - Platform 2" => "Cohen St Bus Station - Platform 2",
-			  "Cohen St Station - Platform 3" => "Cohen St Bus Station - Platform 3",
-			  "Cohen St Station - Platform 4" => "Cohen St Bus Station - Platform 4",
-			  "Cohen St Station - Platform 5" => "Cohen St Bus Station - Platform 5",
-			  "Cohen St Station - Platform 6" => "Cohen St Bus Station - Platform 6",
-			  "City - Platform 7" => "City Interchange - Platform 7",
-			  "Cameron Avenue Station" => "Cameron Ave Bus Station",
-			  "Cameron Avenue Station - Platform 1" => "Cameron Ave Bus Station - Platform 1",
-			  "Cameron Avenue Station - Platform 2" => "Cameron Ave Bus Station - Platform 2",
-			  "Cameron Avenue Station - Platform 3" => "Cameron Ave Bus Station - Platform 3",
-			  "Cameron Avenue Station - Platform 4" => "Cameron Ave Bus Station - Platform 4",
-			  "Cameron Avenue Station - Platform 5" => "Cameron Ave Bus Station - Platform 5",
-			  "Cameron Ave Station" => "Cameron Ave Bus Station",
-			  "Cameron Ave Station - Platform 1" => "Cameron Ave Bus Station - Platform 1",
-			  "Cameron Ave Station - Platform 2" => "Cameron Ave Bus Station - Platform 2",
-			  "Cameron Ave Station - Platform 3" => "Cameron Ave Bus Station - Platform 3",
-			  "Cameron Ave Station - Platform 4" => "Cameron Ave Bus Station - Platform 4",
-			  "Cameron Ave Station - Platform 5" => "Cameron Ave Bus Station - Platform 5",
-			  "Burton & Garranan Hall, Daley Road ANU" => "Burton & Garran Hall/Daley Road ANU",
-			  "Burton & Garranan Hall,Daley Road ANU" => "Burton & Garran Hall/Daley Road ANU",
-			  "Garran/Daley Rd" => "Burton & Garran Hall/Daley Road ANU",
-			  "Kingstons Ave/National Crt" => "Kings Ave/National Crt",
-			  "Newcastle Street after Isa St" => "Newcastle / Isa Street Fyshwick",
-			  "National Circ/Canberra Ave" => "National Circuit / Canberra Ave",
-			  "St Clare of Conder" => "St Clare of Assisi Primary",
-			  "McKillop College Isabella Campus" => "MacKillop College Isabella Campus",
-			  "Outrim / Duggan" => "Outtrim / Duggan",
-			  "Manuka Captain Cook" => "Manuka/Captain Cook",
-			  "Manuka, Captain Cook" => "Manuka/Captain Cook",
-			  "Hospice, Menindee Drive" => "Hospice",
-			  "Tharwa/Pocket" => "Tharwa/Pockett",
-			  "Paul-Co / Mirrabei" => "Paul Coe / Mirrabei"
+			 "Lathlain St (Platform 2)" => "Lathlain St Bus Station (Platform 2)",
+			 "Lathlain St Sation (Platform 5)" => "Lathlain St Bus Station (Platform 5)",
+	 		 "Lathlain Steet Station" => "Lathlain St Bus Station",
+			 "Lathlain St (Platform 3)" => "Lathlain St Bus Station (Platform 3)",
+			 "Lathlain Steet Station (Platform 3)"	 => "Lathlain St Bus Station (Platform 3)",
+			 "Lathlain St Station" => "Lathlain St Bus Station",
+			 "Lathlain St Station (Platform 1)" => "Lathlain St Bus Station (Platform 1)",
+			 "Lathlain St Station (Platform 2)" => "Lathlain St Bus Station (Platform 2)",
+			 "Lathlain St Station (Platform 3)" => "Lathlain St Bus Station (Platform 3)",
+			 "Lathlain St Station (Platform 4)" => "Lathlain St Bus Station (Platform 4)",
+			 "Lathlain St Station (Platform 5)" => "Lathlain St Bus Station (Platform 5)",
+			 "Lathlain St Station (Platform 6)" => "Lathlain St Bus Station (Platform 6)",
+			 "Flemington Rd, Sandford St" => "Flemington Rd/Sandford St",
+			 "Erindale Centre /Sternberg Crescent" => "Erindale Drive/Sternberg",
+			 "Canberra Hospita" => "Canberra Hospital",
+			 "Cohen Str Station (Platform 1)" => "Cohen St Bus Station (Platform 1)",
+			 "Cohen Street Station" => "Cohen St Bus Station",
+			 "Cohen Street Station (Platform 2)" => "Cohen St Bus Station (Platform 2)",
+			 "Cohn St Station (Platform 3)" => "Cohen St Bus Station (Platform 3)",
+			 "Cohen St Station" => "Cohen St Bus Station",
+			 "Cohen St Station (Platform 1)" => "Cohen St Bus Station (Platform 1)",
+			 "Cohen St Station (Platform 2)" => "Cohen St Bus Station (Platform 2)",
+			 "Cohen St Station (Platform 3)" => "Cohen St Bus Station (Platform 3)",
+			 "Cohen St Station (Platform 4)" => "Cohen St Bus Station (Platform 4)",
+			 "Cohen St Station (Platform 5)" => "Cohen St Bus Station (Platform 5)",
+			 "Cohen St Station (Platform 6)" => "Cohen St Bus Station (Platform 6)",
+			 "City (Platform 7)" => "City Interchange (Platform 7)",
+			 "Cameron Avenue Station" => "Cameron Ave Bus Station",
+			 "Cameron Avenue Station (Platform 1)" => "Cameron Ave Bus Station (Platform 1)",
+			 "Cameron Avenue Station (Platform 2)" => "Cameron Ave Bus Station (Platform 2)",
+			 "Cameron Avenue Station (Platform 3)" => "Cameron Ave Bus Station (Platform 3)",
+			 "Cameron Avenue Station (Platform 4)" => "Cameron Ave Bus Station (Platform 4)",
+			 "Cameron Avenue Station (Platform 5)" => "Cameron Ave Bus Station (Platform 5)",
+			 "Cameron Ave Station" => "Cameron Ave Bus Station",
+			 "Cameron Ave Station (Platform 1)" => "Cameron Ave Bus Station (Platform 1)",
+			 "Cameron Ave Station (Platform 2)" => "Cameron Ave Bus Station (Platform 2)",
+			 "Cameron Ave Station (Platform 3)" => "Cameron Ave Bus Station (Platform 3)",
+			 "Cameron Ave Station (Platform 4)" => "Cameron Ave Bus Station (Platform 4)",
+			 "Cameron Ave Station (Platform 5)" => "Cameron Ave Bus Station (Platform 5)",
+			 "Burton & Garranan Hall, Daley Road ANU" => "Burton & Garran Hall/Daley Road ANU",
+			 "Burton & Garranan Hall,Daley Road ANU" => "Burton & Garran Hall/Daley Road ANU",
+			 "Garran/Daley Rd" => "Burton & Garran Hall/Daley Road ANU",
+			 "Kingstons Ave/National Crt" => "Kings Ave/National Crt",
+			 "Newcastle Street after Isa St" => "Newcastle / Isa Street Fyshwick",
+			 "National Circ/Canberra Ave" => "National Circuit / Canberra Ave",
+			 "St Clare of Conder" => "St Clare of Assisi Primary",
+			 "McKillop College Isabella Campus" => "MacKillop College Isabella Campus",
+			 "Outrim / Duggan" => "Outtrim / Duggan",
+			 "Manuka Captain Cook" => "Manuka/Captain Cook",
+			 "Manuka, Captain Cook" => "Manuka/Captain Cook",
+			 "Menindee Drive - Hospice" => "Hospice",
+			 "Hospice, Menindee Drive" => "Hospice",
+			 "Tharwa/Pocket" => "Tharwa/Pockett",
+			 "Paul-Co / Mirrabei" => "Paul Coe / Mirrabei"
 			}
 time_point_corrections.each do |wrong, right|
 	$time_points_sources[wrong].each do |wrongfile|
@@ -86,7 +87,7 @@
 		badtimetable["time_points"][badentrynumber] = right
 		puts "Corrected '" + wrong + "' to '" + right + "' in " + wrongfile
 		File.open(wrongfile, "w") do |f|
-	  		f.write badtimetable.to_yaml
+	 		f.write badtimetable.to_yaml
 		end
 	end
 end

--- a/maxious-canberra-transit-feed/05-addbetweenpointstotimetables.rb
+++ b/maxious-canberra-transit-feed/05-addbetweenpointstotimetables.rb
@@ -23,9 +23,11 @@
     timetable["between_stops"] = {}
     for i in 0..timetable["time_points"].length-2
 	begin
-	  searchFrom = timetable["time_points"][i].escape_single_quotes.split("-")[0].strip
-	  searchTo = timetable["time_points"][i+1].escape_single_quotes.split("-")[0].strip
-	  
+	  searchFrom = timetable["time_points"][i].escape_single_quotes.split("(")[0].strip
+	  searchTo = timetable["time_points"][i+1].escape_single_quotes.split("(")[0].strip
+	#  print "SELECT * from between_stops
+	#	  WHERE fromlocation = '#{searchFrom}'
+	#  AND tolocation = '#{searchTo}' AND routes LIKE '%#{route_name};%'"
 	  between_points = connbus.exec("SELECT * from between_stops
 		  WHERE fromlocation = '#{searchFrom}'
 	  AND tolocation = '#{searchTo}' AND routes LIKE '%#{route_name};%'")
@@ -34,8 +36,9 @@
 		#conn.close() if conn
 	end
 	between_points.each do |between_point_row|
-	  timetable["between_stops"][timetable["time_points"][i] + '-' +timetable["time_points"][i+1]] \
-	      = between_point_row['points'].split(";");
+		points = between_point_row['points'].split(";")
+		points.delete("")
+		timetable["between_stops"][timetable["time_points"][i] + '-' +timetable["time_points"][i+1]] = points;
 	end
     end
     #pp timetable["between_stops"]

--- a/maxious-canberra-transit-feed/05-cleanupyaml.sh
+++ /dev/null
@@ -1,3 +1,1 @@
-#!/bin/bash
-sed -i "s/- ---/- /g" cbrtable.yml
 

--- a/maxious-canberra-transit-feed/createfeed.py
+++ b/maxious-canberra-transit-feed/createfeed.py
@@ -69,8 +69,10 @@
   stopset = set()
   for route in routedata:
     stopset.update(route['time_points'])
-    for between_list in route['between_stops']:
-      stopset.update(route['between_stops'][between_list])
+    if len(route['between_stops']) > 0:
+	for between_list in route['between_stops']:
+		if route['between_stops'][between_list] != None:
+		      stopset.update(route['between_stops'][between_list])
 
   toprune = list()
   for i, stop in enumerate(stopsdata):

--- a/maxious-canberra-transit-feed/gs.sh
+++ /dev/null
@@ -1,6 +1,1 @@
-gs_osmdb_compile ~/osm/canberra.osm canberra.osmdb
-gs_gtfsdb_build cbrfeed.zip canberra.gtfsdb
-gs_link_osm_gtfs map.gdb canberra.osmdb canberra.gtfsdb
-gs_import_osm
-gs_import_gtfs
 

--- a/maxious-canberra-transit-feed/output/10-to-cohen-st-station.stop_times.yml
+++ b/maxious-canberra-transit-feed/output/10-to-cohen-st-station.stop_times.yml
@@ -5,5 +5,5 @@
   Cameron Ave Bus Station-Lathlain St Bus Station: []
 short_name: "10"
 stop_times: [["-", "-", "-", "-", "-", "-", 632a, 642a, 644a, 649a, 659a, 706a, 708a, 712a], ["-", "-", "-", "-", "-", "-", 702a, 712a, 714a, 719a, 729a, 736a, 738a, 742a], ["-", "-", "-", "-", "-", "-", 732a, 742a, 744a, 749a, 759a, 806a, 808a, 812a], ["-", "-", "-", "-", "-", "-", 802a, 812a, 814a, 819a, 829a, 836a, 838a, 842a], ["-", "-", "-", 800a, 803a, 808a, 820a, 830a, 832a, 837a, 847a, 854a, 856a, 900a], ["-", "-", "-", 830a, 833a, 838a, 850a, 900a, 902a, 907a, 917a, 924a, 926a, 930a], ["-", "-", "-", 900a, 903a, 908a, 920a, 930a, 932a, 937a, 947a, 954a, 956a, 1000a], [918a, 929a, 934a, 941a, 944a, 949a, 1001a, 1011a, 1013a, 1018a, 1028a, 1035a, 1037a, 1041a], [948a, 959a, 1004a, 1011a, 1014a, 1019a, 1031a, 1041a, 1043a, 1048a, 1058a, 1105a, 1107a, 1111a], [1018a, 1029a, 1034a, 1041a, 1044a, 1049a, 1101a, 1111a, 1113a, 1118a, 1128a, 1135a, 1137a, 1141a], [1048a, 1059a, 1104a, 1111a, 1114a, 1119a, 1131a, 1141a, 1143a, 1148a, 1158a, 1205p, 1207p, 1211p], [1118a, 1129a, 1134a, 1141a, 1144a, 1149a, 1201p, 1211p, 1213p, 1218p, 1228p, 1235p, 1237p, 1241p], [1148a, 1159a, 1204p, 1211p, 1214p, 1219p, 1231p, 1241p, 1243p, 1248p, 1258p, 105p, 107p, 111p], [1218p, 1229p, 1234p, 1241p, 1244p, 1249p, 101p, 111p, 113p, 118p, 128p, 135p, 137p, 141p], [1248p, 1259p, 104p, 111p, 114p, 119p, 131p, 141p, 143p, 148p, 158p, 205p, 207p, 211p], [118p, 129p, 134p, 141p, 144p, 149p, 201p, 211p, 213p, 218p, 228p, 235p, 237p, 241p], [148p, 159p, 204p, 211p, 214p, 219p, 231p, 241p, 243p, 248p, 258p, 305p, 307p, 311p], [218p, 229p, 234p, 241p, 244p, 249p, 301p, 311p, 314p, 319p, 329p, 336p, 338p, 342p], [248p, 259p, 304p, 311p, 315p, 320p, 332p, 342p, 345p, 350p, 400p, 407p, 409p, 413p], [318p, 329p, 334p, 341p, 345p, 350p, 402p, 412p, 415p, 420p, 430p, 437p, 439p, 443p], ["-", "-", "-", "-", "-", "-", 416p, 426p, 429p, 434p, 444p, 451p, 453p, 457p], [348p, 359p, 404p, 411p, 415p, 420p, 432p, 442p, 445p, 450p, 500p, 507p, 509p, 513p], ["-", "-", "-", "-", "-", "-", 446p, 456p, 459p, 504p, 514p, 521p, 523p, 527p], ["-", "-", 431p, 441p, 445p, 450p, 502p, 512p, 515p, 520p, 530p, 537p, 539p, 543p], ["-", "-", "-", "-", "-", "-", 516p, 526p, 529p, 534p, 544p, 551p, 553p, 557p], ["-", "-", 458p, 511p, 515p, 520p, 532p, 542p, 545p, 550p, 600p, 607p, 609p, 613p], ["-", "-", "-", "-", "-", "-", 546p, 556p, 559p, 604p, 614p, 621p, 623p, 627p], ["-", "-", "-", 540p, 544p, 549p, 601p, 611p, 614p, 619p, 629p, 636p, 638p, 641p], ["-", "-", "-", "-", "-", "-", 616p, 626p, 629p, 634p, 644p, 651p, 653p, 656p], ["-", "-", "-", 611p, 615p, 620p, 632p, 642p, 644p, 649p, 659p, 706p, 708p, 711p], ["-", "-", "-", "-", "-", "-", 736p, 746p, 748p, 753p, 803p, 810p, 812p, 815p], ["-", "-", "-", "-", "-", "-", 836p, 846p, 848p, 853p, 903p, 910p, 912p, 915p], ["-", "-", "-", "-", "-", "-", 936p, 946p, 948p, 953p, 1003p, 1010p, 1012p, 1015p], ["-", "-", "-", "-", "-", "-", 1036p, 1046p, 1048p, 1053p, 1103p, 1110p, 1112p, 1115p], ["-", "-", "-", "-", "-", "-", 1136p, 1146p, 1148p, 1153p, 1203a, 1210a, 1212a, 1215a]]
-time_points: [Fairbairn Park, Brindabella Business Park, Majura Business Park, Campbell Park Offices, ADFA, War Memorial, City Interchange - Platform 4, Caswell Drive, Aranda, Cook, Jamison Centre, Cameron Ave Bus Station, Lathlain St Bus Station, Cohen St Bus Station]
+time_points: [Fairbairn Park, Brindabella Business Park, Majura Business Park, Campbell Park Offices, ADFA, War Memorial, City Interchange (Platform 4), Caswell Drive, Aranda, Cook, Jamison Centre, Cameron Ave Bus Station, Lathlain St Bus Station, Cohen St Bus Station]
 

--- a/maxious-canberra-transit-feed/output/10-to-fairbairn-park.stop_times.yml
+++ b/maxious-canberra-transit-feed/output/10-to-fairbairn-park.stop_times.yml
@@ -1,9 +1,9 @@
 --- 
 long_name: To Fairbairn Park
 between_stops: 
-  Cohen St Bus Station - Platform 2-Lathlain St Bus Station - Platform 3: []
-  Lathlain St Bus Station - Platform 3-Cameron Ave Bus Station - Platform 3: []
+  Lathlain St Bus Station (Platform 3)-Cameron Ave Bus Station (Platform 3): []
+  Cohen St Bus Station (Platform 2)-Lathlain St Bus Station (Platform 3): []
 short_name: "10"
 stop_times: [[553a, 555a, 559a, 606a, 616a, 621a, 624a, 634a, "-", "-", "-", "-", "-", "-"], [624a, 626a, 630a, 637a, 647a, 652a, 655a, 705a, "-", "-", "-", "-", "-", "-"], [654a, 656a, 700a, 707a, 717a, 722a, 725a, 736a, 746a, 752a, 756a, 803a, "-", "-"], ["-", "-", "-", "-", 724a, 729a, 732a, 742a, "-", "-", "-", "-", "-", "-"], [709a, 711a, 715a, 722a, 732a, 737a, 740a, 750a, "-", "-", "-", "-", "-", "-"], [724a, 726a, 730a, 737a, 747a, 752a, 755a, 806a, 816a, 822a, 826a, 835a, "-", "-"], ["-", "-", "-", "-", 754a, 759a, 802a, 812a, "-", "-", "-", "-", "-", "-"], [739a, 741a, 745a, 752a, 802a, 807a, 810a, 820a, "-", "-", "-", "-", "-", "-"], [754a, 756a, 800a, 807a, 817a, 822a, 825a, 836a, 846a, 852a, 856a, "-", "-", "-"], ["-", "-", "-", 812a, 822a, 827a, 830a, 840a, "-", "-", "-", "-", "-", "-"], [809a, 811a, 815a, 822a, 832a, 837a, 840a, 851a, 901a, 907a, 911a, 918a, 927a, 935a], [824a, 826a, 830a, 837a, 847a, 852a, 855a, 905a, "-", "-", "-", "-", "-", "-"], [839a, 841a, 845a, 852a, 902a, 907a, 910a, 921a, 931a, 937a, 940a, 947a, 956a, 1004a], [854a, 856a, 900a, 907a, 917a, 922a, 925a, 935a, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 955a, 1005a, 1011a, 1014a, 1021a, 1030a, 1038a], [925a, 927a, 931a, 938a, 948a, 953a, 955a, 1005a, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 1025a, 1035a, 1041a, 1044a, 1051a, 1100a, 1108a], [957a, 959a, 1003a, 1010a, 1020a, 1025a, 1027a, 1037a, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 1055a, 1105a, 1111a, 1114a, 1121a, 1130a, 1138a], [1026a, 1028a, 1032a, 1039a, 1049a, 1054a, 1056a, 1106a, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 1125a, 1135a, 1141a, 1144a, 1151a, 1200p, 1208p], [1056a, 1058a, 1102a, 1109a, 1119a, 1124a, 1126a, 1136a, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 1155a, 1205p, 1211p, 1214p, 1221p, 1230p, 1238p], [1126a, 1128a, 1132a, 1139a, 1149a, 1154a, 1156a, 1206p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 1225p, 1235p, 1241p, 1244p, 1251p, 100p, 108p], [1156a, 1158a, 1202p, 1209p, 1219p, 1224p, 1226p, 1236p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 1255p, 105p, 111p, 114p, 121p, 130p, 138p], [1226p, 1228p, 1232p, 1239p, 1249p, 1254p, 1256p, 106p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 125p, 135p, 141p, 144p, 151p, 200p, 208p], [1256p, 1258p, 102p, 109p, 119p, 124p, 126p, 136p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 155p, 205p, 211p, 214p, 221p, 230p, 238p], [126p, 128p, 132p, 139p, 149p, 154p, 156p, 206p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 225p, 235p, 241p, 244p, 251p, 300p, 308p], [156p, 158p, 202p, 209p, 219p, 224p, 226p, 236p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 255p, 305p, 311p, 315p, 322p, 331p, 339p], [226p, 228p, 232p, 239p, 249p, 254p, 256p, 306p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 329p, 339p, 345p, 349p, 356p, 405p, 413p], [256p, 258p, 302p, 309p, 319p, 324p, 326p, 336p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 359p, 409p, 415p, 419p, 426p, 435p, 443p], [326p, 328p, 332p, 339p, 349p, 354p, 356p, 406p, "-", "-", "-", "-", "-", "-"], [341p, 343p, 347p, 354p, 404p, 409p, 411p, 421p, "-", "-", "-", "-", "-", "-"], [356p, 358p, 402p, 409p, 419p, 424p, 426p, 436p, "-", "-", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-", "-", 447p, 457p, 503p, 507p, "-", "-", "-"], [411p, 413p, 417p, 424p, 434p, 439p, 441p, 451p, "-", "-", "-", "-", "-", "-"], [426p, 428p, 432p, 439p, 449p, 454p, 456p, 506p, "-", "-", "-", "-", "-", "-"], [441p, 443p, 447p, 454p, 504p, 509p, 511p, 521p, "-", "-", "-", "-", "-", "-"], [456p, 458p, 502p, 509p, 519p, 524p, 526p, 536p, "-", "-", "-", "-", "-", "-"], [511p, 513p, 517p, 524p, 534p, 539p, 541p, 551p, "-", "-", "-", "-", "-", "-"], [526p, 528p, 532p, 539p, 549p, 554p, 556p, 606p, "-", "-", "-", "-", "-", "-"], [541p, 543p, 547p, 554p, 604p, 609p, 611p, 621p, "-", "-", "-", "-", "-", "-"], [620p, 622p, 626p, 633p, 643p, 648p, 650p, 700p, "-", "-", "-", "-", "-", "-"], [720p, 722p, 725p, 732p, 742p, 747p, 749p, 759p, "-", "-", "-", "-", "-", "-"], [820p, 822p, 825p, 832p, 842p, 847p, 849p, 859p, "-", "-", "-", "-", "-", "-"], [920p, 922p, 925p, 932p, 942p, 947p, 949p, 959p, "-", "-", "-", "-", "-", "-"], [1020p, 1022p, 1025p, 1032p, 1042p, 1047p, 1049p, 1059p, "-", "-", "-", "-", "-", "-"], [1120p, 1122p, 1125p, 1132p, 1142p, 1147p, 1149p, "-", "-", "-", "-", "-", "-", "-"]]
-time_points: [Cohen St Bus Station - Platform 2, Lathlain St Bus Station - Platform 3, Cameron Ave Bus Station - Platform 3, Jamison Centre, Cook, Aranda, Caswell Drive, City Interchange - Platform 7, War Memorial, ADFA, Campbell Park Offices, Majura Business Park, Brindabella Business Park, Fairbairn Park]
+time_points: [Cohen St Bus Station (Platform 2), Lathlain St Bus Station (Platform 3), Cameron Ave Bus Station (Platform 3), Jamison Centre, Cook, Aranda, Caswell Drive, City Interchange (Platform 7), War Memorial, ADFA, Campbell Park Offices, Majura Business Park, Brindabella Business Park, Fairbairn Park]
 

--- a/maxious-canberra-transit-feed/output/11-111-to-city-interchange.stop_times.yml
+++ b/maxious-canberra-transit-feed/output/11-111-to-city-interchange.stop_times.yml
@@ -1,8 +1,8 @@
 --- 
 long_name: To City Interchange
 between_stops: 
-  Woden Interchange - Platform 9-City Interchange: [Wjz3m3b, Wjz3m31, Wjz3eRR, Wjz3eZ4, Wjz4KO9, Wjz4KNu]
+  Woden Interchange (Platform 9)-City Interchange: [Wjz3m3b, Wjz3m31, Wjz3eRR, Wjz3eZ4, Wjz4KO9, Wjz4KNu]
 short_name: 11/111
 stop_times: [[621a, 627a, 641a, 651a, 657a, 713a, 729a], [641a, 647a, 701a, 711a, 717a, 733a, 751a], [701a, 707a, 721a, 731a, 737a, 754a, 812a], [721a, 727a, 742a, 752a, 758a, 815a, 833a], [741a, 748a, 803a, 813a, 819a, 836a, 854a], [801a, 808a, 823a, 833a, 839a, 856a, 914a], [821a, 828a, 843a, 853a, 859a, 914a, "-"], [841a, 848a, 903a, 913a, 919a, 933a, "-"], [921a, 927a, 940a, 949a, 955a, 1007a, "-"], [951a, 957a, 1010a, 1019a, 1025a, 1037a, "-"], [1021a, 1027a, 1040a, 1049a, 1055a, 1107a, "-"], [1051a, 1057a, 1110a, 1119a, 1125a, 1137a, "-"], [1121a, 1127a, 1140a, 1149a, 1155a, 1207p, "-"], [1151a, 1157a, 1210p, 1219p, 1225p, 1237p, "-"], [1221p, 1227p, 1240p, 1249p, 1255p, 107p, "-"], [1251p, 1257p, 110p, 119p, 125p, 137p, "-"], [121p, 127p, 140p, 149p, 155p, 207p, "-"], [151p, 157p, 210p, 219p, 225p, 237p, "-"], [221p, 227p, 240p, 249p, 255p, 307p, "-"], [251p, 257p, 310p, 319p, 325p, 339p, "-"], [323p, 330p, 345p, 355p, 401p, 416p, "-"], [340p, 347p, 402p, 412p, 418p, 433p, "-"], [400p, 407p, 422p, 432p, 438p, 453p, "-"], [418p, 425p, 440p, 450p, 456p, 511p, "-"], [441p, 448p, 503p, 513p, 519p, "-", "-"], [501p, 508p, 523p, 533p, 539p, "-", "-"], [521p, 528p, 543p, 553p, 559p, 614p, "-"], [541p, 548p, 603p, 613p, 619p, "-", "-"], [601p, 608p, 623p, 633p, 639p, "-", "-"], [625p, 632p, 645p, 654p, 700p, 712p, "-"], [725p, 731p, 744p, 753p, 759p, 811p, "-"], [825p, 831p, 844p, 853p, 859p, 911p, "-"], [925p, 931p, 944p, 953p, 959p, 1011p, "-"], [1025p, 1031p, 1044p, 1053p, 1059p, 1111p, "-"], [1125p, 1131p, 1144p, 1153p, 1159p, "-", "-"]]
-time_points: [Tuggeranong Interchange - Platform 3, MacKillop College Isabella Campus, Theodore, Calwell Shops, Erindale Centre, Woden Interchange - Platform 9, City Interchange]
+time_points: [Tuggeranong Interchange (Platform 3), MacKillop College Isabella Campus, Theodore, Calwell Shops, Erindale Centre, Woden Interchange (Platform 9), City Interchange]
 

--- a/maxious-canberra-transit-feed/output/11-111-to-tuggeranong-interchange.stop_times.yml
+++ b/maxious-canberra-transit-feed/output/11-111-to-tuggeranong-interchange.stop_times.yml
@@ -1,8 +1,8 @@
 --- 
 long_name: To Tuggeranong Interchange
 between_stops: 
-  City Interchange - Platform 1-Woden Interchange - Platform 11: ["", Wjz4KNu, Wjz4KO9, Wjz3eZ4, Wjz3eRR, Wjz3m31, Wjz3m3b]
+  City Interchange (Platform 1)-Woden Interchange (Platform 11): [Wjz4KNu, Wjz4KO9, Wjz3eZ4, Wjz3eRR, Wjz3m31, Wjz3m3b]
 short_name: 11/111
 stop_times: [["-", "-", "-", 546a, 556a, 609a, 616a], ["-", "-", "-", 606a, 616a, 629a, 636a], ["-", "-", "-", 626a, 636a, 649a, 656a], ["-", "-", "-", 646a, 656a, 709a, 716a], ["-", "-", "-", 706a, 716a, 729a, 736a], ["-", "-", "-", 725a, 735a, 749a, 756a], ["-", "-", "-", 745a, 755a, 809a, 816a], ["-", "-", "-", 805a, 815a, 829a, 836a], ["-", "-", "-", 825a, 835a, 849a, 856a], ["-", "-", "-", 845a, 855a, 909a, 916a], ["-", "-", "-", 917a, 927a, 940a, 946a], ["-", 930a, 942a, 948a, 957a, 1010a, 1016a], ["-", 1000a, 1012a, 1018a, 1027a, 1040a, 1046a], ["-", 1030a, 1042a, 1048a, 1057a, 1110a, 1116a], ["-", 1100a, 1112a, 1118a, 1127a, 1140a, 1146a], ["-", 1130a, 1142a, 1148a, 1157a, 1210p, 1216p], ["-", 1200p, 1212p, 1218p, 1227p, 1240p, 1246p], ["-", 1230p, 1242p, 1248p, 1257p, 110p, 116p], ["-", 100p, 112p, 118p, 127p, 140p, 146p], ["-", 130p, 142p, 148p, 157p, 210p, 216p], ["-", 200p, 212p, 218p, 227p, 240p, 246p], ["-", 230p, 242p, 248p, 257p, 311p, 318p], ["-", 300p, 314p, 321p, 331p, 345p, 352p], ["-", 320p, 334p, 341p, 351p, 405p, 412p], ["-", 340p, 354p, 401p, 411p, 425p, 432p], ["-", 400p, 414p, 421p, 431p, 445p, 452p], ["-", 425p, 439p, 446p, 456p, 510p, 517p], ["-", 440p, 454p, 501p, 511p, 525p, 532p], ["-", 500p, 514p, 521p, 531p, 545p, 552p], [456p, 513p, 527p, 534p, 544p, 558p, 605p], [516p, 533p, 547p, 554p, 604p, 618p, 625p], [534p, 551p, 605p, 612p, 622p, 636p, 641p], [556p, 613p, 627p, 633p, 642p, 655p, 701p], [616p, 633p, 645p, 651p, 700p, 713p, 719p], ["-", 733p, 745p, 751p, 800p, 813p, 819p], ["-", 833p, 845p, 851p, 900p, 913p, 919p], ["-", 933p, 945p, 951p, 1000p, 1013p, 1019p], ["-", 1033p, 1045p, 1051p, 1100p, 1113p, 1119p]]
-time_points: [City Interchange - Platform 1, Woden Interchange - Platform 11, Erindale Centre, Calwell Shops, Theodore, MacKillop College Isabella Campus, Tuggeranong Interchange]
+time_points: [City Interchange (Platform 1), Woden Interchange (Platform 11), Erindale Centre,