163 lines
5.5 KiB
Plaintext
163 lines
5.5 KiB
Plaintext
=head1 NAME
|
|
|
|
GeodesicProj -- perform projections based on geodesics
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
B<GeodesicProj> ( B<-z> | B<-c> | B<-g> ) I<lat0> I<lon0> [ B<-r> ]
|
|
[ B<-e> I<a> I<f> ] [ B<-w> ] [ B<-p> I<prec> ]
|
|
[ B<--comment-delimiter> I<commentdelim> ]
|
|
[ B<--version> | B<-h> | B<--help> ]
|
|
[ B<--input-file> I<infile> | B<--input-string> I<instring> ]
|
|
[ B<--line-separator> I<linesep> ]
|
|
[ B<--output-file> I<outfile> ]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
Perform projections based on geodesics. Convert geodetic coordinates to
|
|
either azimuthal equidistant, Cassini-Soldner, or gnomonic coordinates.
|
|
The center of the projection (I<lat0>, I<lon0>) is specified by either
|
|
the B<-c> option (for Cassini-Soldner), the B<-z> option (for azimuthal
|
|
equidistant), or the B<-g> option (for gnomonic). At least one of these
|
|
options must be given (the last one given is used).
|
|
|
|
Geodetic coordinates are provided on standard input as a set of lines
|
|
containing (blank separated) I<latitude> and I<longitude> (decimal
|
|
degrees or degrees, minutes, seconds); for details on the allowed
|
|
formats for latitude and longitude, see the C<GEOGRAPHIC COORDINATES>
|
|
section of GeoConvert(1). For each set of geodetic coordinates, the
|
|
corresponding projected coordinates I<x>, I<y> (meters) are printed on
|
|
standard output together with the azimuth I<azi> (degrees) and
|
|
reciprocal scale I<rk>. For Cassini-Soldner, I<azi> is the bearing of
|
|
the easting direction and the scale in the easting direction is 1 and
|
|
the scale in the northing direction is 1/I<rk>. For azimuthal
|
|
equidistant and gnomonic, I<azi> is the bearing of the radial direction
|
|
and the scale in the azimuthal direction is 1/I<rk>. For azimuthal
|
|
equidistant and gnomonic, the scales in the radial direction are 1 and
|
|
1/I<rk>^2, respectively.
|
|
|
|
=head1 OPTIONS
|
|
|
|
=over
|
|
|
|
=item B<-z> I<lat0> I<lon0>
|
|
|
|
use the azimuthal equidistant projection centered at latitude = I<lat0>,
|
|
longitude = I<lon0>. The B<-w> flag can be used to swap the default
|
|
order of the 2 coordinates, provided that it appears before B<-z>.
|
|
|
|
=item B<-c> I<lat0> I<lon0>
|
|
|
|
use the Cassini-Soldner projection centered at latitude = I<lat0>,
|
|
longitude = I<lon0>. The B<-w> flag can be used to swap the default
|
|
order of the 2 coordinates, provided that it appears before B<-c>.
|
|
|
|
=item B<-g> I<lat0> I<lon0>
|
|
|
|
use the ellipsoidal gnomonic projection centered at latitude = I<lat0>,
|
|
longitude = I<lon0>. The B<-w> flag can be used to swap the default
|
|
order of the 2 coordinates, provided that it appears before B<-g>.
|
|
|
|
=item B<-r>
|
|
|
|
perform the reverse projection. I<x> and I<y> are given on standard
|
|
input and each line of standard output gives I<latitude>, I<longitude>,
|
|
I<azi>, and I<rk>.
|
|
|
|
=item B<-e> I<a> I<f>
|
|
|
|
specify the ellipsoid via the equatorial radius, I<a> and
|
|
the flattening, I<f>. Setting I<f> = 0 results in a sphere. Specify
|
|
I<f> E<lt> 0 for a prolate ellipsoid. A simple fraction, e.g., 1/297,
|
|
is allowed for I<f>. By default, the WGS84 ellipsoid is used, I<a> =
|
|
6378137 m, I<f> = 1/298.257223563.
|
|
|
|
=item B<-w>
|
|
|
|
toggle the longitude first flag (it starts off); if the flag is on, then
|
|
on input and output, longitude precedes latitude (except that, on input,
|
|
this can be overridden by a hemisphere designator, I<N>, I<S>, I<E>,
|
|
I<W>).
|
|
|
|
=item B<-p> I<prec>
|
|
|
|
set the output precision to I<prec> (default 6). I<prec> is the number
|
|
of digits after the decimal point for lengths (in meters). For
|
|
latitudes, longitudes, and azimuths (in degrees), the number of digits
|
|
after the decimal point is I<prec> + 5. For the scale, the number of
|
|
digits after the decimal point is I<prec> + 6.
|
|
|
|
=item B<--comment-delimiter> I<commentdelim>
|
|
|
|
set the comment delimiter to I<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).
|
|
|
|
=item B<--version>
|
|
|
|
print version and exit.
|
|
|
|
=item B<-h>
|
|
|
|
print usage and exit.
|
|
|
|
=item B<--help>
|
|
|
|
print full documentation and exit.
|
|
|
|
=item B<--input-file> I<infile>
|
|
|
|
read input from the file I<infile> instead of from standard input; a file
|
|
name of "-" stands for standard input.
|
|
|
|
=item B<--input-string> I<instring>
|
|
|
|
read input from the string I<instring> instead of from standard input.
|
|
All occurrences of the line separator character (default is a semicolon)
|
|
in I<instring> are converted to newlines before the reading begins.
|
|
|
|
=item B<--line-separator> I<linesep>
|
|
|
|
set the line separator character to I<linesep>. By default this is a
|
|
semicolon.
|
|
|
|
=item B<--output-file> I<outfile>
|
|
|
|
write output to the file I<outfile> instead of to standard output; a
|
|
file name of "-" stands for standard output.
|
|
|
|
=back
|
|
|
|
=head1 EXAMPLES
|
|
|
|
echo 48.648 -2.007 | GeodesicProj -c 48.836 2.337
|
|
=> -319919 -11791 86.7 0.999
|
|
echo -319919 -11791 | GeodesicProj -c 48.836 2.337 -r
|
|
=> 48.648 -2.007 86.7 0.999
|
|
|
|
=head1 ERRORS
|
|
|
|
An illegal line of input will print an error message to standard output
|
|
beginning with C<ERROR:> and causes B<GeodesicProj> to return an exit
|
|
code of 1. However, an error does not cause B<GeodesicProj> to
|
|
terminate; following lines will be converted.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
The ellipsoidal gnomonic projection is derived in Section 8 of
|
|
C. F. F. Karney, I<Algorithms for geodesics>, J. Geodesy 87, 43-55 (2013); DOI
|
|
L<https://doi.org/10.1007/s00190-012-0578-z>;
|
|
addenda: L<https://geographiclib.sourceforge.io/geod-addenda.html>.
|
|
|
|
=head1 AUTHOR
|
|
|
|
B<GeodesicProj> was written by Charles Karney.
|
|
|
|
=head1 HISTORY
|
|
|
|
B<GeodesicProj> was added to GeographicLib,
|
|
L<https://geographiclib.sourceforge.io>, in 2009-08.
|
|
Prior to version 1.9 it was called EquidistantTest.
|