manpagez: man pages & more
man gmtspatial(1)
Home | html | info | man
gmtspatial(1)                         GMT                        gmtspatial(1)




NAME

       gmtspatial - Do geospatial operations on lines and polygons


SYNOPSIS

       gmtspatial   [   table   ]   [    -A[amin_dist][unit]]   [    -C   ]  [
       -D[+ffile][+aamax][+ddmax][+c|Ccmax][+sfact] ] [  -E+|- ] [  -F[l] ]  [
       -I[e|i]       ]      [       -Npfile[+a][+pstart][+r][+z]      ]      [
       -Q[[-|+]unit][+cmin[/max]][+h][+l][+p][+s[a|d]]  ]  [   -Rregion  ]   [
       -Si|u|s|j ] [  -T[clippolygon] ] [  -V[level] ] [ -bbinary ] [ -dnodata
       ] [ -eregexp ] [ -fflags ] [ -ggaps ] [  -hheaders  ]  [  -iflags  ]  [
       -oflags ] [ -:[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.).  Note: The input data are  assumed
              to  contain (lon, lat) or (x, y), optionally followed by a z and
              a weight [1] column.  We compute a weighted average of the loca-
              tion and z (if present).

       -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  dis-
              tance  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  Date-
              line  (|).  For polygons we also consider the fractional differ-
              ence 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 dis-
              tances 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 poly-
              gons.  Append i to only compute internal (i.e.,  self-intersect-
              ing  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 con-
              tains  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 seg-
              ment we skip the second (and further) scenario.

       -Q[[-|+]unit][+cmin[/max]][+h][+l][+p][+s[a|d]]
              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 com-
              puted 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].  Normally, all
              input  segments  will  be  be  reflected  on  output.   Use c to
              restrict processing to those whose length (or area for polygons)
              fall  inside  the specified range set by min and max.  If max is
              not set it defaults to infinity.  To sort the segments based  on
              their  lengths  or  area, use s and append a for ascending and d
              for descending order [ascending].  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.

       -Rwest/east/south/north[/zmin/zmax][+r][+uunit]
              west, east, south, and north specify the region of interest, and
              you   may   specify   them   in   decimal    degrees    or    in
              [A+-]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. Appending +uunit expects projected (Carte-
              sian) 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  poly-
              gon.

       -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 imple-
              mented.

       -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 a|)
              Select verbosity level [c].

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

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

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

       -e[~]^<i>apattern^<i>a | -e[~]/regexp/[i] (more a|)
              Only accept data records that match the given pattern.

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

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

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

       -icols[+l][+sscale][+ooffset][,^<i>a|] (more a|)
              Select input columns and transformations (0 is first column).

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

       -:[i|o] (more a|)
              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 just use -).

       -+ or just +
              Print  an extensive usage (help) message, including the explana-
              tion 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 all options, then exits.


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 aFlat Eartha 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,  absolute  time  is  under  the  control  of  FOR-
       MAT_DATE_OUT and FORMAT_CLOCK_OUT, whereas general floating point  val-
       ues are formatted according to FORMAT_FLOAT_OUT. Be aware that the for-
       mat in effect can lead to loss of precision in ASCII 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 set-
       ting.


EXAMPLE

       To turn all lines in the multisegment file lines.txt into closed  poly-
       gons, 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  areas  of all the polygon segments in the file jan-
       mayen_land_full.txt, add this information to the segment headers,  sort
       the  segments  from  largest to smallest in area but only keep polygons
       with area larger than 1000 sq. meters, run

              gmt spatial -Qe+h+p+c1000+sd -V janmayen_land_full.txt > largest_pols.txt

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

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

       To  truncate polygons A.txt against polygon B.txt, resulting in an open
       line segment, run

              gmt gmtspatial A.txt -TB.txt > line.txt


NOTES

       OGR/GMT files are considered complete  datasets  and  thus  you  cannot
       specify more than one at a given time. This causes problems if you want
       to examine the intersections of two OGR/GMT files.  The solution is  to
       convert them to regular datasets via gmtconvert and then run gmtspatial
       on the converted files.


SEE ALSO

       gmt(1), gmtconvert(1), gmtselect(1), gmtsimplify(1)


COPYRIGHT

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



5.4.2                            Jun 24, 2017                    gmtspatial(1)

gmt5 5.4.2 - Generated Wed Jun 28 18:03:17 CDT 2017
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.