spatstat.geom (version 2.1-0)

psp.object: Class of Line Segment Patterns


A class "psp" to represent a spatial pattern of line segments in the plane. Includes information about the window in which the pattern was observed. Optionally includes marks.



An object of this class represents a two-dimensional pattern of line segments. It specifies

  • the locations of the line segments (both endpoints)

  • the window in which the pattern was observed

  • optionally, a ``mark'' attached to each line segment (extra information such as a type label).

If X is an object of type psp, it contains the following elements:

ends data frame with entries x0, y0, x1, y1
giving coordinates of segment endpoints
window window of observation
(an object of class owin)
n number of line segments
marks optional vector or data frame of marks
markformat character string specifying the format of the

Users are strongly advised not to manipulate these entries directly.

Objects of class "psp" may be created by the function psp and converted from other types of data by the function as.psp. Note that you must always specify the window of observation; there is intentionally no default action of ``guessing'' the window dimensions from the line segments alone.

Subsets of a line segment pattern may be obtained by the functions [.psp and clip.psp.

Line segment pattern objects can be plotted just by typing plot(X) which invokes the plot method for line segment pattern objects, plot.psp. See plot.psp for further information.

There are also methods for summary and print for line segment patterns. Use summary(X) to see a useful description of the data.

Utilities for line segment patterns include midpoints.psp (to compute the midpoints of each segment), lengths_psp, (to compute the length of each segment), angles.psp, (to compute the angle of orientation of each segment), and distmap.psp to compute the distance map of a line segment pattern.

See Also

psp, as.psp, [.psp


# creating 
    a <- psp(runif(20),runif(20),runif(20),runif(20), window=owin())
# converting from other formats
    a <- as.psp(matrix(runif(80), ncol=4), window=owin())
    a <- as.psp(data.frame(x0=runif(20), y0=runif(20),
                            x1=runif(20), y1=runif(20)), window=owin())
# clipping
    w <- owin(c(0.1,0.7), c(0.2, 0.8))
    b <- clip.psp(a, w)
    b <- a[w]
# the last two lines are equivalent.
# }