arc.raster-class | R Documentation |
A raster dataset is any valid raster format organized into one or more bands. Each band consists of an array of pixels (cells), and each pixel has a value. A raster dataset has at least one band. Raster data is a discrete data representation in which space is divided into uniform cells, or pixels.
sr
Get or set spacial reference
extent
Get or set extent. Use it to read a portion of the raster.
nrow
Get or set number of rows.
ncol
Get or set number of columns.
cellsize
Get pixel size.
pixel_type
Get or set pixel type. For details see ArcGIS help on pixel types.
pixel_depth
Get pixel depth. Pixel depth/Bit depth (1, 2, 4, 8, 16, 32, 64). For details see ArcGIS help on pixel types.
nodata
Get or set nodata value
resample_type
Get or set resampling type. For details see ArcGIS help on rasampling.
colormap
Get or set color map table. Return is a vector of 256 colors in the RGB format.
bands
Get list of raster bands
band
Get a single raster band
names
return bands names
dim
retrieves dimensions
$show()
show object
$pixel_block(ul_x, ul_y, nrow, ncol, bands)
Read pixel values.
ul_x, ul_y
- optional, upper left corner in pixels
nrow, ncol
- optional, size in pixels
bands
- optional, select band(s).
The values returned are always a matrix
, with the rows representing cells,
and the columns representing band(s), c(nrow*ncol, length(bands))
(see Example #1)
$write_pixel_block(values, ul_x, ul_y, ncol, nrow)
Write pixel values. (see Example #2)
ul_x, ul_y
- optional, upper left corner in pixels
nrow, ncol
- optional, size in pixels
$has_colormap()
logical, return TRUE
if raster has colormap
$attribute_table()
Query raster attribute table.
Return data.frame
object.
Raster datasets that contain attribute tables typically have cell values that represent or define a class, group, category, or membership.
$save_as(path, opt)
TODO (see Example #3)
$commit(opt)
End writing. (see Example #2.3)
opt
- additional parameter(s):
(default: "build-stats"
), ("build-pyramid"
)
Write to an ArcGIS raster dataset
arc.raster
,
arc.write
,
arc.datasetraster-class
## Example #1. read 5x5 pixel block with 10,10 offset
r.file <- system.file("pictures", "cea.tif", package="rgdal")
r <- arc.raster(arc.open(r.file))
v <- r$pixel_block(ul_x = 10L, ul_y = 10L, nrow = 5L, ncol= 5L)
dim(v) == c(25, 1)
#[1] TRUE TRUE
stopifnot(length(v) == 25)
## Example #2. process big raster
## 2.1 create new arc.raster
r2 = arc.raster(NULL, path=tempfile("r2", fileext=".img"),
dim=dim(r), pixel_type=r$pixel_type, nodata=r$nodata,
extent=r$extent,sr=r$sr)
## 2.2 loop by rows, process pixels
for (i in 1L:r$nrow)
{
v <- r$pixel_block(ul_y = i - 1L, nrow = 1L)
r2$write_pixel_block(v * 1.5, ul_y = i - 1L, nrow = 1L, ncol = r$ncol)
}
## 2.3 stop all writings and crete raster file
r2$commit()
## Example #3. resample raster
r <- arc.raster(arc.open(r.file), nrow=200L, ncol=200L, resample_type="BilinearGaussBlur")
## save to a different format
r$save_as(tempfile("new_raster", fileext=".img"))
## Example #4. get and compare all pixel values
r.file <- system.file("pictures", "logo.jpg", package="rgdal")
rx <- raster::brick(r.file)
r <- arc.raster(arc.open(r.file))
stopifnot(all(raster::values(rx) == r$pixel_block()))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.