In [6]:
from pathlib import Path
import json
import sys
import pandas as pd
import shapely.geometry as sg
import 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 [7]:
# GTFS feed of interest
path = DATA_DIR/'auckland_gtfs_20161017.zip'
feed = gt.read_gtfs(path)
In [8]:
def build_geometry_by_shape(feed, shape_ids=None):
"""
Given a GTFS feed object, return a dictionary with structure
shape ID -> Shapely LineString representation of shape,
where the dictionary ranges over all shapes in the feed.
Use WGS84 longitude-latitude coordinates, the native coordinate system of GTFS.
If a list of shape IDs ``shape_ids`` is given,
then only include the given shape IDs in the dictionary.
NOTES:
- Raise a ValueError if the feed has no shapes
"""
if feed['shapes'] is None:
raise ValueError('The feed has no shapes')
d = dict()
sh = feed['shapes'].copy()
# Restrict shapes if necessary
if shape_ids is not None:
sh = sh[sh['shape_id'].isin(shape_ids)]
sh = sh.sort_values(['shape_id', 'shape_pt_sequence'])
for shid, group in sh.groupby('shape_id'):
lonlats = group[['shape_pt_lon', 'shape_pt_lat']].values
d[shid] = sg.LineString(lonlats)
return d
In [9]:
# Test some
geometry_by_shape = build_geometry_by_shape(feed)
shape_id = feed['trips']['shape_id'].iat[0] # First trip
geom = geometry_by_shape[shape_id]
geom
Out[9]:
In [10]:
geom.wkt
Out[10]:
'LINESTRING (174.76428 -36.85111, 174.76437 -36.85114, 174.76442 -36.85101, 174.76452 -36.8509, 174.76448 -36.85088, 174.7635 -36.8506, 174.76275 -36.85039, 174.7627 -36.85038, 174.76264 -36.85052, 174.76243 -36.85095, 174.76234 -36.85108, 174.76225 -36.85116, 174.76217 -36.85120999999999, 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.85299000000001, 174.76149 -36.85316, 174.7616 -36.85336, 174.76171 -36.85352, 174.76192 -36.85375, 174.76197 -36.85381, 174.76206 -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.76284 -36.85411, 174.76289 -36.85412, 174.76301 -36.85411, 174.7631 -36.8541, 174.76308 -36.85417, 174.76284 -36.85471, 174.76248 -36.85553, 174.76207 -36.85645, 174.76182 -36.85703, 174.76179 -36.85708, 174.7617 -36.8573, 174.76164 -36.85743, 174.76163 -36.85746, 174.76169 -36.85748, 174.76163 -36.85746, 174.76161 -36.8575, 174.76161 -36.8577, 174.76163 -36.85777, 174.76167 -36.85782, 174.7617 -36.85785, 174.76176 -36.85789, 174.76183 -36.85791, 174.76206 -36.8579, 174.76224 -36.85792, 174.76228 -36.85793, 174.76238 -36.85797, 174.76241 -36.85798, 174.76328 -36.85831, 174.76359 -36.85843, 174.76339 -36.85878, 174.76317 -36.85914, 174.76273 -36.85989, 174.76268 -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.86127, 174.76171 -36.86178, 174.76163 -36.86195, 174.76136 -36.86277, 174.76119 -36.8633, 174.76121 -36.86348, 174.7612 -36.86369000000001, 174.76123 -36.86381, 174.76135 -36.86404, 174.76149 -36.86412, 174.76165 -36.86418, 174.76172 -36.8642, 174.7619 -36.86423, 174.76219 -36.86429, 174.7622 -36.86423, 174.76219 -36.86429, 174.76265 -36.86438, 174.76356 -36.86457, 174.76411 -36.86469, 174.76528 -36.86493, 174.76555 -36.86499, 174.76637 -36.86516, 174.76641 -36.86517, 174.76723 -36.86535, 174.76741 -36.86539, 174.76809 -36.86553, 174.76862 -36.86565, 174.76893 -36.86571, 174.76924 -36.86578, 174.76938 -36.86581, 174.7705 -36.86604000000001, 174.77123 -36.86619, 174.77137 -36.86622, 174.77139 -36.86617, 174.77137 -36.86622, 174.77139 -36.86622, 174.77194 -36.86634, 174.77259 -36.86648, 174.77369 -36.86671, 174.77455 -36.86689000000001, 174.77543 -36.86708, 174.77629 -36.86725999999999, 174.77661 -36.86733, 174.77723 -36.86745999999999, 174.77725 -36.86741, 174.77723 -36.86745999999999, 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.86812, 174.77805 -36.86828, 174.77804 -36.86834, 174.77803 -36.8684, 174.77799 -36.86853, 174.77775 -36.86928, 174.77756 -36.86988, 174.77746 -36.8702, 174.77735 -36.87054000000001, 174.77722 -36.87094, 174.77729 -36.87096, 174.77722 -36.87094, 174.77703 -36.87153, 174.77701 -36.87161, 174.77699 -36.87172, 174.77699 -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.87306, 174.77709 -36.8736, 174.77711 -36.87399, 174.77719 -36.87546, 174.77713 -36.87557, 174.77711 -36.87560999999999, 174.77707 -36.87578, 174.77699 -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.87844, 174.77639 -36.8788, 174.77613 -36.87997, 174.77595 -36.88078, 174.77592 -36.88097, 174.77591 -36.88105, 174.77589 -36.8814, 174.77581 -36.88237, 174.77579 -36.88271, 174.77575 -36.88330999999999, 174.77573 -36.88358, 174.77572 -36.88371, 174.77567 -36.88447, 174.77565 -36.88489000000001, 174.77563 -36.88514, 174.77556 -36.88639000000001, 174.77554 -36.88654, 174.77553 -36.88667, 174.77543 -36.88748, 174.77541 -36.8877, 174.77534 -36.88828, 174.77532 -36.88839, 174.77531 -36.88852, 174.77526 -36.8888, 174.77517 -36.88928, 174.77505 -36.89, 174.77511 -36.89001, 174.77504 -36.89001, 174.77502 -36.89017, 174.77484 -36.89118, 174.77468 -36.89204, 174.77462 -36.89239, 174.77458 -36.8926, 174.77465 -36.89261, 174.77458 -36.8926, 174.77445 -36.89332, 174.77443 -36.89342, 174.77439 -36.89364, 174.77434 -36.89391, 174.77424 -36.89426, 174.77421 -36.89437, 174.77412 -36.89468, 174.77394 -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.77371 -36.89779, 174.77363 -36.89778, 174.77351 -36.89813, 174.77343 -36.89838, 174.77318 -36.89919, 174.77307 -36.89954, 174.77302 -36.89971, 174.77286 -36.90020999999999, 174.7728 -36.90039, 174.77277 -36.9005, 174.77282 -36.90051, 174.77276 -36.9005, 174.77256 -36.90113, 174.77207 -36.90271, 174.77173 -36.90377, 174.77162 -36.90413, 174.77143 -36.90472, 174.77137 -36.90492, 174.77076 -36.90684, 174.77066 -36.90715, 174.77066 -36.90716, 174.77043 -36.90789, 174.77036 -36.90814, 174.77013 -36.90887, 174.76984 -36.90976, 174.76976 -36.91001, 174.76963 -36.91044, 174.76957 -36.91066, 174.7695 -36.91088, 174.76943 -36.91122, 174.76931 -36.9118, 174.76923 -36.91225, 174.76916 -36.91261, 174.76907 -36.91312, 174.76884 -36.91427, 174.76884 -36.91429, 174.76879 -36.91455, 174.76862 -36.91546, 174.7685 -36.91611, 174.76848 -36.91629, 174.76836 -36.91735, 174.76819 -36.91873, 174.76817 -36.9189, 174.76813 -36.91905999999999, 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.92084000000001, 174.76783 -36.92084000000001, 174.76794 -36.92085, 174.76803 -36.92088, 174.76814 -36.92093, 174.76816 -36.92098, 174.7682 -36.92102, 174.76835 -36.92120999999999, 174.76839 -36.92125, 174.76843 -36.92128, 174.76847 -36.92131, 174.76852 -36.92134, 174.7686 -36.92137, 174.76877 -36.92142, 174.76904 -36.92149000000001, 174.76919 -36.92154, 174.76934 -36.92158, 174.76955 -36.92165, 174.76971 -36.9217, 174.7699 -36.92173, 174.77009 -36.92177, 174.77022 -36.9218, 174.77061 -36.92188, 174.77078 -36.92195, 174.77088 -36.922, 174.77091 -36.92201, 174.77104 -36.92212, 174.77119 -36.92223, 174.77166 -36.92254000000001, 174.77169 -36.92255, 174.77179 -36.92259, 174.77192 -36.92262, 174.77207 -36.92263, 174.77302 -36.92265, 174.77397 -36.92266, 174.77407 -36.92265, 174.7742 -36.92266, 174.77441 -36.92269, 174.77456 -36.92273, 174.77461 -36.92274, 174.77594 -36.92324, 174.77614 -36.92329, 174.7763 -36.92334, 174.77653 -36.92338, 174.77697 -36.92352, 174.77715 -36.92355999999999, 174.77729 -36.92358, 174.77747 -36.92358, 174.77767 -36.92357, 174.77947 -36.92342, 174.78059 -36.92332, 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.92298, 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.92440999999999, 174.78336 -36.92486, 174.78341 -36.92525999999999, 174.78342 -36.92531, 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.78571 -36.92544, 174.78576 -36.92544, 174.78571 -36.92544, 174.78582 -36.92622, 174.78585 -36.92647, 174.78552 -36.92649, 174.78318 -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.92831, 174.78242 -36.9285, 174.78319 -36.9289, 174.78343 -36.92906, 174.7842 -36.92949, 174.78474 -36.92983, 174.78512 -36.93008, 174.78664 -36.93129, 174.78676 -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.93368, 174.78848 -36.93386, 174.78858 -36.93407, 174.78869 -36.93436, 174.78884 -36.9348, 174.78909 -36.93552, 174.7894 -36.93648, 174.78952 -36.93686, 174.78978 -36.93714, 174.78984 -36.93723, 174.78987 -36.93728, 174.78994 -36.93743, 174.79015 -36.93786, 174.79043 -36.93845, 174.79067 -36.93895999999999, 174.79102 -36.93968, 174.79121 -36.9401, 174.79125 -36.94024, 174.79123 -36.94032, 174.79111 -36.94034, 174.79032 -36.94051, 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.78703 -36.94112, 174.78694 -36.94114, 174.78669 -36.94116, 174.78664 -36.94116, 174.78624 -36.94124, 174.78616 -36.94126, 174.78504 -36.94146, 174.78424 -36.9416, 174.78212 -36.94199, 174.78158 -36.94209, 174.781 -36.94219, 174.78091 -36.94221, 174.77986 -36.9424, 174.7793 -36.9425, 174.77916 -36.94252, 174.77904 -36.94256, 174.77894 -36.94265, 174.77889 -36.94273, 174.77831 -36.94247, 174.77683 -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.77464 -36.94105, 174.7746 -36.94103, 174.77422 -36.94088, 174.77324 -36.94048, 174.77305 -36.9404, 174.77291 -36.94034, 174.77281 -36.94031, 174.77268 -36.94031, 174.77256 -36.94032, 174.77242 -36.94036, 174.77234 -36.94039, 174.77224 -36.94045, 174.77211 -36.94054000000001, 174.77199 -36.9406, 174.77183 -36.94064, 174.77175 -36.94065, 174.77161 -36.94064, 174.77052 -36.94051, 174.7704 -36.94052, 174.76954 -36.9407, 174.76941 -36.94073, 174.76931 -36.9408, 174.76873 -36.94127, 174.76854 -36.9414, 174.76837 -36.94149, 174.76822 -36.94155, 174.768 -36.9416, 174.76792 -36.94162, 174.76786 -36.94163, 174.76783 -36.94163, 174.76775 -36.94164, 174.76743 -36.94164, 174.76741 -36.94191, 174.76741 -36.94201, 174.76744 -36.94237, 174.76746 -36.94247, 174.76756 -36.94286, 174.76786 -36.94283, 174.76807 -36.94285, 174.76823 -36.94288, 174.76839 -36.94292, 174.76933 -36.94316, 174.76941 -36.94319, 174.76944 -36.94319, 174.76998 -36.94333, 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.77464 -36.94524000000001, 174.77514 -36.94545, 174.7752 -36.94548, 174.77559 -36.94564, 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.77582 -36.94805, 174.77587 -36.94821, 174.77597 -36.94841, 174.77603 -36.94854, 174.77615 -36.94883, 174.77648 -36.94954, 174.7766 -36.94982, 174.77664 -36.94991, 174.77675 -36.95015, 174.77698 -36.95066, 174.777 -36.95071, 174.77744 -36.95167, 174.77751 -36.95184, 174.77764 -36.95199, 174.77773 -36.95205, 174.77781 -36.95209000000001, 174.77862 -36.95256, 174.77879 -36.95265999999999, 174.78026 -36.9535, 174.78085 -36.95383, 174.781 -36.95394, 174.78105 -36.954, 174.78115 -36.95413, 174.78121 -36.9542, 174.78134 -36.95437, 174.78199 -36.95521, 174.78252 -36.95588, 174.78265 -36.95605, 174.78317 -36.9559, 174.78328 -36.95588, 174.78328 -36.95587, 174.78482 -36.95544, 174.78492 -36.95541, 174.7851 -36.95537, 174.78523 -36.95536, 174.78541 -36.95536, 174.78559 -36.95535, 174.78654 -36.95529000000001, 174.7869 -36.95526, 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.95504, 174.79067 -36.9549, 174.79086 -36.95484, 174.79137 -36.95472, 174.79166 -36.95466, 174.79245 -36.95447, 174.79327 -36.95427, 174.79329 -36.95426, 174.79418 -36.95405, 174.79494 -36.95386, 174.79528 -36.95378, 174.79569 -36.95368, 174.79603 -36.9536, 174.79651 -36.95348, 174.79653 -36.95348, 174.79697 -36.95337, 174.7973 -36.95329, 174.79759 -36.95322, 174.79782 -36.95316, 174.79831 -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.80361 -36.95143, 174.80372 -36.95137, 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.94933, 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.80877 -36.95322, 174.80863 -36.95379000000001, 174.80862 -36.95383, 174.80856 -36.95394, 174.80845 -36.95405, 174.80838 -36.9541, 174.80808 -36.95424000000001, 174.80772 -36.95442, 174.80695 -36.9548, 174.80655 -36.95499, 174.80631 -36.95511, 174.80594 -36.95529000000001, 174.80482 -36.95583, 174.80385 -36.9563, 174.80418 -36.95714, 174.80419 -36.95717, 174.80456 -36.9581, 174.80472 -36.9585, 174.80488 -36.95892, 174.80489 -36.95894000000001, 174.80496 -36.95913, 174.80509 -36.95944, 174.80553 -36.96057, 174.80554 -36.96057, 174.80585 -36.96138, 174.8065 -36.963, 174.80658 -36.96315, 174.80666 -36.96332, 174.80683 -36.96367, 174.80708 -36.96418, 174.8075 -36.96502, 174.80767 -36.96536, 174.80785 -36.96573, 174.80798 -36.96589, 174.8083 -36.96609, 174.80853 -36.96617, 174.80866 -36.96619, 174.80876 -36.96625, 174.80882 -36.96634, 174.80884 -36.96643, 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.80699 -36.96752, 174.80652 -36.96787, 174.80597 -36.96826, 174.8059 -36.9683, 174.80595 -36.96836, 174.8059 -36.96831, 174.8058 -36.96837, 174.80561 -36.96848, 174.80555 -36.9685, 174.80547 -36.96855, 174.80534 -36.96861, 174.80499 -36.96876, 174.80484 -36.96883, 174.80465 -36.96891, 174.80438 -36.969, 174.80419 -36.96905, 174.80393 -36.9691, 174.80374 -36.96912, 174.80353 -36.96915, 174.8032 -36.96917, 174.80294 -36.96917, 174.80221 -36.9691, 174.80214 -36.9691, 174.80199 -36.96912, 174.80188 -36.96914, 174.80179 -36.9691, 174.80166 -36.96907, 174.80153 -36.96906, 174.80069 -36.96898, 174.80056 -36.96897, 174.80013 -36.96892, 174.79985 -36.9689, 174.79971 -36.96887, 174.79967 -36.96898)'
In [90]:
def trip_to_geojson(feed, trip_id):
"""
Given a GTFS feed object and a trip ID from that feed,
return a GeoJSON LineString feature (as a Python dictionary)
representing the trip's geometry and its metadata
(trip ID, direction ID, headsign, etc.).
Use WGS84 coordinates, the native coordinate system of GTFS.
NOTES:
Raise a ``ValueError`` if the appropriate GTFS data does not exist.
"""
if trip_id not in feed['trips']['trip_id'].values:
raise ValueError('Trip ID {!s} not present in feed trips'.format(trip_id))
# Get trip data as dictionary, replacing numpy.nan with 'n/a' to ease later
# conversion to JSON
t = feed['trips']
d = t[t['trip_id'] == trip_id].fillna('n/a').to_dict(orient='records')[0]
# Get Shapely LineString for trip shape
shid = d['shape_id']
geom = build_geometry_by_shape(feed, shape_ids=[shid])[shid]
# Convert LineString to GeoJSON format
result = {
'type': 'Feature',
'properties': d,
'geometry': sg.mapping(geom),
}
return result
In [93]:
# Test some
trip_id = feed['trips']['trip_id'].iat[0] # First trip
geoj = trip_to_geojson(feed, trip_id)
json.dumps(geoj)
# Paste into geojson.io
Out[93]:
'{"properties": {"service_id": "14306060378-20161011155909_v46.26", "direction_id": 1, "trip_id": "14306060378-20161011155909_v46.26", "route_id": "route_091", "block_id": "n/a", "shape_id": "1209-20161011155909_v46.26", "trip_headsign": "Mangere"}, "type": "Feature", "geometry": {"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]], "type": "LineString"}}'
In [79]:
def compute_screen_line_counts(feed, linestring):
"""
Find all trips in the given GTFS feed object that intersect the given Shapely LineString
(given in WGS84 coordinates), and return a data frame with the columns:
- ``'trip_id'``
- ``'route_id'``
- ``'route_short_name'``
- ``'direction_id'``
- ``'shape_id'``
"""
# Convert all shapes to linestrings
geometry_by_shape = build_geometry_by_shape(feed)
# Interate through linestrings to find intersections with screenline
hits = []
for shid, geom in geometry_by_shape.items():
if geom.intersects(linestring):
hits.append(shid)
# Compile trip info for hits
t = feed['trips'].copy()
t = t[t['shape_id'].isin(hits)].copy()
result = t.merge(feed['routes']) # Add more route info
return result[['trip_id', 'route_id', 'route_short_name', 'direction_id', 'shape_id']]
In [85]:
# Test some
# A trip should intersect itself
shape_id = feed['trips']['shape_id'].iat[0]
print(shape_id)
screen_line = build_geometry_by_shape(feed, shape_ids=[shape_id])[shape_id]
counts = compute_screen_line_counts(feed, 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[85]:
True
In [88]:
# 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[88]:
In [89]:
counts = compute_screen_line_counts(feed, screen_line)
counts
Out[89]:
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: