as.owin | R Documentation |
Functions to convert between spatstats observation window (owin
)
format and various sp formats. S4-style as()
coercion can be used
as well.
as.owin.SpatialPolygons(W, ..., fatal)
as.owin.SpatialGridDataFrame(W, ..., fatal)
as.owin.SpatialPixelsDataFrame(W, ..., fatal)
as.SpatialPolygons.owin(x)
W |
|
x |
|
... |
ignored |
fatal |
formal coercion argument; ignored |
An observation window in spatstat defines a planar region. It is
typically used to represent a sampling region. It comes in three different
formats: a simple rectangle, a polygon (vector format) or a binary mask (TRUE/FALSE grid; raster format). These can all be coerced to polygonal form internally in
spatstat and then converted to SpatialPolygons
, which is what
as.SpatialPolygons.owin()
does. For objects of class
SpatialPolygons
(and SpatialPolygonsDataFrame
) the sp
polygons are simply extracted and cast into spatstats polygon format
inside the owin
object. For SpatialPixelsDataFrame
and
SpatialGridDataFrame
the grid is extracted and cast into spatstats
mask format inside the owin
object. In all cases any data apart from the
spatial region itself are discarded.
signature(from = "SpatialPolygons", to = "owin")
signature(from = "SpatialPixelsDataFrame", to = "owin")
signature(from = "SpatialGridDataFrame", to = "owin")
signature(from = "owin", to = "SpatialPolygons")
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 an empty string, proj4string(x) <- ""
, which
will fool the system to think that the data is in local planar coordinates.
This is probably not a good idea!
When coercing a SpatialPolygons object to an owin object, full
topology checking is enabled by default. To avoid checking, set
spatstat.options(checkpolygons=FALSE)
(from spatstat (1.14-6)).
To perform the checking later, owinpolycheck(W, verbose=TRUE)
.
Edzer Pebesma edzer.pebesma@uni-muenster.de, Roger Bivand
run <- FALSE
if (require("spatstat.geom", quietly=TRUE)) run <- TRUE
if (run) {
## SpatialPixelsDataFrame -> owin
data(meuse.grid) # A data.frame
gridded(meuse.grid) = ~x+y # Now a SpatialPixelsDataFrame
mg_owin <- as(meuse.grid, "owin")
mg_owin
}
if (run) {
## SpatialGridDataFrame -> owin
fullgrid(meuse.grid) <- TRUE # Now a SpatialGridDataFrame
mg_owin2 <- as(meuse.grid, "owin")
}
if (run) {
## SpatialPolygons region with a hole
ho_sp <- SpatialPolygons(list(Polygons(list(Polygon(cbind(c(0,1,1,0,0),
c(0,0,1,1,0))), Polygon(cbind(c(0.6,0.4,0.4,0.6,0.6),
c(0.2,0.2,0.4,0.4,0.2)), hole=TRUE)), ID="ho")))
plot(ho_sp, col="red", pbg="pink")
}
if (run) {
## SpatialPolygons -> owin
ho <- as(ho_sp, "owin")
plot(ho)
}
if (run) {
## Define owin directly and check they are identical
ho_orig <- owin(poly=list(list(x=c(0,1,1,0), y=c(0,0,1,1)),
list(x=c(0.6,0.4,0.4,0.6), y=c(0.2,0.2,0.4,0.4))))
identical(ho, ho_orig)
}
if (run) {
## owin -> SpatialPolygons
ho_sp1 <- as(ho, "SpatialPolygons")
all.equal(ho_sp, ho_sp1, check.attributes=FALSE)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.