NAME
project - project data along a line or great circle, gen-
erate a profile track, or translate coordinates.
SYNOPSIS
project [ xyzfile ] -Fflags -Ccx/cy [ -Aazimuth ] [ -Dd|g ]
[ -Ebx/by ] [ -Gdist ] [ -H ] [ -L[w][l_min/l_max] ] [ -M ]
[ -N ] [ -S ] [ -Tpx/py ] [ -V ] [ -Ww_min/w_max ] [ -: ]
DESCRIPTION
project reads arbitrary (x, y) pairs or (x, y, z) triples
from standard input [or xyzfile ] and writes to standard
output any combination of (x, y, z, p, q, r, s), where (p,
q) are the coordinates in the projection, and (r, s) is the
position in the (x, y) coordinate system of the point on the
profile (q = 0 path) closest to (x, y). Alternatively, pro-
ject may be used to generate (r, s, p) triples at equal
increments dist along a profile. In this case ( -G option),
no input is read. Projections are defined in any (but only)
one of three ways: (Definition 1) By a Center -C and an
Azimuth -A in degrees clockwise from North. (Definition 2)
By a Center -C and end point E of the projection path -E.
(Definition 3) By a Center -C and a roTation pole position
- T. To spherically project data along a great circle path,
an oblique coordinate system is created which has its equa-
tor along that path, and the zero meridian through the
Center. Then the oblique longitude (p) corresponds to the
distance from the Center along the great circle, and the
oblique latitude (q) corresponds to the distance perpendicu-
lar to the great circle path. When moving in the increasing
(p) direction, (toward B or in the azimuth direction), the
positive (q) direction is to your left. If a Pole has been
specified, then the positive (q) direction is toward the
pole. To specify an oblique projection, use the -T option
to set the Pole. Then the equator of the projection is
already determined and the -C option is used to locate the p
= 0 meridian. The Center cx/cy will be taken as a point
through which the p = 0 meridian passes. If you do not care
to choose a particular point, use the South pole (ox = 0, oy
= -90). Data can be selectively windowed by using the -L
and -W options. If -W is used, the projection Width is set
to use only points with w_min < q < w_max. If -L is set,
then the Length is set to use only those points with l_min <
p < l_max. If the -E option has been used to define the
projection, then -Lw may be selected to window the length of
the projection to exactly the span from O to B. Flat earth
(cartesian) coordinate transformations can also be made.
Set - N and remember that azimuth is clockwise from North
(the y axis), NOT the usual cartesian theta, which is coun-
terclockwise from the x axis. azimuth = 90 - theta. No
assumptions are made regarding the units for x, y, r, s, p,
q, dist, l_min,l _max, w_min, w_max. If -M is selected, map
units are assumed and x, y, r, s must be in degrees and p,
q, dist, l_min, l_max, w_min, w_max will be in km. project
is CASE SENSITIVE. Use UPPER CASE for all one-letter desig-
nators which begin optional arguments. Use lower case for
the xyzpqrs letters in -flags.
-C cx/cy sets the origin of the projection, in Definition
1 or 2. If Definition 3 is used (-T), then cx/cy are
the coordinates of a point through which the oblique
zero meridian (p = 0) should pass.
OPTIONS
xyzfile
name of a 2 or 3 column ASCII file holding (x,y,[z])
data values. If no filename is given, project will
read from standard input. If the - G option is
selected, no input data are read.
-F Specify your desired output using any combination of
xyzpqrs, in any order. Do not space between the
letters. Use lower case. The output will be ASCII
columns of values corresponding to xyzpqrs. If the -G
option is selected, the output will be rsp.
-A azimuth defines the azimuth of the projection (Defini-
tion 1).
-D Set the location of the Discontinuity in longitude (r
coordinate). - Dd will place the discontinuity at the
Dateline, (-180 < r < 180); - Dg will place it at
Greenwich, (0 < r < 360). Default usually falls at
dateline due to atan2 calls.
-E bx/by defines the end point of the projection path
(Definition 2).
-G dist Generate mode. No input is read. Create (r, s,
p) output points every dist units of p. See -M option.
-H Input file(s) has Header record(s). Number of header
records can be changed by editing your .gmtdefaults
file. If used, GMT default is 1 header record.
-L Length controls. Project only those points whose p
coordinate is within l_min < p < l_max. If -E has been
set, then you may use -Lw to stay within the distance
from O to B.
-M Map type units, i.e., project assumes x, y, r, s are
in degrees while p, q, dist, l_min,l _max, w_min, w_max
are in km. If -M is not set, then all these are
assumed in same units.
-N Flat earth. Make a cartesian coordinate transforma-
tion in the plane. [Default uses spherical tri-
gonometry.]
-S Sort the output into increasing p order. Useful when
projecting random data into a sequential profile.
-T px/py sets the position of the roTation pole of the
projection. (Definition 3).
-V Selects verbose mode, which will send progress reports
to stderr [Default runs "silently"].
-W Width controls. Project only those points whose q
coordinate is within w_min < q < w_max.
- : Toggles between (longitude,latitude) and
(latitude,longitude) input/output. [Default is
(longitude,latitude)]
EXAMPLES
To generate points every 10km along a great circle from
10N,50W to 30N,10W, try:
project -C-50/10 -E-10/30 -G10 -M > great_circle_points.xyp
(Note that great_circle_points.xyp could now be used as
input for grdtrack, etc. ).
To project the shiptrack gravity in c2610.xyg along a great
circle through an origin at 30S, 30W, the great circle hav-
ing an azimuth of N20W at the origin, keeping only the data
from NE of the profile and within +/- 500 km of the origin,
try:
project c2610.xyg -C-30/-30 -A-20 -W-10000/0 -L-500/500 -Fpz
-M > c2610_projected.pg
(Note in this example that -W-10000/0 is used to admit any
value with a large negative q coordinate. This will take
those points which are on our right as we walk along the
great circle path, or to the NE in this example.)
To make a cartesian coordinate transformation of mydata.xy
so that the new origin is at 5,3 and the new x axis (p)
makes an angle of 20 degrees with the old x axis, try:
project mydata.xy -C5/3 -A70 -Fpq > mydata.pq
To take data in the file pacific.lonlat and transform it
into oblique coordinates using a pole from the hotspot
reference frame and placing the oblique zero meridian (p = 0
line) through Tahiti, try:
project pacific.lonlat -T-75/68 - C-149:26/-17:37 - Fpq >
pacific.pq
Suppose that pacific_topo.grd is a grdfile of bathymetry,
and you want to make a file of flowlines in the hotspot
reference frame. If you try:
grd2xyz pacific_topo.grd | project -T-75/68 -C0/-90 -Fxyq |
xyz2grd -Retc -Ietc -Cflow.grd
then flow.grd is a file in the same area as
pacific_topo.grd, but flow contains the latitudes about the
pole of the projection. You now can use grdcontour on
flow.grd to draw lines of constant oblique latitude, which
are flow lines in the hotspot frame.
If you have an arbitrarily rotation pole px/py and you would
like to draw an oblique small circle on a map, you will
first need to make a file with the oblique coordinates for
the small circle (i.e., lon = 0-360, lat is constant), then
create a file with two records: the north pole (0/90) and
the origin (0/0), and find what their oblique coordinates
are using your rotation pole. Now, use the projected North
pole and origin coordinates as the rotation pole and center,
respectively, and project your file as in the pacific exam-
ple above. This gives coordinates for an oblique small cir-
cle.
SEE ALSO
fitcircle, gmt, mapproject, grdproject
REFERENCES
Wessel, P., and W. H. F. Smith, 1995, The Generic Mapping
Tools (GMT) version 3.0 Technical Reference & Cookbook,
SOEST/NOAA.
Wessel, P., and W. H. F. Smith, 1995, New Version of the
Generic Mapping Tools Released, EOS Trans. AGU, 76, p. 329.
Wessel, P., and W. H. F. Smith, 1995, New Version of the
Generic Mapping Tools Released,
http://www.agu.org/eos_elec/95154e.html, Copyright 1995 by
the American Geophysical Union.
Wessel, P., and W. H. F. Smith, 1991, Free Software Helps
Map and Display Data, EOS Trans. AGU, 72, p. 441.