• Gobbel2000@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    8 months ago

    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 #km
    print(f"Tunnel length: {chord_length * earth_radius:.3f}km")
    

    A straight tunnel from Atlanta to Tbilisi would be 9060.898km long.