mrJean1 / PyGeodesy

Pure Python geodesy tools
https://mrjean1.github.io/PyGeodesy/
299 stars 58 forks source link

Suggestion: geodesic equation #69

Closed brunolnetto closed 2 years ago

brunolnetto commented 2 years ago

I have no idea how to do you perform the calculation for the current library.

Have you tried to utilize the geodesic equation instead of Vincenty's formulae? You require only to compute the Christoffel symbols and some integration method like those available here.

mrJean1 commented 2 years ago

Not sure what the question is or how to answer it. Please show an example of the problem you need to solve.

brunolnetto commented 2 years ago

It was an advice to utilize the bvp integration tool to calculate the distance you require: https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_bvp.html

mrJean1 commented 2 years ago

Sorry, I’m not familiar with any geodetic or geodesic case applicable to bvp.

brunolnetto commented 2 years ago

The statement is as follows: given a surface (S, G) defined in Euclidean space (inner product equal to the transpose product of vectors), we may define the equation to its geodesic curve. The common procedure to obtain the desired minimizing curve constitutes providing initial position and velocity conditions: the geodesic is the curve with constant velocity, equal to initial velocity parallel transported, along its path. The boundary value problem substitutes the initial velocity by final position in such a way that the solution curve is the geodesic between coordinates on surface S. Finally, the curve length, defined as the geodetic distance you work with, is the integral of the inner product along obtained curve.

mrJean1 commented 2 years ago

Interesting, but bvp is not mentioned in any of the references in the PyGeodesy documentation. In this context, papers by Charles Karney are most often quoted, especially Geodesics on an ellipsoid of revolution and Algorithms for geodesics.

This paper The geodesic boundary value problem and its solution on a triaxial ellipsoid seems to be close to your suggestion. It includes another Karney quote and mentions Karney in the Acknowledgments.

brunolnetto commented 2 years ago

The main method implementation caveat is the high load of mathematical knowledge to bring the whole together: calculus, geometry, and numerical integration. An ellipsoid has the advantage of being parametrizable, making it suitable for the algebraic computation of geometrical objects. We may talk in a call if you are interested in some further development.

The necessary parametrization is here to consult.

mrJean1 commented 2 years ago

Before getting further into specifics, what would be the difference/benefit of a bvp-based geodesic approach?

What would bvp offer, something not already provided by the 4 existing ellipsoidal models in PyGeodesy? Lastly, is there anything available in the other models which bvp can not deliver?

Also, bvp can compute the distance along a geodesic through 2 points. What about computing the destination at a given distance along a geodesic through a given location?

brunolnetto commented 2 years ago

Answer 1: The advantage is a general equation-based computation of geodesic curve.

Answer 2: The additional proposal brings a geometric approach whose approximations regards only to the integration step.

Answer 3: I am not able to evaluate each implemented method. My argument is the geodesic approach is how mathematics deal with distance on surfaces.

Answer 4: I am glad you ask: This concept is called exponential map.

The coordinates of given points on a surface S respective to certain coordinate p are those on the curve tail $\gamma(1)$ such that initial values are position p and velocity v, such that vector v belongs to the tangent space of S and its norm is equal to the desired distance.