sp (version 0.9-96)

image.SpatialGridDataFrame: image gridded spatial data, or convert to format for image

Description

Convert gridded data in SpatialGridDataFrame to image format; call image on data in SpatialGridDataFrame format. The aspect ratio is set as either 1 for projected data, or stretched by distance from Equator for geographical coordinates.

Usage

## 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 = (!.isSDI() && missing(breaks)), breaks,
		zlim = range(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)

Arguments

x
object of class SpatialGridDataFrame
attr
column of attribute variable; this may be the column name in the data.frame of data (as.data.frame(data)), or a column number
xcol
column number of x-coordinate, in the coordinate matrix
ycol
column number of y-coordinate, in the coordinate matrix
col
a vector of colors
red,green,blue
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
axes
logical; should coordinate axes be drawn?
xlim
x-axis limits
ylim
y-axis limits
zlim
data limits for plotting the (raster, attribute) values
add
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
asp
aspect ratio to be used for plot
setParUsrBB
default FALSE, see Spatial-class for further details
useRasterImage
default !.isSDI() as a workaround for a problem with repeated use in Windows SDI installations; if TRUE, use rasterImage to render the image if available; for legacy rendering set F
breaks
class breaks for coloured values
interpolate
default FALSE, a logical vector (or scalar) indicating whether to apply linear interpolation to the image when drawing, see rasterImage
angle
default 0, angle of rotation (in degrees, anti-clockwise from positive x-axis, about the bottom-left corner), see rasterImage
im
list with components named x, y, and z, as used for image
p4
CRS object, proj4 string
digits
default 10, number of significant digits to use for checking equal row/column spacing

Value

  • 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.

See Also

image.default, SpatialGridDataFrame-class, levelplot in package lattice. Function image.plot 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

Examples

Run this code
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")
system.time(image(meuse.grid["dist"], main = "Distance to river Meuse"))
points(coordinates(meuse), pch = "+")
system.time(image(meuse.grid["dist"], main = "Distance to river Meuse",
 useRasterImage=TRUE))
points(coordinates(meuse), pch = "+")
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)
system.time(image(Rlogo, red="band1", green="band2", blue="band3"))
system.time(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)

Run the code above in your browser using DataCamp Workspace