123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- <!-- meta page description: Raster data processing in GRASS GIS -->
- <!-- meta page index: raster -->
- <h3>Raster maps in general</h3>
- A "raster map" is a data layer consisting of a gridded array of cells.
- It has a certain number of rows and columns, with a data point (or null
- value indicator) in each cell. These may exist as a 2D grid or as a 3D
- cube made up of many smaller cubes, i.e. a stack of 2D grids.
- <p>
- The geographic boundaries of the raster map are described by the north,
- south, east, and west fields. These values describe the lines which bound
- the map at its edges. These lines do NOT pass through the center of the
- grid cells at the edge of the map, but along the edge of the map itself.
- i.e. the geographic extent of the map is described by the outer bounds of
- all cells within the map.
- <p>
- As a general rule in GRASS:
- <ol>
- <li> Raster output maps have their bounds and resolution equal to those
- of the current computational region.
- <li> Raster input maps are automatically cropped/padded and rescaled
- (using nearest-neighbour resampling) to match the current region.
- <li> Raster input maps are automatically masked if a raster map named
- MASK exists. The MASK is only applied when <i>reading</i> maps
- from the disk.
- </ol>
- There are a few exceptions to this:
- <tt>r.in.*</tt> programs read the data cell-for-cell, with no resampling. When
- reading non-georeferenced data, the imported map will usually have its
- lower-left corner at (0,0) in the location's coordinate system; the user
- needs to use <a href="r.region.html">r.region</a> to "place" the imported map.
- <p>
- Some programs which need to perform specific types of resampling (e.g.
- <a href="r.resamp.rst.html">r.resamp.rst</a>) read the input maps at
- their original resolution then do the resampling themselves.
- <p>
- <a href="r.proj.html">r.proj</a> has to deal with two regions (source
- and destination) simultaneously; both will have an impact upon the
- final result.
- <h3>Raster import and export</h3>
- The module <a href="r.in.gdal.html">r.in.gdal</a> offers a common
- interface for many different raster formats. Additionally, it also
- offers options such as on-the-fly location creation or extension of
- the default region to match the extent of the imported raster map.
- For special cases, other import modules are available. The full map
- is always imported.
- <p>
- For importing scanned maps, the user will need to create a
- x,y-location, scan the map in the desired resolution and save it into
- an appropriate raster format (e.g. tiff, jpeg, png, pbm) and then use
- <a href="r.in.gdal.html">r.in.gdal</a> to import it. Based on
- reference points the scanned map can be recified to obtain geocoded
- data.
- <p>
- Raster maps are exported with <a href="r.out.gdal.html">r.out.gdal</a>
- into common formats. Also <a href="r.out.bin.html">r.out.bin</a>,
- <a href="r.out.vtk.html">r.out.vtk</a>, <a href="r.out.ascii.html">r.out.ascii</a>
- and other export modules are available. They export the data according
- to the current region settings. If those differ from the original map,
- the map is resampled on the fly (nearest neighbor algorithm). In other
- words, the output will have as many rows and columns as the current region.
- To export maps with various grid spacings (e.g, 500x500 or 200x500), you
- can just change the region resolution with <a href="g.region.html">g.region</a>
- and then export the map. The resampling is done with nearest neighbor
- algorithm in this case. If you want some other form of resampling,
- first change the region, then explicitly resample the map with e.g.
- <a href="r.resamp.interp.html">r.resamp.interp</a> or
- <a href="r.resamp.stats.html">r.resamp.stats</a>, then export the
- resampled map.
- <h3>Metadata</h3>
- The <a href="r.info.html">r.info</a> module displays general information
- about a map such as region extent, data range, data type, creation history,
- and other metadata.
- Metadata such as map title, units, vertical datum etc. can be updated
- with <a href="r.support.html">r.support</a>. Timestamps are managed
- with <a href="r.timestamp.html">r.timestamp</a>. Region extent and
- resolution are mangaged with <a href="r.region.html">r.region</a>.
- <h3>Raster map operations</h3>
- <h4>Resampling methods and interpolation methods</h4>
- GRASS raster map processing is always performed in the current region
- settings (see <a href="g.region.html">g.region</a>), i.e. the current
- region extent and current raster resolution is used. If the resolution
- differs from that of the input raster map(s), on-the-fly resampling is
- performed (nearest neighbor resampling). If this is not desired, the
- input map(s) has/have to be resampled beforehand with one of the dedicated
- modules.
- <p>
- The built-in nearest-neighbour resampling of raster data calculates
- the centre of each region cell, and takes the value of the raster cell
- in which that point falls.
- <p>
- If the point falls exactly upon a grid line, the exact result will be
- determined by the direction of any rounding error. One consequence of
- this is that downsampling by a factor which is an even integer will
- always sample exactly on the boundary between cells, meaning that the
- result is ill-defined.
- <p>
- The following modules are available for reinterpolation of "filled"
- raster maps (continuous data) to a different resolution:
- <ul>
- <li><a href="r.resample.html">r.resample</a> uses the built-in resampling,
- so it should produce identical results as the on-the-fly resampling done
- via the raster import modules.</li>
- <li><a href="r.resamp.interp.html">r.resamp.interp</a> Resampling with
- nearest neighbor, bilinear, and bicubic method: <b>method=nearest</b> uses the
- same algorithm as <a href="r.resample.html">r.resample</a>, but not the same
- code, so it may not produce identical results in cases which are decided
- by the rounding of floating-point numbers.
- <br>
- For <a href="r.resamp.interp.html">r.resamp.interp</a> <b>method=bilinear</b>
- and <b>method=bicubic</b>, the raster values are treated as samples at each
- raster cell's centre, defining a piecewise-continuous surface. The resulting
- raster values are obtained by sampling the surface at each region cell's centre.
- As the algorithm only interpolates, and doesn't extrapolate, a margin of 0.5
- (for bilinear) or 1.5 (for bicubic) cells is lost from the extent of the original
- raster. Any samples taken within this margin will be null.</li>
- <li><a href="r.resamp.rst.html">r.resamp.rst</a> Regularized Spline with Tension
- (RST) interpolation 2D: Behaves similarly, i.e. it computes a surface assuming
- that the values are samples at each raster cell's centre, and samples the surface
- at each region cell's centre.</li>
- <li><a href="r.resamp.bspline.html">r.resamp.bspline</a> Bicubic or bilinear
- spline interpolation with Tykhonov regularization.</li>
- <li>For <a href="r.resamp.stats.html">r.resamp.stats</a> without <b>-w</b>, the value of
- each region cell is the chosen aggregate of the values from all of the raster
- cells whose centres fall within the bounds of the region cell.
- <br>
- With <b>-w</b>, the samples are weighted according to the proportion of the
- raster cell which falls within the bounds of the region cell, so the
- result is normally unaffected by rounding error (a miniscule difference
- in the position of the boundary results in the addition or subtraction of
- a sample weighted by a miniscule factor; also, The min and max aggregates
- can't use weights, so <b>-w</b> has no effect for those).</li>
- <li> <a href="r.fillnulls.html">r.fillnulls</a> for Regularized Spline with Tension (RST)
- interpolation 2D for hole filling (e.g., SRTM DEM)</li>
- </ul>
- <p>
- Furthermore, there are modules available for reinterpolation of "sparse"
- (scattered points or lines) maps:
- <ul>
- <li> Inverse distance weighted average (IDW) interpolation
- (<a href="r.surf.idw.html">r.surf.idw</a> and <a href="r.surf.idw2.html">r.surf.idw2</a>)</li>
- <li> Interpolating from contour lines (<a href="r.contour.html">r.contour</a>)</li>
- </ul>
- For Lidar and similar data, <a href="r.in.lidar.html">r.in.lidar</a> and <a href="r.in.xyz.html">r.in.xyz</a>
- support loading and binning of ungridded x,y,z ASCII data into a new raster map.
- The user may choose from a variety of statistical methods in creating the new raster map.
- <p>
- Otherwise, for interpolation of scattered data, use the <em>v.surf.*</em> set of
- modules.
- <h4>Raster MASKs</h4>
- If a raster map named "MASK" exists, most GRASS raster modules will operate
- only on data falling inside the masked area, and treat any data falling
- outside of the mask as if its value were NULL. The mask is only applied
- when <em>reading</em> an existing GRASS raster map, for example when used
- in a module as an input map.
- <p>
- The mask is read as an integer map. If MASK is actually a
- floating-point map, the values will be converted to integers using the
- map's quantisation rules (this defaults to round-to-nearest, but can
- be changed with r.quant).
- <p>
- (see <a href="r.mask.html">r.mask</a>)
- <h3>Raster map statistics</h3>
- A couple of commands are available to calculate local statistics
- (<a href="r.neighbors.html">r.neighbors</a>), and global statistics
- (<a href="r.statistics.html">r.statistics</a>, <a href="r.surf.area.html">r.surf.area</a>).
- Profiles and transects can be generated
- (<a href="d.profile.html">d.profile</a>, <a href="r.profile.html">r.profile</a>,
- <a href="r.transect.html">r.transect</a>) as well as histograms
- (<a href="d.histogram.html">d.histogram</a>) and polar diagrams
- (<a href="d.polar.html">d.polar</a>).
- Univariate statistics (<a href="r.univar.html">r.univar</a>) and
- reports are also available (<a href="r.report.html">r.report</a>,<a
- href="r.stats.html">r.stats</a>, <a href="r.volume.html">r.volume</a>).
- <h3>Raster map algebra and aggregation</h3>
- The <a href="r.mapcalc.html">r.mapcalc</a> command provides raster map
- algebra methods.
- The <a href="r.resamp.stats.html">r.resamp.stats</a> command resamples raster
- map layers using various aggregation methods, the <a href="r.statistics.html">r.statistics</a>
- command aggregates one map based on a second map.
- <a href="r.resamp.interp.html">r.resamp.interp</a> resamples raster map layers using interpolation.
- <h3>Hydrologic modeling toolbox</h3>
- Watershed modeling related modules are
- <a href="r.basins.fill.html">r.basins.fill</a>,
- <a href="r.water.outlet.html">r.water.outlet</a>,
- <a href="r.watershed.html">r.watershed</a>, and
- <a href="r.terraflow.html">r.terraflow</a>.
- Water flow related modules are
- <a href="r.carve.html">r.carve</a>,
- <a href="r.drain.html">r.drain</a>,
- <a href="r.fill.dir.html">r.fill.dir</a>,
- <a href="r.fillnulls.html">r.fillnulls</a>,
- <a href="r.flow.html">r.flow</a>, and
- <a href="r.topidx.html">r.topidx</a>.
- Flooding can be simulated with <a href="r.lake.html">r.lake</a>.
- Hydrologic simulation model are available as
- <a href="r.sim.sediment.html">r.sim.sediment</a>,
- <a href="r.sim.water.html">r.sim.water</a>, and
- <a href="r.topmodel.html">r.topmodel</a>.
- <h3>Raster format</h3>
- Raster data can be stored in GRASS as 2D or 3D grids. 2D rasters
- support 3 data types: 32bit signed integer, single- and double-precision
- floating-point. 3D rasters support only single- and double-precision
- floating-point. In most GRASS resources, 2D raster maps are usually
- called "raster", their integer data type "CELL", single-precision
- floating-point data type "FCELL" and double-precision floating-point
- "DCELL". The 3D raster map type is usually called "3D raster" but other
- names like "RASTER3D", "voxel", "volume", "GRID3D" or "3d cell" are common.
- 3D raster's single-precision data type is most often called "float", and the
- double-precision one "double".
- <p>
- GRASS raster format is architecture independent and portable between
- 32bit and 64bit machines.
- <p>
- GRASS distinguishes NULL and zero. When working with NULL data, it is
- important to know that operations on NULL cells lead to NULL cells.
- <h3>See also</h3>
- <ul>
- <li><a href="raster3dintro.html">Introduction into 3D raster data (voxel) processing</a></li>
- <li><a href="vectorintro.html">Introduction into vector data processing</a></li>
- <li><a href="imageryintro.html">Introduction into image processing</a></li>
- <li><a href="databaseintro.html">Database management</a></li>
- <li><a href="projectionintro.html">Projections and spatial transformations</a></li>
- </ul>
|