libcity.utils.GPS_utils

libcity.utils.GPS_utils.angle2radian(angle)[source]

convert from an angle to a radian :param angle: (float) :return: radian (float)

libcity.utils.GPS_utils.angular_dist(phi1, lambda1, phi2, lambda2, method='hav')[source]

calculate angular great circle distance with given latitude and longitude :return: angle

libcity.utils.GPS_utils.destination(phi1, lambda1, brng, distance, r=6371000)[source]
Parameters
  • phi1

  • lambda1

  • brng

  • distance

Returns

libcity.utils.GPS_utils.dist(phi1, lambda1, phi2, lambda2, r=6371000, method='hav')[source]

calculate great circle distance with given latitude and longitude, :param phi1: point one’s latitude in angle :param lambda1: point one’s longitude in angle :param phi2: point two’s latitude in angle :param lambda2: point two’s longitude in angle :param r: earth radius(m) :param method: ‘hav’ means haversine,

‘LoC’ means Spherical Law of Cosines, ‘approx’ means Pythagoras’ theorem performed on an equirectangular projection

Returns

distance (m)

libcity.utils.GPS_utils.equirectangular_approximation(phi1, lambda1, phi2, lambda2)[source]

calculate angular great circle distance with Pythagoras’ theorem performed on an equirectangular projection see parameters in spherical_law_of_cosines

libcity.utils.GPS_utils.haversine(phi1, lambda1, phi2, lambda2)[source]

calculate angular great circle distance with haversine formula see parameters in spherical_law_of_cosines

libcity.utils.GPS_utils.init_bearing(phi1, lambda1, phi2, lambda2)[source]

initial bearing of a great circle route :return: 0~360

libcity.utils.GPS_utils.radian2angle(radian)[source]
libcity.utils.GPS_utils.spherical_law_of_cosines(phi1, lambda1, phi2, lambda2)[source]

calculate great circle distance with spherical law of cosines phi/lambda for latitude/longitude in radians :param phi1: point one’s latitude in radians :param lambda1: point one’s longitude in radians :param phi2: point two’s latitude in radians :param lambda2: point two’s longitude in radians :return: