Looking For Geodetic Python Software

Paul Rubin http
Wed Jun 22 21:07:23 EDT 2005


Tim Daneliuk <tundra at tundraware.com> writes:
> 1) Given the latitude/longitude of two locations, compute the distance
>     between them.  "Distance" in this case would be either the straight-line
>     flying distance, or the actual over-ground distance that accounts for
>     the earth's curvature.

For spherical earth, this is easy, just treat the 2 locations as
vectors whose origin is at the center of the earth and whose length is
the radius of the earth.  Convert the lat-long to 3-D rectangular
coordinates and now the angle between the vectors is 
arccos(x dotproduct y).  The over-ground distance is then just R*theta
where theta is the angle.

> 2) Given n latitude/longitude coordinates, compute the
>     "geocenter".  That is, return the lat/long of the location that
>     is most "central" to all n initial coordinates.

Not sure what this is.

> 3)  Given n lat/long coordinates, compute a Kruskal-type spanning
>      tree.

Not sure what this is.

> 4) Given n lat/long coordinates, compute an optimal (shortest or longest)
>     visitation path that reaches each node exactly once.  Better still would
>     be something that had "pluggable" heuristic engines so we could try
>     different approaches like greedy, shortest-path, hill climbing, and
>     so forth.  It would be even nicer if one could also simulate different
>     routing schemes (Monte Carlo?).

This is certainly NP-hard but there are various standard TSP
heuristics (the ones intended for maps with 2-d Euclidean distance may
not work on spherical problems though).  "Combinatorial Optimization"
by Steiglitz and Papadimitriou is the standard text on this stuff.





More information about the Python-list mailing list