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}]