R: Evaluate Expression Involving Pixel Images on Linear Network

eval.linim {spatstat.linnet} | R 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 Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner r.turner@auckland.ac.nz

### See Also

`eval.im`, `linim`

### Examples

      M <- as.mask.psp(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)

[Package spatstat.linnet version 2.3-1 Index]