Provided by: grass-doc_7.4.0-1_all bug

NAME

       r.patch   -  Creates  a composite raster map layer by using known category values from one
       (or more) map layer(s) to fill in areas of "no data" in another map layer.

KEYWORDS

       raster, geometry, mosaicking, merge, patching, aggregation, series

SYNOPSIS

       r.patch
       r.patch --help
       r.patch [-zs]  input=name[,name,...]  output=name   [--overwrite]   [--help]   [--verbose]
       [--quiet]  [--ui]

   Flags:
       -z
           Use zero (0) for transparency instead of NULL

       -s
           Do not create color and category files

       --overwrite
           Allow output files to overwrite existing files

       --help
           Print usage summary

       --verbose
           Verbose module output

       --quiet
           Quiet module output

       --ui
           Force launching GUI dialog

   Parameters:
       input=name[,name,...] [required]
           Name of raster maps to be patched together

       output=name [required]
           Name for resultant raster map

DESCRIPTION

       The  GRASS  program  r.patch  allows  the  user  to  build  a  new raster map the size and
       resolution of the current region by assigning known data values from input raster maps  to
       the  cells  in this region.  This is done by filling in "no data" cells, those that do not
       yet contain data, contain NULL data, or, optionally contain 0 data, with the data from the
       first  input  map.   Once this is done the remaining holes are filled in by the next input
       map, and so on.

       This program is useful for making a composite raster map layer from two or  more  adjacent
       map  layers,  for  filling  in  "holes"  in  a  raster  map layer’s data (e.g., in digital
       elevation data), or for updating an older map layer with more  recent  data.  The  current
       geographic region definition and mask settings are respected.

       Figure: Result of patching two raster maps containing NULLs using the default settings

       The first name listed in the string input=name,name,name, ... is the name of the first map
       whose data values will be used to fill in "no data"  cells  in  the  current  region.  The
       second  through last input name maps will be used, in order, to supply data values for for
       the remaining "no data" cells.

       Figure: Result of patching two raster maps using the -z flag to treat zeros as NULLs

   Relation to SQL COALESCE() function
       The module is corresponds to the SQL COALESCE() function.  This function takes two or more
       arguments  and  returns  a copy of its first non-NULL argument. If all arguments are NULL,
       the function returns NULL.

       The r.patch module iterates over all cells and for each cell of the output raster map uses
       the first corresponding non-NULL cell in the series of the input raster maps.

   Example of filling areas
       Below,  the  raster map layer on the far left is patched with the middle (patching) raster
       map layer, to produce the composite raster map layer on the right.   The  example  assumes
       zero values to be treated as NULLs (-z flag).
         1 1 1 0 2 2 0 0    0 0 1 1 0 0 0 0    1 1 1 1 2 2 0 0
         1 1 0 2 2 2 0 0    0 0 1 1 0 0 0 0    1 1 1 2 2 2 0 0
         3 3 3 3 2 2 0 0    0 0 0 0 0 0 0 0    3 3 3 3 2 2 0 0
         3 3 3 3 0 0 0 0    4 4 4 4 4 4 4 4    3 3 3 3 4 4 4 4
         3 3 3 0 0 0 0 0    4 4 4 4 4 4 4 4    3 3 3 4 4 4 4 4
         0 0 0 0 0 0 0 0    4 4 4 4 4 4 4 4    4 4 4 4 4 4 4 4
       Switching the patched and the patching raster map layers produces the following results:
         0 0 1 1 0 0 0 0    1 1 1 0 2 2 0 0    1 1 1 1 2 2 0 0
         0 0 1 1 0 0 0 0    1 1 0 2 2 2 0 0    1 1 1 1 2 2 0 0
         0 0 0 0 0 0 0 0    3 3 3 3 2 2 0 0    3 3 3 3 2 2 0 0
         4 4 4 4 4 4 4 4    3 3 3 3 0 0 0 0    4 4 4 4 4 4 4 4
         4 4 4 4 4 4 4 4    3 3 3 0 0 0 0 0    4 4 4 4 4 4 4 4
         4 4 4 4 4 4 4 4    0 0 0 0 0 0 0 0    4 4 4 4 4 4 4 4

NOTES

       Frequently,  this  program  is  used to patch together adjacent map layers which have been
       digitized separately.  The program v.mkgrid can  be  used  to  make  adjacent  maps  align
       neatly.

       The  user  should  check the current geographic region settings before running r.patch, to
       ensure that the region boundaries encompass all of the data desired to be included in  the
       composite  map  and  to ensure that the region resolution is the resolution of the desired
       data. To set the geographic region settings to one or several raster  maps,  the  g.region
       program can be used:
       g.region raster=map1[,map2[,...]]

       Use  of  r.patch is generally followed by use of the GRASS programs g.remove and g.rename;
       g.remove is used to remove the original (un-patched) raster map layers, while g.rename  is
       used  to then assign to the newly-created composite (patched) raster map layer the name of
       the original raster map layer.

       r.patch reads the existing category label files and color tables from the input  maps  and
       creates  these  files  for  the  patched,  composite  output  map.  This can be quite time
       consuming for certain maps, especially if there are many different category values  across
       the  patched  maps. The -s flag allows disabling the reading and creation of these support
       files,  meaning that the output map will have no category labels  and  no  explicit  color
       table.

       Number  of  raster maps to be processed is given by the limit of the operating system. For
       example, both the hard and soft limits are typically 1024. The soft limit can  be  changed
       with  e.g.  ulimit  -n  1500  (UNIX-based  operating systems) but not higher than the hard
       limit. If it is too low, you can as superuser add an entry in
       /etc/security/limits.conf
       # <domain>      <type>  <item>         <value>
       your_username  hard    nofile          1500
       This would raise the hard limit to 1500 file. Be warned that more  files  open  need  more
       RAM. See also the Wiki page Hints for large raster data processing.

       Operating  systems usually limit the length of the command line which limits the number of
       input raster maps user can pass to the module  using  the  option  input.  In  that  case,
       r.series can be used instead of r.patch.

EXAMPLES

   Example with three maps
       The  input  are  three  maps called roads, water and forest. Primarily, we want to use the
       values from roads, then from water and if no other values are available  we  want  to  use
       forest.   First  we  set  the  computation  region  assuming that the all three maps fully
       overlap and have the same resolution (so we can  safely  use  the  just  the  one  without
       further modifications of the region).  Then we perform the patching.
       g.region raster=roads
       r.patch input=roads,water,forest output=result

   Example using Bash syntax
       Create a list of maps matching a pattern, extend the region to include them all, and patch
       them together to create a mosaic. Overlapping maps will be used in the order listed.
       MAPS=`g.list type=raster sep=, pat="map_*"`
       g.region raster=$MAPS
       r.patch in=$MAPS out=mosaic

SEE ALSO

        g.region, g.remove, g.rename, r.mapcalc, r.support, r.series, v.mkgrid

       Hints for large raster data processing

AUTHOR

       Michael Shapiro, U.S. Army Construction Engineering Research Laboratory
       -z flag and performance improvement by Huidae Cho

       Last changed: $Date: 2017-07-30 06:15:07 +0200 (Sun, 30 Jul 2017) $

SOURCE CODE

       Available at: r.patch source code (history)

       Main index | Raster index | Topics index | Keywords index | Graphical index | Full index

       © 2003-2018 GRASS Development Team, GRASS GIS 7.4.0 Reference Manual