eval.linim: Evaluate Expression Involving Pixel Images on Linear Network

View source: R/linim.R

eval.linimR Documentation

Evaluate Expression Involving Pixel Images on Linear Network

Description

Evaluates any expression involving one or more pixel images on a linear network, and returns a pixel image on the same linear network.

Usage

  eval.linim(expr, envir, harmonize=TRUE, warn=TRUE)

Arguments

expr

An expression in the R language, involving the names of objects of class "linim".

envir

Optional. The environment in which to evaluate the expression.

harmonize

Logical. Whether to resolve inconsistencies between the pixel grids.

warn

Logical. Whether to issue a warning if the pixel grids were inconsistent.

Details

This function a wrapper to make it easier to perform pixel-by-pixel calculations. It is one of several functions whose names begin with eval which work on objects of different types. This particular function is designed to work with objects of class "linim" which represent pixel images on a linear network.

Suppose X is a pixel image on a linear network (object of class "linim". Then eval.linim(X+3) will add 3 to the value of every pixel in X, and return the resulting pixel image on the same linear network.

Suppose X and Y are two pixel images on the same linear network, with compatible pixel dimensions. Then eval.linim(X + Y) will add the corresponding pixel values in X and Y, and return the resulting pixel image on the same linear network.

In general, expr can be any expression in the R language involving (a) the names of pixel images, (b) scalar constants, and (c) functions which are vectorised. See the Examples.

First eval.linim determines which of the variable names in the expression expr refer to pixel images. Each such name is replaced by a matrix containing the pixel values. The expression is then evaluated. The result should be a matrix; it is taken as the matrix of pixel values.

The expression expr must be vectorised. There must be at least one linear pixel image in the expression.

All images must have compatible dimensions. If harmonize=FALSE, images that are incompatible will cause an error. If harmonize=TRUE, images that have incompatible dimensions will be resampled so that they are compatible; if warn=TRUE, a warning will be issued.

Value

An image object of class "linim".

Author(s)

\adrian

and \rolf

See Also

eval.im, linim

Examples

  M <- psp2mask(as.psp(simplenet))
  Z <- as.im(function(x,y) {x-y}, W=M)
  X <- linim(simplenet, Z)
  X

  Y <- linfun(function(x,y,seg,tp){y^2+x}, simplenet)
  Y <- as.linim(Y)
  
  eval.linim(X + 3)
  eval.linim(X - Y)
  eval.linim(abs(X - Y))
  Z <- eval.linim(sin(X * pi) + Y)

spatstat.linnet documentation built on Sept. 20, 2024, 5:06 p.m.