Creates an object of class
an observation window in the two-dimensional plane
owin(xrange=c(0,1), yrange=c(0,1), ..., poly=NULL, mask=NULL, unitname=NULL, xy=NULL)
x coordinate limits of enclosing box
y coordinate limits of enclosing box
Optional. Polygonal boundary of window.
Optional. Logical matrix giving binary image of window.
Optional. Name of unit of length. Either a single character string, or a vector of two character strings giving the singular and plural forms, respectively.
Optional. List with components
In the spatstat library, a point pattern dataset must include
information about the window of observation. This is represented by
an object of class
owin.object for an overview.
To create a window in its own right,
users would normally invoke
as.owin may be convenient.
A window may be rectangular, polygonal, or a mask (a binary image).
yrange are given, then
the window will be rectangular, with its x and y
coordinate dimensions given by these two arguments
(which must be vectors of length 2).
If no arguments are given at all, the default is the unit square
poly is given, then the window will be polygonal.
poly is a matrix or data frame with two columns, or
a structure with two component vectors
of equal length,
then these values are interpreted as the cartesian coordinates
of the vertices of a polygon circumscribing the window.
The vertices must be listed anticlockwise.
No vertex should be repeated (i.e. do not repeat the first
multiple polygons or holes:
poly is a list, each entry
of which is a matrix or data frame with two columns
or a structure with
two component vectors
y of equal length,
then the successive list members
are interpreted as separate polygons which together
make up the boundary of the window.
The vertices of each polygon must be listed anticlockwise
if the polygon is part of the external boundary,
if the polygon is the boundary of a hole in the window.
Again, do not repeat any vertex.
mask is given, then the window will be a binary image.
Specified by logical matrix:
Normally the argument
mask should be a logical matrix
TRUE if the point
(x[j],y[i]) belongs to the window, and
FALSE if it
does not (
NA entries will be treated as
Note carefully that rows of
mask correspond to the
y coordinate, and columns to the x coordinate.
y are vectors of x and y
coordinates equally spaced over
respectively. The pixel coordinate vectors
may be specified explicitly using the argument
should be a list containing components
Alternatively there is a sensible default.
Specified by list of pixel coordinates:
Alternatively the argument
mask can be a data frame
with 2 or 3 columns. If it has 2 columns, it is expected to
contain the spatial coordinates of all the
pixels which are inside the window.
If it has 3 columns,
it should contain the spatial coordinates (x,y)
of every pixel in the grid, and the logical value associated
with each pixel. The pixels may be listed in any order.
To create a window which is mathematically
defined by inequalities in the Cartesian coordinates,
as in the examples below.
will create square and circular windows, respectively.
An object of class
describing a window in the two-dimensional plane.
Polygon data may contain geometrical inconsistencies such as
self-intersections and overlaps. These inconsistencies must be
removed to prevent problems in other spatstat functions.
By default, polygon data will be repaired automatically
using polygon-clipping code.
The repair process may change the number of vertices in a polygon
and the number of polygon components.
To disable the repair process, set
w <- owin() w <- owin(c(0,1), c(0,1)) # the unit square w <- owin(c(10,20), c(10,30), unitname=c("foot","feet")) # a rectangle of dimensions 10 x 20 feet # with lower left corner at (10,10) # polygon (diamond shape) w <- owin(poly=list(x=c(0.5,1,0.5,0),y=c(0,1,2,1))) w <- owin(c(0,1), c(0,2), poly=list(x=c(0.5,1,0.5,0),y=c(0,1,2,1))) # polygon with hole ho <- 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)))) w <- owin(c(-1,1), c(-1,1), mask=matrix(TRUE, 100,100)) # 100 x 100 image, all TRUE X <- raster.x(w) Y <- raster.y(w) wm <- owin(w$xrange, w$yrange, mask=(X^2 + Y^2 <= 1)) # discrete approximation to the unit disc # vertices of a polygon (listed anticlockwise) bdry <- list(x=c(0.1,0.3,0.7,0.4,0.2), y=c(0.1,0.1,0.5,0.7,0.3)) # vertices could alternatively be read from a file, or use locator() w <- owin(poly=bdry) ## Not run: # how to read in a binary mask from a file im <- as.logical(matrix(scan("myfile"), nrow=128, ncol=128)) # read in an arbitrary 128 x 128 digital image from text file rim <- im[, 128:1] # Assuming it was given in row-major order in the file # i.e. scanning left-to-right in rows from top-to-bottom, # the use of matrix() has effectively transposed rows & columns, # so to convert it to our format just reverse the column order. w <- owin(mask=rim) plot(w) # display it to check! ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.