Awesome benchmarking Martin.

Would you like to write an ASF blog post about this, CC’ing Sally…



On 9/21/17, 4:13 AM, "Martin Desruisseaux" <[email protected]> 
wrote:

    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