You are viewing a plain text version of this content. The canonical link for it is here.
Posted to geospatial@apache.org by Martin Desruisseaux <ma...@geomatys.com> on 2017/08/28 15:14:03 UTC

Map projections: an Apache SIS - Proj.4 comparison (1/2)

Hello all

In August 17th 2017, we presented an introduction to Apache Spatial
Information System (SIS) in the Free and Open Source Software for
Geospatial (FOSS4G) conference. Discussions about performance and
accuracy were planed, but skipped because of lack of time. We put the
intended content in a series of 2 blog posts. The first post, about
performance, is available at [1]. The key findings are:

  * Proj.4 is generally faster than Apache SIS on Java 8. The identified
    cause is the cost of trigonometric functions.
  * Some (but not all) trigonometric functions are much faster in Java
    9, but we have not yet benchmarked SIS on Java 9.
  * Despite the above, Apache SIS is sometime faster than Proj.4 (400
    times faster in an extreme case). This can be explained by
    mathematical work done in SIS.
  * Numerical results are in close agreement for map projections, but
    can differ by 1 or 2 metres for datum shifts. This is because of
    different ways to use the EPSG geodetic dataset ("early-binding"
    versus "late-binding" approaches).

More details are given at [1]. A second blog focussed on the accuracy
topic will be posted later.

    Martin

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



Re: Map projections: an Apache SIS - Proj.4 comparison (1/2)

Posted by Rob Emanuele <rd...@gmail.com>.
Hi Martin,

Martin Davis is the original maintainer, but I've taken on responsibility
for moving it to LocationTech.

The current repository that will be moved is here:
https://github.com/lossyrob/proj4j. I am cleared to move it to
https://github.com/locationtech/proj4j, which will happen soon. Feel free
to interact with the project on https://github.com/lossyrob/proj4j, and
I'll let you know here when the move to the locationtech github org is
completed.

A GeoAPI wrapper would be very welcome!

Thanks,
Rob

On Mon, Aug 28, 2017 at 11:42 AM, Martin Desruisseaux <
martin.desruisseaux@geomatys.com> wrote:

> Hello Rob
>
> Le 28/08/2017 à 17:34, Rob Emanuele a écrit :
>
> > Follow up question: is the benchmarking code somewhere that I can
> > build on? I'd like to compare how Proj4J would do against SIS and proj.4.
> >
> Not yet, but I would like to commit it somewhere. I'm just not sure were
> to put it. Maybe in a small separated project.
>
> For testing Proj4J, one way to make the task easier would be make Proj4J
> a GeoAPI implementation (or create wrappers). I was thinking about
> contributing a little bit for this task, but I'm not sure who to contact
> (who is current Proj4J maintainer)?
>
>     Martin
>
>
>

Re: Map projections: an Apache SIS - Proj.4 comparison (1/2)

Posted by Martin Desruisseaux <ma...@geomatys.com>.
Hello Rob

Le 28/08/2017 à 17:34, Rob Emanuele a écrit :

> Follow up question: is the benchmarking code somewhere that I can
> build on? I'd like to compare how Proj4J would do against SIS and proj.4.
>
Not yet, but I would like to commit it somewhere. I'm just not sure were
to put it. Maybe in a small separated project.

For testing Proj4J, one way to make the task easier would be make Proj4J
a GeoAPI implementation (or create wrappers). I was thinking about
contributing a little bit for this task, but I'm not sure who to contact
(who is current Proj4J maintainer)?

    Martin



GeoAPI for Proj4J?

Posted by Martin Desruisseaux <ma...@geomatys.com>.
Hello Rob

Do you have a code repository setup for Proj4J? If yes and if it is okay
for you, I may be able to explore this weekend the possibility to expose
Proj4J referencing services through GeoAPI 3.0.1 interfaces.

    Regards,

        Martin


Le 09/09/2017 à 22:40, Rob Emanuele a écrit :

> Thanks for the code Martin.
>
> Let me know when you are interested in starting that up, I'll give an
> update on Proj4j's progress - we might have gotten it into LocationTech's
> repo by then.
>
> Best,
> Rob


Re: Map projections: an Apache SIS - Proj.4 comparison (1/2)

Posted by Rob Emanuele <rd...@gmail.com>.
Thanks for the code Martin.

Let me know when you are interested in starting that up, I'll give an
update on Proj4j's progress - we might have gotten it into LocationTech's
repo by then.

Best,
Rob

On Sat, Sep 9, 2017 at 4:12 PM, Martin Desruisseaux <
martin.desruisseaux@geomatys.com> wrote:

