In [29]:
from pathlib import Path
import json
import pandas as pd
import shapely.geometry as sg
import new_gtfs_tools as gt # Collection of GTFS tools from previous homeworks
%load_ext autoreload
%autoreload 2
DATA_DIR = Path('..')/'data'
The autoreload extension is already loaded. To reload it, use:
%reload_ext autoreload
In [30]:
# Test read_gtfs
#
path = DATA_DIR/'auckland_gtfs_20161017.zip'
feed = gt.read_gtfs(path)
print(feed)
* agency --------------------
agency_phone agency_url agency_id \
0 (09)355-3553 http://www.aucklandtransport.govt.nz NZBGW
1 (09)355-3553 http://www.aucklandtransport.govt.nz PHH
2 (09)355-3553 http://www.aucklandtransport.govt.nz PBC
3 (09)355-3553 http://www.aucklandtransport.govt.nz ABEXP
4 (09)355-3553 http://www.aucklandtransport.govt.nz AM
agency_name agency_timezone agency_lang
0 Go West Pacific/Auckland en
1 SeaLink Group Pacific/Auckland en
2 The Party Bus Company Pacific/Auckland en
3 SkyBus Pacific/Auckland en
4 AT Metro Pacific/Auckland en
* calendar --------------------
service_id start_date end_date monday tuesday \
0 14306060378-20161011155909_v46.26 20161030 20161231 0 0
1 2366061839-20161011155909_v46.26 20161030 20161231 0 0
2 14267044430-20161011151756_v46.25 20161017 20161029 0 0
3 2365061662-20161011155909_v46.26 20161030 20161231 0 0
4 12913041840-20161011155909_v46.26 20161030 20161231 0 0
wednesday thursday friday saturday sunday
0 0 0 0 1 1
1 0 0 0 1 0
2 0 0 0 0 1
3 0 0 0 0 1
4 0 0 0 1 0
* calendar_dates --------------------
service_id date exception_type
0 14267044430-20161011151756_v46.25 20161024 1
1 15428038620-20161011151756_v46.25 20161024 2
2 3090042187-20161011151756_v46.25 20161024 2
3 3922046164-20161011151756_v46.25 20161024 2
4 14625040096-20161011151756_v46.25 20161024 1
* fare_attributes --------------------
None
* fare_rules --------------------
None
* feed_info --------------------
Empty DataFrame
Columns: [feed_publisher_name, feed_publisher_url, feed_lang, feed_start_date, feed_end_date, feed_version]
Index: []
* frequencies --------------------
None
* routes --------------------
route_short_name route_long_name route_type \
0 005 Britomart To Pt Chevalier Via Westmere 3
1 007 St Heliers To Pt Chevalier 3
2 008 New Lynn To Otahuhu 3
3 009 Onehunga To New Lynn 3
4 010 Wynyard Quarter To Onehunga Via Unitec 3
route_text_color agency_id route_id route_color
0 NaN NZBML route_001 NaN
1 NaN NZBML route_002 NaN
2 NaN UE route_003 NaN
3 NaN UE route_004 NaN
4 NaN NZBML route_005 NaN
* shapes --------------------
shape_id shape_pt_sequence shape_pt_lon shape_pt_lat
0 827-20161011151756_v46.25 0 174.77834 -36.61193
1 827-20161011151756_v46.25 1 174.77836 -36.61198
2 827-20161011151756_v46.25 2 174.77844 -36.61196
3 827-20161011151756_v46.25 3 174.77892 -36.61186
4 827-20161011151756_v46.25 4 174.77942 -36.61175
* stops --------------------
stop_lat zone_id stop_lon stop_id parent_station stop_desc \
0 -36.77869 NaN 174.75143 3382 41344 NaN
1 -36.82308 NaN 174.80429 3480 41023 NaN
2 -36.87175 NaN 174.60227 21094 NaN NaN
3 -36.89001 NaN 174.77511 11542 NaN NaN
4 -36.89261 NaN 174.77465 11543 NaN NaN
stop_name location_type stop_code
0 9 Nile Rd 0 3382
1 40 Vauxhall Rd 0 3480
2 Metcalfe Rd and Ranui 1 21094
3 Manukau Rd and King George 1 11542
4 Manukau Rd and Queen Mary 1 11543
* stop_times --------------------
trip_id arrival_time departure_time stop_id \
0 1000046829-20161011151756_v46.25 07:00:00 07:00:00 6920
1 1000046829-20161011151756_v46.25 07:02:10 07:02:10 6800
2 1000046829-20161011151756_v46.25 07:02:20 07:02:20 6364
3 1000046829-20161011151756_v46.25 07:02:30 07:02:30 6366
4 1000046829-20161011151756_v46.25 07:02:40 07:02:40 6182
stop_sequence stop_headsign pickup_type drop_off_type \
0 1 NaN NaN NaN
1 2 NaN NaN NaN
2 3 NaN NaN NaN
3 4 NaN NaN NaN
4 5 NaN NaN NaN
shape_dist_traveled
0 0.000000
1 1.179775
2 1.467670
3 1.734413
4 2.006302
* trips --------------------
block_id route_id direction_id trip_headsign shape_id \
0 NaN route_091 1 Mangere 1209-20161011155909_v46.26
1 NaN route_128 0 Manukau 1232-20161011155909_v46.26
2 NaN route_079 0 Civic Centre 267-20161011151756_v46.25
3 NaN route_127 0 Manukau 1230-20161011155909_v46.26
4 NaN route_270 1 Glenfield 55-20161011155909_v46.26
service_id trip_id
0 14306060378-20161011155909_v46.26 14306060378-20161011155909_v46.26
1 2366061839-20161011155909_v46.26 2366061839-20161011155909_v46.26
2 14267044430-20161011151756_v46.25 14267044430-20161011151756_v46.25
3 2365061662-20161011155909_v46.26 2365061662-20161011155909_v46.26
4 12913041840-20161011155909_v46.26 12913041840-20161011155909_v46.26
* transfers --------------------
None
In [31]:
# Test build_geometry_by_shape
#
geometry_by_shape = feed.build_geometry_by_shape()
shape_id = feed.trips['shape_id'].iat[0] # First trip
geom = geometry_by_shape[shape_id]
geom
Out[31]:
In [32]:
# Test trip_to_geojoson
#
trip_id = feed.trips['trip_id'].iat[0]
geoj = feed.trip_to_geojson(trip_id)
json.dumps(geoj)
# Paste into geojson.io
Out[32]:
'{"type": "Feature", "properties": {"direction_id": 1, "block_id": "n/a", "route_id": "route_091", "service_id": "14306060378-20161011155909_v46.26", "trip_id": "14306060378-20161011155909_v46.26", "trip_headsign": "Mangere", "shape_id": "1209-20161011155909_v46.26"}, "geometry": {"type": "LineString", "coordinates": [[174.76428, -36.85111], [174.76436999999999, -36.85114], [174.76442, -36.851009999999995], [174.76452, -36.8509], [174.76448, -36.85088], [174.7635, -36.8506], [174.76275, -36.850390000000004], [174.7627, -36.85038], [174.76264, -36.85052], [174.76243, -36.85095], [174.76234, -36.851079999999996], [174.76225, -36.85116], [174.76217, -36.851209999999995], [174.76188, -36.85135], [174.7616, -36.85148], [174.76153, -36.85158], [174.76137, -36.85183], [174.76127, -36.85219], [174.76127, -36.85229], [174.76138, -36.85289], [174.76141, -36.852990000000005], [174.76148999999998, -36.853159999999995], [174.7616, -36.853359999999995], [174.76171000000002, -36.85352], [174.76192, -36.85375], [174.76197, -36.853809999999996], [174.76206000000002, -36.85388], [174.76219, -36.85396], [174.76226, -36.854], [174.76235, -36.85403], [174.76242, -36.85405], [174.7625, -36.85407], [174.76272, -36.85411], [174.76283999999998, -36.85411], [174.76289, -36.85412], [174.76301, -36.85411], [174.7631, -36.8541], [174.76308, -36.85417], [174.76283999999998, -36.85471], [174.76248, -36.85553], [174.76207, -36.85645], [174.76182, -36.85703], [174.76179, -36.857079999999996], [174.7617, -36.8573], [174.76164, -36.85743], [174.76163, -36.857459999999996], [174.76169, -36.857479999999995], [174.76163, -36.857459999999996], [174.76161000000002, -36.8575], [174.76161000000002, -36.8577], [174.76163, -36.85777], [174.76167, -36.857820000000004], [174.7617, -36.85785], [174.76176, -36.857890000000005], [174.76183, -36.85791], [174.76206000000002, -36.8579], [174.76224, -36.85792], [174.76228, -36.857929999999996], [174.76238, -36.85797], [174.76241000000002, -36.85798], [174.76328, -36.858309999999996], [174.76359, -36.85843], [174.76339, -36.858779999999996], [174.76317, -36.859140000000004], [174.76273, -36.85989], [174.76268000000002, -36.85998], [174.76261, -36.8601], [174.76246, -36.86036], [174.76232, -36.86061], [174.76207, -36.86104], [174.762, -36.86115], [174.76199, -36.861270000000005], [174.76171000000002, -36.861779999999996], [174.76163, -36.86195], [174.76136, -36.862770000000005], [174.76119, -36.8633], [174.76121, -36.863479999999996], [174.7612, -36.863690000000005], [174.76123, -36.86381], [174.76135, -36.86404], [174.76148999999998, -36.86412], [174.76165, -36.86418], [174.76172, -36.8642], [174.7619, -36.86423], [174.76219, -36.864290000000004], [174.7622, -36.86423], [174.76219, -36.864290000000004], [174.76265, -36.86438], [174.76356, -36.86457], [174.76411000000002, -36.86469], [174.76528000000002, -36.86493], [174.76555, -36.86499], [174.76637, -36.865159999999996], [174.76641, -36.86517], [174.76723, -36.86535], [174.76741, -36.865390000000005], [174.76809, -36.86553], [174.76862, -36.86565], [174.76893, -36.86571], [174.76924, -36.86578], [174.76938, -36.865809999999996], [174.7705, -36.866040000000005], [174.77123, -36.86619], [174.77137, -36.86622], [174.77139, -36.866170000000004], [174.77137, -36.86622], [174.77139, -36.86622], [174.77194, -36.86634], [174.77258999999998, -36.866479999999996], [174.77369, -36.86671], [174.77455, -36.866890000000005], [174.77543, -36.86708], [174.77629, -36.867259999999995], [174.77661, -36.867329999999995], [174.77723, -36.867459999999994], [174.77725, -36.86741], [174.77723, -36.867459999999994], [174.77742, -36.8675], [174.7778, -36.86758], [174.77818, -36.86766], [174.77806, -36.86793], [174.77805, -36.86797], [174.77804, -36.86802], [174.77803, -36.868120000000005], [174.77805, -36.86828], [174.77804, -36.86834], [174.77803, -36.8684], [174.77799, -36.86853], [174.77775, -36.869279999999996], [174.77756000000002, -36.86988], [174.77746000000002, -36.8702], [174.77735, -36.870540000000005], [174.77722, -36.870940000000004], [174.77729, -36.87096], [174.77722, -36.870940000000004], [174.77703, -36.87153], [174.77701000000002, -36.87161], [174.77698999999998, -36.87172], [174.77698999999998, -36.87188], [174.77702, -36.87243], [174.77705, -36.87297], [174.77705, -36.87304], [174.77714, -36.87304], [174.77705, -36.87304], [174.77706, -36.873059999999995], [174.77709, -36.8736], [174.77711000000002, -36.87399], [174.77719, -36.87546], [174.77713, -36.87557], [174.77711000000002, -36.875609999999995], [174.77707, -36.87578], [174.77698999999998, -36.8761], [174.77698, -36.87615], [174.77697, -36.87618], [174.77705, -36.87619], [174.77697, -36.87618], [174.77647, -36.87843], [174.77647, -36.878440000000005], [174.77639, -36.8788], [174.77613, -36.87997], [174.77595, -36.88078], [174.77591999999999, -36.88097], [174.77591, -36.88105], [174.77589, -36.8814], [174.77581, -36.88237], [174.77579, -36.882709999999996], [174.77575, -36.883309999999994], [174.77573, -36.88358], [174.77572, -36.88371], [174.77567, -36.88447], [174.77565, -36.884890000000006], [174.77563, -36.88514], [174.77556, -36.886390000000006], [174.77553999999998, -36.886540000000004], [174.77553, -36.88667], [174.77543, -36.88748], [174.77541000000002, -36.8877], [174.77534, -36.88828], [174.77532, -36.88839], [174.77531000000002, -36.88852], [174.77526, -36.8888], [174.77517, -36.88928], [174.77505, -36.89], [174.77511, -36.89001], [174.77504, -36.89001], [174.77501999999998, -36.89017], [174.77483999999998, -36.89118], [174.77468000000002, -36.89204], [174.77462, -36.89239], [174.77458000000001, -36.8926], [174.77465, -36.89261], [174.77458000000001, -36.8926], [174.77445, -36.89332], [174.77443, -36.89342], [174.77438999999998, -36.893640000000005], [174.77434, -36.89391], [174.77424, -36.894259999999996], [174.77421, -36.89437], [174.77411999999998, -36.89468], [174.77393999999998, -36.89533], [174.77388, -36.89552], [174.77387, -36.8956], [174.77387, -36.8957], [174.77389, -36.8959], [174.77395, -36.89665], [174.77395, -36.89673], [174.77393, -36.8968], [174.77381, -36.8972], [174.77363, -36.89778], [174.77371000000002, -36.89779], [174.77363, -36.89778], [174.77351000000002, -36.89813], [174.77343, -36.898379999999996], [174.77318, -36.899190000000004], [174.77307, -36.89954], [174.77302, -36.89971], [174.77286, -36.900209999999994], [174.7728, -36.90039], [174.77277, -36.9005], [174.77282, -36.90051], [174.77276, -36.9005], [174.77256, -36.90113], [174.77206999999999, -36.90271], [174.77173, -36.90377], [174.77161999999998, -36.90413], [174.77143, -36.904720000000005], [174.77137, -36.904920000000004], [174.77076, -36.90684], [174.77066000000002, -36.90715], [174.77066000000002, -36.90716], [174.77043, -36.90789], [174.77036, -36.90814], [174.77013, -36.90887], [174.76984, -36.90976], [174.76976000000002, -36.91001], [174.76963, -36.91044], [174.76957, -36.91066], [174.7695, -36.91088], [174.76943, -36.91122], [174.76931000000002, -36.9118], [174.76923, -36.91225], [174.76916, -36.91261], [174.76907, -36.91312], [174.76883999999998, -36.91427], [174.76883999999998, -36.91429], [174.76879, -36.91455], [174.76862, -36.915459999999996], [174.7685, -36.916109999999996], [174.76848, -36.916290000000004], [174.76836, -36.91735], [174.76819, -36.91873], [174.76817, -36.9189], [174.76813, -36.919059999999995], [174.76805, -36.9193], [174.76765, -36.92038], [174.76763, -36.92046], [174.76763, -36.92058], [174.76765, -36.92069], [174.76766, -36.92073], [174.76768, -36.92078], [174.7677, -36.920840000000005], [174.76783, -36.920840000000005], [174.76793999999998, -36.92085], [174.76803, -36.92088], [174.76814, -36.92093], [174.76816000000002, -36.92098], [174.7682, -36.92102], [174.76835, -36.921209999999995], [174.76838999999998, -36.92125], [174.76843, -36.921279999999996], [174.76847, -36.92131], [174.76852, -36.92134], [174.7686, -36.92137], [174.76877, -36.92142], [174.76904, -36.921490000000006], [174.76918999999998, -36.92154], [174.76934, -36.92158], [174.76955, -36.92165], [174.76971, -36.9217], [174.7699, -36.92173], [174.77008999999998, -36.92177], [174.77022, -36.9218], [174.77061, -36.92188], [174.77078, -36.92195], [174.77088, -36.922], [174.77091000000001, -36.92201], [174.77104, -36.92212], [174.77119, -36.92223], [174.77166, -36.922540000000005], [174.77168999999998, -36.92255], [174.77178999999998, -36.92259], [174.77192, -36.92262], [174.77206999999999, -36.92263], [174.77302, -36.92265], [174.77397, -36.92266], [174.77407, -36.92265], [174.7742, -36.92266], [174.77441000000002, -36.92269], [174.77456, -36.92273], [174.77461, -36.922740000000005], [174.77594, -36.92324], [174.77614, -36.92329], [174.7763, -36.92334], [174.77653, -36.92338], [174.77697, -36.92352], [174.77715, -36.923559999999995], [174.77729, -36.92358], [174.77747, -36.92358], [174.77767, -36.92357], [174.77947, -36.92342], [174.78059, -36.923320000000004], [174.78087, -36.9233], [174.78145, -36.92325], [174.78184, -36.92322], [174.78312, -36.92311], [174.78388, -36.92305], [174.78418, -36.92302], [174.78458, -36.922979999999995], [174.78473, -36.92419], [174.78478, -36.92418], [174.78473, -36.92419], [174.78475, -36.9243], [174.78466, -36.92429], [174.7845, -36.9243], [174.7833, -36.924409999999995], [174.78336000000002, -36.924859999999995], [174.78341, -36.925259999999994], [174.78342, -36.925309999999996], [174.78358, -36.9253], [174.78439, -36.92522], [174.78496, -36.92517], [174.78545, -36.92512], [174.78557, -36.92511], [174.78566, -36.9251], [174.78571000000002, -36.92544], [174.78576, -36.92544], [174.78571000000002, -36.92544], [174.78582, -36.92622], [174.78585, -36.92647], [174.78552, -36.92649], [174.78318000000002, -36.92669], [174.78255, -36.92675], [174.78253, -36.92693], [174.78248, -36.92708], [174.78222, -36.92799], [174.78223, -36.92822], [174.78226, -36.928309999999996], [174.78242, -36.9285], [174.78319, -36.9289], [174.78343, -36.92906], [174.7842, -36.92949], [174.78474, -36.929829999999995], [174.78512, -36.93008], [174.78663999999998, -36.931290000000004], [174.78676000000002, -36.93141], [174.78692, -36.93158], [174.78707, -36.93172], [174.78733, -36.93202], [174.78762, -36.93237], [174.78808, -36.93306], [174.78824, -36.93336], [174.78831, -36.93351], [174.7884, -36.933679999999995], [174.78848, -36.933859999999996], [174.78858, -36.93407], [174.78869, -36.93436], [174.78884, -36.9348], [174.78909, -36.935520000000004], [174.7894, -36.936479999999996], [174.78951999999998, -36.936859999999996], [174.78978, -36.93714], [174.78984, -36.93723], [174.78987, -36.93728], [174.78994, -36.93743], [174.79015, -36.93786], [174.79043000000001, -36.93845], [174.79067, -36.938959999999994], [174.79102, -36.939679999999996], [174.79121, -36.9401], [174.79125, -36.94024], [174.79123, -36.94032], [174.79111, -36.94034], [174.79032, -36.940509999999996], [174.78985, -36.9406], [174.78898, -36.94076], [174.78897, -36.94076], [174.78867, -36.94081], [174.7878, -36.94097], [174.78779, -36.94097], [174.78746, -36.94103], [174.78717, -36.94107], [174.78712, -36.94109], [174.78708, -36.9411], [174.78703000000002, -36.94112], [174.78694, -36.941140000000004], [174.78669, -36.941159999999996], [174.78663999999998, -36.941159999999996], [174.78624, -36.94124], [174.78616, -36.94126], [174.78503999999998, -36.94146], [174.78423999999998, -36.9416], [174.78212, -36.941990000000004], [174.78158, -36.94209], [174.781, -36.942190000000004], [174.78091, -36.942209999999996], [174.77986, -36.9424], [174.7793, -36.9425], [174.77916000000002, -36.94252], [174.77903999999998, -36.94256], [174.77893999999998, -36.94265], [174.77889, -36.94273], [174.77831, -36.94247], [174.77683000000002, -36.94182], [174.77682, -36.94181], [174.77591, -36.9414], [174.77581, -36.94135], [174.77516, -36.94106], [174.77508, -36.941], [174.77504, -36.94099], [174.77494, -36.94104], [174.77483, -36.94106], [174.77463999999998, -36.94105], [174.7746, -36.94103], [174.77421999999999, -36.94088], [174.77324, -36.94048], [174.77305, -36.9404], [174.77291, -36.94034], [174.77281000000002, -36.94031], [174.77268, -36.94031], [174.77256, -36.94032], [174.77241999999998, -36.94036], [174.77233999999999, -36.94039], [174.77223999999998, -36.94045], [174.77211, -36.940540000000006], [174.77199, -36.9406], [174.77183, -36.94064], [174.77175, -36.94065], [174.77161, -36.94064], [174.77052, -36.940509999999996], [174.7704, -36.94052], [174.76953999999998, -36.9407], [174.76941000000002, -36.94073], [174.76931000000002, -36.9408], [174.76873, -36.94127], [174.76854, -36.9414], [174.76837, -36.94149], [174.76821999999999, -36.94155], [174.768, -36.9416], [174.76792, -36.94162], [174.76786, -36.941629999999996], [174.76783, -36.941629999999996], [174.76775, -36.94164], [174.76743000000002, -36.94164], [174.76741, -36.94191], [174.76741, -36.942009999999996], [174.76744, -36.942370000000004], [174.76746, -36.94247], [174.76756, -36.942859999999996], [174.76786, -36.94283], [174.76807, -36.94285], [174.76823000000002, -36.94288], [174.76838999999998, -36.94292], [174.76933, -36.94316], [174.76941000000002, -36.94319], [174.76944, -36.94319], [174.76998, -36.943329999999996], [174.77028, -36.94343], [174.77053, -36.94352], [174.77065, -36.94357], [174.77174, -36.94403], [174.7725, -36.94435], [174.7727, -36.94443], [174.77463999999998, -36.945240000000005], [174.77514, -36.94545], [174.7752, -36.945479999999996], [174.77559, -36.945640000000004], [174.77674, -36.94613], [174.77657, -36.9464], [174.77635, -36.94676], [174.77617, -36.94705], [174.77589, -36.94749], [174.77584, -36.94761], [174.77581, -36.94774], [174.7758, -36.94791], [174.77581999999998, -36.94805], [174.77587, -36.948209999999996], [174.77597, -36.948409999999996], [174.77603, -36.94854], [174.77615, -36.94883], [174.77648, -36.94954], [174.7766, -36.94982], [174.77664, -36.949909999999996], [174.77675, -36.95015], [174.77698, -36.95066], [174.777, -36.95071], [174.77743999999998, -36.95167], [174.77751, -36.951840000000004], [174.77764, -36.95199], [174.77773, -36.95205], [174.77781000000002, -36.952090000000005], [174.77862, -36.95256], [174.77879, -36.952659999999995], [174.78026, -36.9535], [174.78085, -36.953829999999996], [174.781, -36.95394], [174.78105, -36.954], [174.78115, -36.95413], [174.78121000000002, -36.9542], [174.78134, -36.954370000000004], [174.78198999999998, -36.95521], [174.78252, -36.95588], [174.78265, -36.95605], [174.78316999999998, -36.9559], [174.78328, -36.95588], [174.78328, -36.955870000000004], [174.78482, -36.95544], [174.78492, -36.95541], [174.7851, -36.95537], [174.78523, -36.95536], [174.78541, -36.95536], [174.78558999999998, -36.95535], [174.78654, -36.955290000000005], [174.7869, -36.955259999999996], [174.78824, -36.95518], [174.78897, -36.95514], [174.78897, -36.9551], [174.78897, -36.95514], [174.78993, -36.95508], [174.79002, -36.95507], [174.79019, -36.955040000000004], [174.79067, -36.9549], [174.79086, -36.954840000000004], [174.79137, -36.95472], [174.79166, -36.95466], [174.79245, -36.95447], [174.79327, -36.95427], [174.79328999999998, -36.95426], [174.79418, -36.95405], [174.79494, -36.95386], [174.79528, -36.95378], [174.79568999999998, -36.95368], [174.79603, -36.9536], [174.79651, -36.95348], [174.79653000000002, -36.95348], [174.79697, -36.95337], [174.7973, -36.95329], [174.79758999999999, -36.95322], [174.79782, -36.95316], [174.79831000000001, -36.95304], [174.79869, -36.95295], [174.79872, -36.95295], [174.8002, -36.95258], [174.80019, -36.95255], [174.8002, -36.95259], [174.80199, -36.95215], [174.80218, -36.95211], [174.80219, -36.9521], [174.80237, -36.95205], [174.80256, -36.95196], [174.8028, -36.95183], [174.80361000000002, -36.95143], [174.80372, -36.951370000000004], [174.80481, -36.95081], [174.80545, -36.95049], [174.80626, -36.95008], [174.80733, -36.94954], [174.8075, -36.94945], [174.80768, -36.94938], [174.80786, -36.949329999999996], [174.80829, -36.9492], [174.80896, -36.949], [174.80929, -36.9497], [174.80938, -36.9499], [174.80941, -36.94997], [174.80945, -36.95012], [174.80946, -36.95023], [174.80945, -36.95035], [174.80938, -36.95067], [174.80927, -36.95113], [174.80913, -36.95169], [174.80895, -36.95245], [174.80876999999998, -36.95322], [174.80863, -36.953790000000005], [174.80862, -36.953829999999996], [174.80856, -36.95394], [174.80845, -36.95405], [174.80838, -36.9541], [174.80808000000002, -36.954240000000006], [174.80772, -36.95442], [174.80695, -36.9548], [174.80655, -36.95499], [174.80631, -36.95511], [174.80594, -36.955290000000005], [174.80482, -36.95583], [174.80385, -36.9563], [174.80418, -36.95714], [174.80418999999998, -36.95717], [174.80456, -36.9581], [174.80472, -36.9585], [174.80488, -36.95892], [174.80489, -36.958940000000005], [174.80496000000002, -36.95913], [174.80508999999998, -36.95944], [174.80553, -36.960570000000004], [174.80553999999998, -36.960570000000004], [174.80585, -36.96138], [174.8065, -36.963], [174.80658, -36.96315], [174.80666000000002, -36.96332], [174.80683, -36.96367], [174.80708, -36.96418], [174.8075, -36.96502], [174.80767, -36.96536], [174.80785, -36.96573], [174.80798000000001, -36.96589], [174.8083, -36.96609], [174.80853000000002, -36.96617], [174.80866, -36.966190000000005], [174.80876, -36.96625], [174.80882, -36.96634], [174.80884, -36.966429999999995], [174.8088, -36.96653], [174.80873, -36.9666], [174.80862, -36.96665], [174.80852, -36.96666], [174.80838, -36.96668], [174.80822, -36.96673], [174.80774, -36.96699], [174.80698999999998, -36.96752], [174.80652, -36.96787], [174.80597, -36.96826], [174.8059, -36.9683], [174.80595, -36.96836], [174.8059, -36.968309999999995], [174.8058, -36.96837], [174.80561, -36.96848], [174.80555, -36.9685], [174.80546999999999, -36.96855], [174.80534, -36.96861], [174.80499, -36.968759999999996], [174.80483999999998, -36.96883], [174.80465, -36.96891], [174.80438, -36.969], [174.80418999999998, -36.96905], [174.80393, -36.9691], [174.80374, -36.969120000000004], [174.80353, -36.96915], [174.8032, -36.96917], [174.80293999999998, -36.96917], [174.80221, -36.9691], [174.80213999999998, -36.9691], [174.80199, -36.969120000000004], [174.80188, -36.96914], [174.80178999999998, -36.9691], [174.80166, -36.96907], [174.80153, -36.96906], [174.80069, -36.96898], [174.80056000000002, -36.96897], [174.80013, -36.968920000000004], [174.79985, -36.9689], [174.79971, -36.96887], [174.79967, -36.96898]]}}'
In [33]:
# Test compute_screen_line_counts
#
# A trip should intersect itself
shape_id = feed.trips['shape_id'].iat[0]
print(shape_id)
screen_line = feed.build_geometry_by_shape(shape_ids=[shape_id])[shape_id]
counts = feed.compute_screen_line_counts(screen_line)
print(counts.head())
shape_id in counts['shape_id'].values
1209-20161011155909_v46.26
trip_id route_id route_short_name \
0 14306060378-20161011155909_v46.26 route_091 309
1 14306060390-20161011155909_v46.26 route_091 309
2 14306060351-20161011155909_v46.26 route_091 309
3 14306060328-20161011155909_v46.26 route_091 309
4 14306060389-20161011155909_v46.26 route_091 309
direction_id shape_id
0 1 1209-20161011155909_v46.26
1 1 1209-20161011155909_v46.26
2 1 1209-20161011155909_v46.26
3 1 1209-20161011155909_v46.26
4 1 1209-20161011155909_v46.26
Out[33]:
True
In [34]:
# Create a screen line across the Auckland Harbour Bridge;
# see http://geojson.io/#id=gist:anonymous/1ef5babe013688950587e853310cda9d&map=14/-36.8301/174.7439
#
screen_line_json = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[
174.74158287048337,
-36.83037852590646
],
[
174.74905014038086,
-36.832233404901814
]
]
}
}
screen_line = sg.shape(screen_line_json["geometry"])
screen_line
Out[34]:
In [7]:
counts = feed.compute_screen_line_counts(screen_line)
counts
Out[7]:
trip_id
route_id
route_short_name
direction_id
shape_id
0
3922046164-20161011151756_v46.25
route_274
922
1
560-20161011151756_v46.25
1
3922053258-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
2
3922046194-20161011151756_v46.25
route_274
922
1
560-20161011151756_v46.25
3
3922053246-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
4
3922046189-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
5
3922046201-20161011151756_v46.25
route_274
922
1
560-20161011151756_v46.25
6
3922053270-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
7
3922046199-20161011151756_v46.25
route_274
922
1
560-20161011151756_v46.25
8
3922046174-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
9
3922053247-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
10
3922046196-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
11
3922046205-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
12
3922053259-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
13
3922046181-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
14
3922046167-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
15
3922053237-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
16
3922053221-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
17
3922046183-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
18
3922053277-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
19
3922053257-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
20
3922053253-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
21
3922046176-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
22
3922046193-20161011155909_v46.26
route_274
922
1
483-20161011155909_v46.26
23
3922053221-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
24
3922053263-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
25
3922053235-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
26
3922053262-20161011151756_v46.25
route_274
922
0
559-20161011151756_v46.25
27
3922053251-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
28
3922046171-20161011151756_v46.25
route_274
922
1
560-20161011151756_v46.25
29
3922053229-20161011155909_v46.26
route_274
922
0
482-20161011155909_v46.26
...
...
...
...
...
...
4225
4953028243-20161011151756_v46.25
route_280
953
0
816-20161011151756_v46.25
4226
4953052954-20161011155909_v46.26
route_280
953
1
708-20161011155909_v46.26
4227
4953028244-20161011151756_v46.25
route_280
953
0
816-20161011151756_v46.25
4228
4953052957-20161011151756_v46.25
route_280
953
1
817-20161011151756_v46.25
4229
4953028241-20161011151756_v46.25
route_280
953
0
816-20161011151756_v46.25
4230
4953052956-20161011151756_v46.25
route_280
953
1
817-20161011151756_v46.25
4231
4953028242-20161011155909_v46.26
route_280
953
0
707-20161011155909_v46.26
4232
4953052956-20161011155909_v46.26
route_280
953
1
708-20161011155909_v46.26
4233
12528042053-20161011155909_v46.26
route_325
N83
1
576-20161011155909_v46.26
4234
12528042051-20161011155909_v46.26
route_325
N83
1
575-20161011155909_v46.26
4235
12528042050-20161011155909_v46.26
route_325
N83
1
575-20161011155909_v46.26
4236
12528042052-20161011151756_v46.25
route_325
N83
1
658-20161011151756_v46.25
4237
12528042052-20161011155909_v46.26
route_325
N83
1
575-20161011155909_v46.26
4238
12528042051-20161011151756_v46.25
route_325
N83
1
658-20161011151756_v46.25
4239
12528042054-20161011151756_v46.25
route_325
N83
1
659-20161011151756_v46.25
4240
12528042050-20161011151756_v46.25
route_325
N83
1
658-20161011151756_v46.25
4241
12528042055-20161011151756_v46.25
route_325
N83
1
659-20161011151756_v46.25
4242
12528042055-20161011155909_v46.26
route_325
N83
1
576-20161011155909_v46.26
4243
12528042054-20161011155909_v46.26
route_325
N83
1
576-20161011155909_v46.26
4244
12528042053-20161011151756_v46.25
route_325
N83
1
659-20161011151756_v46.25
4245
12866053285-20161011151756_v46.25
route_251
866X
0
732-20161011151756_v46.25
4246
12866053286-20161011155909_v46.26
route_251
866X
0
636-20161011155909_v46.26
4247
12866053286-20161011151756_v46.25
route_251
866X
0
732-20161011151756_v46.25
4248
12866053285-20161011155909_v46.26
route_251
866X
0
636-20161011155909_v46.26
4249
12834046246-20161011151756_v46.25
route_244
834
0
1249-20161011151756_v46.25
4250
12834046246-20161011155909_v46.26
route_244
834
0
1109-20161011155909_v46.26
4251
4970029412-20161011155909_v46.26
route_288
970
1
866-20161011155909_v46.26
4252
4970029411-20161011155909_v46.26
route_288
970
1
866-20161011155909_v46.26
4253
4970029411-20161011151756_v46.25
route_288
970
1
961-20161011151756_v46.25
4254
4970029412-20161011151756_v46.25
route_288
970
1
961-20161011151756_v46.25
4255 rows × 5 columns
In [ ]:
Content source: araichev/pyclub
Similar notebooks: