RouteModel
Prerequisite: Read the RouteElevation documentation first to understand what a polygonal chain is and how it's used to represent a route
RouteModel will probably work best with CoordinateElevation since RouteModel is able to find the coordinates in the route
Introduction
RouteModel is a model that consumes a polygonal chain representation of a route and returns an interpolated route
User Guide
When using this, there are only 4 things that you need to know:
The object initialization
The
get_data()
methodThe
get_csv()
methodDataframe values
The object initialization
Initializing the object requires 2 required parameters, coordinate_lst_input
: a polygonal chain representation of the route, and interval_upper_bound
: an uppper bound for the distance between coordinates
The get_data()
method
Returns a pandas dataframe of the interpolated route
The get_csv()
method
Consumes a string, filename
, and saves a csv of the interpolated route as <filename>.csv
in current directory
Dataframe fields
polyline_point_index
: The polygonal chain point index of the coordinate,latitude
: Latitude,longitude
: Longitude,dist_to_next_coordinate
: Distance to next coordinate (in meters)true_bearing_to_next
: True north bearing to next coordinatebearing_to_next_360
: True north bearing to next coordinate in 360 degreestrue_bearing_to_prev
: True north bearing to previous coordinatebearing_to_prev_360
: True north bearing to previous coordinate in 360 degreesgeneral_travel_direction
: General direction of car at current coordinateturn_bearing
: Relative turn bearing for car at current coordinateturn_type
: Type of turn for the carrelative_turn_angle
: Formatted relative turn angle for car at current coordinate
Sample code
### CODE ###
coordinate_lst_input = [
(43.81857948416717, -79.40101625627213),
(43.82045746557804, -79.3901457521166),
(43.81990512423598, -79.38545051088512)
]
interval_upper_bound = 100
route = RouteModel(coordinate_lst_input, interval_upper_bound)
print(route.get_data())
### PRINTED VALUES ###
polyline_point_index latitude longitude dist_to_next_coordinate true_bearing_to_next bearing_to_next_360 true_bearing_to_prev bearing_to_prev_360 general_travel_direction turn_bearing turn_type relative_turn_angle
0 0.0 43.818579 -79.401016 99.896547 76.576401 76.576401 N77°E
1 43.818788 -79.399808 99.896547 76.577237 76.577237 -103.422763 256.577237 N77°E 0.000836
2 43.818997 -79.398601 99.896547 76.578073 76.578073 -103.421927 256.578073 N77°E 0.000836
3 43.819206 -79.397393 99.896547 76.57891 76.57891 -103.42109 256.57891 N77°E 0.000836
4 43.819414 -79.396185 99.896547 76.579746 76.579746 -103.420254 256.579746 N77°E 0.000836
5 43.819623 -79.394977 99.896547 76.580582 76.580582 -103.419418 256.580582 N77°E 0.000836
6 43.819832 -79.393769 99.896547 76.581419 76.581419 -103.418581 256.581419 N77°E 0.000836
7 43.820040 -79.392561 99.896547 76.582255 76.582255 -103.417745 256.582255 N77°E 0.000836
8 43.820249 -79.391354 99.896547 76.583091 76.583091 -103.416909 256.583091 N77°E 0.000836
9 1.0 43.820457 -79.390146 95.668988 99.226778 99.226778 -103.416072 256.583928 S9°E 22.643687 Slight Right 22.643687
10 43.820319 -79.388972 95.668988 99.227591 99.227591 -80.772409 279.227591 S9°E 0.000813
11 43.820181 -79.387798 95.668988 99.228404 99.228404 -80.771596 279.228404 S9°E 0.000813
12 43.820043 -79.386624 95.668988 99.229217 99.229217 -80.770783 279.229217 S9°E 0.000813
13 2.0 43.819905 -79.385451 -80.769971 279.230029