Okay, the second is the case:

  *   Maybe EPSG::8241 was defined before, but evolution of SIS causes SIS 0.8 
to follow this specification while SIS 0.7 ignored it.

org.opengis.util.NoSuchIdentifierException: No operation method found for name 
or identifier “Madrid to ED50 polynomial”.
                at 
org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.getOperationMethod(DefaultMathTransformFactory.java:396)
                at 
org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.createParameterizedTransform(DefaultMathTransformFactory.java:1008)
                at 
org.apache.sis.referencing.factory.sql.EPSGDataAccess.createCoordinateOperation(EPSGDataAccess.java:3000)
                at 
org.apache.sis.referencing.factory.AuthorityFactoryProxy$34.create(AuthorityFactoryProxy.java:512)
                at 
org.apache.sis.referencing.factory.AuthorityFactoryProxy$34.create(AuthorityFactoryProxy.java:510)
                at 
org.apache.sis.referencing.factory.ConcurrentAuthorityFactory.create(ConcurrentAuthorityFactory.java:1659)
                at 
org.apache.sis.referencing.factory.ConcurrentAuthorityFactory.createCoordinateOperation(ConcurrentAuthorityFactory.java:1570)
                at 
org.apache.sis.referencing.factory.sql.EPSGDataAccess.createCoordinateOperation(EPSGDataAccess.java:2980)
                at 
org.apache.sis.referencing.factory.AuthorityFactoryProxy$34.create(AuthorityFactoryProxy.java:512)
                at 
org.apache.sis.referencing.factory.AuthorityFactoryProxy$34.create(AuthorityFactoryProxy.java:510)
                at 
org.apache.sis.referencing.factory.ConcurrentAuthorityFactory.create(ConcurrentAuthorityFactory.java:1659)
                at 
org.apache.sis.referencing.factory.ConcurrentAuthorityFactory.createCoordinateOperation(ConcurrentAuthorityFactory.java:1570)

From: Martin Desruisseaux [mailto:[email protected]]
Sent: Tuesday, February 20, 2018 10:00 AM
To: HRUDA Steve <[email protected]>; [email protected]
Subject: Re: Transformation differences between Apache SIS version 0.7 and 0.8


Hello Steve

Le 19/02/2018 à 11:36, HRUDA Steve a écrit :
I use the following Geodetic dataset in case of:


  *   Apache SIS 0.7

     *   EPSG dataset version 8.9 on “Apache Derby” version 10.11.

  *   Apache SIS 0.8

     *   EPSG geodetic dataset version 9.1 on “Apache Derby” version 10.11.

Apache SIS 0.7 is able to do transformations from EPSG:4326 to EPSG:2062 by 
using an accuracy of 3000m

The accuracy of 3 km means that SIS 0.7 did not found or did not used 
coordinate operation path explicitly defined in the EPSG database (3 km is the 
default accuracy reported by SIS in those situations). At least in latest EPSG 
database, there is an explicit transformation path between those CRS with an 
accuracy of 10 metres:

http://epsg-registry.org/?display=entity&urn=urn:ogc:def:coordinateOperation:EPSG::8241

Reasons why SIS 0.7 did not used it while SIS 0.8 tries to use it could be:

  *   Maybe EPSG::8241 was not defined in EPSG 8.9 - I did not verified.
  *   Maybe EPSG::8241 was defined before, but evolution of SIS causes SIS 0.8 
to follow this specification while SIS 0.7 ignored it.

We can verify by execution the following code with SIS 0.7:

CoordinateOperationAuthorityFactory opFactory = 
((CoordinateOperationAuthorityFactory) CRS.getAuthorityFactory("EPSG"));

System.out.println(opFactory.createCoordinateOperation("EPSG::8241"));

If you get something like "No such coordinate operation", this means that 
EPSG::8241 was not defined in EPSG 8.9. If you get something like "No method 
found for Matrid to ED50 polynomial", this means that EPSG::8241 was defined in 
EPSG 8.9 but SIS 0.7 ignored it. The only thing sure is that "Matrid to ED50 
polynomial" has never been implemented yet in SIS.

    Regards,

        Martin


Reply via email to