translink 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 2012-12-14 / v3.0.0
4
+
5
+ * Update Mechanize to 2.5.1.
6
+ * Add version command. Prints the current version.
7
+ * Drop auto incrementing primary keys.
8
+ * Add uniqueness constraints to primary keys.
9
+ * Rename routes.id -> routes.route_id. Type changed to TEXT. Value is short name provided by Translink.
10
+ * Rename trips.id -> trips.trip_id. Value is trip id provided by Translink.
11
+ * Rename stops.id -> stops.stop_id. Type changed to TEXT. Value is stop id provided by Translink.
12
+ * Primary key on stop_times is now composite of stop_times.arrival_time, stop_times.trip_id and stop_times.stop_id.
13
+ * Change Page::Route#trip_pages to only return trips for the given date.
14
+ * Schema is created with SQL as opposed to DM's automatic migrations.
15
+ * Change short name for some routes. CGLD -> CityGlider, LOOP -> City Loop and SHLP -> Spring Hill City Loop.
16
+ * Some routes and stop times have duplicates. Only persist unique sets.
17
+ * Add exception handling. Retry HTTP requests with bad responses. Skip and output page if it cannot be resolved.
18
+ * Enforce integrity with foreign key constraints.
19
+ * Resume scraping from a specific route and limit number of subsequent routes.
20
+
3
21
  ## 2012-07-21 / v2.0.0
4
22
 
5
23
  * Add headsign column to trips table.
data/README.md CHANGED
@@ -2,17 +2,16 @@
2
2
 
