Provided by: gmt-common_5.2.1+dfsg-3build1_all bug

NAME

       gmtspatial - Do geospatial operations on lines and polygons

SYNOPSIS

       gmtspatial  [  table ] [ [amin_dist][unit]] [  ] [ [+ffile][+aamax][+ddmax][+c|Ccmax][+sfact] ] [ +|- ] [
       [l] ] [ -I[e|i] ] [ pfile[+a][+pstart][+r][+z] ] [ [[-|+]*unit*][+h][+l][+p] ] [ region ] [ i|u|s|j  ]  [
       [clippolygon]  ]  [  [level] ] [ -b<binary> ] [ -d<nodata> ] [ -f<flags> ] [ -g<gaps> ] [ -h<headers> ] [
       -i<flags> ] [ -o<flags> ] [ -:[i|o] ]

       Note: No space is allowed between the option flag and the associated arguments.

DESCRIPTION

       gmtspatial reads one or more data files (which may be multisegment files) that contains  closed  polygons
       and  operates  of  these  polygons  in the specified way. Operations include area calculation, handedness
       reversals, and polygon intersections.

REQUIRED ARGUMENTS

       None.

OPTIONAL ARGUMENTS

       table  One or more ASCII (or binary, see -bi[ncols][type]) data table file(s) holding a  number  of  data
              columns. If no tables are given then we read from standard input.

       -A[amin_dist][unit]
              Perform  spatial  nearest neighbor (NN) analysis: Determine the nearest neighbor of each point and
              report the NN distances and the point IDs involved in each pair (IDs are the input record  numbers
              starting at 0).  Use -Aa to decimate a data set so that no NN distance is lower than the threshold
              min_dist.   In  this  case  we  write  out  the (possibly averaged) coordinates and the updated NN
              distances and point IDs.  A negative point number means the  original  point  was  replaced  by  a
              weighted average (the absolute ID value gives the ID of the first original point ID to be included
              in the average.)

       -C     Clips polygons to the map region, including map boundary to the polygon as needed. The result is a
              closed polygon (see -T for truncation instead). Requires -R.

       -D[+ffile][+aamax][+ddmax][+c|Ccmax][+sfact]
              Check  for duplicates among the input lines or polygons, or, if file is given via +f, check if the
              input features already exist among the features in file. We consider  the  cases  of  exact  (same
              number  and  coordinates)  and approximate matches (average distance between nearest points of two
              features is less than a threshold). We also consider that some features may  have  been  reversed.
              Features  are  considered approximate matches if their minimum distance is less than dmax [0] (see
              UNITS) and their closeness (defined as the ratio between the average distance between the features
              divided by their average length) is less than cmax [0.01]. For each duplicate  found,  the  output
              record begins with the single letter Y (exact match) or ~ (approximate match). If the two matching
              segments differ in length by more than a factor of 2 then we consider the duplicate to be either a
              subset  (-)  or  a  superset (+). Finally, we also note if two lines are the result of splitting a
              continuous line across the Dateline (|).  For polygons we also consider the fractional  difference
              in  areas;  duplicates  must differ by less than amax [0.01]. By default, we compute the mean line
              separation. Use +Ccmin to instead compute the  median  line  separation  and  therefore  a  robust
              closeness value. Also by default we consider all distances between points on one line and another.
              Append  +p  to  limit the comparison to points that project perpendicularly to points on the other
              line (and not its extension).

       -E+|- ]
              Reset the handedness of all polygons to match the given + (counter-clockwise)  or  -  (clockwise).
              Implies -Q+.

       -F[l]  Force  input data to become polygons on output, i.e., close them explicitly if not already closed.
              Optionally, append l to force line geometry.

       -I[e|i]
              Determine the intersection locations between all pairs of polygons.   Append  i  to  only  compute
              internal  (i.e.,  self-intersecting  polygons)  crossovers  or  e  to only compute external (i.e.,
              between paris of polygons) crossovers [Default is both].

       -Npfile[+a][+pstart][+r][+z]
              Determine if one (or all, with +a) points of each feature in the input data are inside any of  the
              polygons  given in the pfile. If inside, then report which polygon it is; the polygon ID is either
              taken from the aspatial value assigned to Z, the segment header (first -Z, then -L  are  scanned),
              or  it  is  assigned  the  running  number  that is initialized to start [0]. By default the input
              segment that are found to be inside a polygon are written to stdout with the polygon ID encoded in
              the segment header as -ZID. Alternatively, append +r to  just  report  which  polygon  contains  a
              feature  or  +z  to have the IDs added as an extra data column on output. Segments that fail to be
              inside a polygon are not written out. If more than one polygon contains the same segment  we  skip
              the second (and further) scenario.

       -Q[[-|+]*unit*][+h][+l][+p]
              Measure  the  area of all polygons or length of line segments. Use -Q+h to append the area to each
              polygons segment header [Default simply writes the area to stdout]. For polygons we  also  compute
              the  centroid location while for line data we compute the mid-point (half-length) position. Append
              a distance unit to select the unit used (see UNITS). Note that the area will depend on the current
              setting of PROJ_ELLIPSOID; this should be a recent ellipsoid to get accurate results. The centroid
              is computed using the mean of the 3-D Cartesian vectors making up the polygon vertices, while  the
              area  is  obtained via an equal-area projection.  For line lengths you may prepend -|+ to the unit
              and the calculation will use Flat Earth or Geodesic algorithms,  respectively  [Default  is  great
              circle  distances].   By  default,  we  consider  open polygons as lines.  Append +p to close open
              polygons and thus consider all input as polygons, or append +l to consider  all  input  as  lines,
              even if closed.

       -R[unit]west/east/south/north[/zmin/zmax][r]
              west,  east,  south, and north specify the region of interest, and you may specify them in decimal
              degrees or in [+-]dd:mm[:ss.xxx][W|E|S|N] format. Append r if  lower  left  and  upper  right  map
              coordinates  are  given instead of w/e/s/n. The two shorthands -Rg and -Rd stand for global domain
              (0/360 and -180/+180 in longitude respectively, with -90/+90 in latitude).  Alternatively for grid
              creation, give Rcodelon/lat/nx/ny, where code is a 2-character combination of L, C, R  (for  left,
              center, or right) and T, M, B for top, middle, or bottom. e.g., BL for lower left.  This indicates
              which  point  on a rectangular region the lon/lat coordinate refers to, and the grid dimensions nx
              and ny with grid spacings via -I is used  to  create  the  corresponding  region.   Alternatively,
              specify  the  name  of an existing grid file and the -R settings (and grid spacing, if applicable)
              are copied from the grid. Using -Runit expects projected (Cartesian) coordinates  compatible  with
              chosen  -J  and  we  inversely  project  to  determine  actual rectangular geographic region.  For
              perspective view (-p), optionally append /zmin/zmax.  In case of perspective view (-p), a  z-range
              (zmin,  zmax)  can  be  appended  to indicate the third dimension. This needs to be done only when
              using the -Jz option, not when using only the -p option. In the latter case a perspective view  of
              the  plane  is  plotted,  with no third dimension. Clips polygons to the map region, including map
              boundary to the polygon as needed. The result is a closed polygon.

       -Si|j|s|u
              Spatial processing of polygons. Choose  from  -Si  which  returns  the  intersection  of  polygons
              (closed),  -Su  which  returns  the union of polygons (closed), -Ss which will split polygons that
              straddle the Dateline, and -Sj which will join polygons that were split by  the  Dateline.   Note:
              Only -Ss has been implemented.

       -T[clippolygon]
              Truncate  polygons against the specified polygon given, possibly resulting in open polygons. If no
              argument is given to -T we create a clipping polygon from -R which then  is  required.  Note  that
              when  the  -R  clipping  is in effect we will also look for polygons of length 4 or 5 that exactly
              match the -R clipping polygon.

       -V[level] (more ...)
              Select verbosity level [c].

       -bi[ncols][t] (more ...)
              Select native binary input. [Default is 2 input columns].

       -bo[ncols][type] (more ...)
              Select native binary output. [Default is same as input].

       -d[i|o]nodata (more ...)
              Replace input columns that equal nodata with NaN and do the reverse on output.

       -f[i|o]colinfo (more ...)
              Specify data types of input and/or output columns.

       -g[a]x|y|d|X|Y|D|[col]z[+|-]gap[u] (more ...)
              Determine data gaps and line breaks.

       -h[i|o][n][+c][+d][+rremark][+rtitle] (more ...)
              Skip or produce header record(s).

       -icols[l][sscale][ooffset][,...] (more ...)
              Select input columns (0 is first column).

       -ocols[,...] (more ...)
              Select output columns (0 is first column).

       -:[i|o] (more ...)
              Swap 1st and 2nd column on input and/or output.

       -^ or just -
              Print a short message about the syntax of the command, then exits (NOTE: on Windows use just -).

       -+ or just +
              Print an extensive usage (help) message, including the explanation of any  module-specific  option
              (but not the GMT common options), then exits.

       -? or no arguments
              Print a complete usage (help) message, including the explanation of options, then exits.

       --version
              Print GMT version and exit.

       --show-datadir
              Print full path to GMT share directory and exit.

