Hi Julien,

I'm not a GIS expert either, so I don't know if this is the cause, but I
think you can try to pass in the correct WKT as a string with the following
call:

CRS.parseWKT(...)

Instead of calling CRS.decode
Perhaps you can try that and see if the results are more like you'd expect.

Hope this helps,
Yaniv

On Thu, Jul 9, 2020 at 2:11 PM Julien Bluteau via GeoTools-GT2-Users <
geotools-gt2-users@lists.sourceforge.net> wrote:

> Hi all,
>
> I am using geotools to convert coordinates for seismic data. I've never
> had any issue before but this week I had to convert data using EPSG 22192
> and got wrong results (my data is supposed to be onshore Argentina and
> ended up close to the antartic).
>
> Geotools does the following conversion (EPSG 22192 -> EPSG 4326)
>
> x = 2572506.0    -> Lat = -57.53722563
> y = 5757839.0    -> Lon = -38.73009392
>
> The correct conversion (according to epsg.io
> http://epsg.io/transform#s_srs=22192&t_srs=4326&x=2572506.0000000&y=5757839.0000000
>  should
> be)
> Transform coordinates - GPS online convertor
> <http://epsg.io/transform#s_srs=22192&t_srs=4326&x=2572506.0000000&y=5757839.0000000>
> Transform your coordinates online easily with epsg.io Transform
> coordinates Online convertor for lat & long coordinates, geodetic datums
> and projected systems
> epsg.io
>
> Lat = -38.328903
> Lon = -68.1718113
>
> After digging through the source code I found that WKT are defined (at
> least) under
> https://raw.githubusercontent.com/geotools/geotools/master/modules/plugin/epsg-wkt/src/main/resources/org/geotools/referencing/epsg/wkt/epsg.properties
>
> I then compared it to the definition on https://epsg.io/22192 and found
> different values.
>
> Definition from Geotools:
>
>  PROJCS["Campo Inchauspe / Argentina 2",
>     GEOGCS["Campo Inchauspe",
>         DATUM["Campo Inchauspe",
>             SPHEROID["International 1924", 6378388.0, 297.0,
>                 AUTHORITY["EPSG","7022"]],
>             TOWGS84[-154.5,150.7,100.4,0.0,0.0,    0.0,0.0],
>             AUTHORITY["EPSG","6221"]],
>         PRIMEM["Greenwich",0.0,
>             AUTHORITY["EPSG","8901"]],
>         UNIT["degree",0.017453292519943295],
>         AXIS["Geodetic longitude",EAST],
>         AXIS["Geodetic latitude",NORTH],
>         AUTHORITY["EPSG","4221"]],
>     PROJECTION["Transverse_Mercator",
>         AUTHORITY["EPSG","9807"]],
>     PARAMETER["central_meridian", -69.0],
>     PARAMETER["latitude_of_origin",-90.0],
>     PARAMETER["scale_factor",1.0],
>     PARAMETER["false_easting",2500000.0],
>     PARAMETER["false_northing",0.0],
>     UNIT["m",1.0],
>     AXIS["Easting",EAST],
>     AXIS["Northing",NORTH],
>     AUTHORITY["EPSG","22192"]]
>
> Definition from epsg.io:
>
> PROJCS["Campo Inchauspe / Argentina 2",
>     GEOGCS["Campo Inchauspe",
>         DATUM["Campo_Inchauspe",
>             SPHEROID["International 1924",6378388,297,
>                 AUTHORITY["EPSG","7022"]],
>             TOWGS84[-148,136,90,0,0,0,0],
>             AUTHORITY["EPSG","6221"]],
>         PRIMEM["Greenwich",0,
>             AUTHORITY["EPSG","8901"]],
>         UNIT["degree",0.0174532925199433,
>             AUTHORITY["EPSG","9122"]],
>         AUTHORITY["EPSG","4221"]],
>     PROJECTION["Transverse_Mercator"],
>     PARAMETER["latitude_of_origin",-90],
>     PARAMETER["central_meridian",-69],
>     PARAMETER["scale_factor",1],
>     PARAMETER["false_easting",2500000],
>     PARAMETER["false_northing",0],
>     UNIT["metre",1,
>         AUTHORITY["EPSG","9001"]],
>     AUTHORITY["EPSG","22192"]]
>
> I am not an expert in coordinate system. Would this difference be the
> cause of my issue? If so, how can I fix this (scala code that depends on
> geospark, a package that uses geotools)?
>
> Is there anything in my code below (scala) that is wrong otherwise?
>
> val sourceCRS = CRS.decode(s"EPSG:22192")
> val targetCRS = CRS.decode(s"EPSG:4326")
> val transform = CRS.findMathTransform(sourceCRS, targetCRS, true)
>
> val cdp_x = 2572506.0
> val cdp_y = 5757839.0
>
> val ptSrc = new DirectPosition2D(sourceCRS, cdp_x, cdp_y)
> val ptDst = new DirectPosition2D()
>
> transform.transform(ptSrc, ptDst)
> println(ptDst.getCoordinate()(0))
> println(ptDst.getCoordinate()(1))
> Campo Inchauspe / Argentina 2 - EPSG:22192 <https://epsg.io/22192>
> EPSG:22192 Projected coordinate system for Argentina - between 70°30'W and
> 67°30'W, onshore. Large and medium scale topographic mapping and
> engineering survey.
> epsg.io
> Thanks,
> Julien Bluteau
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>


-- 
Best regards,

*Yaniv Ben-Yosef*
*CTO, Milan InnoVincY B.V.*

*M* +972(54)670 9743 | *S* yaniv.benyosef | *E* ybyo...@m-innovincy.com
<ybyo...@m-innovincy.com>
*The Netherlands* | Kapteynstraat 1 | 2201BB NOORDWIJK
*Rwanda* | *AgriLift Ltd* | KG 536 Axiom Building, behind Telecom House |
KIGALI


*Confidential - Do not duplicate or distribute without written permission
from Milan Innovincy B.V© Milan Innovincy B.V, 2017. Any third party right
are hereby acknowledged. All rights reserved. Please consider the
environment – do you really need to print this email?*
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to