Normalized distance wrapper script
Description
This notebook computes the normalized distance of the bus-stop on the route for both the directions (i.e., North bound and south bound).
[1]:
from pymongo import MongoClient
import math
import pprint
#import geocoder
import pprint
[2]:
con = MongoClient()
[3]:
RouteName='Git_ISCON_PDPU'
[4]:
#'''
ProjectDataUsed = True
UsedPreTrained = False
UseMongoDB = True
#'''
'''
ProjectDataUsed = True
UsedPreTrained = True
UseMongoDB = False
'''
[4]:
'\nProjectDataUsed = True\nUsedPreTrained = True\nUseMongoDB = False\n'
[5]:
if UseMongoDB==True:
BusStopsList = [BusStop for BusStop in con[RouteName]['BusStops.SouthBound'].find().sort([('id',1)])]
BusStopsCount = len (BusStopsList)
[6]:
if UseMongoDB==True:
BusStopRecordList = [record for record in
con [RouteName]['20_12_2017__18_31_19.BusStopsRecord'].find().sort([('id',1)])]
[7]:
if UseMongoDB==True:
'''Normalized distance of the bus-stop using the trip records of 20_12_2017__18_31_19 for South bound direction'''
for BusStopIndex in range(BusStopsCount):
BusStopRecord = [record for record in
con [RouteName]['20_12_2017__18_31_19.BusStopsRecord'].find({'id':BusStopIndex}).limit(1)]
#print(BusStopRecord)
#input()
if len(BusStopRecord)!=0:
LocationRecordForBusStop=[Record for Record in
con[RouteName]['20_12_2017__18_31_19.LocationRecordsWithDistanceFromOrigin'].find({'epoch':BusStopRecord[0]['epoch']}).limit(1)]
if len(LocationRecordForBusStop)!=0:
#print(LocationRecordForBusStop[0]['normalizedDistanceFromOrigin'])
#print(LocationRecordForBusStop[0]['normalizedDistanceFromOriginList'])
#input()
con[RouteName]['BusStops.SouthBound'].update_one({'id':BusStopIndex},{'$set':{'normalizedDistanceFromOrigin':LocationRecordForBusStop[0]['normalizedDistanceFromOrigin'],'distanceFromOrigin':LocationRecordForBusStop[0]['distanceFromOrigin']}})
[8]:
if UseMongoDB==True:
BusStopsList = [BusStop for BusStop in con[RouteName]['BusStops.NorthBound'].find().sort([('id',1)])]
BusStopsCount = len (BusStopsList)
[9]:
if UseMongoDB==True:
'''Normalized distance of the bus-stop using the trip records of 18_01_2018__07_38_10 for North bound direction'''
for BusStopIndex in range(BusStopsCount):
BusStopRecord = [record for record in con [RouteName]['18_01_2018__07_38_10.BusStopsRecord'].find({'id':BusStopIndex}).limit(1)]
#print(BusStopRecord)
#input()
if len(BusStopRecord) != 0:
LocationRecordForBusStop=[Record for Record in con[RouteName]['18_01_2018__07_38_10.LocationRecordsWithDistanceFromOrigin'].find({'epoch':BusStopRecord[0]['epoch']}).limit(1)]
if len(LocationRecordForBusStop)!=0:
#print(LocationRecordForBusStop[0]['normalizedDistanceFromOrigin'])
#print(LocationRecordForBusStop[0]['normalizedDistanceFromOriginList'])
#input()
con[RouteName]['BusStops.NorthBound'].update_one({'id':BusStopIndex},{'$set':{'normalizedDistanceFromOrigin':LocationRecordForBusStop[0]['normalizedDistanceFromOrigin'],'distanceFromOrigin':LocationRecordForBusStop[0]['distanceFromOrigin']}})
[11]:
if UseMongoDB==True:
pprint.pprint([BusStop for BusStop in con[RouteName]['BusStops.NorthBound'].find().sort([('id',1)])])
[{'Location': [23.0281012, 72.5073624],
'Name': 'ISCON',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a52'),
'distanceFromOrigin': 0.0,
'id': 0,
'normalizedDistanceFromOrigin': 0.0},
{'Location': [23.03870415090908, 72.51184797090909],
'Name': 'Pakwaan',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a53'),
'distanceFromOrigin': 1257.194855830299,
'id': 1,
'normalizedDistanceFromOrigin': 0.03815697511500963},
{'Location': [23.046436509895834, 72.5153306670573],
'Name': 'GuruDwara',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a54'),
'distanceFromOrigin': 2199.6353543479936,
'id': 2,
'normalizedDistanceFromOrigin': 0.06676087727269635},
{'Location': [23.05023487142857, 72.517192015625],
'Name': 'Thaltej',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a55'),
'distanceFromOrigin': 2786.5955075824622,
'id': 3,
'normalizedDistanceFromOrigin': 0.08457563674025581},
{'Location': [23.058987780666662, 72.51988011433333],
'Name': 'Zydus',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a56'),
'distanceFromOrigin': 3838.7426854484406,
'id': 4,
'normalizedDistanceFromOrigin': 0.11650923358642275},
{'Location': [23.077070729310343, 72.52525763017242],
'Name': 'Kargil',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a57'),
'distanceFromOrigin': 5976.60601443792,
'id': 5,
'normalizedDistanceFromOrigin': 0.18139527528889884},
{'Location': [23.086530150000005, 72.52805168333333],
'Name': 'Sola',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a58'),
'distanceFromOrigin': 7080.447398970731,
'id': 6,
'normalizedDistanceFromOrigin': 0.21489783700016127},
{'Location': [23.0991167, 72.5316183],
'Name': 'Gota',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a59'),
'distanceFromOrigin': 8536.820469394168,
'id': 7,
'normalizedDistanceFromOrigin': 0.2591000469826514},
{'Location': [23.136835, 72.54286],
'Name': 'Vaishnodevi',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a5a'),
'distanceFromOrigin': 12955.670052411711,
'id': 8,
'normalizedDistanceFromOrigin': 0.3932160376695642},
{'Location': [23.1607333, 72.5569467],
'Name': 'Khoraj',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a5b'),
'distanceFromOrigin': 16113.621581768199,
'id': 9,
'normalizedDistanceFromOrigin': 0.4890626579140296},
{'Location': [23.17621, 72.5843483],
'Name': 'Adalaj-Uvarsad',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a5c'),
'distanceFromOrigin': 19709.889902903735,
'id': 10,
'normalizedDistanceFromOrigin': 0.5982125802193027},
{'Location': [23.1927733, 72.6151667],
'Name': 'Sargasan',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a5d'),
'distanceFromOrigin': 23404.28708007662,
'id': 11,
'normalizedDistanceFromOrigin': 0.7103408000418756},
{'Location': [23.185605, 72.637985],
'Name': 'Raksha-shakti circle',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a5e'),
'distanceFromOrigin': 26298.226000211598,
'id': 12,
'normalizedDistanceFromOrigin': 0.7981744042344572},
{'Location': [23.1605217, 72.63598],
'Name': 'Bhaijipura',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95e973fbd2abaef2a5f'),
'distanceFromOrigin': 29191.37478045548,
'id': 13,
'normalizedDistanceFromOrigin': 0.8859840269829355},
{'Location': [23.15448, 72.66474],
'Name': 'PDPU',
'Type': 'BusStop',
'_id': ObjectId('6340c95e973fbd2abaef2a60'),
'distanceFromOrigin': 32507.792799377745,
'id': 14,
'normalizedDistanceFromOrigin': 0.9866402452550121}]
[12]:
if UseMongoDB==True:
pprint.pprint([BusStop for BusStop in con[RouteName]['BusStops.SouthBound'].find().sort([('id',1)])])
[{'Location': [23.0279711, 72.5078451],
'Name': 'ISCON',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a61'),
'distanceFromOrigin': 31903.97288959138,
'id': 0,
'normalizedDistanceFromOrigin': 0.9977971672495668},
{'Location': [23.038713706, 72.511958278],
'Name': 'Pakwaan',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a62'),
'distanceFromOrigin': 30634.574074389904,
'id': 1,
'normalizedDistanceFromOrigin': 0.9580967027869978},
{'Location': [23.046480342276425, 72.51585688109755],
'Name': 'Gurudwara',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a63'),
'distanceFromOrigin': 29678.7615643636,
'id': 2,
'normalizedDistanceFromOrigin': 0.9282036540990994},
{'Location': [23.0498, 72.5174528],
'Name': 'Thaltej',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a64'),
'distanceFromOrigin': 29269.13789104586,
'id': 3,
'normalizedDistanceFromOrigin': 0.9153926683861524},
{'Location': [23.0582231, 72.5201619],
'Name': 'Zydus',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a65'),
'distanceFromOrigin': 28289.745336606244,
'id': 4,
'normalizedDistanceFromOrigin': 0.8847621535024093},
{'Location': [23.076668105241932, 72.5253161935484],
'Name': 'Kargil',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a66'),
'distanceFromOrigin': 26163.691224016857,
'id': 5,
'normalizedDistanceFromOrigin': 0.8182697834674199},
{'Location': [23.086980111684788, 72.5283425548913],
'Name': 'Sola',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a67'),
'distanceFromOrigin': 24884.61427935693,
'id': 6,
'normalizedDistanceFromOrigin': 0.778266635380108},
{'Location': [23.0991004, 72.5319368],
'Name': 'Gota',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a68'),
'distanceFromOrigin': 23470.259708482747,
'id': 7,
'normalizedDistanceFromOrigin': 0.7340326777727421},
{'Location': [23.1372724, 72.5430607],
'Name': 'Vaishnodevi',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a69'),
'distanceFromOrigin': 19082.518226279375,
'id': 8,
'normalizedDistanceFromOrigin': 0.5968060058244883},
{'Location': [23.1607333, 72.5569467],
'Name': 'Khoraj',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a6a'),
'distanceFromOrigin': 16030.112789586818,
'id': 9,
'normalizedDistanceFromOrigin': 0.501341986074689},
{'Location': [23.1776699, 72.5869957],
'Name': 'Adalaj-uvarsad',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a6b'),
'distanceFromOrigin': 12341.855525768942,
'id': 10,
'normalizedDistanceFromOrigin': 0.385991692157979},
{'Location': [23.1926012, 72.6154206],
'Name': 'Sargasan',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a6c'),
'distanceFromOrigin': 8969.302511335685,
'id': 11,
'normalizedDistanceFromOrigin': 0.28051505274864835},
{'Location': [23.1852905, 72.6386404],
'Name': 'RakshaShakti',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a6d'),
'distanceFromOrigin': 6100.040907210448,
'id': 12,
'normalizedDistanceFromOrigin': 0.19077885874541997},
{'Location': [23.1604408, 72.635821],
'Name': 'Bhaijipura',
'Type': 'CrossRoad',
'_id': ObjectId('6340c95f973fbd2abaef2a6e'),
'distanceFromOrigin': 3297.4834210639438,
'id': 13,
'normalizedDistanceFromOrigin': 0.10312883689991607},
{'Location': [23.15448, 72.66474],
'Name': 'PDPU',
'Type': 'BusStop',
'_id': ObjectId('6340c95f973fbd2abaef2a6f'),
'distanceFromOrigin': 185.11221001873196,
'id': 14,
'normalizedDistanceFromOrigin': 0.00578938677697589}]