sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Desruisseaux (Jira)" <j...@apache.org>
Subject [jira] [Updated] (SIS-489) Inaccurate result for MGI Ferro transform (see test case attached)
Date Mon, 24 Feb 2020 23:01:01 GMT

     [ https://issues.apache.org/jira/browse/SIS-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Martin Desruisseaux updated SIS-489:
------------------------------------
    Description: 
{code:java}
public void TransformTest() throws FactoryException, MismatchedDimensionException, TransformException
{
        double latitude = 46.72;
        double longitude = 16;
        double x = -25097.740155822;
        double y = 175686.952118893;

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

        // MGI (Ferro) to WGS 84 (1)
        CoordinateOperation datumOperation = opFactory.createCoordinateOperation("3966");

        // MGI (Ferro) / Austria GK East Zone
        CoordinateReferenceSystem targetCRS = crsFactory.createCoordinateReferenceSystem("31253");

        // normalize the axis for the target
        targetCRS = AbstractCRS.castOrCopy(targetCRS).forConvention(AxesConvention.DISPLAY_ORIENTED);
        CoordinateOperation targetOperation = CRS.findOperation(datumOperation.getSourceCRS(),
targetCRS, null);

        /*
         * We have two operations to concatenate
         */
        MathTransform step1 = datumOperation.getMathTransform().inverse();
        MathTransform step2 = targetOperation.getMathTransform();

        MathTransform completeTransform = MathTransforms.concatenate(step1, step2);
        /*
         * transform to x,y in one step
         */
        DirectPosition source = new DirectPosition2D(latitude, longitude);
        DirectPosition target = completeTransform.transform(source, null);
        double[] coordinate = target.getCoordinate();

        //System.out.println(operation.getSourceCRS().toString());
        Assert.assertEquals(x, coordinate[0], 0.1);
        Assert.assertEquals(y, coordinate[1], 0.1);
    }
{code}


  was:
public void TransformTest() throws FactoryException, MismatchedDimensionException, TransformException
{
        double latitude = 46.72;
        double longitude = 16;
        double x = -25097.740155822;
        double y = 175686.952118893;

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

        // MGI (Ferro) to WGS 84 (1)
        CoordinateOperation datumOperation = opFactory.createCoordinateOperation("3966");

        // MGI (Ferro) / Austria GK East Zone
        CoordinateReferenceSystem targetCRS = crsFactory.createCoordinateReferenceSystem("31253");

        // normalize the axis for the target
        targetCRS = AbstractCRS.castOrCopy(targetCRS).forConvention(AxesConvention.DISPLAY_ORIENTED);
        CoordinateOperation targetOperation = CRS.findOperation(datumOperation.getSourceCRS(),
targetCRS, null);

        /*
         * We have two operations to concatenate
         */
        MathTransform step1 = datumOperation.getMathTransform().inverse();
        MathTransform step2 = targetOperation.getMathTransform();

        MathTransform completeTransform = MathTransforms.concatenate(step1, step2);
        /*
         * transform to x,y in one step
         */
        DirectPosition source = new DirectPosition2D(latitude, longitude);
        DirectPosition target = completeTransform.transform(source, null);
        double[] coordinate = target.getCoordinate();

        //System.out.println(operation.getSourceCRS().toString());
        Assert.assertEquals(x, coordinate[0], 0.1);
        Assert.assertEquals(y, coordinate[1], 0.1);
    }


> Inaccurate result for MGI Ferro transform (see test case attached)
> ------------------------------------------------------------------
>
>                 Key: SIS-489
>                 URL: https://issues.apache.org/jira/browse/SIS-489
>             Project: Spatial Information Systems
>          Issue Type: Bug
>          Components: Referencing
>            Reporter: Olivier Lhemann
>            Priority: Major
>
> {code:java}
> public void TransformTest() throws FactoryException, MismatchedDimensionException, TransformException
{
>         double latitude = 46.72;
>         double longitude = 16;
>         double x = -25097.740155822;
>         double y = 175686.952118893;
>         CRSAuthorityFactory crsFactory = CRS.getAuthorityFactory("EPSG");
>         CoordinateOperationAuthorityFactory opFactory = (CoordinateOperationAuthorityFactory)
crsFactory;
>         // MGI (Ferro) to WGS 84 (1)
>         CoordinateOperation datumOperation = opFactory.createCoordinateOperation("3966");
>         // MGI (Ferro) / Austria GK East Zone
>         CoordinateReferenceSystem targetCRS = crsFactory.createCoordinateReferenceSystem("31253");
>         // normalize the axis for the target
>         targetCRS = AbstractCRS.castOrCopy(targetCRS).forConvention(AxesConvention.DISPLAY_ORIENTED);
>         CoordinateOperation targetOperation = CRS.findOperation(datumOperation.getSourceCRS(),
targetCRS, null);
>         /*
>          * We have two operations to concatenate
>          */
>         MathTransform step1 = datumOperation.getMathTransform().inverse();
>         MathTransform step2 = targetOperation.getMathTransform();
>         MathTransform completeTransform = MathTransforms.concatenate(step1, step2);
>         /*
>          * transform to x,y in one step
>          */
>         DirectPosition source = new DirectPosition2D(latitude, longitude);
>         DirectPosition target = completeTransform.transform(source, null);
>         double[] coordinate = target.getCoordinate();
>         //System.out.println(operation.getSourceCRS().toString());
>         Assert.assertEquals(x, coordinate[0], 0.1);
>         Assert.assertEquals(y, coordinate[1], 0.1);
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message