logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

TransverseMercatorProj -- perform transverse Mercator projection

Author

TransverseMercatorProj was written by Charles Karney.

Description

       Perform the transverse Mercator projections.  Convert geodetic coordinates to transverse Mercator
       coordinates.  The central meridian is given by lon0.  The longitude of origin is the equator.  The scale
       on the central meridian is k0.  By default an implementation of the exact transverse Mercator projection
       is used.

       Geodetic coordinates are provided on standard input as a set of lines containing (blank separated)
       latitude and longitude (decimal degrees or degrees, minutes, seconds); for detils on the allowed formats
       for latitude and longitude, see the "GEOGRAPHIC COORDINATES" section of GeoConvert(1).  For each set of
       geodetic coordinates, the corresponding projected easting, x, and northing, y, (meters) are printed on
       standard output together with the meridian convergence gamma (degrees) and scale k.  The meridian
       convergence is the bearing of grid north (the y axis) measured clockwise from true north.

Errors

       An  illegal  line  of  input  will  print an error message to standard output beginning with "ERROR:" and
       causes TransverseMercatorProj  to  return  an  exit  code  of  1.   However,  an  error  does  not  cause
       TransverseMercatorProj to terminate; following lines will be converted.

Examples

          echo 0 90 | TransverseMercatorProj
          => 25953592.84 9997964.94 90 18.40
          echo 260e5 100e5 | TransverseMercatorProj -r
          => -0.02 90.00 90.01 18.48

Extended Domain

       The exact transverse Mercator projection has a branchpoint on the equator  at  longitudes  (relative  to
       lon0)  of  +/-  (1  -  e)  90  =  82.636...,  where e is the eccentricity of the ellipsoid.  The standard
       convention for handling this  branch  point  is  to  map  positive  (negative)  latitudes  into  positive
       (negative)  northings  y;  i.e.,  a  branch  cut is placed on the equator.  With the extended domain, the
       northern sheet of the projection is extended into the south hemisphere by pushing the  branch  cut  south
       from the branch points.  See the reference below for details.

History

TransverseMercatorProj  was  added  to GeographicLib, <https://geographiclib.sourceforge.io>, in 2009-01.
       Prior to version 1.9 it was called TransverseMercatorTest (and its interface was slightly different).

GeographicLib 2.5                                  2024-12-28                          TRANSVERSEMERCATORPROJ(1)

Name

       TransverseMercatorProj -- perform transverse Mercator projection

Options

-s  use the sixth-order Krueger series approximation to the transverse Mercator projection instead of the
           exact projection.

       -t  use the exact algorithm with the "EXTENDED DOMAIN".

       -llon0
           specify the longitude of origin lon0 (degrees, default 0).

       -kk0
           specify the scale k0 on the central meridian (default 0.9996).

       -r  perform the reverse projection.  x and y are given on standard input and each line of standard output
           gives latitude, longitude, gamma, and k.

       -eaf
           specify the ellipsoid via the equatorial radius, a and the flattening, f.  Setting f = 0 results in a
           sphere.   Specify  f  < 0 for a prolate ellipsoid.  A simple fraction, e.g., 1/297, is allowed for f.
           By default, the WGS84 ellipsoid is used, a = 6378137 m, f = 1/298.257223563.  If the exact  algorithm
           is used, f must be positive.

       -w  on  input  and  output, longitude precedes latitude (except that on input this can be overridden by a
           hemisphere designator, N, S, E, W).

       -pprec
           set the output precision to prec (default 6).  prec is the number of digits after the  decimal  point
           for  lengths  (in meters).  For latitudes and longitudes (in degrees), the number of digits after the
           decimal point is prec + 5.  For the convergence (in degrees) and scale, the number  of  digits  after
           the decimal point is prec + 6.

       --comment-delimitercommentdelim
           set  the  comment  delimiter  to  commentdelim  (e.g., "#" or "//").  If set, the input lines will be
           scanned for this delimiter and, if found, the delimiter and the rest of  the  line  will  be  removed
           prior to processing and subsequently appended to the output line (separated by a space).

       --version
           print version and exit.

       -h  print usage and exit.

       --help
           print full documentation and exit.

       --input-fileinfile
           read  input  from  the  file  infile  instead  of  from standard input; a file name of "-" stands for
           standard input.

       --input-stringinstring
           read input from the string instring instead of from standard input.   All  occurrences  of  the  line
           separator character (default is a semicolon) in instring are converted to newlines before the reading
           begins.

       --line-separatorlinesep
           set the line separator character to linesep.  By default this is a semicolon.

       --output-fileoutfile
           write  output  to  the  file  outfile  instead  of  to standard output; a file name of "-" stands for
           standard output.

See Also

       The  algorithms  for  the  transverse  Mercator  projection  are described in C. F. F. Karney, TransverseMercatorwithanaccuracyofafewnanometers,  J.  Geodesy  85(8),  475-485  (Aug.   2011);   DOI
       <https://doi.org/10.1007/s00190-011-0445-3>; preprint <https://arxiv.org/abs/1002.1417>.  The explanation
       of the extended domain of the projection with the -t option is given in Section 5 of this paper.

Synopsis

TransverseMercatorProj [ -s | -t ] [ -llon0 ] [ -kk0 ] [ -r ] [ -eaf ] [ -w ] [ -pprec ] [
       --comment-delimitercommentdelim ] [ --version | -h | --help ] [ --input-fileinfile | --input-stringinstring ] [ --line-separatorlinesep ] [ --output-fileoutfile ]

See Also