> Le 28/08/2017 à 17:34, Rob Emanuele a écrit :
>
> > Follow up question: is the benchmarking code somewhere that I can
> > build on? I'd like to compare how Proj4J would do against SIS and proj.4.
> >
> I posted a preliminary version of the benchmark code here:
>
> https://svn.apache.org/repos/asf/sis/release-test/maven/
> src/main/java/org/apache/sis/test/referencing/
> CoordinateOperationComparator.java
>
> I will try to help for Proj4J wrappers (so it can easily be added to the
> tests) later this month, after OGC meeting.
>
>     Martin
>
>
>

Re: Map projections: an Apache SIS - Proj.4 comparison (1/2)

Posted by Martin Desruisseaux <ma...@geomatys.com>.
Le 28/08/2017 à 17:34, Rob Emanuele a écrit :

> Follow up question: is the benchmarking code somewhere that I can
> build on? I'd like to compare how Proj4J would do against SIS and proj.4.
>
I posted a preliminary version of the benchmark code here:

https://svn.apache.org/repos/asf/sis/release-test/maven/src/main/java/org/apache/sis/test/referencing/CoordinateOperationComparator.java

I will try to help for Proj4J wrappers (so it can easily be added to the
tests) later this month, after OGC meeting.

    Martin



Re: Map projections: an Apache SIS - Proj.4 comparison (1/2)

Posted by Rob Emanuele <rd...@gmail.com>.
Follow up question: is the benchmarking code somewhere that I can build on?
I'd like to compare how Proj4J would do against SIS and proj.4.

On Mon, Aug 28, 2017 at 11:30 AM, Rob Emanuele <rd...@gmail.com> wrote:

> This is great work, thanks for posting! Looking forward to the second blog
> post.
>
> On Mon, Aug 28, 2017 at 11:14 AM, Martin Desruisseaux <
> martin.desruisseaux@geomatys.com> wrote:
>
>> Hello all
>>
>> In August 17th 2017, we presented an introduction to Apache Spatial
>> Information System (SIS) in the Free and Open Source Software for
>> Geospatial (FOSS4G) conference. Discussions about performance and
>> accuracy were planed, but skipped because of lack of time. We put the
>> intended content in a series of 2 blog posts. The first post, about
>> performance, is available at [1]. The key findings are:
>>
>>   * Proj.4 is generally faster than Apache SIS on Java 8. The identified
>>     cause is the cost of trigonometric functions.
>>   * Some (but not all) trigonometric functions are much faster in Java
>>     9, but we have not yet benchmarked SIS on Java 9.
>>   * Despite the above, Apache SIS is sometime faster than Proj.4 (400
>>     times faster in an extreme case). This can be explained by
>>     mathematical work done in SIS.
>>   * Numerical results are in close agreement for map projections, but
>>     can differ by 1 or 2 metres for datum shifts. This is because of
>>     different ways to use the EPSG geodetic dataset ("early-binding"
>>     versus "late-binding" approaches).
>>
>> More details are given at [1]. A second blog focussed on the accuracy
>> topic will be posted later.
>>
>>     Martin
>>
>> [1] https://www.geomatys.com/wordpress/index.php/2017/08/28/
>> english-proj-4-versus-apache-sis-a-performance-comparison/?lang=en
>>
>>
>>
>

Re: Map projections: an Apache SIS - Proj.4 comparison (1/2)

Posted by Rob Emanuele <rd...@gmail.com>.
This is great work, thanks for posting! Looking forward to the second blog
post.

On Mon, Aug 28, 2017 at 11:14 AM, Martin Desruisseaux <
martin.desruisseaux@geomatys.com> wrote:

> Hello all
>
> In August 17th 2017, we presented an introduction to Apache Spatial
> Information System (SIS) in the Free and Open Source Software for
> Geospatial (FOSS4G) conference. Discussions about performance and
> accuracy were planed, but skipped because of lack of time. We put the
> intended content in a series of 2 blog posts. The first post, about
> performance, is available at [1]. The key findings are:
>
>   * Proj.4 is generally faster than Apache SIS on Java 8. The identified
>     cause is the cost of trigonometric functions.
>   * Some (but not all) trigonometric functions are much faster in Java
>     9, but we have not yet benchmarked SIS on Java 9.
>   * Despite the above, Apache SIS is sometime faster than Proj.4 (400
>     times faster in an extreme case). This can be explained by
>     mathematical work done in SIS.
>   * Numerical results are in close agreement for map projections, but
>     can differ by 1 or 2 metres for datum shifts. This is because of
>     different ways to use the EPSG geodetic dataset ("early-binding"
>     versus "late-binding" approaches).
>
> More details are given at [1]. A second blog focussed on the accuracy
> topic will be posted later.
>
>     Martin
>
> [1] https://www.geomatys.com/wordpress/index.php/2017/08/
> 28/english-proj-4-versus-apache-sis-a-performance-comparison/?lang=en
>
>
>