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