R: Coercion between sp objects and spatstat im objects

as.im {maptools} | R Documentation

## Coercion between sp objects and spatstat im objects

### Description

Functions to convert between spatstats raster format `im` and sps `SpatialGridDataFrame` as well as one-way conversion from rasters `rasterLayer` to `im`. S4-style `as()` coercion can be used between `im` and `SpatialGridDataFrame` objects.

### Usage

    as.im.SpatialGridDataFrame(from)
    as.SpatialGridDataFrame.im(from)
    as.im.RasterLayer(from)

### Arguments

`from` | object to coerce from

### Details

A `SpatialGridDataFrame` object may contain several columns of data such that several values are associated with each grid cell. In contrast an `im` object can only contain a single variable value for each cell. In `as.im.SpatialGridDataFrame()` the first data column is used. To convert another column to `im` format simply extract this column first as shown in the example below.

### Methods

coerce

  `signature(from = "SpatialGridDataFrame", to = "im")`

coerce

  `signature(from = "im", to = "SpatialGridDataFrame")`

### Warning

In spatstat all spatial objects are assumed to be planar. This means that spatstat is not designed to work directly with geographic (longitude and latitude) coordinates. If a sp object is declared to have geographic (unprojected) coordinates maptools refuses to convert directly to spatstat format. Rather, these should be projected first using e.g. `spTransform`. If you know what you are doing, and really want to force coercion, you can overwrite the `proj4string` of the sp object with `NA`, `proj4string(x) <- CRS(NA)`, which will fool the system to think that the data is in local planar coordinates. This is probably not a good idea!

### Author(s)

Edzer Pebesma edzer.pebesma@uni-muenster.de, Roger Bivand

### See Also

Other converters between sp and spatstat: `as.ppp.SpatialPoints`, `as.psp.SpatialLines`, `as.owin.SpatialPolygons`, `as.SpatialPolygons.tess`.

### Examples

    run <- FALSE
    if (require(spatstat, quietly=TRUE)) run <- TRUE
    if (run) {
    ## Extract an example SpatialGridDataFrame and plot it
    data(meuse.grid) # A data.frame
    gridded(meuse.grid) = ~x+y # Now a SpatialPixelsDataFrame
    fullgrid(meuse.grid) <- TRUE # Finally a SpatialGridDataFrame
    mg_dist <- meuse.grid["dist"] # A SpatialGridDataFrame with a single column
    image(mg_dist, axes=TRUE)
    }
    if (run) {
    ## Convert to im format and plot it
    mg_im <- as(mg_dist, "im")
    plot(mg_im)
    }
    if (run) {
    ## Convert back to SpatialGridDataFrame and plot it again
    mg2 <- as.SpatialGridDataFrame.im(mg_im)
    image(mg2, axes=TRUE)
    }
    if (run) {
    if (require(raster, quietly=TRUE)) {
    ## Convert SpatialGridDataFrame -> RasterLayer -> im and plot it
    r <- as(mg2, "RasterLayer")
    r_im <- as.im.RasterLayer(r)
    plot(r_im)
    }
    }

[Package maptools version 0.9-9 Index]