gvSIG bugs #2632

Loss of precision parsing CRS parameters

Added by Antonio Falciano almost 10 years ago. Updated over 9 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:CRS
Target version:2.1.0-2248-testing
Severity:Minor Add-on version:
gvSIG version:2.1.0 Add-on build:
gvSIG build:2232 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords:crs, precision, wkt, proj4 Proyecto:
Has patch:Yes Hito:
Add-on name:Unknown

Description

It happens a loss of precision parsing some CRS parameters, such as semi_minor, central_meridian and latitude_of_origin which affects the WKT and Proj.4 representation in the CRS information window (see screenshot in attachment) and elsewhere.
For instance, open the Jython console and type:

>>> from org.gvsig.fmap.crs import CRSFactory
>>> proj = CRSFactory.getCRS('EPSG:23032')
>>> wkt = proj.getWKT()
>>> print wkt
PROJCS["ED50 / UTM zone 32N", GEOGCS["ED50", DATUM["European Datum 1950", SPHEROID["International 1924", 6378388.0, 297.0]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 8.999999999999991], PARAMETER["scale_factor", 0.9996], PARAMETER["false_easting", 500000.0], PARAMETER["false_northing", 0.0], UNIT["metre", 1.0], AUTHORITY["EPSG", 23032]]
>>> proj4 = proj.getProj4String()
>>> print proj4
+proj=tmerc +lat_0=0.0 +lon_0=8.999999999999991 +k=0.9996 +x_0=500000.0 +y_0=0.0 +ellps=intl

+lon_0 should be equal to 9 instead of 8.999999999999991, so this parameter (and all the numeric ones) should be parsed as String and not as Double.

23032_loss_of_precision.png (50.8 KB) Antonio Falciano, 07/08/2014 03:53 AM

round_proj_parameters.patch Magnifier (4.7 KB) Antonio Falciano, 09/12/2014 01:51 PM

924

Associated revisions

Revision 280
Added by Joaquín del Cerro Murciano over 9 years ago

Loss of precision parsing CRS parameters, refs #2632

History

#2 Updated by Antonio Falciano over 9 years ago

Has patch: Yes

There were some rounding problems with Math.PI and Math.toDegrees. This is the output of the same code after the application of the patch in attachment:

>>> from org.gvsig.fmap.crs import CRSFactory
>>> proj = CRSFactory.getCRS('EPSG:23032')
>>> wkt = proj.getWKT()
>>> print wkt
PROJCS["ED50 / UTM zone 32N", GEOGCS["ED50", DATUM["European Datum 1950", SPHEROID["International 1924", 6378388.0, 297.0]], 
PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295]], PROJECTION["Transverse_Mercator"], 
PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 9.0], PARAMETER["scale_factor", 0.9996], 
PARAMETER["false_easting", 500000.0], PARAMETER["false_northing", 0.0], UNIT["metre", 1.0], AUTHORITY["EPSG", 23032]]
>>> proj4 = proj.getProj4String()
>>> print proj4
+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl

So both WKT and Proj4 strings take benefit from this. The same Proj4 strings is shown in the CRS information window correctly.

#3 Updated by Joaquín del Cerro Murciano over 9 years ago

  • Has patch set to Yes

#4 Updated by Álvaro Anguix over 9 years ago

  • Assignee set to Joaquín del Cerro Murciano

#5 Updated by Antonio Falciano over 9 years ago

  • Target version set to 2.1.0-2259-rc3

#6 Updated by Joaquín del Cerro Murciano over 9 years ago

  • Status changed from New to Fixed

#7 Updated by Joaquín del Cerro Murciano over 9 years ago

  • Target version changed from 2.1.0-2259-rc3 to 2.1.0-2248-testing

#8 Updated by Antonio Falciano over 9 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF