That’s wrong, it calculates the surface distance not the distance through the earth, while claiming otherwise. From the geopy.distance.great_circle documentation:
Use spherical geometry to calculate the surface distance between points.
This would be a correct calculation, using the formula for the chord length from here:
from math import *
# Coordinates for Atlanta, West Georgia
atlanta_coords = (33.7490, -84.3880)
# Coordinates for Tbilisi, Georgia
tbilisi_coords = (41.7151, 44.8271)
# Convert from degrees to radians
phi = (radians(atlanta_coords[0]), radians(tbilisi_coords[0]))
lambd = (radians(atlanta_coords[1]), radians(tbilisi_coords[1]))
# Spherical law of cosines
central_angle = acos(sin(phi[0]) * sin(phi[1]) + cos(phi[0]) * cos(phi[1]) * cos(lambd[1] - lambd[0]))
chord_length = 2 * sin(central_angle/2)
earth_radius = 6335.439#kmprint(f"Tunnel length: {chord_length * earth_radius:.3f}km")
A straight tunnel from Atlanta to Tbilisi would be 9060.898km long.
That’s wrong, it calculates the surface distance not the distance through the earth, while claiming otherwise. From the
geopy.distance.great_circle
documentation:This would be a correct calculation, using the formula for the chord length from here:
from math import * # Coordinates for Atlanta, West Georgia atlanta_coords = (33.7490, -84.3880) # Coordinates for Tbilisi, Georgia tbilisi_coords = (41.7151, 44.8271) # Convert from degrees to radians phi = (radians(atlanta_coords[0]), radians(tbilisi_coords[0])) lambd = (radians(atlanta_coords[1]), radians(tbilisi_coords[1])) # Spherical law of cosines central_angle = acos(sin(phi[0]) * sin(phi[1]) + cos(phi[0]) * cos(phi[1]) * cos(lambd[1] - lambd[0])) chord_length = 2 * sin(central_angle/2) earth_radius = 6335.439 #km print(f"Tunnel length: {chord_length * earth_radius:.3f}km")
A straight tunnel from Atlanta to Tbilisi would be 9060.898km long.