aboutsummaryrefslogtreecommitdiff
path: root/man/man1/geod.1
blob: 8e4c18db99f73a125259900d15175965f6aa6cf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
.\" @(#)geod.1
.nr LL 7.0i
.ad b
.hy 1
.TH GEOD 1 "2018/02/15 Rel. 5.0.0"
.SH NAME
geod \- direct geodesic computations
.br
invgeod \- inverse geodesic computations
.SH SYNOPSIS
.B geod
.B +ellps=<ellipse>
[
.B \-afFIlptwW
[
.I args
] ] [
.B +args
]
file[s]
.br
.B invgeod
.B +ellps=<ellipse>
[
.B \-afFIlptwW
[
.I args
] ] [
.B +args
]
file[s]
.SH DESCRIPTION
.I geod
(direct) and
.I invgeod
(inverse)
perform geodesic ("Great Circle") computations for determining
latitude, longitude and back azimuth of a terminus point
given a initial point latitude, longitude, azimuth and distance (direct) or
the forward and back azimuths and distance between an initial and
terminus point latitudes and longitudes (inverse).  The results are
accurate to round off for |\fIf\fR| < 1/50, where \fIf\fR is flattening.
.B invgeod
may not be available on all platforms; in this case call
.B geod
with the
.B \-I
option.
.PP
The following command-line options can appear in any order:
.TP
.B \-I
Specifies that the inverse geodesic computation is to be performed.
May be used with execution of
.B geod
as an alternative to
.B invgeod
execution.
.TP
.B \-a
Latitude and longitudes of the initial and terminal points,
forward and back azimuths and distance are output.
.TP
.BI \-t "a"
.I A
specifies a character employed as the first character to denote
a control line to be passed through without processing.
.TP
.BI \-le
Gives a listing of all the ellipsoids that may be selected with the
.B +ellps=
option.
.TP
.BI \-lu
Gives a listing of all the units that may be selected with the
.B +units=
option.
.TP
.BI \-[f|F] " format"
.I Format
is a
.I printf
format string to control the output form of the geographic coordinate values
(\fBf\fR) or distance value (\fBF\fR).
The default mode is DMS for geographic coordinates and "%.3f" for distance.
.TP
.BI \-[w|W] n
.I N
is the number of significant fractional digits to employ for
seconds output (when the option is not specified,
.B \-w3
is assumed).
When
.B \-W
is employed the fields will be constant width with leading zeroes.
.TP
.B \-p
This option causes the azimuthal values to be output as unsigned
DMS numbers between 0 and 360 degrees.  Also note \-f.
.PP
The
.B +args
command-line options are associated with geodetic parameters
for specifying the ellipsoidal or sphere to use.
See
.B proj
documentation for full list of these parameters and controls.
The options are processed in left to right order
from the command line.
Reentry of an option is ignored with the first occurrence assumed to
be the desired value.
.PP
One or more
.I files
(processed in left to right order)
specify the source of data to be transformed.
A \- will specify the location of processing standard input.
If no files are specified, the input is assumed to be from
.I stdin.
.PP
For direct determinations input data must be in latitude,
longitude, azimuth and distance order and output will be
latitude, longitude and back azimuth of the terminus point.
Latitude, longitude of the initial and terminus point are
input for the inverse mode and respective forward and back
azimuth from the initial and terminus points are output along
with the distance between the points.
.PP
Input geographic coordinates (latitude and longitude) and azimuthal data
must be in decimal degrees or DMS format and input distance data must be
in units consistent with the ellipsoid major axis or sphere radius
units.  The latitude must lie in the range [-90d,90d].  Output
geographic coordinates will be in DMS (if the
.B \-f
switch is not employed) to 0.001"
with trailing, zero-valued minute-second fields deleted.
Output distance data will be in the same units as the ellipsoid or
sphere radius.
.PP
The Earth's ellipsoidal figure may be selected in the same
manner as program
.B proj
by using
.B "+ellps=, +a=, +es=,"
etc.
.PP
.I Geod
may also be used to determine intermediate points along either
a geodesic line between two points or along an arc of specified distance
from a geographic point.
In both cases an initial point must be specified with
.BI +lat_1= lat
and
.BI +lon_1= lon
parameters and either a terminus point
.BI +lat_2= lat
and
.BI +lon_2= lon
or a distance and azimuth from the initial point with
.BI +S= distance
and
.BI +A= azimuth
must be specified.
.PP
If points along a geodesic are to be determined then either
.BI +n_S= integer
specifying the number of intermediate points and/or
.BI +del_S= distance
specifying the incremental distance between points must be specified.
.PP
To determine points along an arc equidistant from the initial point both
.BI +del_A= angle
and
.BI +n_A= integer
must be specified which determine the respective angular increments
and number of points to be determined.
.RE
.SH EXAMPLE
The following script determines the geodesic azimuths and distance in
U.S. statute miles from Boston, MA, to Portland, OR:
.RS 5
 \f(CWgeod +ellps=clrk66 <<EOF \-I +units=us\-mi
 42d15'N 71d07'W 45d31'N 123d41'W
 EOF\fR
.RE
which gives the results:
.RS 5
 \f(CW-66d31'50.141" 75d39'13.083" 2587.504
.RE
where the first two values are the
azimuth from Boston to Portland, the back azimuth from Portland to
Boston followed by the distance.
.PP
An example of forward geodesic use is to use the Boston location and determine
Portland's location by azimuth and distance:
.RS 5
 \f(CWgeod +ellps=clrk66 <<EOF +units=us-mi
 42d15'N 71d07'W \-66d31'50.141" 2587.504
 EOF\fR
.RE
which gives:
.RS 5
 \f(CW45d31'0.003"N 123d40'59.985"W 75d39'13.094"\fR
.RE
Note: lack of precision in the distance value compromises
the precision of the Portland location.
.SH SEE ALSO
.B geodesic(3)
.PP
\fBGeographicLib\fR, https://geographiclib.sourceforge.io
.PP
The \fBGeodSolve\fR utility in GeographicLib.  With the \fB-E\fR option,
this solves the geodesic problems in terms of elliptic integrals; the
results are accurate for arbitrary \fIf\fR.
.PP
C. F. F. Karney, \fIAlgorithms for Geodesics\fR,
.br
J. Geodesy \fB87\fR, 43-55 (2013);
.br
DOI: https://doi.org/10.1007/s00190-012-0578-z
.br
https://geographiclib.sourceforge.io/geod-addenda.html
.PP
The \fIonline geodesic bibliography\fR,
.br
https://geographiclib.sourceforge.io/geodesic-papers/biblio.html
.SH BUGS
A list of known bugs can found at https://github.com/OSGeo/proj.4/issues
where new bug reports can be submitted too.
.SH HOME PAGE
http://proj4.org/