[ https://issues.apache.org/jira/browse/SIS-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Desruisseaux updated SIS-465: ------------------------------------ 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. h2. 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:* {color:green}done{color}, but does not converge for very high eccentricity. h2. 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:* {color:green}done{color}, but does not converge for very high eccentricity. h2. 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:* {color:red}*to do:* increase the number of terms at least with {{cf5}}.{color} We still have to determine at which eccentricity threshold we lost centrimetric accuracy for a planet the size of Earth. h2. 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:* {color:red}*to do:* determine how area of validity varies with flattening factor.{color} h2. Geodesics on ellipsoid Formulas currently implemented in {{GeodesicsOnEllipsoid}} class are derived from [Karney 2013, Algorithms for geodesics|https://doi.org/10.1007/s00190-012-0578-z]. A slightly older publication, [Karney 2011, Geodesics on an ellipsoid of revolution|https://arxiv.org/pdf/1102.1215.pdf], gives more terms. Those additional terms were omitted in more recent publication because they are smaller than IEEE 754 double-precision 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. [Multiple-Angle formulas|http://mathworld.wolfram.com/Multiple-AngleFormulas.html] for 7θ and 8θ can be determined by [Chebyshev polynomial of the second kind|http://mathworld.wolfram.com/ChebyshevPolynomialoftheSecondKind.html]. Another way to find the Clenshaw summation formulas is to use the iterative algorithm given by Karney 2011 equation 59. *Status:* {color:red}*to do:* add more terms in series expansions from Karney (2011).{color} 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. was: 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. h2. 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:* {color:green}done{color}, but does not converge for very high eccentricity. h2. 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:* {color:green}done{color}, but does not converge for very high eccentricity. h2. 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:* {color:red}*to do:* increase the number of terms at least with {{cf5}}.{color} We still have to determine at which eccentricity threshold we lost centrimetric accuracy for a planet the size of Earth. h2. 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:* {color:red}*to do:* determine how area of validity varies with flattening factor.{color} h2. Geodesics on ellipsoid Formulas currently implemented in {{GeodesicsOnEllipsoid}} class are derived from [Karney 2013, Algorithms for geodesics|https://link.springer.com/content/pdf/10.1007%2Fs00190-012-0578-z.pdf]. A slightly older publication, [Karney 2011, Geodesics on an ellipsoid of revolution|https://arxiv.org/pdf/1102.1215.pdf], gives more terms. Those additional terms were omitted in more recent publication because they are smaller than IEEE 754 double-precision 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. [Multiple-Angle formulas|http://mathworld.wolfram.com/Multiple-AngleFormulas.html] for 7θ and 8θ can be determined by [Chebyshev polynomial of the second kind|http://mathworld.wolfram.com/ChebyshevPolynomialoftheSecondKind.html]. Another way to find the Clenshaw summation formulas is to use the iterative algorithm given by Karney 2011 equation 59. *Status:* {color:red}*to do:* add more terms in series expansions from Karney (2011).{color} 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. > Referencing on celestial bodies with high flattening factor > ----------------------------------------------------------- > > Key: SIS-465 > URL: https://issues.apache.org/jira/browse/SIS-465 > Project: Spatial Information Systems > Issue Type: Improvement > Components: Referencing > Affects Versions: 0.6, 0.7, 0.8, 1.0 > Reporter: Martin Desruisseaux > Priority: Major > > 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. > h2. 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:* {color:green}done{color}, but does not converge for very high > eccentricity. > h2. 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:* {color:green}done{color}, but does not converge for very high > eccentricity. > h2. 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:* {color:red}*to do:* increase the number of terms at least with > {{cf5}}.{color} We still have to determine at which eccentricity threshold we > lost centrimetric accuracy for a planet the size of Earth. > h2. 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:* {color:red}*to do:* determine how area of validity varies with > flattening factor.{color} > h2. Geodesics on ellipsoid > Formulas currently implemented in {{GeodesicsOnEllipsoid}} class are derived > from [Karney 2013, Algorithms for > geodesics|https://doi.org/10.1007/s00190-012-0578-z]. A slightly older > publication, [Karney 2011, Geodesics on an ellipsoid of > revolution|https://arxiv.org/pdf/1102.1215.pdf], gives more terms. Those > additional terms were omitted in more recent publication because they are > smaller than IEEE 754 double-precision 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. [Multiple-Angle > formulas|http://mathworld.wolfram.com/Multiple-AngleFormulas.html] for 7θ and > 8θ can be determined by [Chebyshev polynomial of the second > kind|http://mathworld.wolfram.com/ChebyshevPolynomialoftheSecondKind.html]. > Another way to find the Clenshaw summation formulas is to use the iterative > algorithm given by Karney 2011 equation 59. > *Status:* {color:red}*to do:* add more terms in series expansions from Karney > (2011).{color} 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. -- This message was sent by Atlassian JIRA (v7.6.14#76016)