All pastes #22584 Raw Edit

Untitled

public text v1 · immutable
#22584 ·published 2005-09-10 16:26 UTC
rendered paste body
#!/usr/bin/awk -f
                                                          
# math_earth_coordinates.awk - math the distance between latitude/longitude coords
#
# example on request by gnubien/#bash
# by xmb{@skilled.ch}
#
# 10/09/2005 - made off math code given

BEGIN {
        if (! lat1 && lat1 != "0") lat1 = 28.1028 * 0.017453293
        if (! lon1 && lon1 != "0") lon1 = -80.6458 * 0.017453293
        R = 3956
}
 
{ lat2 = $2 * 0.017453293 ; lon2 = $1 * 0.017453293; some_math() }

function some_math() {
#        if ( lon1 > lon2) lon3 = lon1 * -1; dlon = lon2 - lon3
#        if ( lon1 < lon2) dlon = (lon1 - (lon2 * -1))
        
#       if ( lat1 < lat2) dlat = lat2 - lat1
#        if ( lat1 > lat2) dlat = lat1 - lat2
        dlon = lon2 - lon1
        dlat = lat2 - lat1

        a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2
        c = 2 * atan2(sqrt(a), sqrt(1-a))
        d = R * c

        # print here
        print d, c, a, dlon, dlat, lat1, lon1, lat2, lon2
}