当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R as.raster 创建光栅对象


R语言 as.raster 位于 grDevices 包(package)。

说明

创建光栅对象(表示位图图像)并将其他对象强制为光栅对象的函数。

用法

is.raster(x)
as.raster(x, ...)

## S3 method for class 'matrix'
as.raster(x, max = 1, ...)
## S3 method for class 'array'
as.raster(x, max = 1, ...)

## S3 method for class 'logical'
as.raster(x, max = 1, ...)
## S3 method for class 'numeric'
as.raster(x, max = 1, ...)
## S3 method for class 'character'
as.raster(x, max = 1, ...)
## S3 method for class 'raw'
as.raster(x, max = 255L, ...)

参数

x

任何R对象。

max

给出颜色值范围最大值的数字。

...

传入或传出其他方法的进一步参数。

细节

"raster" 类的对象是表示位图图像的 rgb 给出的颜色值矩阵。

预计用户不需要直接调用这些函数;在图形包中渲染位图图像的函数将利用 as.raster() 函数从其输入生成光栅对象。

as.raster()函数是(S3)通用的,因此可以编写方法来转换其他函数R对象到光栅对象。

数值矩阵的默认实现解释 black-to-white 尺度上的标量值。

栅格对象可以像矩阵一样进行子集化,并且可以分配给栅格对象的子集。

有一种方法可以将光栅对象转换为matrix(颜色字符串)。

可以比较栅格对象的相等性或不相等性(相互比较或与颜色字符串比较)。

有一个 is.na 方法,它返回与栅格对象维度相同的逻辑矩阵。请注意,NA 值被某些(但不是全部)图形设备解释为完全透明的颜色。

对于 as.raster() ,一个光栅对象。

对于 is.raster() ,指示 x 是否为栅格对象的逻辑。

注意

光栅图像在内部表示为row-first,这在尝试操作光栅对象时可能会导致混乱。推荐的方法是将栅格强制转换为矩阵,执行操作,然后转换回栅格。

例子

# A red gradient
as.raster(matrix(hcl(0, 80, seq(50, 80, 10)),
                 nrow = 4, ncol = 5))

# Vectors are 1-column matrices ...
#   character vectors are color names ...
as.raster(hcl(0, 80, seq(50, 80, 10)))
#   numeric vectors are greyscale ...
as.raster(1:5, max = 5)
#   logical vectors are black and white ...
as.raster(1:10 %% 2 == 0)

# ... unless nrow/ncol are supplied ...
as.raster(1:10 %% 2 == 0, nrow = 1)

# Matrix can also be logical or numeric (or raw) ...
as.raster(matrix(c(TRUE, FALSE), nrow = 3, ncol = 2))
as.raster(matrix(1:3/4, nrow = 3, ncol = 4))

# An array can be 3-plane numeric (R, G, B planes) ...
as.raster(array(c(0:1, rep(0.5, 4)), c(2, 1, 3)))

# ... or 4-plane numeric (R, G, B, A planes)
as.raster(array(c(0:1, rep(0.5, 6)), c(2, 1, 4)))

# subsetting
r <- as.raster(matrix(colors()[1:100], ncol = 10))
r[, 2]
r[2:4, 2:5]

# assigning to subset
r[2:4, 2:5] <- "white"

# comparison
r == "white"


相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Create a Raster Object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。