11import numpy as np
2- from numpy import radians , cos , sin , asin , sqrt
2+ from numpy import radians , cos , sin , arcsin , sqrt
33import matplotlib .pyplot as plt
4+ import pandas as pd
45
56def haversine (lat0 , lon0 , lat , lon ):
67
78 R = 6378.137e3 # this is in meters. For Earth radius in kilometers use 6372.8 km
89
9- dLat = radians (lat - lat )
10- dLon = radians (lon - lon )
11- lat1 = radians (lat )
10+ dLat = radians (lat - lat0 )
11+ dLon = radians (lon - lon0 )
12+ lat1 = radians (lat0 )
1213 lat2 = radians (lat )
1314
1415 a = sin (dLat / 2 )** 2 + cos (lat1 )* cos (lat2 )* sin (dLon / 2 )** 2
15- c = 2 * asin (sqrt (a ))
16+ c = 2 * arcsin (sqrt (a ))
1617
1718 return R * c
1819
1920
2021def get_time_distance (lat , lon , time , lat0 , lon0 , time0 ):
21- lat0 = lat0 * np .ones_like
22-
22+ lat0 = lat0 * np .ones_like (lat )
23+ lon0 = lon0 * np .ones_like (lon )
24+ dt = time - time0
25+
2326 distance_from_origin = (haversine (lat0 ,lon0 ,lat ,lon ))
24- time_from_origin = ((time - time0 ).astype ('timedelta64[ns]' ).astype (float )/ 1e9 )
27+ if (type (dt ) == pd .core .series .Series ):
28+ dt = dt .to_numpy ()
29+
30+ time_from_origin = ((dt ).astype ('timedelta64[ns]' ).astype (float )/ 1e9 )
2531 return distance_from_origin , time_from_origin
2632
2733
@@ -40,9 +46,11 @@ def time_distance_plot_interactive(interactive_lma, ax):
4046 return art_out
4147
4248
43- def time_distance_plot (ax , time , distance , m_reference_lines = 10 , ** kwargs ):
49+ def time_distance_plot (ax , time , distance , pad_sec = 10 , ** kwargs ):
50+ m_reference_lines = 10
4451 m = - m_reference_lines
45- x = np .linspace (0 , time * - 1 + m_reference_lines , 100 )
52+ dt = time [- 1 ]- time [0 ]
53+ x = np .linspace (0 , dt + pad_sec , 100 )
4654 y = x * 2 * 10 ** 4
4755 yy = x * 10 ** 5
4856 yyy = x * 10 ** 6
0 commit comments