sis-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Desruisseaux <martin.desruisse...@geomatys.com>
Subject Re: Conversion from WGS 84 to NAD27 / Alaska Albers
Date Sun, 19 Jan 2020 22:56:01 GMT
Hello Thierry

Le 15/01/2020 à 14:53, Thierry Danard a écrit :

> (…snip…) we have one error that appears on some of the tests:
>
> InvalidGeodeticParameterException: Unit conversion from “DMS” to “°” 
> is non-linear.
>
This test uses the Coordinate Operation EPSG::1473, which is marked as 
deprecated in EPSG database. The reason may be that this operation uses 
the Coordinate System EPSG::6402 ("Ellipsoidal 2D CS. Axes: latitude, 
longitude. Orientations: north, east. UoM: DMSH.") in its source CRS, 
which is itself marked as deprecated. The reason for this deprecation 
may be the unit of measurement of latitude/longitude values, which is 
DMSH in that particular coordinate system. DMSH is sexagesimal degrees 
encoded as floating point numbers. In this representation, 10°30'N is 
encoded as 10.3, not 10.5.

Sexagesimal degrees are difficult to use in a software. Those values 
have to be converted to decimal degrees (e.g. 10.3 → 10.5) before they 
can be used in computation. This conversion is non-linear since it has 
many discontinuities (e.g. value after 10.599999… is 11.0). Nevertheless 
Apache SIS can handle them to some extend. We handle them in map 
projection parameters because EPSG is still using sexagesimal degrees in 
those places, but we currently do not support them as coordinate system 
axis unit (i.e. the latitude/longitude values given to transform method).

In principle the lack of support of sexagesimal degrees in coordinate 
system axis should not be an issue since, to my knowledge, EPSG 
deprecated many years ago all Coordinate Systems, Coordinate Reference 
Systems and Coordinate Operations that were using them — maybe because 
of above-cited difficulty. New EPSG codes for the same CRS/operations 
but using decimal degrees should exist, but I have not checked what 
would be the replacement for EPSG::1473. It should be possible to find 
the replacement with a search in EPSG database, or alternatively by 
writing some code using Apache SIS.

If the support of those deprecated coordinate operations is needed, this 
is doable but would require some developments in SIS. Apache SIS handles 
conversions of axis units as affine transforms: this is convenient for 
converting all axes in a single operation and also allows efficient 
concatenation with other linear operations like axis swapping. But 
affine transforms can do only linear conversions, which is the reason 
for the error message that you got. If DMSH units in coordinate system 
axis is desired, it would have to be handled as a step separated from 
other unit conversions. Alternatively we could also ignore the DMSH 
units and handle them as if they were decimal degrees, but I'm not sure 
if it is the best thing to do.

     Regards,

         Martin



Mime
View raw message