Hi Martin,
Sorry - I made a typing mistake … I mean EPSG: 2062 and not EPSG:2026.

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

Longitude: -1.714
Latitude:  37.524

-> 774435.6600803932,327313.6768732136

CoordinateOperation.toString() returns in case of Apache SIS 0.7 the following:

ConcatenatedOperation["Geographic2D[“WGS 84”] → ProjectedCRS[“Madrid 1870 
(Madrid) / Spain”]",
  SourceCRS[GeodeticCRS["WGS 84",
    Datum["World Geodetic System 1984",
      Ellipsoid["WGS 84", 6378137.0, 298.257223563]],
    CS[ellipsoidal, 2],
      Axis["Geodetic latitude (Lat)", north],
      Axis["Geodetic longitude (Lon)", east],
      Unit["degree", 0.017453292519943295],
    Id["EPSG", 4326, "8.9"]]],
  TargetCRS[ProjectedCRS["Madrid 1870 (Madrid) / Spain",
    BaseGeodCRS["Madrid 1870 (Madrid)",
      Datum["Madrid 1870 (Madrid)",
        Ellipsoid["Struve 1860", 6378298.3, 294.73]],
        PrimeMeridian["Madrid", -3.687938888888889],
      Unit["degree", 0.017453292519943295]],
    Conversion["Spain",
      Method["Lambert Conic Conformal (1SP)"],
      Parameter["Latitude of natural origin", 40.0],
      Parameter["Longitude of natural origin", 0.0],
      Parameter["Scale factor at natural origin", 0.9988085293],
      Parameter["False easting", 600000.0],
      Parameter["False northing", 600000.0]],
    CS[Cartesian, 2],
      Axis["Easting (X)", east],
      Axis["Northing (Y)", north],
      Unit["metre", 1],
    Id["EPSG", 2062, "8.9"],
    Remark["Replaced by ED50 / UTM after 1966."]]],
  CoordinateOperationStep["Ellipsoid change",
    Method["Affine"],
      Parameter["num_row", 3],
      Parameter["num_col", 3],
    OperationAccuracy[3000.0]],
  CoordinateOperationStep["Spain",
    Method["Lambert Conic Conformal (1SP)"],
      Parameter["semi_major", 6378298.3, Unit["metre", 1]],
      Parameter["semi_minor", 6356657.142669561, Unit["metre", 1]],
      Parameter["Latitude of natural origin", 40.0, Unit["degree", 
0.017453292519943295]],
      Parameter["Longitude of natural origin", 0.0, Unit["degree", 
0.017453292519943295]],
      Parameter["Scale factor at natural origin", 0.9988085293, Unit["unity", 
1]],
      Parameter["False easting", 600000.0, Unit["metre", 1]],
      Parameter["False northing", 600000.0, Unit["metre", 1]]],
  Area["Spain - mainland onshore."],
  BBox[35.95, -9.37, 43.82, 3.39]]

Warnings:
  • Can not represent “Ellipsoid change” in a strictly standard-compliant WKT 
format.
  • Can not represent “Spain” in a strictly standard-compliant WKT format.
  • Can not represent “Geographic2D[“WGS 84”] → ProjectedCRS[“Madrid 1870 
(Madrid) / Spain”]” in a strictly standard-compliant WKT format.


Best Regards,
Steve

From: Martin Desruisseaux [mailto:martin.desruisse...@geomatys.com]
Sent: Friday, February 16, 2018 7:59 PM
To: HRUDA Steve <steve.hr...@hexagongeospatial.com>; dev@sis.apache.org
Subject: Re: Transformation differences between Apache SIS version 0.7 and 0.8


Hello Steve

Le 16/02/2018 à 17:03, HRUDA Steve a écrit :

Examples for 0.8 throws an exception and 0.7 not:

- org.opengis.util.NoSuchIdentifierException: No operation method found for 
name or identifier “Madrid to ED50 polynomial” (…snip…)

- No operation method found for name or identifier “Molodensky-Badekas (CF 
geog2D domain)”

Those two operations ("Matrid to ED50 polynomial" and "Molodensky-Badekas") are 
not yet implemented in Apache SIS. Maybe this difference in behaviour come from 
different versions of EPSG geodetic dataset? For performing a coordinate 
transformation, Apache SIS first looks in the "epsg_coordoperation" table. If 
an entry is found for a given (sourceCRS, targetCRS) pair, SIS will use it. It 
may happen that EPSG 8.8 or 9.1 (the two versions used by Apache SIS 0.7 and 
0.8 respectively) had no entries for, say, EPSG:2026 to EPSG:4326 
transformation, but that EPSG 9.2 added such entry. In such case, Apache SIS 
will try to use that entry which may result in a failure if that new entry uses 
an unimplemented operation, for example Molodensky-Badekas.

Which version of EPSG geodetic dataset are you using? You can see it with the 
following Java code:

import org.apache.sis.setup.About;

(...)

System.out.println(About.configuration());

Only the "Geodetic database" line (near the top) is of interest. On my computer 
I get:

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

    Martin


Reply via email to