3 # -------------------------------------------------------------------------
4 # Copyright (c) 2015-2017 AT&T Intellectual Property
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 # -------------------------------------------------------------------------
25 def compute_air_distance(_src, _dst):
26 """Compute Air Distance
28 based on latitude and longitude
29 input: a pair of (lat, lon)s
30 output: air distance as km
39 dlat = math.radians(_dst[0] - _src[0])
40 dlon = math.radians(_dst[1] - _src[1])
41 a = math.sin(dlat / 2.0) * math.sin(dlat / 2.0) + \
42 math.cos(math.radians(_src[0])) * \
43 math.cos(math.radians(_dst[0])) * \
44 math.sin(dlon / 2.0) * math.sin(dlon / 2.0)
45 c = 2.0 * math.atan2(math.sqrt(a), math.sqrt(1.0 - a))
51 def convert_km_to_miles(_km):
55 def convert_miles_to_km(_miles):
56 return _miles / 0.621371