[ 
https://issues.apache.org/jira/browse/SIS-467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Desruisseaux updated SIS-467:
------------------------------------
    Priority: Minor  (was: Major)

> Unsupported geodesics
> ---------------------
>
>                 Key: SIS-467
>                 URL: https://issues.apache.org/jira/browse/SIS-467
>             Project: Spatial Information Systems
>          Issue Type: Bug
>          Components: Referencing
>    Affects Versions: 1.0
>            Reporter: Martin Desruisseaux
>            Priority: Minor
>
> The {{GeodesicOnEllipsoid}} class tries to implement the equations published 
> in Charles F. F. Karney, 2013, [Algorithms for 
> geodesics|https://doi.org/10.1007/s00190-012-0578-z] (SRI International), 
> completed by Karney 2011, [Geodesics on an ellipsoid of 
> revolution|https://arxiv.org/pdf/1102.1215.pdf]. Those algorithms were 
> already implemented in [GeographicLib|https://geographiclib.sourceforge.io/], 
> which we use as a reference implementation in our tests but not in the main 
> code in order to keep the amount of Apache SIS dependencies low. We also want 
> close integration with the rest of SIS framework (automatic conversion of 
> input/output coordinates), keep some intermediate values for computing Bezier 
> curves, _etc._ However our current implementation has the following 
> limitations (maybe because of misunderstanding on our side). The 
> GeographicLib source code may be examined for understanding what we are doing 
> wrong, but the relationships between that source code and the formulas are 
> not easy to establish.
> h2. Points at poles
> In {{computeEndPoint()}}, calculation of ω2 and azimuth become indeterminate 
> at the poles, where sin α₀ = cos σ = 0. Karney "ensures that ω (and hence λ) 
> and α are consistent with their interpretation for a latitude very close to 
> the pole (i.e., cos β is a small positive quantity) and that the direction of 
> the geodesic in three-dimensional space is correct", but we have not 
> identified how he does that exactly.
> h2. Nearly antipodal geodesics on equator
> Apache SIS does not have a solution for geodesics on equator when the 
> difference of longitude is ∆λ > (1 - _f_)⋅π (close to 180°). This issue is 
> discussed in Karney (2013) below equation 44, but we have not yet understood 
> what is the appropriate action. Even if equation 57 can be use for computing 
> α₁ in such case, we still have equations 11 and 12, for example σ = 
> atan2(sinβ, cosα⋅cosβ), producing 0 because sin β = 0, which result in a 
> geodesic distance of 0. We surely do something wrong, but I haven't 
> understood what yet. Current SIS implementation throws {{GeodesicException}} 
> in such case.
> h2. Extra-terrestrial ellipsoid
> Current implementation is tested on WGS84 ellipsoid. Prolate ellipsoids or 
> [ellipsoids with high 
> eccentricities|https://issues.apache.org/jira/browse/SIS-465] have not been 
> tested. There is some special cases in GeographicLib source code for those 
> kinds of ellipsoids, but not yet in SIS.
> h2. Possible optimizations
> In {{createGeodesicPath2D}}, since we only need points which are 
> approximately evenly spaced on the geodesic, we could replace ∆s distance by 
> ∆σ arc length on the auxiliary sphere. It would avoid the conversion from τ 
> to σ.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to