image.Rd
Create image for gridded data in SpatialGridDataFrame or SpatialPixelsDataFrame objects.
# S3 method for class 'SpatialGridDataFrame'
image(x, attr = 1, xcol = 1, ycol = 2,
col = heat.colors(12), red=NULL, green=NULL, blue=NULL,
axes = FALSE, xlim = NULL,
ylim = NULL, add = FALSE, ..., asp = NA, setParUsrBB=FALSE,
interpolate = FALSE, angle = 0,
useRasterImage = !(.Platform$GUI[1] == "Rgui" &&
getIdentification() == "R Console") && missing(breaks), breaks,
zlim = range(as.numeric(x[[attr]])[is.finite(x[[attr]])]))
# S3 method for class 'SpatialPixelsDataFrame'
image(x, ...)
# S3 method for class 'SpatialPixels'
image(x, ...)
# S3 method for class 'SpatialGridDataFrame'
contour(x, attr = 1, xcol = 1, ycol = 2,
col = 1, add = FALSE, xlim = NULL, ylim = NULL, axes = FALSE,
..., setParUsrBB = FALSE)
# S3 method for class 'SpatialPixelsDataFrame'
contour(x, ...)
as.image.SpatialGridDataFrame(x, xcol = 1, ycol = 2, attr = 1)
image2Grid(im, p4 = as.character(NA), digits=10)
object of class SpatialGridDataFrame
column of attribute variable; this may be
the column name in the data.frame of data
(as.data.frame(data)), or
a column number
column number of x-coordinate, in the coordinate matrix
column number of y-coordinate, in the coordinate matrix
a vector of colors
columns names or numbers given instead of the attr
argument when the data represent an image encoded in three colour bands on the 0-255 integer scale; all three columns must be given in this case, and the attribute values will be constructed using function rgb
logical; should coordinate axes be drawn?
x-axis limits
y-axis limits
data limits for plotting the (raster, attribute) values
logical; if FALSE, the image is added to the plot layout setup
by plot(as(x, "Spatial"),axes=axes,xlim=xlim,ylim=ylim,asp=asp)
which sets up axes and plotting region; if TRUE, the image is added
to the existing plot.
arguments passed to image, see examples
aspect ratio to be used for plot
default FALSE, see Spatial-class
for further details
if TRUE, use rasterImage
to render the image if available; for legacy rendering set FALSE; should be FALSE on Windows SDI installations
class breaks for coloured values
default FALSE, a logical vector (or scalar) indicating whether to apply linear interpolation to the image when drawing, see rasterImage
default 0, angle of rotation (in degrees, anti-clockwise from positive x-axis, about the bottom-left corner), see rasterImage
list with components named x, y, and z, as used for image
CRS object, proj4 string
default 10, number of significant digits to use for checking equal row/column spacing
as.image.SpatialGridDataFrame
returns the list with
elements x
and y
, containing the coordinates of the cell
centres of a matrix z
, containing the attribute values in matrix
form as needed by image.
Providing xcol
and ycol
attributes seems obsolete,
and it is for 2D data, but it may provide opportunities for plotting
certain slices in 3D data. I haven't given this much thought yet.
filled.contour seems to misinterpret the coordinate values, if we take the image.default manual page as the reference.
image.default, SpatialGridDataFrame-class,
levelplot in package lattice
. Function
image.plot
in package fields
can be used to make a legend for an
image, see an example in https://stat.ethz.ch/pipermail/r-sig-geo/2007-June/002143.html
data(meuse.grid)
coordinates(meuse.grid) = c("x", "y") # promote to SpatialPointsDataFrame
gridded(meuse.grid) = TRUE # promote to SpatialGridDataFrame
data(meuse)
coordinates(meuse) = c("x", "y")
image(meuse.grid["dist"], main = "Distance to river Meuse")
points(coordinates(meuse), pch = "+")
image(meuse.grid["dist"], main = "Distance to river Meuse",
useRasterImage=TRUE)
points(coordinates(meuse), pch = "+")
# color scale:
layout(cbind(1,2), c(4,1),1)
image(meuse.grid["dist"])
imageScale(meuse.grid$dist, axis.pos=4, add.axis=FALSE)
axis(4,at=c(0,.2,.4,.8), las=2)
data(Rlogo)
d = dim(Rlogo)
cellsize = abs(c(gt[2],gt[6]))
cells.dim = c(d[1], d[2]) # c(d[2],d[1])
cellcentre.offset = c(x = gt[1] + 0.5 * cellsize[1], y = gt[4] - (d[2] - 0.5) * abs(cellsize[2]))
grid = GridTopology(cellcentre.offset, cellsize, cells.dim)
df = as.vector(Rlogo[,,1])
for (band in 2:d[3]) df = cbind(df, as.vector(Rlogo[,,band]))
df = as.data.frame(df)
names(df) = paste("band", 1:d[3], sep="")
Rlogo <- SpatialGridDataFrame(grid = grid, data = df)
summary(Rlogo)
#> Object of class SpatialGridDataFrame
#> Coordinates:
#> min max
#> x 0 101
#> y -77 0
#> Is projected: NA
#> proj4string : [NA]
#> Grid attributes:
#> cellcentre.offset cellsize cells.dim
#> x 0.5 1 101
#> y -76.5 1 77
#> Data attributes:
#> band1 band2 band3
#> Min. : 0.0 Min. : 0.0 Min. : 0.0
#> 1st Qu.:131.0 1st Qu.:138.0 1st Qu.:151.0
#> Median :196.0 Median :199.0 Median :215.0
#> Mean :182.3 Mean :185.4 Mean :192.8
#> 3rd Qu.:254.0 3rd Qu.:255.0 3rd Qu.:254.0
#> Max. :255.0 Max. :255.0 Max. :255.0
image(Rlogo, red="band1", green="band2", blue="band3")
image(Rlogo, red="band1", green="band2", blue="band3",
useRasterImage=FALSE)
is.na(Rlogo$band1) <- Rlogo$band1 == 255
is.na(Rlogo$band2) <- Rlogo$band2 == 255
is.na(Rlogo$band3) <- Rlogo$band3 == 255
Rlogo$i7 <- 7
image(Rlogo, "i7")
image(Rlogo, red="band1", green="band2", blue="band3", add=TRUE)