owin

0th

Percentile

Create a Window

Creates an object of class "owin" representing an observation window in the two-dimensional plane

Keywords
spatial, datagen
Usage
owin()
 owin(xrange, yrange)
 owin(poly=xy)
 owin(xrange, yrange, poly=xy)
 owin(xrange, yrange, mask=mat)
 owin(mask=mat)
Arguments
xrange
$x$ coordinate limits of enclosing box
yrange
$y$ coordinate limits of enclosing box
poly
polygonal boundary of window
mask
logical matrix giving binary image of window
Details

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". See owin.object for an overview.

To create a window in its own right, users would normally invoke owin, although sometimes as.owin may be convenient.

A window may be rectangular, polygonal, or a mask (a binary image).

  • rectangular windows:If onlyxrangeandyrangeare 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 with dimensionsxrange=c(0,1)andyrange=c(0,1).
  • polygonal windows:Ifpolyis given, then the window will be polygonal.
    • single polygon:Ifpolyis a structure with two component vectorsxandyof equal length, then these vectors are interpreted as the cartesian coordinates of the vertices of a polygon circumscribing the window. The vertices must be listedanticlockwise. No vertex should be repeated (i.e. do not repeat the first vertex).
    • multiple polygons or holes:Ifpolyis a list, each entrypoly[[i]]of which is a structure with two component vectorsxandyof equal length, then the successive list memberspoly[[i]]are interpreted as separate polygons which together make up the boundary of the window. The vertices of each polygon must be listedanticlockwiseif the polygon is part of the external boundary, butclockwiseif the polygon is the boundary of a hole in the window. Again, do not repeat any vertex.
  • binary masks:Ifmaskis given, then the window will be a binary image. The argumentmaskshould be a logical matrix such thatmask[i,j]isTRUEif the point(x[j],y[i])belongs to the window, andFALSEif it does not. Note carefully that rows ofmaskcorrespond to the$y$coordinate, and columns to the$x$coordinate. Herexandyare vectors of$x$and$y$coordinates equally spaced overxrangeandyrangerespectively.
To create a window which is mathematically defined by inequalities in the Cartesian coordinates, use raster.x() and raster.y() as in the examples below.

Value

  • An object of class "owin" describing a window in the two-dimensional plane.

synopsis

owin(xrange=c(0,1), yrange=c(0,1), poly=NULL, mask=NULL)

See Also

owin.object, as.owin, complement.owin, ppp.object, ppp

Aliases
  • owin
Examples
w <- owin()
  w <- owin(c(0,1), c(0,1))
  # the unit square

  w <- owin(c(10,20), c(10,30))
  # a rectangle of dimensions 10 x 20 units
  # 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

  plot(c(0,1),c(0,1),type="n")
  bdry <- locator()
  # click the vertices of a polygon (anticlockwise)
  <testonly>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))</testonly>
  w <- owin(poly=bdry)
  plot(w)
 
 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!
Documentation reproduced from package spatstat, version 1.9-1, License: GPL version 2 or newer

Community examples

Looks like there are no examples yet.