[MetaCRS] Distance reductions for cadastral mapping

Martin Desruisseaux martin.desruisseaux at geomatys.fr
Sun Jan 9 11:01:36 EST 2011


Hello all

Just for information: if my understanding of "Grid Scale Factor" (CS_scale) in 
CS-MAP is right, it is similar to the following method defined in OGC 01-009 
(Coordinate Transformation Services implementation specification):

     CT_MathTransform.derivative(DirectPosition)
     
http://www.geoapi.org/snapshot/javadoc/org/opengis/referencing/operation/MathTransform.html#derivative%28org.opengis.geometry.DirectPosition%29

The main difference is that the OGC 01-009 method returns the derivative at the 
given location as a 2x2 matrix (or 3x3 in the three-dimensional case, etc.). 
This is like the scale factors, except that OGC 01-009 also gives you the 
direction of the parallel line and meridian line at that location. This method 
works for arbitrary transformation chains in n-dimensional spaces.

Geotoolkit.org implements partially this method (not yet implemented for all 
projections, but some common projections are supported).

     Regards

         Martin



Le 07/01/11 21:35, Norm Olsen a écrit :
> Hello Steve . . .
>
> CS-MAP provides an easy way to obtain the "grid scale factor" which is a measure of the scale distortion added by the projection at a specific point within thew domain of the coordinate system.  VIZ:
>
> Grid Scale Factor -- CS_scale
> Given a coordinate system name and a location in the form of a geographic coordinate, CS_scale will return the grid scale factor of the coordinate system at the specified location. CS_scale returns a negative one in the event of an error condition. In such cases, the cause of the error can be determined by examining cs_Error which will contain the CS-MAP numeric error code of the condition which caused the error. CS_errmsg can be used to obtain a textual description of the error condition. An error caused by the location being outside of the domain of the coordinate system will be indicated by a cs_Error value of zero. In this case, no textual description will be available.
>
> Note that the coordinate provided as the second argument must be a geographic coordinate, i.e. latitude and longitude in degrees referenced to the Greenwich prime meridian. Longitude is the first element in the array, latitude is the second. (The third element is not currently used for grid scale calculations, but may be in the future.) As always for internal geographic coordinates, use negative values for west longitude and south latitude.
>
> double CS_scale (Const char *cs_nam,double ll [2]);
>
> You can use CS_cnvrt to obtain the geographic coordinates, if necessary.  Use it to convert your cartesian coordinates to "LL".
>
> Technically, there are two grid scale factors:
> 	A grid scale factor along the meridian (h)
> 	A grid scale factor along the parallel (k)
>
> In the case of a Conformal Projection (like the Transverse Mercator), the two scale factors are equal.  The scale factors will not be equal in other types of projections.  The scale factor returned for non-conformal projections is usually the more interesting of the two.  For example, for projections of the equal area type, the scale along the parallel is returned and this value is the reciprocal of the scale along the meridian.
>
> If the distances being adjusted are short, (i.e. less than a kilometer) you can probably use the scale at either end-point without a problem.  For longer distances, you may wish to consider calculating the scale at the mid-point of the line segment being adjusted.
>
> Hope this helps.  Good luck on your project.
>
> Norm Olsen


More information about the MetaCRS mailing list