Details

Type: Improvement

Status: Open

Priority: Major

Resolution: Unresolved

Affects Version/s: 0.6, 0.7, 0.8, 1.0

Fix Version/s: None

Component/s: Referencing

Labels:None
Description
Some map projections or geodesic calculations use series expansions as approximations of integrals. Those series expansions are published in books like Map Projections  A Working Manual (John P. Snyder, U.S. Geological Survey Professional Paper 1395, 1987) or Coordinate Conversions and Transformations including Formulas (EPSG Geomatics Guidance Note Number 7, part 2). But the number of terms in those series expansions is chosen for planets with a flattening factor like Earth. For celestial bodies with higher flattening factor, the number of terms may be insufficient. This JIRA issue lists some work that needs to be done if we want Apache SIS to support higher flattening factors. There is two strategies: increase the number of terms, or use iterative methods.
Mercator, Lambert conic, Polar stereographic
ConformalProjection is the base class of LambertConicConformal, Mercator and PolarStereographic projections and provides the algorithm described here. Apache SIS starts with series expansion. Then if the ellipsoid eccentricity is greater than 0.16 (determined empirically for centimetric precision), it continues with iterative method. For comparison, Earth eccentricity is about 0.082.
Status: done, but does not converge for very high eccentricity.
Albers equal area, Cylindrical equal area
EqualAreaProjection is the base class of AlbersEqualArea and CylindricalEqualArea projections and provides the algorithm described here. Apache SIS starts with series expansion. Then if the ellipsoid eccentricity is greater than 0.1 (determined empirically for centimetric precision), it continues with iterative method. For comparison, Earth eccentricity is about 0.082.
Status: done, but does not converge for very high eccentricity.
Polyconic, Sinusoidal
MeridianArcBased is the base class of Polyconic and Sinusoidal projections and provides the algorithm described here. Apache SIS uses series expansion only. We can increase the amount of terms by at least one by uncommenting the cf5 term, but it requires updating the dM_dφ method too.
Status: to do: increase the number of terms at least with cf5. We still have to determine at which eccentricity threshold we lost centrimetric accuracy for a planet the size of Earth.
Transverse Mercator
There is currently no check of eccentricity limits. Note that Transverse Mercator projection is approximate anyway (even on Earth) for coordinates far from central meridian. The effect of high flattening factor may be that the area validity become smaller, but it needs to be verified.
Status: to do: determine how area of validity varies with flattening factor.
Geodesics on ellipsoid
Formulas currently implemented in GeodesicsOnEllipsoid class are derived from Karney 2013, Algorithms for geodesics. A slightly older publication, Karney 2011, Geodesics on an ellipsoid of revolution, gives more terms. Those additional terms were omitted in more recent publication because they are smaller than IEEE 754 doubleprecision when the flattening factor is Earth's one, but they can be useful for other celestial bodies. Incorporating those additional terms in Apache SIS requires that we update the Clenshaw summation formulas that we use. MultipleAngle formulas for 7θ and 8θ can be determined by Chebyshev polynomial of the second kind. Another way to find the Clenshaw summation formulas is to use the iterative algorithm given by Karney 2011 equation 59.
Status: to do: add more terms in series expansions from Karney (2011). We will still have to determine at which eccentricity threshold we lost centimetric precision for a planet of the size of Earth. The domain given by Karney 2013 (f ≤ 1/150, equivalent to an eccentricity of about 0.12) is for finer accuracy than centimetric.