3
3
  [![Build Status](https://secure.travis-ci.org/tatey/translink.png)](http://travis-ci.org/tatey/translink)
4
4
 
5
- [Translink](http://translink.com.au/) (Organisation) coordinates public transport operations in
5
+ [TransLink](http://translink.com.au/) (Organisation) coordinates public transport operations in
6
6
  South-East Queensland. Their website has an abundance of data with no easy way for a developer
7
7
  to query it.
8
8
 
9
9
  Translink (Program) scrapes bus routes, trips, stops and times into a relational database.
10
10
  The schema is a subset of the [General Transit Feed Specification](https://developers.google.com/transit/gtfs/reference).
11
- Data is sourced from the [Translink website](http://translink.com.au/).You should be
11
+ Data is sourced from the [TransLink website](http://translink.com.au/).You should be
12
12
  aware their data is protected by [copyright](http://translink.com.au/site-information/legal/copyright).
13
13
 
14
- I created Translink (Program) to solve my problem of getting lost on new routes. With this data I
15
- have been working on an app for iOS called [Next Stop](http://nextstop.me).
14
+ Translink (Program) was created to provide data for my iOS app, [Next Stop](http://nextstop.me).
16
15
 
17
16
  ## Installation
18
17
 
@@ -32,24 +31,31 @@ them into a SQLite database named "2011-11-24.sqlite3" in the current working di
32
31
 
33
32
  Change the path to the SQLite database.
34
33
 
35
- $ translink scrape 2011-11-24 --uri=sqlite:///Users/Tate/Downloads/translink.sqlite3
34
+ $ translink scrape 2011-11-24 ~/Downloads/translink.sqlite3
35
+
36
+ Get a specific route.
37
+
38
+ $ translink scrape 2011-11-24 ~/Desktop/translink.sqlite3 http://jp.translink.com.au/travel-information/network-information/buses/435/2011-11-24 0"
36
39
 
37
40
  ## Queries
38
41
 
39
42
  Stops the 130 visits on the outbound trip.
40
43
 
41
- SELECT DISTINCT(stops.id), stops.stop_name, stops.stop_lat, stops.stop_lon FROM routes
42
- INNER JOIN trips ON trips.route_id = routes.id
43
- INNER JOIN stop_times ON stop_times.trip_id = trips.id
44
- INNER JOIN stops ON stop_times.stop_id = stops.id
45
- WHERE routes.short_name = '130' AND trips.direction = 'outbound';
44
+ SELECT stops.*, stop_times.*
45
+ FROM routes
46
+ INNER JOIN trips ON trips.route_id = routes.route_id
47
+ INNER JOIN stop_times ON stop_times.trip_id = trips.trip_id
48
+ INNER JOIN stops ON stops.stop_id = stop_times.stop_id
49
+ WHERE routes.short_name = '130' AND trips.headsign = 'outbound'
50
+ GROUP BY stops.stop_id
51
+ ORDER BY stop_times.stop_sequence;
46
52
 
47
53
  Routes that visit the 'Calam Rd near Honeywood St' stop.
48
54
 
49
- SELECT DISTINCT(routes.id), short_name FROM stops
50
- INNER JOIN stop_times ON stop_times.stop_id = stops.id
51
- INNER JOIN trips ON stop_times.trip_id = trips.id
52
- INNER JOIN routes ON routes.id = trips.route_id
55
+ SELECT DISTINCT(routes.short_name) FROM stops
56
+ INNER JOIN stop_times ON stop_times.stop_id = stops.stop_id
57
+ INNER JOIN trips ON stop_times.trip_id = trips.trip_id
58
+ INNER JOIN routes ON routes.route_id = trips.route_id
53
59
  WHERE stops.stop_name = 'Calam Rd near Honeywood St';
54
60
 
55
61
  ## Schema
@@ -59,6 +65,11 @@ defined by Google for [Google Transit](https://developers.google.com/transit/goo
59
65
 
60
66
  ![Class Analysis Diagram](https://github.com/tatey/translink/raw/master/doc/schema.png)
61
67
 
68
+ ### Deviations from the General Transit Feed Specification
69
+
70
+ * `trips.service_id` is omitted. This cannot be extracted from the dataset.
71
+ * `routes.agency_id` is omitted. There is only one agent. The agent is Brisbane Transport.
72
+
62
73
  ## Contributing
63
74
 
64
75
  If you would like to help, please browse the [issues](https://github.com/tatey/translink/issues).
@@ -76,4 +87,4 @@ If you would like to help, please browse the [issues](https://github.com/tatey/t
76
87
  Doing something interesting with this data? Shoot me an [e-mail](mailto:tate@tatey.com). I'd love to see how
77
88
  this is being used. An acknowledgement of this project is appreciated, but not required.
78
89
 
79
- Copyright © 2011 Tate Johnson. Released under the MIT license. See LICENSE.
90
+ Copyright © 2011-2012 Tate Johnson. Released under the MIT license. See LICENSE.
@@ -7,7 +7,7 @@
7
7
  <key>ApplicationVersion</key>
8
8
  <array>
9
9
  <string>com.omnigroup.OmniGraffle</string>
10
- <string>139.7.0.167456</string>
10
+ <string>139.16.0.171715</string>
11
11
  </array>
12
12
  <key>AutoAdjust</key>
13
13
  <true/>
@@ -53,7 +53,7 @@
53
53
  <array>
54
54
  <dict>
55
55
  <key>Bounds</key>
56
- <string>{{493.23706937031238, 350.51866957905372}, {16, 14}}</string>
56
+ <string>{{493.07620422923145, 342.23403515968295}, {16, 14}}</string>
57
57
  <key>Class</key>
58
58
  <string>ShapedGraphic</string>
59
59
  <key>FitText</key>
@@ -98,8 +98,8 @@
98
98
  <key>Align</key>
99
99
  <integer>0</integer>
100
100
  <key>Text</key>
101
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
102
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
101
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
102
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
103
103
  {\colortbl;\red255\green255\blue255;}
104
104
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
105
105
 
@@ -110,7 +110,7 @@
110
110
  </dict>
111
111
  <dict>
112
112
  <key>Bounds</key>
113
- <string>{{462.76629588480574, 353.68516841247134}, {15, 14}}</string>
113
+ <string>{{462.65137810532838, 345.82730563367841}, {15, 14}}</string>
114
114
  <key>Class</key>
115
115
  <string>ShapedGraphic</string>
116
116
  <key>FitText</key>
@@ -155,8 +155,8 @@
155
155
  <key>Align</key>
156
156
  <integer>0</integer>
157
157
  <key>Text</key>
158
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
159
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
158
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
159
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
160
160
  {\colortbl;\red255\green255\blue255;}
161
161
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
162
162
 
@@ -179,8 +179,8 @@
179
179
  <integer>87</integer>
180
180
  <key>Points</key>
181
181
  <array>
182
- <string>{456.49999275129255, 368.94444378696022}</string>
183
- <string>{514.85421877508725, 369.25888085023411}</string>
182
+ <string>{456.49998236712037, 361.27562669605123}</string>
183
+ <string>{514.8542361855632, 360.78535600795692}</string>
184
184
  </array>
185
185
  <key>Style</key>
186
186
  <dict>
@@ -204,7 +204,7 @@
204
204
  </dict>
205
205
  <dict>
206
206
  <key>Bounds</key>
207
- <string>{{338.40940924489615, 352.82631853980075}, {15, 14}}</string>
207
+ <string>{{338.31344253872902, 346.75293510081792}, {15, 14}}</string>
208
208
  <key>Class</key>
209
209
  <string>ShapedGraphic</string>
210
210
  <key>FitText</key>
@@ -249,8 +249,8 @@
249
249
  <key>Align</key>
250
250
  <integer>0</integer>
251
251
  <key>Text</key>
252
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
253
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
252
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
253
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
254
254
  {\colortbl;\red255\green255\blue255;}
255
255
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
256
256
 
@@ -263,7 +263,7 @@
263
263
  </dict>
264
264
  <dict>
265
265
  <key>Bounds</key>
266
- <string>{{309.87998214947055, 349.34968958084983}, {16, 14}}</string>
266
+ <string>{{309.7456362270371, 343.59928755895874}, {16, 14}}</string>
267
267
  <key>Class</key>
268
268
  <string>ShapedGraphic</string>
269
269
  <key>FitText</key>
@@ -308,8 +308,8 @@
308
308
  <key>Align</key>
309
309
  <integer>0</integer>
310
310
  <key>Text</key>
311
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
312
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
311
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
312
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
313
313
  {\colortbl;\red255\green255\blue255;}
314
314
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
315
315
 
@@ -330,8 +330,8 @@
330
330
  <integer>75</integer>
331
331
  <key>Points</key>
332
332
  <array>
333
- <string>{301.14577594844184, 367.9309845481327}</string>
334
- <string>{359.50002190686138, 368.22921864099538}</string>
333
+ <string>{301.14577222262562, 362.37250438371717}</string>
334
+ <string>{359.50001057832003, 361.99878605821311}</string>
335
335
  </array>
336
336
  <key>Style</key>
337
337
  <dict>
@@ -355,7 +355,7 @@
355
355
  </dict>
356
356
  <dict>
357
357
  <key>Bounds</key>
358
- <string>{{183.01258740646881, 352.34978008270264}, {15, 14}}</string>
358
+ <string>{{183.06749558062364, 346.96415429228767}, {15, 14}}</string>
359
359
  <key>Class</key>
360
360
  <string>ShapedGraphic</string>
361
361
  <key>FitText</key>
@@ -400,8 +400,8 @@
400
400
  <key>Align</key>
401
401
  <integer>0</integer>
402
402
  <key>Text</key>
403
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
404
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
403
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
404
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
405
405
  {\colortbl;\red255\green255\blue255;}
406
406
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
407
407
 
@@ -414,7 +414,7 @@
414
414
  </dict>
415
415
  <dict>
416
416
  <key>Bounds</key>
417
- <string>{{154.46613835322205, 349.01644611358643}, {16, 14}}</string>
417
+ <string>{{154.54299826675529, 343.44610658849467}, {16, 14}}</string>
418
418
  <key>Class</key>
419
419
  <string>ShapedGraphic</string>
420
420
  <key>FitText</key>
@@ -459,8 +459,8 @@
459
459
  <key>Align</key>
460
460
  <integer>0</integer>
461
461
  <key>Text</key>
462
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
463
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
462
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
463
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
464
464
  {\colortbl;\red255\green255\blue255;}
465
465
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
466
466
 
@@ -481,8 +481,8 @@
481
481
  <integer>72</integer>
482
482
  <key>Points</key>
483
483
  <array>
484
- <string>{145.79156494140625, 367.68311309814453}</string>
485
- <string>{204.14578247070312, 367.68311309814453}</string>
484
+ <string>{145.79155409933105, 362.00265871394515}</string>
485
+ <string>{204.14579179210202, 362.38712974459622}</string>
486
486
  </array>
487
487
  <key>Style</key>
488
488
  <dict>
@@ -533,8 +533,8 @@
533
533
  <key>Text</key>
534
534
  <dict>
535
535
  <key>Text</key>
536
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
537
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
536
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
537
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
538
538
  {\colortbl;\red255\green255\blue255;}
539
539
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
540
540
 
@@ -547,7 +547,7 @@
547
547
  </dict>
548
548
  <dict>
549
549
  <key>Bounds</key>
550
- <string>{{360, 333.68310546875}, {96, 70}}</string>
550
+ <string>{{360, 333.68310546875}, {96, 56}}</string>
551
551
  <key>Class</key>
552
552
  <string>ShapedGraphic</string>
553
553
  <key>FitText</key>
@@ -571,17 +571,20 @@
571
571
  <key>Align</key>
572
572
  <integer>0</integer>
573
573
  <key>Text</key>
574
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
575
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
574
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
575
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
576
576
  {\colortbl;\red255\green255\blue255;}
577
577
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
578
578
 
579
- \f0\b\fs24 \cf0 \ul \ulc0 id
579
+ \f0\b\fs24 \cf0 \ul \ulc0 arrival_time
580
580
  \b0 \ulnone \
581
- arrival_time\
582
581
  stop_sequence\
583
- \ul stop_id\ulnone \
584
- \ul trip_id}</string>
582
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
583
+
584
+ \b \cf0 \ul \ulc0 stop_id
585
+ \b0 \ulnone \
586
+
587
+ \b \ul trip_id}</string>
585
588
  <key>VerticalPad</key>
586
589
  <integer>0</integer>
587
590
  </dict>
@@ -605,7 +608,7 @@ stop_sequence\
605
608
  <array>
606
609
  <dict>
607
610
  <key>Bounds</key>
608
- <string>{{515.35421752929688, 320.36622619628906}, {96, 14}}</string>
611
+ <string>{{515.35421752929688, 318.36622619628906}, {96, 14}}</string>
609
612
  <key>Class</key>
610
613
  <string>ShapedGraphic</string>
611
614
  <key>FitText</key>
@@ -627,8 +630,8 @@ stop_sequence\
627
630
  <key>Text</key>
628
631
  <dict>
629
632
  <key>Text</key>
630
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
631
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
633
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
634
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
632
635
  {\colortbl;\red255\green255\blue255;}
633
636
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
634
637
 
@@ -641,7 +644,7 @@ stop_sequence\
641
644
  </dict>
642
645
  <dict>
643
646
  <key>Bounds</key>
644
- <string>{{515.35421752929688, 334.36622619628906}, {96, 70}}</string>
647
+ <string>{{515.35421752929688, 332.36622619628906}, {96, 56}}</string>
645
648
  <key>Class</key>
646
649
  <string>ShapedGraphic</string>
647
650
  <key>FitText</key>
@@ -665,14 +668,13 @@ stop_sequence\
665
668
  <key>Align</key>
666
669
  <integer>0</integer>
667
670
  <key>Text</key>
668
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
669
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
671
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
672
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
670
673
  {\colortbl;\red255\green255\blue255;}
671
674
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
672
675
 
673
- \f0\b\fs24 \cf0 \ul \ulc0 id
676
+ \f0\b\fs24 \cf0 \ul \ulc0 stop_id
674
677
  \b0 \ulnone \
675
- stop_id\
676
678
  stop_name\
677
679
  stop_lat\
678
680
  stop_lon}</string>
@@ -699,7 +701,7 @@ stop_lon}</string>
699
701
  <array>
700
702
  <dict>
701
703
  <key>Bounds</key>
702
- <string>{{204.64578247070312, 318.68311309814453}, {96, 14}}</string>
704
+ <string>{{204.64578247070312, 320.68311309814453}, {96, 14}}</string>
703
705
  <key>Class</key>
704
706
  <string>ShapedGraphic</string>
705
707
  <key>FitText</key>
@@ -721,8 +723,8 @@ stop_lon}</string>
721
723
  <key>Text</key>
722
724
  <dict>
723
725
  <key>Text</key>
724
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
725
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
726
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
727
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
726
728
  {\colortbl;\red255\green255\blue255;}
727
729
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
728
730
 
@@ -735,7 +737,7 @@ stop_lon}</string>
735
737
  </dict>
736
738
  <dict>
737
739
  <key>Bounds</key>
738
- <string>{{204.64578247070312, 332.68311309814453}, {96, 70}}</string>
740
+ <string>{{204.64578247070312, 334.68311309814453}, {96, 56}}</string>
739
741
  <key>Class</key>
740
742
  <string>ShapedGraphic</string>
741
743
  <key>FitText</key>
@@ -759,18 +761,15 @@ stop_lon}</string>
759
761
  <key>Align</key>
760
762
  <integer>0</integer>
761
763
  <key>Text</key>
762
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
763
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
764
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
765
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
764
766
  {\colortbl;\red255\green255\blue255;}
765
767
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
766
768
 
767
- \f0\b\fs24 \cf0 \ul \ulc0 id
769
+ \f0\b\fs24 \cf0 \ul \ulc0 trip_id
768
770
  \b0 \ulnone \
769
771
  direction\
770
- \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
771
- \cf0 service_id\
772
- \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
773
- \cf0 trip_id\
772
+ trip_id\
774
773
  \ul route_id}</string>
775
774
  <key>VerticalPad</key>
776
775
  <integer>0</integer>
@@ -795,7 +794,7 @@ direction\
795
794
  <array>
796
795
  <dict>
797
796
  <key>Bounds</key>
798
- <string>{{49.29156494140625, 318.68311309814453}, {96, 14}}</string>
797
+ <string>{{49.29156494140625, 319.68311309814453}, {96, 14}}</string>
799
798
  <key>Class</key>
800
799
  <string>ShapedGraphic</string>
801
800
  <key>FitText</key>
@@ -817,8 +816,8 @@ direction\
817
816
  <key>Text</key>
818
817
  <dict>
819
818
  <key>Text</key>
820
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
821
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
819
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
820
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
822
821
  {\colortbl;\red255\green255\blue255;}
823
822
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
824
823
 
@@ -831,7 +830,7 @@ direction\
831
830
  </dict>
832
831
  <dict>
833
832
  <key>Bounds</key>
834
- <string>{{49.29156494140625, 332.68311309814453}, {96, 70}}</string>
833
+ <string>{{49.29156494140625, 333.68311309814453}, {96, 56}}</string>
835
834
  <key>Class</key>
836
835
  <string>ShapedGraphic</string>
837
836
  <key>FitText</key>
@@ -855,14 +854,13 @@ direction\
855
854
  <key>Align</key>
856
855
  <integer>0</integer>
857
856
  <key>Text</key>
858
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
859
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
857
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
858
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
860
859
  {\colortbl;\red255\green255\blue255;}
861
860
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
862
861
 
863
- \f0\b\fs24 \cf0 \ul \ulc0 id
862
+ \f0\b\fs24 \cf0 \ul \ulc0 route_id
864
863
  \b0 \ulnone \
865
- route_id\
866
864
  short_name\
867
865
  long_name\
868
866
  route_type}</string>
@@ -884,7 +882,7 @@ route_type}</string>
884
882
  </dict>
885
883
  <dict>
886
884
  <key>Bounds</key>
887
- <string>{{49.291564470703122, 422}, {53, 22}}</string>
885
+ <string>{{49.291564470703122, 412.33333333333337}, {53, 22}}</string>
888
886
  <key>Class</key>
889
887
  <string>ShapedGraphic</string>
890
888
  <key>FitText</key>
@@ -927,8 +925,8 @@ route_type}</string>
927
925
  <key>Pad</key>
928
926
  <integer>0</integer>
929
927
  <key>Text</key>
930
- <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
931
- {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
928
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
929
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
932
930
  {\colortbl;\red255\green255\blue255;}
933
931
  \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
934
932
 
@@ -989,7 +987,7 @@ route_type}</string>
989
987
  <key>MasterSheets</key>
990
988
  <array/>
991
989
  <key>ModificationDate</key>
992
- <string>2012-06-08 13:06:12 +0000</string>
990
+ <string>2012-09-23 02:49:00 +0000</string>
993
991
  <key>Modifier</key>
994
992
  <string>Tate Johnson</string>
995
993
  <key>NotesVisible</key>
@@ -1070,7 +1068,7 @@ route_type}</string>
1070
1068
  </dict>
1071
1069
  </array>
1072
1070
  <key>Frame</key>
1073
- <string>{{1362, 134}, {693, 874}}</string>
1071
+ <string>{{890, 226}, {1272, 1001}}</string>
1074
1072
  <key>ListView</key>
1075
1073
  <true/>
1076
1074
  <key>OutlineWidth</key>
@@ -1084,14 +1082,14 @@ route_type}</string>
1084
1082
  <key>SidebarWidth</key>
1085
1083
  <integer>120</integer>
1086
1084
  <key>VisibleRegion</key>
1087
- <string>{{0, 0}, {679, 735}}</string>
1085
+ <string>{{0, 0}, {838.66666666666663, 574.66666666666663}}</string>
1088
1086
  <key>Zoom</key>
1089
- <real>1</real>
1087
+ <real>1.5</real>
1090
1088
  <key>ZoomValues</key>
1091
1089
  <array>
1092
1090
  <array>
1093
1091
  <string>Canvas 1</string>
1094
- <real>1</real>
1092
+ <real>1.5</real>
1095
1093
  <real>1</real>
1096
1094
  </array>
1097
1095
  </array>