A comparison of Apache SIS and Proj.4 has been posted in two blob posts:
one on performance aspects [1] and one on accuracy aspects [2]. We have
not been able to perform an extensive comparison yet, but more tests may
happen in 2018. In the meantime, below is a summary of some points:

  * Proj.4 is generally faster than Apache SIS on Java 8, apparently
    because trigonometric functions are slower in Java 8.
  * Some (but not all) trigonometric functions are much faster in Java
    9, but we have not yet benchmarked SIS on Java 9.
  * Despite above handicap, Apache SIS is sometime faster than Proj.4
    (400 times faster in an extreme case). This can be explained by more
    extensive use of mathematical equivalences and runtime detection of
    simplifications in Apache SIS.
  * Apache SIS and Proj.4 are in close agreement for all tested
    coordinate conversions (this category include map projections) on Earth.
  * Apache SIS and Proj.4 are sometime in disagreement by 1 or 2 meters
    for coordinate transformations (this category include datum shifts).
      o In the two cases were a disagreement is observed, Apache SIS is
        conform to the parameters specified by the EPSG geodetic dataset.
      o In one case, Proj.4 results are wrong by 0.9 ± 0.4 meter. This
        is not a bug that could be easily fixed, but a Proj.4
        architectural issue ("early-binding" versus "late-binding"
        approaches). More details are given in the blog post.
      o In the other case, one can argue that Proj.4 is not wrong
        provided that the difference between Apache SIS and Proj.4
        results are smaller than the stochastic errors associated to the
        tested transformations. Apache SIS provides this information,
        but not Proj.4. This lack of information makes difficult to
        determine if the difference is acceptable or not.
  * For Cylindrical Equal Area ("cea") projection on Jupiter (tested
    because it is a more flattened planet than Earth):
      o If Jupiter had the size of Earth (for easier distance
        comparison), average Proj.4 error would be 90 meters.
      o Apache SIS does not have this error; it keeps centimetric precision.

Those errors are not significant to everyone. But we need a way to tell
user if the library is delivering the accuracy that (s)he need, or if
(s)he got the operation for the right geographic area. Apache SIS
provides this information, notably through ISO 19162 (WKT 2) formatting.
This support is not yet widespread in other open source libraries.

    Martin

[1] 
https://www.geomatys.com/wordpress/index.php/2017/08/28/english-proj-4-versus-apache-sis-a-performance-comparison/?lang=en
[2] 
https://www.geomatys.com/wordpress/index.php/2017/09/20/proj-4-versus-apache-sis-an-accuracy-comparison/?lang=en

Reply via email to