@transportme/load-ptv-gtfs 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/gtfs-parser/GTFSRoute.mjs +19 -19
- package/package.json +1 -1
- package/test/gtfs-stop-loader.test.mjs +12 -0
- package/test/gtfs-stop-times.test.mjs +2 -2
- package/test/gtfs-trip-loader.test.mjs +1 -1
- package/test/gtfs-trips.test.mjs +2 -2
- package/test/new-tram-format.test.mjs +49 -0
- package/test/sample-data/gtfs-splitting/union_with_spaces.txt +5 -0
- package/test/sample-data/merge/stop_times.txt +96 -96
- package/test/sample-data/merge/trips.txt +5 -5
- package/test/sample-data/new-tram/routes.txt +25 -0
- package/test/sample-data/new-tram/stops.txt +5 -0
- package/test/sample-data/routes/agency.txt +2 -1
- package/test/sample-data/routes/metro_lines.txt +6 -6
- package/test/sample-data/trips/stop_times.txt +28 -28
- package/test/sample-data/trips/trips.txt +4 -4
|
@@ -57,7 +57,7 @@ export default class GTFSRoute {
|
|
|
57
57
|
*/
|
|
58
58
|
static create(data, mode) {
|
|
59
59
|
let { routeGTFSID } = data
|
|
60
|
-
let routeTypes = [
|
|
60
|
+
let routeTypes = [ MetroGTFSRoute, NewGTFSRoute, SmartrakGTFSRoute, GTFSRoute ]
|
|
61
61
|
for (let type of routeTypes) {
|
|
62
62
|
if (type.canProcess(routeGTFSID, mode)) return new type(data)
|
|
63
63
|
}
|
|
@@ -87,38 +87,38 @@ class SmartrakGTFSRoute extends GTFSRoute {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
|
-
* Used to represent a
|
|
90
|
+
* Used to represent a new format route ID
|
|
91
91
|
*
|
|
92
|
-
*
|
|
92
|
+
* Required to parse the route ID which is of a slightly different format
|
|
93
93
|
*/
|
|
94
|
-
class
|
|
95
|
-
|
|
96
|
-
constructor(data) {
|
|
97
|
-
super(data)
|
|
98
|
-
this.routeName = this.routeNumber
|
|
99
|
-
this.routeNumber = null
|
|
100
|
-
}
|
|
94
|
+
class NewGTFSRoute extends GTFSRoute {
|
|
101
95
|
|
|
102
96
|
static canProcess(routeGTFSID, mode) {
|
|
103
|
-
return
|
|
97
|
+
return routeGTFSID.startsWith('aus:vic:vic-')
|
|
104
98
|
}
|
|
99
|
+
|
|
100
|
+
parseRouteID(routeGTFSID) {
|
|
101
|
+
let [ _, modeID, routeNumber ] = routeGTFSID.match(/vic-0*(\d+)\-(\w+)/)
|
|
102
|
+
return `${modeID}-${routeNumber}`
|
|
103
|
+
}
|
|
105
104
|
|
|
106
105
|
}
|
|
107
106
|
|
|
108
107
|
/**
|
|
109
108
|
* Used to represent a Metro train route on the new data
|
|
110
109
|
*
|
|
111
|
-
*
|
|
110
|
+
* Used for a technicality where the route name (eg Pakenham) is stored in the route number instead.
|
|
112
111
|
*/
|
|
113
|
-
class
|
|
112
|
+
class MetroGTFSRoute extends NewGTFSRoute {
|
|
114
113
|
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
constructor(data) {
|
|
115
|
+
super(data)
|
|
116
|
+
this.routeName = this.routeNumber
|
|
117
|
+
this.routeNumber = null
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
120
|
+
static canProcess(routeGTFSID, mode) {
|
|
121
|
+
return super.canProcess(routeGTFSID, mode) && mode === TRANSIT_MODES.metroTrain
|
|
122
|
+
}
|
|
123
123
|
|
|
124
124
|
}
|
package/package.json
CHANGED
|
@@ -24,6 +24,8 @@ const stopNameOverrides = path.join(__dirname, 'sample-data', 'gtfs-splitting',
|
|
|
24
24
|
|
|
25
25
|
const specialHeader = path.join(__dirname, 'sample-data', 'gtfs-splitting', 'special_chars_stops_csv.txt')
|
|
26
26
|
|
|
27
|
+
const unionWithSpaces = path.join(__dirname, 'sample-data', 'gtfs-splitting', 'union_with_spaces.txt')
|
|
28
|
+
|
|
27
29
|
describe('The GTFS Stops Loader', () => {
|
|
28
30
|
it('Should process the stops and add them to the database', async () => {
|
|
29
31
|
let database = new LokiDatabaseConnection('test-db')
|
|
@@ -308,4 +310,14 @@ describe('The GTFS Stops Loader', () => {
|
|
|
308
310
|
expect((await stops.findDocument({ 'bays.stopGTFSID': '17977' })).bays.length).to.equal(2) // Tempy
|
|
309
311
|
expect((await stops.findDocument({ 'bays.stopGTFSID': '43916' })).bays.length).to.equal(1) // Coronet Bay
|
|
310
312
|
})
|
|
313
|
+
|
|
314
|
+
it('Should handle extra spaces within the stop name', async () => {
|
|
315
|
+
let database = new LokiDatabaseConnection('test-db')
|
|
316
|
+
let stops = await database.createCollection('stops')
|
|
317
|
+
|
|
318
|
+
await (new StopsLoader(unionWithSpaces, suburbs, TRANSIT_MODES.bus, database)).loadStops()
|
|
319
|
+
|
|
320
|
+
expect(await stops.countDocuments({})).to.equal(1)
|
|
321
|
+
expect((await stops.findDocument({ 'bays.stopGTFSID': '26535' })).bays.length).to.equal(4) // Piangil
|
|
322
|
+
})
|
|
311
323
|
})
|
|
@@ -15,7 +15,7 @@ describe('The GTFSStopTimesReader class', () => {
|
|
|
15
15
|
await reader.open()
|
|
16
16
|
|
|
17
17
|
let stopTimes = await reader.getNextEntity()
|
|
18
|
-
expect(stopTimes.tripID).to.equal('
|
|
18
|
+
expect(stopTimes.tripID).to.equal('02-ALM--12-T5-2000')
|
|
19
19
|
expect(stopTimes.stops.length).to.equal(7)
|
|
20
20
|
expect(stopTimes.stops[0].stopID).to.equal('19847')
|
|
21
21
|
expect(stopTimes.stops[0].departureTime).to.equal('04:57')
|
|
@@ -27,7 +27,7 @@ describe('The GTFSStopTimesReader class', () => {
|
|
|
27
27
|
await reader.getNextEntity()
|
|
28
28
|
|
|
29
29
|
let lastTrip = await reader.getNextEntity()
|
|
30
|
-
expect(lastTrip.tripID).to.equal('
|
|
30
|
+
expect(lastTrip.tripID).to.equal('02-ALM--12-T5-2001')
|
|
31
31
|
expect(lastTrip.stops.length).to.equal(7)
|
|
32
32
|
expect(lastTrip.stops[0].stopID).to.equal('19853')
|
|
33
33
|
expect(lastTrip.stops[0].departureTime).to.equal('23:31')
|
|
@@ -44,7 +44,7 @@ describe('The TripLoader class', () => {
|
|
|
44
44
|
routeIDMap
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
let trip = await trips.findDocument({ tripID: '
|
|
47
|
+
let trip = await trips.findDocument({ tripID: '02-ALM--12-T5-2000' })
|
|
48
48
|
expect(trip).to.not.be.null
|
|
49
49
|
|
|
50
50
|
expect(trip.routeName).to.equal('Alamein')
|
package/test/gtfs-trips.test.mjs
CHANGED
|
@@ -50,14 +50,14 @@ describe('The GTFSTripReader class', () => {
|
|
|
50
50
|
})
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
let routeMappings = { '
|
|
53
|
+
let routeMappings = { 'aus:vic:vic-02-ALM:': '2-ALM' }
|
|
54
54
|
|
|
55
55
|
let reader = new GTFSTripReader(tripsFile, calendars, routeMappings, TRANSIT_MODES.metroTrain)
|
|
56
56
|
await reader.open()
|
|
57
57
|
|
|
58
58
|
let trip = await reader.getNextEntity()
|
|
59
59
|
|
|
60
|
-
expect(trip.getTripID()).to.equal('
|
|
60
|
+
expect(trip.getTripID()).to.equal('02-ALM--12-T5-2000')
|
|
61
61
|
expect(trip.getRouteGTFSID()).to.equal('2-ALM')
|
|
62
62
|
expect(trip.getHeadsign()).to.equal('Camberwell')
|
|
63
63
|
expect(trip.getOperationDays()).to.deep.equal(['20241122'])
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { LokiDatabaseConnection } from '@transportme/database'
|
|
2
|
+
import StopsLoader from '../lib/loader/StopsLoader.mjs'
|
|
3
|
+
import { TRANSIT_MODES } from '../lib/constants.mjs'
|
|
4
|
+
import path from 'path'
|
|
5
|
+
import url from 'url'
|
|
6
|
+
import { expect } from 'chai'
|
|
7
|
+
import suburbs from './sample-data/suburbs.json' with { type: 'json' }
|
|
8
|
+
import RouteLoader from '../lib/loader/RouteLoader.mjs'
|
|
9
|
+
|
|
10
|
+
const __filename = url.fileURLToPath(import.meta.url)
|
|
11
|
+
const __dirname = path.dirname(__filename)
|
|
12
|
+
|
|
13
|
+
const agencyFile = path.join(__dirname, 'sample-data', 'routes', 'agency.txt')
|
|
14
|
+
|
|
15
|
+
const routesFile = path.join(__dirname, 'sample-data', 'new-tram', 'routes.txt')
|
|
16
|
+
const stopsFile = path.join(__dirname, 'sample-data', 'new-tram', 'stops.txt')
|
|
17
|
+
|
|
18
|
+
describe('The GTFS Loaders with the new Tram data', () => {
|
|
19
|
+
describe('The stop loader', () => {
|
|
20
|
+
it('Should process the stops and add them to the database', async () => {
|
|
21
|
+
let database = new LokiDatabaseConnection('test-db')
|
|
22
|
+
let stops = await database.createCollection('stops')
|
|
23
|
+
|
|
24
|
+
let loader = new StopsLoader(stopsFile, suburbs, TRANSIT_MODES.tram, database)
|
|
25
|
+
await loader.loadStops()
|
|
26
|
+
|
|
27
|
+
let stop = await stops.findDocument({
|
|
28
|
+
'stopName': 'Glenferrie Road/Wattletree Road'
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
expect(stop).to.not.be.null
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
describe('The route loader', () => {
|
|
36
|
+
it('Should convert the updated route ID format to the legacy format', async () => {
|
|
37
|
+
let database = new LokiDatabaseConnection('test-db')
|
|
38
|
+
let routes = await database.createCollection('routes')
|
|
39
|
+
|
|
40
|
+
let routeLoader = new RouteLoader(routesFile, agencyFile, TRANSIT_MODES.tram, database)
|
|
41
|
+
await routeLoader.loadRoutes()
|
|
42
|
+
|
|
43
|
+
let route109 = await routes.findDocument({ routeNumber: '109' })
|
|
44
|
+
|
|
45
|
+
expect(route109).to.exist
|
|
46
|
+
expect(route109.routeGTFSID).to.equal('3-109')
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
})
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station,platform_code
|
|
2
|
+
"26535","Union Station","-37.82247773","145.10137376","","Parentvic:rail:UNN","1"
|
|
3
|
+
"26536","Union Station","-37.82245015","145.10134039","","Parentvic:rail:UNN","2"
|
|
4
|
+
"26537","Union Station","-37.82236780","145.10126297","","Parentvic:rail:UNN","3"
|
|
5
|
+
"Parentvic:rail:UNN","Union Railway Station ","-37.82315506","145.10034527","1","",""
|
|
@@ -1,97 +1,97 @@
|
|
|
1
1
|
trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,shape_dist_traveled
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
2
|
+
"02-PKM--12-T5-C000","03:53:00","03:53:00","49458","1","","0","0","0.00"
|
|
3
|
+
"02-PKM--12-T5-C000","03:56:00","03:56:00","19880","2","","0","0","1792.21"
|
|
4
|
+
"02-PKM--12-T5-C000","04:00:00","04:00:00","45794","3","","0","0","6169.53"
|
|
5
|
+
"02-PKM--12-T5-C000","04:03:00","04:03:00","19881","4","","0","0","8583.94"
|
|
6
|
+
"02-PKM--12-T5-C000","04:07:00","04:07:00","19882","5","","0","0","12985.88"
|
|
7
|
+
"02-PKM--12-T5-C000","04:10:00","04:10:00","19883","6","","0","0","15171.06"
|
|
8
|
+
"02-PKM--12-T5-C000","04:13:00","04:13:00","19884","7","","0","0","19204.51"
|
|
9
|
+
"02-PKM--12-T5-C000","04:17:00","04:17:00","19885","8","","0","0","22479.36"
|
|
10
|
+
"02-PKM--12-T5-C000","04:23:00","04:23:00","19888","9","","0","0","28751.63"
|
|
11
|
+
"02-PKM--12-T5-C000","04:26:00","04:26:00","19889","10","","0","0","30810.11"
|
|
12
|
+
"02-PKM--12-T5-C000","04:28:00","04:28:00","19890","11","","0","0","32671.53"
|
|
13
|
+
"02-PKM--12-T5-C000","04:30:00","04:30:00","19891","12","","0","0","34305.71"
|
|
14
|
+
"02-PKM--12-T5-C000","04:32:00","04:32:00","19913","13","","0","0","35437.74"
|
|
15
|
+
"02-PKM--12-T5-C000","04:35:00","04:35:00","19914","14","","0","0","37211.11"
|
|
16
|
+
"02-PKM--12-T5-C000","04:37:00","04:37:00","19915","15","","0","0","39432.22"
|
|
17
|
+
"02-PKM--12-T5-C000","04:40:00","04:40:00","19916","16","","0","0","41634.41"
|
|
18
|
+
"02-PKM--12-T5-C000","04:42:00","04:42:00","19917","17","","0","0","43344.48"
|
|
19
|
+
"02-PKM--12-T5-C000","04:44:00","04:44:00","19918","18","","0","0","44594.51"
|
|
20
|
+
"02-PKM--12-T5-C000","04:46:00","04:46:00","19919","19","","0","0","45508.49"
|
|
21
|
+
"02-PKM--12-T5-C000","04:48:00","04:48:00","19920","20","","0","0","46397.28"
|
|
22
|
+
"02-PKM--12-T5-C000","04:51:00","04:51:00","19943","21","","0","0","48116.50"
|
|
23
|
+
"02-PKM--12-T5-C000","04:58:00","04:58:00","19959","26","","0","0","54454.68"
|
|
24
|
+
"02-PKM--12-T5-C000","05:02:00","05:02:00","19908","27","","0","0","56209.56"
|
|
25
|
+
"02-PKM--12-T5-C000","05:05:00","05:05:00","19843","28","","0","0","58414.04"
|
|
26
|
+
"02-PKM--12-T5-C000","05:07:00","05:07:00","19842","29","","0","0","59562.92"
|
|
27
|
+
"02-PKM--12-T5-C000","05:09:00","05:09:00","19841","30","","0","0","60213.15"
|
|
28
|
+
"02-PKM--12-T5-C000","05:11:00","05:11:00","22180","31","","0","0","61248.47"
|
|
29
|
+
"02-PKM--12-T5-C000","05:15:00","05:15:00","19854","32","","0","0","62875.44"
|
|
30
|
+
"02-PKM--12-T5-C001","07:23:00","07:23:00","19854","1","","0","0","0.00"
|
|
31
|
+
"02-PKM--12-T5-C001","07:26:00","07:26:00","19908","2","","0","0","2295.14"
|
|
32
|
+
"02-PKM--12-T5-C001","07:29:00","07:29:00","19959","3","","0","0","4050.02"
|
|
33
|
+
"02-PKM--12-T5-C001","07:37:00","07:37:00","19943","8","","0","0","10388.19"
|
|
34
|
+
"02-PKM--12-T5-C001","07:39:00","07:39:00","19920","9","","0","0","12107.42"
|
|
35
|
+
"02-PKM--12-T5-C001","07:41:00","07:41:00","19919","10","","0","0","12996.20"
|
|
36
|
+
"02-PKM--12-T5-C001","07:43:00","07:43:00","19918","11","","0","0","13910.18"
|
|
37
|
+
"02-PKM--12-T5-C001","07:45:00","07:45:00","19917","12","","0","0","15160.22"
|
|
38
|
+
"02-PKM--12-T5-C001","07:47:00","07:47:00","19916","13","","0","0","16870.29"
|
|
39
|
+
"02-PKM--12-T5-C001","07:50:00","07:50:00","19915","14","","0","0","19072.48"
|
|
40
|
+
"02-PKM--12-T5-C001","07:53:00","07:53:00","19914","15","","0","0","21293.59"
|
|
41
|
+
"02-PKM--12-T5-C001","07:55:00","07:55:00","19913","16","","0","0","23066.95"
|
|
42
|
+
"02-PKM--12-T5-C001","07:57:00","07:57:00","19891","17","","0","0","24198.99"
|
|
43
|
+
"02-PKM--12-T5-C001","08:00:00","08:00:00","19890","18","","0","0","25833.17"
|
|
44
|
+
"02-PKM--12-T5-C001","08:02:00","08:02:00","19889","19","","0","0","27694.58"
|
|
45
|
+
"02-PKM--12-T5-C001","08:05:00","08:05:00","19888","20","","0","0","29753.07"
|
|
46
|
+
"02-PKM--12-T5-C001","08:10:00","08:10:00","19885","21","","0","0","36025.33"
|
|
47
|
+
"02-PKM--12-T5-C001","08:13:00","08:13:00","19884","22","","0","0","39300.19"
|
|
48
|
+
"02-PKM--12-T5-C001","08:17:00","08:17:00","19883","23","","0","0","43333.64"
|
|
49
|
+
"02-PKM--12-T5-C001","08:20:00","08:20:00","19882","24","","0","0","45518.82"
|
|
50
|
+
"02-PKM--12-T5-C001","08:24:00","08:24:00","19881","25","","0","0","49920.76"
|
|
51
|
+
"02-PKM--12-T5-C001","08:27:00","08:27:00","45794","26","","0","0","52335.16"
|
|
52
|
+
"02-PKM--12-T5-C001","08:33:00","08:33:00","19880","27","","0","0","56712.49"
|
|
53
|
+
"02-PKM--12-T5-C001","08:36:00","08:36:00","49458","28","","0","0","58504.69"
|
|
54
|
+
"02-PKM--12-T5-C002","26:00:00","26:00:00","49458","1","","0","0","0.00"
|
|
55
|
+
"02-PKM--12-T5-C002","26:03:00","26:03:00","19880","2","","0","0","1792.21"
|
|
56
|
+
"02-PKM--12-T5-C002","26:07:00","26:07:00","45794","3","","0","0","6169.53"
|
|
57
|
+
"02-PKM--12-T5-C002","26:10:00","26:10:00","19881","4","","0","0","8583.94"
|
|
58
|
+
"02-PKM--12-T5-C002","26:14:00","26:14:00","19882","5","","0","0","12985.88"
|
|
59
|
+
"02-PKM--12-T5-C002","26:17:00","26:17:00","19883","6","","0","0","15171.06"
|
|
60
|
+
"02-PKM--12-T5-C002","26:20:00","26:20:00","19884","7","","0","0","19204.51"
|
|
61
|
+
"02-PKM--12-T5-C002","26:24:00","26:24:00","19885","8","","0","0","22479.36"
|
|
62
|
+
"02-PKM--12-T5-C002","26:30:00","26:30:00","19888","9","","0","0","28751.63"
|
|
63
|
+
"02-PKM--12-T5-C002","26:33:00","26:33:00","19889","10","","0","0","30810.11"
|
|
64
|
+
"02-PKM--12-T5-C002","26:35:00","26:35:00","19890","11","","0","0","32671.53"
|
|
65
|
+
"02-PKM--12-T5-C002","26:37:00","26:37:00","19891","12","","0","0","34305.71"
|
|
66
|
+
"02-PKM--12-T5-C002","26:39:00","26:39:00","19913","13","","0","0","35437.74"
|
|
67
|
+
"02-PKM--12-T5-C002","26:42:00","26:42:00","19914","14","","0","0","37211.11"
|
|
68
|
+
"02-PKM--12-T5-C002","26:44:00","26:44:00","19915","15","","0","0","39432.22"
|
|
69
|
+
"02-PKM--12-T5-C002","26:47:00","26:47:00","19916","16","","0","0","41634.41"
|
|
70
|
+
"02-PKM--12-T5-C002","26:49:00","26:49:00","19917","17","","0","0","43344.48"
|
|
71
|
+
"02-PKM--12-T5-C002","26:51:00","26:51:00","19918","18","","0","0","44594.51"
|
|
72
|
+
"02-PKM--12-T5-C002","26:53:00","26:53:00","19919","19","","0","0","45508.49"
|
|
73
|
+
"02-PKM--12-T5-C002","26:55:00","26:55:00","19920","20","","0","0","46397.28"
|
|
74
|
+
"02-PKM--12-T5-C002","26:58:00","26:58:00","19943","21","","0","0","48116.50"
|
|
75
|
+
"02-PKM--12-T5-C002","27:06:00","27:06:00","19959","26","","0","0","54454.68"
|
|
76
|
+
"02-PKM--12-T5-C002","27:09:00","27:09:00","19908","27","","0","0","56209.56"
|
|
77
|
+
"02-PKM--12-T5-C002","27:13:00","27:13:00","19854","28","","0","0","58504.69"
|
|
78
|
+
"02-STY--12-T5-8500","07:39:00","07:39:00","19827","1","","0","0","0.00"
|
|
79
|
+
"02-STY--12-T5-8500","07:41:00","07:41:00","19828","2","","0","0","1824.38"
|
|
80
|
+
"02-STY--12-T5-8500","07:44:00","07:44:00","19829","3","","0","0","3676.45"
|
|
81
|
+
"02-STY--12-T5-8500","07:47:00","07:47:00","19830","4","","0","0","5964.69"
|
|
82
|
+
"02-STY--12-T5-8500","07:50:00","07:50:00","19831","5","","0","0","9637.85"
|
|
83
|
+
"02-STY--12-T5-8500","07:55:00","07:55:00","19832","6","","0","0","14819.06"
|
|
84
|
+
"02-STY--12-T5-8500","08:00:00","08:00:00","19833","7","","0","0","18864.16"
|
|
85
|
+
"02-STY--12-T5-8500","08:04:00","08:04:00","19834","8","","0","0","22701.87"
|
|
86
|
+
"02-STY--12-T5-8500","08:10:00","08:10:00","19836","9","","0","0","28890.00"
|
|
87
|
+
"02-STY--12-T5-8500","08:15:00","08:15:00","19855","10","","0","0","30729.86"
|
|
88
|
+
"02-STY--12-T5-8501","14:07:00","14:07:00","19855","1","","0","0","0.00"
|
|
89
|
+
"02-STY--12-T5-8501","14:09:00","14:09:00","19836","2","","0","0","1839.85"
|
|
90
|
+
"02-STY--12-T5-8501","14:16:00","14:16:00","19834","3","","0","0","8027.98"
|
|
91
|
+
"02-STY--12-T5-8501","14:20:00","14:20:00","19833","4","","0","0","11865.70"
|
|
92
|
+
"02-STY--12-T5-8501","14:24:00","14:24:00","19832","5","","0","0","15910.80"
|
|
93
|
+
"02-STY--12-T5-8501","14:29:00","14:29:00","19831","6","","0","0","21092.01"
|
|
94
|
+
"02-STY--12-T5-8501","14:33:00","14:33:00","19830","7","","0","0","24765.17"
|
|
95
|
+
"02-STY--12-T5-8501","14:36:00","14:36:00","19829","8","","0","0","27053.40"
|
|
96
|
+
"02-STY--12-T5-8501","14:39:00","14:39:00","19828","9","","0","0","28905.48"
|
|
97
|
+
"02-STY--12-T5-8501","14:43:00","14:43:00","19827","10","","0","0","30729.86"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
route_id,service_id,trip_id,shape_id,trip_headsign,direction_id,block_id
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
2
|
+
"aus:vic:vic-02-PKM:","T2_2","02-PKM--12-T5-C000","2-PKM-vpt-1.1.R","Flinders Street via City Loop","1","10865"
|
|
3
|
+
"aus:vic:vic-02-PKM:","T2_2","02-PKM--12-T5-C001","2-PKM-vpt-1.3.H","East Pakenham","0","10867"
|
|
4
|
+
"aus:vic:vic-02-PKM:","T2_2","02-PKM--12-T5-C002","2-PKM-vpt-1.12.R","Flinders Street","1",""
|
|
5
|
+
"aus:vic:vic-02-STY:","T2_2","02-STY--12-T5-8500","2-STY-vpt-1.1.R","Frankston","1",""
|
|
6
|
+
"aus:vic:vic-02-STY:","T2_2","02-STY--12-T5-8501","2-STY-vpt-1.2.H","Stony Point","0",""
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
route_id,agency_id,route_short_name,route_long_name,route_type,route_color,route_text_color
|
|
2
|
+
"aus:vic:vic-03-1:","37","1","South Melbourne Beach - East Coburg","0","B5BD00","000000"
|
|
3
|
+
"aus:vic:vic-03-109:","37","109","Port Melbourne - Box Hill","0","E87722","000000"
|
|
4
|
+
"aus:vic:vic-03-11:","37","11","Victoria Harbour Docklands - West Preston","0","6ECEB2","000000"
|
|
5
|
+
"aus:vic:vic-03-12:","37","12","St Kilda (Fitzroy St) - Victoria Gardens","0","007E92","FFFFFF"
|
|
6
|
+
"aus:vic:vic-03-16:","37","16","Kew - Melbourne University via St Kilda Beach","0","FBD872","000000"
|
|
7
|
+
"aus:vic:vic-03-19:","37","19","Flinders Street Station, City - North Coburg","0","8A1B61","FFFFFF"
|
|
8
|
+
"aus:vic:vic-03-3:","37","3","East Malvern - Melbourne University","0","8DC8E8","000000"
|
|
9
|
+
"aus:vic:vic-03-30:","37","30","Central Pier Docklands - St Vincents Plaza","0","534F96","FFFFFF"
|
|
10
|
+
"aus:vic:vic-03-35:","37","35","Clockwise - Clockwise","0","6B3529","FFFFFF"
|
|
11
|
+
"aus:vic:vic-03-48:","37","48","Victoria Harbour Docklands - North Balwyn","0","333434","FFFFFF"
|
|
12
|
+
"aus:vic:vic-03-5:","37","5","Malvern (Burke Road) - Melbourne University","0","D50032","FFFFFF"
|
|
13
|
+
"aus:vic:vic-03-57:","37","57","Flinders Street Station, City - West Maribyrnong","0","00C1D5","000000"
|
|
14
|
+
"aus:vic:vic-03-58:","37","58","Toorak - West Coburg","0","969696","FFFFFF"
|
|
15
|
+
"aus:vic:vic-03-59:","37","59","Flinders Street Station, City - Airport West","0","00653A","FFFFFF"
|
|
16
|
+
"aus:vic:vic-03-6:","37","6","Glen Iris - Moreland","0","01426A","FFFFFF"
|
|
17
|
+
"aus:vic:vic-03-64:","37","64","East Brighton - Melbourne University","0","00AB8E","FFFFFF"
|
|
18
|
+
"aus:vic:vic-03-67:","37","67","Carnegie - Melbourne University","0","956C58","FFFFFF"
|
|
19
|
+
"aus:vic:vic-03-70:","37","70","Waterfront City Docklands - Wattle Park","0","F59BBB","000000"
|
|
20
|
+
"aus:vic:vic-03-72:","37","72","Camberwell - Melbourne University","0","9ABEAA","000000"
|
|
21
|
+
"aus:vic:vic-03-75:","37","75","Central Pier Docklands - Vermont South","0","00A9E0","000000"
|
|
22
|
+
"aus:vic:vic-03-78:","37","78","Balaclava via Prahran - North Richmond","0","A0A0D6","000000"
|
|
23
|
+
"aus:vic:vic-03-82:","37","82","Moonee Ponds - Footscray","0","D2D755","000000"
|
|
24
|
+
"aus:vic:vic-03-86:","37","86","Waterfront City Docklands - Bundoora RMIT","0","FFB500","000000"
|
|
25
|
+
"aus:vic:vic-03-96:","37","96","St Kilda Beach - East Brunswick","0","C6007E","FFFFFF"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
stop_id,stop_name,stop_lat,stop_lon
|
|
2
|
+
"10311","45-Glenferrie Rd/Wattletree Rd (Malvern)","-37.86245520","145.02850849"
|
|
3
|
+
"10371","44-Duncraig Ave/Wattletree Rd (Armadale)","-37.86206934","145.02538150"
|
|
4
|
+
"1083","42-Clyde St/Raleigh Rd (Maribyrnong)","-37.76969864","144.89884126"
|
|
5
|
+
"11285","43-Egerton Rd/Wattletree Rd (Armadale)","-37.86170982","145.02275399"
|
|
@@ -8,4 +8,5 @@ agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone,agency
|
|
|
8
8
|
"38","CDC","https://www.ptv.vic.gov.au/footer/customer-service/operator-contact-details/?utm_source=open_data_click_agency&utm_medium=open_data_agency_click&utm_campaign=open_data_click","Australia/Melbourne","EN","1800 800 007","https://www.ptv.vic.gov.au/tickets/myki/?utm_source=open_data_click_fare&utm_medium=open_data_fare_click&utm_campaign=open_data_click"
|
|
9
9
|
"3","Metro","https://www.ptv.vic.gov.au/footer/customer-service/operator-contact-details/?utm_source=open_data_click_agency&utm_medium=open_data_agency_click&utm_campaign=open_data_click","Australia/Melbourne","EN","1800 800 007","https://www.ptv.vic.gov.au/tickets/myki/?utm_source=open_data_click_fare&utm_medium=open_data_fare_click&utm_campaign=open_data_click"
|
|
10
10
|
"57","Warragul Bus Lines","https://www.ptv.vic.gov.au/footer/customer-service/operator-contact-details/?utm_source=open_data_click_agency&utm_medium=open_data_agency_click&utm_campaign=open_data_click","Australia/Melbourne","EN","1800 800 007","https://www.ptv.vic.gov.au/tickets/myki/?utm_source=open_data_click_fare&utm_medium=open_data_fare_click&utm_campaign=open_data_click"
|
|
11
|
-
"33","V/Line","https://www.ptv.vic.gov.au/footer/customer-service/operator-contact-details/?utm_source=open_data_click_agency&utm_medium=open_data_agency_click&utm_campaign=open_data_click","Australia/Melbourne","EN","1800 800 007","https://www.ptv.vic.gov.au/tickets/myki/?utm_source=open_data_click_fare&utm_medium=open_data_fare_click&utm_campaign=open_data_click"
|
|
11
|
+
"33","V/Line","https://www.ptv.vic.gov.au/footer/customer-service/operator-contact-details/?utm_source=open_data_click_agency&utm_medium=open_data_agency_click&utm_campaign=open_data_click","Australia/Melbourne","EN","1800 800 007","https://www.ptv.vic.gov.au/tickets/myki/?utm_source=open_data_click_fare&utm_medium=open_data_fare_click&utm_campaign=open_data_click"
|
|
12
|
+
"37","Yarra Trams","https://www.ptv.vic.gov.au/footer/customer-service/operator-contact-details/?utm_source=open_data_click_agency&utm_medium=open_data_agency_click&utm_campaign=open_data_click","Australia/Melbourne","EN","1800 800 007","https://www.ptv.vic.gov.au/tickets/myki/?utm_source=open_data_click_fare&utm_medium=open_data_fare_click&utm_campaign=open_data_click"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
route_id,agency_id,route_short_name,route_long_name,route_type,route_color,route_text_color
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
2
|
+
"aus:vic:vic-02-ALM:","3","Alamein","Alamein - City","2","152C6B","FFFFFF"
|
|
3
|
+
"aus:vic:vic-02-ALM:","3","Alamein","Alamein - City","2","152C6B","FFFFFF"
|
|
4
|
+
"aus:vic:vic-02-RCE:","3","Flemington Racecourse","City","2","95979A","000000"
|
|
5
|
+
"aus:vic:vic-02-STY:","3","Stony Point","Stony Point - Frankston","2","028430","FFFFFF"
|
|
6
|
+
"aus:vic:vic-02-PKM:","3","Pakenham","Pakenham - City","2","279FD5","000000"
|
|
7
|
+
"aus:vic:vic-02-PKM:","3","Pakenham","Pakenham - City","2","279FD5","000000"
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,shape_dist_traveled
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
2
|
+
"02-ALM--12-T5-2000","04:57:00","04:57:00","19847","1","","0","0","0.00"
|
|
3
|
+
"02-ALM--12-T5-2000","04:58:00","04:58:00","19848","2","","0","0","724.22"
|
|
4
|
+
"02-ALM--12-T5-2000","05:00:00","05:00:00","19849","3","","0","0","1954.65"
|
|
5
|
+
"02-ALM--12-T5-2000","05:02:00","05:02:00","19850","4","","0","0","2902.91"
|
|
6
|
+
"02-ALM--12-T5-2000","05:04:00","05:04:00","19851","5","","0","0","3931.98"
|
|
7
|
+
"02-ALM--12-T5-2000","05:05:00","05:05:00","19852","6","","0","0","4418.97"
|
|
8
|
+
"02-ALM--12-T5-2000","05:08:00","05:08:00","19853","7","","0","0","5923.31"
|
|
9
|
+
"02-ALM--12-T5-2002","07:08:00","07:08:00","19847","1","","0","0","0.00"
|
|
10
|
+
"02-ALM--12-T5-2002","07:09:00","07:09:00","19848","2","","0","0","724.22"
|
|
11
|
+
"02-ALM--12-T5-2002","07:11:00","07:11:00","19849","3","","0","0","1954.65"
|
|
12
|
+
"02-ALM--12-T5-2002","07:13:00","07:13:00","19850","4","","0","0","2902.91"
|
|
13
|
+
"02-ALM--12-T5-2002","07:15:00","07:15:00","19851","5","","0","0","3931.98"
|
|
14
|
+
"02-ALM--12-T5-2002","07:16:00","07:16:00","19852","6","","0","0","4418.97"
|
|
15
|
+
"02-ALM--12-T5-2002","07:19:00","07:19:00","19853","7","","0","0","5923.31"
|
|
16
|
+
"02-ALM--12-T5-2004","23:16:00","23:16:00","19847","1","","0","0","0.00"
|
|
17
|
+
"02-ALM--12-T5-2004","23:17:00","23:17:00","19848","2","","0","0","724.22"
|
|
18
|
+
"02-ALM--12-T5-2004","23:19:00","23:19:00","19849","3","","0","0","1954.65"
|
|
19
|
+
"02-ALM--12-T5-2004","23:21:00","23:21:00","19850","4","","0","0","2902.91"
|
|
20
|
+
"02-ALM--12-T5-2004","23:23:00","23:23:00","19851","5","","0","0","3931.98"
|
|
21
|
+
"02-ALM--12-T5-2004","23:24:00","23:24:00","19852","6","","0","0","4418.97"
|
|
22
|
+
"02-ALM--12-T5-2004","23:27:00","23:27:00","19853","7","","0","0","5923.31"
|
|
23
|
+
"02-ALM--12-T5-2001","23:31:00","23:31:00","19853","1","","0","0","0.00"
|
|
24
|
+
"02-ALM--12-T5-2001","23:33:00","23:33:00","19852","2","","0","0","1504.34"
|
|
25
|
+
"02-ALM--12-T5-2001","23:35:00","23:35:00","19851","3","","0","0","1991.33"
|
|
26
|
+
"02-ALM--12-T5-2001","23:37:00","23:37:00","19850","4","","0","0","3020.40"
|
|
27
|
+
"02-ALM--12-T5-2001","23:38:00","23:38:00","19849","5","","0","0","3968.66"
|
|
28
|
+
"02-ALM--12-T5-2001","23:40:00","23:40:00","19848","6","","0","0","5199.09"
|
|
29
|
+
"02-ALM--12-T5-2001","23:42:00","23:42:00","19847","7","","0","0","5923.31"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
route_id,service_id,trip_id,shape_id,trip_headsign,direction_id,block_id
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
2
|
+
"aus:vic:vic-02-ALM:","T2_2","02-ALM--12-T5-2000","2-ALM-vpt-1.1.R","Camberwell","1",""
|
|
3
|
+
"aus:vic:vic-02-ALM:","T2_2","02-ALM--12-T5-2002","2-ALM-vpt-1.3.R","Camberwell","1",""
|
|
4
|
+
"aus:vic:vic-02-ALM:","T2_2","02-ALM--12-T5-2004","2-ALM-vpt-1.1.R","Camberwell","1",""
|
|
5
|
+
"aus:vic:vic-02-ALM:","T2_2","02-ALM--12-T5-2001","2-ALM-vpt-1.2.H","Alamein","0",""
|