UNITS

       For  map  distance  unit,  append unit d for arc degree, m for arc minute, and s for arc second, or e for
       meter [Default], f for foot, k for km, M for statute mile, n for nautical mile, and u for US survey foot.
       By default we compute such distances using a spherical approximation with great circles. Prepend -  to  a
       distance  (or  the  unit  is no distance is given) to perform "Flat Earth" calculations (quicker but less
       accurate) or prepend + to perform exact geodesic calculations (slower but more accurate).

ASCII FORMAT PRECISION

       The ASCII output formats of numerical data are controlled by parameters in your gmt.conf file.  Longitude
       and  latitude  are formatted according to FORMAT_GEO_OUT, whereas other values are formatted according to
       FORMAT_FLOAT_OUT. Be aware that the format in effect can lead to loss of precision in the  output,  which
       can  lead  to  various  problems downstream. If you find the output is not written with enough precision,
       consider  switching  to  binary  output  (-bo  if  available)  or  specify  more   decimals   using   the
       FORMAT_FLOAT_OUT setting.

EXAMPLE

       To turn all lines in the multisegment file lines.txt into closed polygons, run

              gmt spatial lines.txt -F > polygons.txt

       To compute the area of all geographic polygons in the multisegment file polygons.txt, run

              gmt spatial polygons.txt -Q > areas.txt

       Same  data,  but  now  orient  all  polygons to go counter-clockwise and write their areas to the segment
       headers, run

              gmt spatial polygons.txt -Q+h -E+ > areas.txt

       To determine the intersections between the polygons A.txt and B.txt, run

              gmt spatial A.txt B.txt -Ce > crossovers.txt

SEE ALSO

       gmt, gmtconvert, gmtselect, gmtsimplify

COPYRIGHT

       2015, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe

5.2.1                                           January 28, 2016                                GMTSPATIAL(1gmt)