\documentclass[10pt]{article}
\usepackage{graphicx}
\usepackage{Sweave}
\usepackage{bm}
\usepackage[bottom=0.5cm, right=1.5cm, left=1.5cm, top=1.5cm]{geometry}
% \VignetteIndexEntry{Summary of Recent Updates to the Spatstat Family}
% $Revision: 1.75 $ $Date: 2024/09/21 23:51:29 $
\newcommand{\pkg}[1]{\texttt{#1}}
\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\R}{{\sf R}}
\newcommand{\spst}{\pkg{spatstat}}
\newcommand{\Spst}{\pkg{Spatstat}}
\begin{document}
\bibliographystyle{plain}
<>=
library(spatstat)
x <- read.dcf(file = system.file("DESCRIPTION", package = "spatstat"),
fields = c("Version", "Date"))
sversion <- as.character(x[,"Version"])
sdate <- as.character(x[,"Date"])
options(useFancyQuotes=FALSE)
@
\title{Summary of recent updates to \spst}
\author{Adrian Baddeley, Rolf Turner and Ege Rubak}
\date{\today}
\maketitle
\thispagestyle{empty}
<>=
readSizeTable <- function(fname) {
if(is.null(fname) || !file.exists(fname)) return(NULL)
a <- read.table(fname, header=TRUE)
a$date <- as.Date(a$date)
return(a)
}
getSizeTable <- function(packagename="spatstat", tablename="packagesizes.txt") {
fname <- system.file("info", tablename, package=packagename)
out <- readSizeTable(fname)
if(is.null(out)) {
fname <- system.file("doc", tablename, package=packagename)
out <- readSizeTable(fname)
}
return(out)
}
RemoveDevel <- function(sizetable) {
## remove entries with fractional version numbers
if(is.null(sizetable)) return(NULL)
ver <- sizetable$version
isdevel <- sapply(ver, function(x) { length(unlist(package_version(x))) > 3 })
st <- if(all(isdevel)) NULL else sizetable[!isdevel, , drop=FALSE]
return(st)
}
counts <- c("nhelpfiles", "nobjects", "ndatasets", "Rlines", "srclines")
mergeSizeTables <- function(a, b, breakupdate, allow.devel=FALSE) {
#' a is the running total for spatstat; b is a sub-package.
#' breakupdate is the date when the code in b was removed from spatstat
#' so that the size of 'b' must be added to 'a' for all dates >= breakupdate
if(!allow.devel) b <- RemoveDevel(b)
if(is.null(b)) return(a)
adates <- a$date
bdates <- b$date
alldates <- sort(unique(c(adates,bdates)))
if(missing(breakupdate)) breakupdate <- min(bdates)
#' functions to determine, for any given date,
#' the relevant (latest) row of the table
aok <- rev(!duplicated(rev(adates)))
arowfun <- approxfun(adates[aok], seq_along(adates)[aok],
method="constant", f=0, rule=2, yleft=0)
bok <- rev(!duplicated(rev(bdates)))
browfun <- approxfun(bdates[bok], seq_along(bdates)[bok],
method="constant", f=0, rule=2, yleft=0)
result <- NULL
for(k in seq_along(alldates)) {
thedate <- alldates[k]
i <- arowfun(thedate)
j <- browfun(thedate)
#' i > 0 because spatstat's founding date is earlier than any sub-package
nextrow <- a[i, ]
if(j > 0 && thedate >= breakupdate) {
#' add contribution from 'b'
nextrow[, counts] <- nextrow[, counts] + b[j, counts]
}
result <- rbind(result, nextrow)
}
return(result)
}
## Get histories of all sub-packages
## Package formerly known as 'spatstat'
z <- getSizeTable()
## installed sub-packages - access via the installed sub-packages
zutils <- getSizeTable("spatstat.utils")
zdata <- getSizeTable("spatstat.data")
zunivar <- getSizeTable("spatstat.univar")
zsparse <- getSizeTable("spatstat.sparse")
zgeom <- getSizeTable("spatstat.geom")
zrandom <- getSizeTable("spatstat.random")
zexplore <- getSizeTable("spatstat.explore")
zmodel <- getSizeTable("spatstat.model")
zlinnet <- getSizeTable("spatstat.linnet")
## other sub-packages - access via stored copies of package size files
## defunct package spatstat.core
zcore <- getSizeTable("spatstat", "spatstatcoresize.txt")
## extension packages
zlocal <- getSizeTable("spatstat", "spatstatlocalsize.txt")
zgui <- getSizeTable("spatstat", "spatstatguisize.txt")
zKnet <- getSizeTable("spatstat", "spatstatKnetsize.txt")
## Merge histories starting at the 'split dates'
z <- mergeSizeTables(z, zutils, "2017-03-22")
z <- mergeSizeTables(z, zdata, "2017-09-23")
z <- mergeSizeTables(z, zsparse, "2020-11-04")
BigSplitDay <- "2020-12-14"
z <- mergeSizeTables(z, zgeom, BigSplitDay)
z <- mergeSizeTables(z, zcore, BigSplitDay)
z <- mergeSizeTables(z, zlinnet, BigSplitDay)
z <- mergeSizeTables(z, zrandom, "2022-02-12")
CoreSplitDay <- "2020-05-25" # size of 'core' drops to 0 on this date
z <- mergeSizeTables(z, zexplore, CoreSplitDay)
z <- mergeSizeTables(z, zmodel, CoreSplitDay)
z <- mergeSizeTables(z, zunivar, "2024-04-21")
## extension packages: these never overlapped spatstat
z <- mergeSizeTables(z, zlocal)
z <- mergeSizeTables(z, zgui)
z <- mergeSizeTables(z, zKnet)
## Now summarise
currentcount <- z[nrow(z), counts]
bookcount <- z[z$version == "1.42-0", counts]
changes <- currentcount - bookcount
newobj <- changes[["nobjects"]]
newdat <- changes[["ndatasets"]] + 1 # counting rule doesn't detect redwood3
newcode <- changes[["Rlines"]] + changes[["srclines"]]
bookcode <- bookcount[["Rlines"]] + bookcount[["srclines"]]
currentcode <- currentcount[["Rlines"]] + currentcount[["srclines"]]
growth <- signif((100 * newcode)/bookcode, digits=2)
@ %$
This is a summary of changes to the \spst\ package
that have occurred since the publication of the
book \cite{baddrubaturn15} in 2015.
Since then, the \spst\ family has grown by \Sexpr{growth}\%,
including \Sexpr{newobj} new functions and \Sexpr{newdat} new datasets,
and now contains more than \Sexpr{10 * floor(currentcode/10000)},000 lines of code.
This document summarises the most important changes.
<>=
options(SweaveHooks=list(fig=function() par(mar=0.2+c(2,4,2,0))))
Plot <- function(fmla, ..., dat=z) {
yvals <- eval(as.expression(fmla[[2]]), envir=dat)
plot(fmla, ..., data=dat, type="l", xlab="", lwd=2, ylim=c(0, max(yvals)))
}
@
\SweaveOpts{eps=TRUE}
\setkeys{Gin}{width=0.5\textwidth}
\centerline{
<>=
Plot((Rlines + srclines)/1000 ~ date, ylab="Lines of code (x 1000)",
main="Spatstat growth")
lines(srclines/1000 ~ date, data=z)
text(as.Date("2015-01-01"), 9.5, "C code")
text(as.Date("2015-01-01"), 60, "R code")
@
}
\setcounter{tocdepth}{1}
\tableofcontents
\newpage
\newpage
\section{Version information}
The book \cite{baddrubaturn15}, published in December 2015,
covered \spst\ version \texttt{1.42-0}, released in May 2015.
<>=
## Tabulate latest version numbers of packages
vtable <- data.frame(package="spatstat", version=sversion, date=as.Date(sdate))
AppendVersion <- function(pkg, sizetable, v, allow.devel=FALSE) {
if(!allow.devel) sizetable <- RemoveDevel(sizetable)
if(is.null(sizetable)) return(v)
lastrow <- sizetable[nrow(sizetable), , drop=FALSE]
if(is.null(lastrow)) return(v)
rbind(v, data.frame(package=pkg, version=lastrow[,"version"], date=as.Date(lastrow[,"date"])))
}
vtable <- AppendVersion("spatstat.geom", zgeom, vtable)
vtable <- AppendVersion("spatstat.random", zrandom, vtable)
vtable <- AppendVersion("spatstat.explore", zexplore, vtable)
vtable <- AppendVersion("spatstat.model", zmodel, vtable)
##vtable <- AppendVersion("spatstat.core", zcore, vtable)
vtable <- AppendVersion("spatstat.linnet", zlinnet, vtable)
vtable <- AppendVersion("spatstat.sparse", zsparse, vtable)
vtable <- AppendVersion("spatstat.data", zdata, vtable)
vtable <- AppendVersion("spatstat.univar", zunivar, vtable)
vtable <- AppendVersion("spatstat.utils", zutils, vtable)
vtable <- AppendVersion("spatstat.local", zlocal, vtable)
vtable <- AppendVersion("spatstat.Knet", zKnet, vtable)
vtable <- AppendVersion("spatstat.gui", zgui, vtable)
@
The current versions of the \spst\ family of packages
(used to produce this document) are:
<>=
print(vtable[,c(3,1,2)], row.names=FALSE)
@
\section{Package structure}
The original \pkg{spatstat} package grew to be very large.
It has now been split into a family of packages, to satisfy the requirements of CRAN.
This should not affect the user:
existing code will continue to work in the same way.
Typing \code{library(spatstat)} will load the familiar
\pkg{spatstat} package which can be used as before.
\subsection{Sub-packages}
Currently there are ten
sub-packages, called
\pkg{spatstat.utils},
\pkg{spatstat.data},
\pkg{spatstat.univar},
\pkg{spatstat.sparse},
\pkg{spatstat.geom},
\pkg{spatstat.random},
\pkg{spatstat.explore},
\pkg{spatstat.model},
\pkg{spatstat.linnet},
and \pkg{spatstat}.
\begin{itemize}
\item
The \code{spatstat} package now contains
only documentation and introductory material.
It provides beginner's introductions, vignettes, interactive demonstration
scripts, and a few help files summarising the package.
\item
The \pkg{spatstat.data} package now contains all the datasets
for \pkg{spatstat}.
\item
The \pkg{spatstat.utils} package
contains basic utility functions for \pkg{spatstat}.
\item
The \pkg{spatstat.univar} package
contains functions for estimating and manipulating
probability distributions of one-dimensional random variables.
\item
The \pkg{spatstat.sparse} package
contains functions for manipulating sparse arrays
and performing linear algebra.
\item
The \pkg{spatstat.geom} package
contains definitions of spatial objects (such as point patterns, windows
and pixel images) and code which performs geometrical operations.
\item
The \pkg{spatstat.random} package
contains functions for random generation of spatial patterns
and random simulation of models.
\item The \pkg{spatstat.explore} package contains the code for
exploratory data analysis and nonparametric analysis
of spatial data.
\item The \pkg{spatstat.model} package contains the code for model-fitting,
model diagnostics, and formal inference.
\item
The \pkg{spatstat.linnet} package
defines spatial data on a linear network,
and performs geometrical operations
and statistical analysis on such data.
\end{itemize}
\noindent\textbf{Installing:}
If you install \pkg{spatstat}, then the system will install all the
other sub-packages listed above.
\noindent\textbf{Running:}
If you type \code{library(spatstat)} in an \textsf{R} session,
the system will automatically load
\pkg{spatstat.data}, \pkg{spatstat.univar}, \pkg{spatstat.geom}, \pkg{spatstat.random},
\pkg{spatstat.explore}, \pkg{spatstat.model} and \pkg{spatstat.linnet}.
It will also silently \textbf{``import''}
\pkg{spatstat.utils} and \pkg{spatstat.sparse}.
To access the functions in \pkg{spatstat.utils} directly, you would need to
type \code{library(spatstat.utils)}. Similarly for \pkg{spatstat.sparse}.
\subsection{Extension packages}
There are also extension packages which provide additional capabilities
and must be loaded explicitly when you need them.
Currently there are three extension packages, with a fourth in development:
\begin{itemize}
\item \pkg{spatstat.local} for local model-fitting,
\item \pkg{spatstat.Knet} provides additional code for
analysing point patterns on a network.
\item \pkg{spatstat.gui} containing interactive graphics
functions,
\item \pkg{spatstat.sphere} for analysing point patterns on a sphere
(under development!)
\end{itemize}
%\pagebreak
\section{Precis of all changes}
Here is the text from the `overview' sections of
the News and Release Notes for each update.
\begin{itemize}
\item New package \pkg{spatstat.univar}.
\item Some functions from \pkg{spatstat.geom}, \pkg{spatstat.random}
and \pkg{spatstat.explore} have been moved to \pkg{spatstat.univar}.
\item packages \pkg{spatstat.geom}, \pkg{spatstat.random}
and \pkg{spatstat.explore} now depend on \pkg{spatstat.univar}.
\item Perspective plot of spatial point pattern with numerical marks.
\item Quantiles using linear approximation.
\item Extract the knots (jump points) of a weighted CDF.
\item List the history of all changes made to a function in spatstat.
\item More efficient prime factorisation.
\item Digits in the decimal representation of a number.
\item Easier control over quadrature schemes.
\item Some geometry code accelerated.
\item Corrected format of \texttt{gorillas} dataset.
\item The \spst\ family no longer depends on the packages
\pkg{maptools}, \pkg{sp} and \pkg{RandomFields}.
\item geometry code accelerated.
\item Spatially weighted median and quantile of mark values.
\item Boyce index.
\item code for fitting and simulating log-Gaussian Cox models has changed.
\item New vignette on function objects (class \texttt{"fv"} and
\texttt{"envelope"})
\item Vignette on shapefiles temporarily removed.
\item Integration of functions.
\item \texttt{clarkevans.test} modified.
\item Improvements to \texttt{envelope} methods.
\item Conditional simulation for Matern cluster process.
\item Improvements to \texttt{runifpoint} and \texttt{rpoispp}.
\item Extension of distance transform algorithm.
\item Improvement to progress reports.
\item Suppress annoying warnings.
\item Changed the calculation of standard errors in \texttt{density.ppp}
and \texttt{relrisk.ppp}.
\item Inline arithmetic for function tables (class \texttt{"fv"})
and arrays (class \texttt{"fasp"})
\item
Standard error calculation for \texttt{Smooth.ppp} (experimental)
\item
multitype pair correlation functions can save numerator and denominator.
\item
multitype inhomogeneous $J$ functions.
\item
More support for automatic bandwidth selection.
\item Standard errors are now available for \texttt{ppm} models
fitted using \texttt{gam}.
\item \texttt{linearKinhom} and \texttt{linearpcfinhom}
now automatically estimate the intensity.
\item \texttt{density.lpp} accepts bandwidth selection rules,
and has a simple default bandwidth.
\item Pair correlation functions allow more control over smoothing parameters.
\item Extension to support for one-dimensional smoothing kernels.
\item Improvements to \texttt{update} methods for point process models.
\item New \texttt{update} methods for classes \texttt{dppm} and \texttt{rppm}.
\item Generate truncated Poisson random variables.
\item reciprocal moment of Poisson variable conditioned to be positive.
\item Methods for \verb![[! and \verb![[<-! for hyperframes.
\item Colour map for \textsf{pH} values.
\item Restrict a colour map to a narrower range of values.
\item Integral of a one-dimensional density estimate.
\item \texttt{kppm} has been accelerated when
\texttt{method="palm"} or \texttt{"clik2"}.
\item \texttt{kppm} can save the history of the optimisation algorithm.
\item Faster algorithms for simulating cluster processes.
\item Penalised model-fitting for Neyman-Scott cluster process models.
\item Index of the strength of clustering
in a Neyman-Scott cluster process model.
\item Probability of having any siblings.
\item More information is printed about Neyman-Scott cluster process models.
\item Palm intensity diagnostic plot.
\item Convert several factors or factor-valued images
to a common set of levels.
\item Extension to \texttt{rjitter}
\item Alternative to \texttt{rjitter}
\item Quantile function as a function
\item Periodic edge correction for \textit{K} function.
\item Changed denominator in \textit{K} function and pair correlation function.
\item Bandwidth selection for adaptive kernel estimation of intensity.
\item U-shaped and inverted-U-shaped curves in \texttt{rhohat}.
\item Radial cumulative integral of an image.
\item New dataset \texttt{stonetools}.
\item Regularized model-fitting in \texttt{ppm} and \texttt{kppm}.
\item Residuals for recursively-partitioned models.
\item Residuals for any observed point pattern and an estimate of
its intensity.
\item Weighted measures and weighted integrals.
\item Improved approximation of intensity of Gibbs models.
\item Experimental code to represent (theoretical) point process models
\item Extract more information about a point process model.
\item kernel smoothing on a linear network.
\item linear network $K$ function and pair correlation function
based on Euclidean distance.
\item inhomogeneous linear network $J$ function.
\item Terminal vertices of a network.
\item A point pattern on a network can be plotted as cross-ticks.
\item The interactive graphics functions \texttt{iplot} and \texttt{istat}
have been removed from \spst\ into a new
extension package \pkg{spatstat.gui}.
\item The packages \pkg{tcltk} and \pkg{rpanel} are no longer
Suggested by \spst.
\item \spst\ now Imports the package \pkg{spatstat.sparse}.
\item \spst\ now Imports the package \pkg{spatstat.utils}.
\item \spst\ now requires the package \pkg{spatstat.data}
which contains the datasets.
\item \spst\ now suggests the package \pkg{fftwtools}.
\item Conditional simulation in \texttt{kppm}.
\item More diagnostics for spatial logistic regression models.
\item Increased numerical stability in \texttt{kppm}.
\item Simulation of the product shot noise Cox process.
\item Information criteria for model selection in \texttt{kppm}.
\item Estimation of the spatial covariance function of a pixel image
\item Modified handling of covariates in \texttt{slrm}
\item New options for \texttt{weighted.quantile}
\item Buffer tessellation
\item New function for jittering point patterns on a network.
\item Extensions to \texttt{rhohat}
\item \texttt{densityfun.ppp} handles query points outside original window
\item Extension to \texttt{discretise}.
\item Improvement to \texttt{densityEqualSplit}.
\item summary method for spatial logistic regression models
\item New options for \texttt{distmap.psp}
\item Improved output in \texttt{summary.mppm}
\item Increased speed for large datasets.
\item Variance calculations handle larger datasets.
\item Relative risk estimation on a network.
\item Leave-one-out density estimation on a network.
\item Add new vertices to a linear network.
\item More support for multi-dimensional patterns.
\item \texttt{predict.mppm} now works for multitype point process models.
\item Improved handling of \texttt{newdata} in \texttt{predict.mppm}
\item New datasets \texttt{concrete} and \texttt{btb}.
\item Changed default value of \texttt{stringsAsFactors}.
\item Function \texttt{lengths.psp} has been renamed \verb!lengths_psp!.
\item Tessellations on a linear network can now have marks.
\item More functions for manipulating tessellations on a linear network.
\item New functions for simulating point processes on a linear network.
\item Nearest Neighbour Index function can now return mark values.
\item Index of repulsion strength for determinantal point process models.
\item Nearest neighbours between two point patterns in any number of dimensions.
\item More options for handling bad simulation outcomes in \texttt{envelope}.
\item \texttt{mppm} accepts case weights.
\item Bandwidth selectors warn about extreme values of bandwidth.
\item Fast kernel estimation on a linear network using 2D kernels.
\item Extension of Scott's rule for bandwidth selection.
\item Cross-validated bandwidth selection on a linear network.
\item Random thinning and random labelling of spatial patterns
extended to different types of pattern.
\item Confidence intervals for multitype $K$ function.
\item Envelopes for balanced two-stage test
\item Extensions to adaptive intensity estimators
\item `Dartboard' tessellation using polar coordinates.
\item Standard error calculation for inverse-distance weighting.
\item Kernel estimate of intensity as a \texttt{function(x,y)}.
\item Extract discrete and continuous components of a measure.
\item Improvements and extensions to leverage and influence code.
\item Plot a line segment pattern using line widths.
\item Find connected components of each tile in a tessellation.
\item Geometrical operations on \texttt{distfun} objects.
\item Join vertices in a linear network.
\item Distance map and contact distribution for
rectangular structuring element.
\item Lurking variable plot for models fitted to several point patterns.
\item New dataset \code{cetaceans}.
\item Gamma correction for colour maps and image plots.
\item Class \code{units} has been renamed \code{unitname} to avoid package collision.
\item More support for tessellations.
\item Fixed longstanding bug in leverage and influence diagnostics.
\item Improvements and bug fixes for leverage and influence diagnostics.
\item Tighter bounding box for \code{psp}, \code{lpp}, \code{linnet} objects.
\item Improved layout in \code{plot.solist}
\item Tools to increase colour saturation.
\item Connected components of a 3D point pattern.
\item Accelerated computations on linear networks.
\item Accelerated simulation of determinantal point processes.
\item Improved printing of 3D point patterns.
\item Minor corrections to handling of unitnames.
\item Improvements to \texttt{ppm} and \texttt{update.ppm}.
\item Correction to \texttt{lohboot}
\item Numerous bug fixes for linear networks code.
\item Now handles disconnected linear networks.
\item Effect function is now available for all types of fitted model.
\item Geometric-mean smoothing.
\item A model can be fitted or re-fitted to a sub-region of data.
\item New fast algorithm for kernel smoothing on a linear network.
\item Leverage and influence diagnostics extended to Poisson/Gibbs models
fitted by logistic composite likelihood.
\item Two-stage Monte Carlo test.
\item Dirichlet/Voronoi tessellation on a linear network.
\item Thinning of point patterns on a linear network.
\item More support for functions and tessellations on a linear network.
\item Bandwidth selection for pair correlation function.
\item Pooling operations improved.
\item Operations on signed measures.
\item Operations on lists of pixel images.
\item Improved pixellation of point patterns.
\item Stieltjes integral extended.
\item Subset operators extended.
\item Greatly accelerated \texttt{rmh} when using \texttt{nsave}
\item Sufficient Dimension Reduction for point processes.
\item Alternating Gibbs Sampler for point process simulation.
\item New class of spatially sampled functions.
\item ROC and AUC extended to other types of point patterns and models.
\item More support for linear networks.
\item More support for infinite straight lines.
\item \spst\ now depends on the packages \pkg{nlme} and \pkg{rpart}.
\item Important bug fix in \code{linearK}, \code{linearpcf}
\item Changed internal format of \code{linnet} and \code{lpp} objects.
\item Faster computation in linear networks.
\item Bias correction techniques.
\item Bounding circle of a spatial object.
\item Option to plot marked points as arrows.
\item Kernel smoothing accelerated.
\item Workaround for bug in some graphics drivers affecting image orientation.
\item Non-Gaussian smoothing kernels.
\item Improvements to inhomogeneous multitype $K$ and $L$ functions.
\item Variance approximation for pair correlation function.
\item Leverage and influence for multitype point process models.
\item Functions for extracting components of vector-valued objects.
\item Recursive-partition point process models.
\item Minkowski sum, morphological dilation and erosion with any shape.
\item Minkowski sum also applicable to point patterns and line segment patterns.
\item Important bug fix in Smooth.ppp
\item Important bug fix in spatial CDF tests.
\item More bug fixes for replicated patterns.
\item Simulate a model fitted to replicated point patterns.
\item Inhomogeneous multitype $F$ and $G$ functions.
\item Summary functions recognise \texttt{correction="all"}
\item Leverage and influence code handles bigger datasets.
\item More support for pixel images.
\item Improved progress reports.
\item New dataset \texttt{redwood3}
\item Fixed namespace problems arising when spatstat is not loaded.
\item Important bug fix in leverage/influence diagnostics for Gibbs models.
\item Surgery with linear networks.
\item Tessellations on a linear network.
\item Laslett's Transform.
\item Colour maps for point patterns with continuous marks
are easier to define.
\item Pair correlation function estimates can be pooled.
\item Stipulate a particular version of a package.
\item More support for replicated point patterns.
\item More support for tessellations.
\item More support for multidimensional point patterns and point processes.
\item More options for one-sided envelopes.
\item More support for model comparison.
\item Convexifying operation.
\item Subdivide a linear network.
\item Penttinen process can be simulated (by Metropolis-Hastings or CFTP).
\item Calculate the predicted variance of number of points.
\item Accelerated algorithms for linear networks.
\item Quadrat counting accelerated, in some cases.
\item Simulation algorithms have been accelerated; simulation outcomes
are \emph{not} identical to those obtained from previous versions of \spst.
\item Determinantal point process models.
\item Random-effects and mixed-effects models for replicated patterns.
\item Dao-Genton test, and corresponding simulation envelopes.
\item Simulated annealing and simulated tempering.
\item spatstat colour tools now handle transparent colours.
\item Improvements to \verb![! and \texttt{subset} methods
\item Extensions to kernel smoothing on a linear network.
\item Support for one-dimensional smoothing kernels.
\item Mark correlation function may include weights.
\item Cross-correlation version of the mark correlation function.
\item Penttinen pairwise interaction model.
\item Improvements to simulation of Neyman-Scott processes.
\item Improvements to fitting of Neyman-Scott models.
\item Extended functionality for pixel images.
\item Fitted intensity on linear network
\item Triangulation of windows.
\item Corrected an edge correction.
\end{itemize}
\section{New datasets}
The following new datasets have been added.
These are now provided in the sub-package \pkg{spatstat.data}.
\begin{itemize}
\item \texttt{austates}: The states and large mainland territories of Australia
represented as polygonal regions forming a tessellation.
\item \texttt{redwood3}: a more accurate version of the \texttt{redwood} data.
\item \texttt{cetaceans}: point patterns of whale and dolphin sightings.
\item \texttt{concrete}: air bubbles in concrete.
\item \texttt{btb}: bovine tuberculosis occurrences.
\item \texttt{stonetools}: palaeolithic stone tools and bone fragments.
\end{itemize}
\section{New classes}
The following new classes of objects may be of use.
\begin{itemize}
\item \texttt{traj}:
Trajectory (history of function evaluations) in a model
that was fitted by optimisation.
\item \texttt{metric}: Class of distance metrics.
An object of class \texttt{metric} represents a distance metric
between points in two-dimensional space.
See \texttt{help(metric.object)}.
\item \texttt{ssf}:
Class of spatially sampled functions.
An object of class \texttt{"ssf"} represents a spatial function
which has been evaluated or sampled at an irregular set of points.
See \texttt{help(ssf)}.
\item \texttt{zclustermodel}:
Experimental. An object of class \texttt{zclustermodel} represents a
Neyman-Scott cluster point process model with specified parameter values
(whereas \texttt{kppm} represents such a model fitted to data).
\item \texttt{zgibbsmodel}:
Experimental. An object of class \texttt{zgibbsmodel} represents a
Gibbs point process model with specified parameter values
(whereas \texttt{ppm} represents such a model fitted to data).
\end{itemize}
\section{New Functions}
Following is a list of all the functions that have been added,
starting with the most recent additions.
\begin{itemize}
\item \texttt{latest.changes}:
Lists the history of all changes that have been made to
a particular function in the \texttt{spatstat} family of packages.
\item \texttt{persp.ppp}: For a spatial point pattern with numeric marks,
generate a perspective plot in which each data point is
shown as a vertical spike, with height proportional to the mark value.
\item \texttt{knots.ewcdf}:
Method for generic \texttt{knots} for extracting the jump points of a weighted
cumulative distribution function.
\item \texttt{firstdigit}, \texttt{lastdigit}, \texttt{ndigits}:
digits in the decimal representation of a number.
\item \texttt{bw.abram.default}: Abramson adaptive bandwidths.
Default method for \texttt{bw.abram}, applicable to numerical vectors.
\item \texttt{default.symbolmap.ppp}:
Algorithm for determining the graphical symbol map used by \texttt{plot.ppp}.
\item \texttt{summary.symbolmap}:
Method for \texttt{summary} for symbol maps.
\item \texttt{SpatialMedian.ppp}, \texttt{SpatialQuantile.ppp}:
spatially weighted median and quantile of mark values of a point pattern.
\item \texttt{boyce}: Boyce index and continuous Boyce index.
\item \texttt{densityAdaptiveKernel.splitppp}:
A method for \texttt{densityAdaptiveKernel} for split point patterns.
\item \texttt{integral.fv}:
Compute the integral of a function object.
\item \texttt{compileCDF}:
Low level utility for calculating cumulative distribution function
of distance variable.
\item \texttt{Math.fv}, \texttt{Complex.fv}, \texttt{Summary.fv}, \texttt{Ops.fv}:
Methods for arithmetic operations for function tables (class \texttt{"fv"})
\item \texttt{Math.fasp}, \texttt{Complex.fasp}, \texttt{Summary.fasp}, \texttt{Ops.fasp}:
Methods for arithmetic operations for function arrays (class \texttt{"fasp"})
\item \texttt{Gcross.inhom}, \texttt{Gdot.inhom}:
Multitype $G$ functions for inhomogeneous point processes.
\item
\texttt{Jcross.inhom}, \texttt{Jdot.inhom}, \texttt{Jmulti.inhom}:
Multitype $J$ functions for inhomogeneous point processes.
\item
\texttt{summary.bw.optim}, \texttt{print.summary.bw.optim}:
Method for \texttt{summary} of optimised bandwidth objects
(class \texttt{bw.optim}).
These are the objects produced by the bandwidth selection functions
such as \texttt{bw.diggle}, \texttt{bw.scott}, \texttt{bw.pcf}
\item \texttt{psp2mask}:
Function \texttt{as.mask.psp} has been renamed \texttt{psp2mask}.
The old function \texttt{as.mask.psp} still exists but will soon be
deprecated and later removed.
\item \texttt{update.dppm}:
Update method for determinantal point process models.
\item \texttt{update.rppm}:
Update method for recursively partitioned point process models.
\item \verb![[.hyperframe!, \verb![[<-.hyperframe!:
Methods for \verb![[! and \verb![[<-! for hyperframes.
\item \texttt{pHcolourmap}, \texttt{pHcolour}:
Colour map for values of pH
\item \texttt{restrict.colourmap}:
Restrict a colourmap to a narrower range of values.
\item \texttt{integral.density}:
Compute the integral of a one-dimensional kernel density estimate.
\item \texttt{as.colourmap}:
Extract colour information from an object.
\item \texttt{panysib}:
Probability that a point in a cluster process has \emph{any} siblings.
\item \texttt{is.poissonclusterprocess}:
Detects whether a given model is a Poisson cluster process
(which includes Neyman-Scott processes).
\item \texttt{traj}, \texttt{print.traj}, \texttt{plot.traj},
\texttt{lines.traj}:
Extract, print and plot the trajectory of function evaluations.
\item \texttt{rpoisnonzero}:
Generate Poisson random variables conditioned to be positive.
\item \texttt{rpoistrunc}:
Generate `truncated' Poisson random variables,
conditioned to be greater than or equal to a specified minimum value.
\item \texttt{recipEnzpois}:
Calculate the first reciprocal moment of nonzero Poisson variable.
\item \texttt{rclusterBKBC}:
(Advanced use) Internal algorithm to simulate any Neyman-Scott cluster
process using either the naive, Brix-Kendall, or Baddeley-Chang algorithm.
\item \texttt{palmdiagnose}, \texttt{plot.palmdiag}:
Palm intensity diagnostic plot for cluster process models
proposed by Tanaka, Ogata and Stoyan.
\item \texttt{harmoniseLevels}:
Given several factors or factor-valued pixel images,
convert them all to have the same set of factor levels.
\item \texttt{rexplode}: ``Explode'' a point pattern by randomly displacing each
group of duplicated points to make a circular pattern
around the original location. An alternative to \texttt{rjitter}.
\item \texttt{quantilefun}:
Return a function that computes any quantiles of a given dataset.
\item \texttt{bw.CvL.adaptive}:
Bandwidth selection for adaptive kernel estimation of intensity.
\item \texttt{radcumint}:
Radial cumulative integral of an image.
\item \texttt{Smooth.lpp}: kernel smoothing on a linear network.
\item \texttt{residuals.rppm}:
Residual measure for a recursively-partitioned point process model.
\item \texttt{residualMeasure}:
Residual measure for any observed point pattern
and any estimate of its intensity.
\item \texttt{linearKEuclid, linearpcfEuclid, linearKEuclidInhom, linearpcfEuclidInhom}:
Linear network $K$ function and pair correlation function based on Euclidean distances.
\item \texttt{linearJinhom}:
Inhomogeneous $J$ function on a linear network.
\item \texttt{terminalvertices}:
Extract the terminal vertices of a linear network.
\item \texttt{bw.relrisk.lpp}:
This function replaces \texttt{bw.relrisklpp}
and is a method for the generic \texttt{bw.relrisk}.
\item \texttt{measureWeighted}: weighted version of a measure.
\item \texttt{harmonicmean, harmonicsum}:
The harmonic mean of a set of numbers, calculated robustly.
\item \texttt{which.min.fair, which.max.fair} (in \texttt{spatstat.utils}):
Find the location of the minimum or maximum entry in a vector;
if there are multiple minima or maxima,
choose one of them at random.
\item \texttt{hardcoredist}:
Extract the hard core distance of a point process model.
\item \texttt{interactionorder}:
Extract the order of interpoint interaction of a point process model.
\item \texttt{zgibbsmodel}:
Experimental. Create an object of class \texttt{zgibbsmodel}.
\item \texttt{print.zgibbsmodel}:
Experimental. Print an object of class \texttt{zgibbsmodel}.
\item \texttt{is.poisson.zgibbsmodel}, \texttt{is.stationary.zgibbsmodel}:
Experimental. Methods for class \texttt{zgibbsmodel}.
\item \texttt{indefinteg}: Numerically computes the indefinite integral of a function
\item \texttt{framedist.pixels}: Computes distance from each pixel to the enclosing rectangle.
\item \texttt{lurking.slrm}:
Lurking variable plot for spatial logistic regression models.
\item \texttt{eem.slrm}:
Exponential energy marks for spatial logistic regression models.
\item \texttt{eem.ppm}:
Exponential energy marks for Gibbs and Poisson point process models
(this function was previously called \texttt{eem}).
\item \texttt{transformquantiles}:
Transform the quantiles of a vector, matrix, array or pixel image.
\item \texttt{convexmetric}:
Distance metric based on a convex set.
\texttt{invoke.metric}:
Low level function to perform a desired operation using a given metric.
\item \texttt{mean.ecdf, mean.ewcdf}
Calculate the mean of an empirical cumulative distribution function.
\item \texttt{rjitter.ppp}:
\begin{itemize}
\item
This function was previously called \texttt{rjitter}. It is now a method
for the new generic function \texttt{rjitter}.
\item
New argument \texttt{adjust} allows the default radius to be adjusted.
\item
The resulting point pattern now has attribute \texttt{radius}.
\item
If \texttt{retry=TRUE}, the resulting point pattern now has
attribute \texttt{tries} which counts the number of trials that were
required.
\end{itemize}
\item \texttt{bufftess}:
Distance buffer tessellation
\item \texttt{ic}:
Information criteria for model selection in ppm and kppm.
Kindly contributed by Achmad Choiruddin, Jean-Francois Coeurjolly
and Rasmus Waagepetersen.
\item \texttt{rPSNCP}:
Generate simulated realisations of the product shot noise Cox process.
Contributed by Abdollah Jalilian, Yongtao Guan and Rasmus Waagepetersen.
\item \texttt{spatcov}:
Estimate the spatial covariance function of a pixel image.
\item \texttt{summary.slrm}, \texttt{print.summary.slrm}
Summary method for spatial logistic regression models
\item \texttt{coef.summary.slrm}:
Print the fitted coefficients, confidence interval and p-values
for a spatial logistic regression model.
\item \texttt{pairMean}:
Compute the mean of a specified function of interpoint distance
between random points in a window.
\item \texttt{rjitterlpp}:
Apply random displacements to the points on a linear network.
\item \texttt{intersect.boxx}:
Compute intersection of boxes in multi-dimensional space
\item \texttt{scale.boxx}, \texttt{scale.ppx}:
Methods for \texttt{scale} for boxes and patterns in multi-dimensional space
\item \texttt{shift.boxx}, \texttt{shift.ppx}:
Methods for \texttt{shift} for boxes and patterns in multi-dimensional space
\item \texttt{is.boxx}:
Determine whether an object is a multidimensional box
\item \texttt{relrisk.lpp}:
nonparametric estimation of relative risk on a network.
\item \texttt{bw.relrisklpp}:
Bandwidth selection for relative risk estimation on a network.
\item \texttt{bw.lppl}:
Bandwidth selection for kernel density estimation
of point patterns on a linear network,
using likelihood cross-validation.
\item \texttt{densityfun.lpp}: a method for \texttt{densityfun}
for point patterns on a linear network.
\item \texttt{addVertices}:
Add new vertices to a network, at locations outside the
existing network.
\item \verb!lengths_psp!: this is the new name of the
function \texttt{lengths.psp}, which had to be changed because of
a conflict with the generic \texttt{lengths}.
\item \texttt{densityEqualSplit}:
The equal-split algorithm for kernel density estimation on a network
is now visible as a separate function.
\item \texttt{densityHeat}:
The heat-equation algorithm for kernel density estimation on a network
is now visible as a separate function. It has also been extended
to computing leave-one-out density estimates at the data points.
\item \texttt{hotrod}:
Compute the heat kernel $\kappa(u,v)$ on a one-dimensional line segment.
\item \texttt{heatkernelapprox}:
Calculate an approximation to the value of the heat kernel
on a network evaluated at the source point, $\kappa(u,u)$.
\item \texttt{is.linim}: test whether an object is
a pixel image on a linear network (class \verb!"linim"!).
\item \texttt{rcelllpp}:
Simulate the cell point process on a linear network.
\item \texttt{rSwitzerlpp}:
Simulate the Switzer-type point process on a linear network.
\item \texttt{intersect.lintess}:
Form the intersection of two tessellations on a linear network.
\item \texttt{chop.linnet}:
Divide a linear network into tiles using infinite lines.
\item \texttt{repairNetwork}:
Detect and repair inconsistencies in internal data
in a \texttt{linnet} or \texttt{lpp} object.
\item \verb!marks<-.lintess!, \texttt{unmark.lintess}:
Assign marks to the tiles of a tessellation on a linear network.
\item \texttt{marks.lintess}:
Extract the marks of the tiles of a tessellation on a linear network.
\item \texttt{tilenames.lintess}:
Extract the names of the tiles in a tessellation on a linear network
\item \verb!tilenames<-.lintess!:
Change the names of the tiles in a tessellation on a linear network
\item \texttt{nobjects.lintess}:
Count the number of tiles in a tessellation on a linear network
\item \texttt{as.data.frame.lintess}:
Convert a tessellation on a linear network into a data frame.
\item \texttt{repul}:
Repulsiveness index for a determinantal point process model.
\item \texttt{reach.kppm}:
Reach (interaction distance) for a Cox or cluster point process model.
\item \texttt{summary.dppm}, \texttt{print.summary.dppm}:
Summary method for determinantal point process models.
\item \texttt{nncross.ppx}:
Nearest neighbours between two point patterns in any number of dimensions.
\item \texttt{rthinclumps}:
Divide a spatial region into clumps and randomly delete some of them.
\item \texttt{densityQuick.lpp}:
Fast kernel estimator of point process intensity on a network
using 2D smoothing kernel.
\item \texttt{data.lppm}:
Extract the original point pattern dataset (on a linear network)
to which the model was fitted.
\item \texttt{bw.scott.iso}:
Isotropic version of Scott's rule (for point patterns in any dimension).
\item \texttt{bits.envelope}:
Global simulation envelope corresponding to \texttt{bits.test},
the balanced independent two-stage Monte Carlo test.
\item \texttt{extrapolate.psp}:
Extrapolate line segments to obtain infinite lines.
\item \texttt{uniquemap}:
Map duplicate points to unique representatives.
Generic with methods for \texttt{ppp}, \texttt{lpp}, \texttt{ppx}
\item \texttt{uniquemap.data.frame}, \texttt{uniquemap.matrix}:
Map duplicate rows to unique representatives
\item \texttt{localKcross}, \texttt{localLcross},
\texttt{localKdot}, \texttt{localLdot},
\texttt{localKcross.inhom}, \texttt{localLcross.inhom}:
Multitype local $K$ functions.
\item \texttt{polartess}: tessellation using polar coordinates.
\item \texttt{densityVoronoi}: adaptive estimate of point process intensity
using tessellation methods.
\item \texttt{densityAdaptiveKernel}: adaptive estimate of point process
intensity using variable kernel methods.
\item \texttt{bw.abram}: compute adaptive smoothing bandwidths using
Abramson's rule.
\item \texttt{coords.quad}: method for \texttt{coords}, to extract the
coordinates of the points in a quadrature scheme.
\item \texttt{lineartileindex}: low-level function to classify points
on a linear network according to which tile of a tessellation they
fall inside.
\item \texttt{markmarkscatter}: Mark--mark scatterplot.
\item \texttt{bw.CvL}: Cronie-van Lieshout bandwidth selection
for density estimation.
\item \texttt{subset.psp}: subset method for line segment patterns.
\item \texttt{densityfun}, \texttt{densityfun.ppp}:
Compute a kernel estimate of intensity of a point pattern
and return it as a function of spatial location.
\item \texttt{as.im.densityfun}:
Convert \texttt{function(x,y)} to a pixel image.
\item \texttt{measureDiscrete}, \texttt{measureContinuous}:
Extract the discrete and continuous components of a measure.
\item \texttt{connected.tess}:
Find connected components of each tile in a tessellation
and make a new tessellation composed of these pieces.
\item \texttt{dffit.ppm}:
Effect change diagnostic \texttt{DFFIT} for spatial point process models.
\item \texttt{shift.distfun}, \texttt{rotate.distfun},
\texttt{reflect.distfun}, \texttt{flipxy.distfun},
\texttt{affine.distfun}, \texttt{scalardilate.distfun}:
Methods for geometrical operations on \texttt{distfun} objects.
\item \texttt{rescale.distfun}:
Change the unit of length in a \texttt{distfun} object.
\item \texttt{plot.indicfun}:
Plot method for indicator functions created by \texttt{as.function.owin}.
\item \texttt{Smooth.leverage.ppm}, \texttt{Smooth.influence.ppm}:
Smooth a leverage function or an influence measure.
\item \texttt{integral.leverage.ppm}, \texttt{integral.influence.ppm}:
Compute the integral of a leverage function or an influence measure.
\item \texttt{mean.leverage.ppm}:
Compute the mean value of a leverage function.
\item \texttt{rectdistmap}:
Distance map using rectangular metric.
\item \texttt{rectcontact}:
Contact distribution function using rectangular structuring element.
\item \texttt{joinVertices}:
Join specified vertices in a linear network.
\item \code{summary.ssf}:
Summary method for a spatially sampled function (class \code{ssf}).
\item \code{unstack.tess}:
Given a tessellation with multiple columns of marks,
take the columns one at a time, and return a list of tessellations,
each carrying only one of the original columns of marks.
\item \code{contour.leverage.ppm}:
Method for \code{contour} for leverage functions of class
\code{leverage.ppm}
\item \code{lurking}:
New generic function for lurking variable plots.
\item \code{lurking.ppp}, \code{lurking.ppm}:
These are equivalent to the original function \code{lurking}.
They are now methods for the new generic \code{lurking}.
\item \code{lurking.mppm}:
New method for class \code{mppm}.
Lurking variable plot for models fitted to several point patterns.
\item \code{print.lurk}:
Prints information about the object returned by the function
\code{lurking}
representing a lurking variable plot.
\item \code{model.matrix.mppm}:
Method for \code{model.matrix} for models of class \code{mppm}.
\item \code{test.crossing.psp}, \code{test.selfcrossing.psp}:
Previously undocumented functions for testing whether segments cross.
\item \code{to.saturated}:
Convert a colour value to the corresponding fully-saturated colour.
\item \code{intensity.psp}:
Compute the average total length of segments per unit area.
\item \code{boundingbox.psp}:
Bounding box for line segment patterns.
This produces a tighter bounding box than the previous default behaviour.
\item \code{boundingbox.lpp}:
Bounding box for point patterns on a linear network.
This produces a tighter bounding box than the previous default behaviour.
\item \code{boundingbox.linnet}:
Bounding box for a linear network.
This produces a tighter bounding box than the previous default behaviour.
\item \verb!"Frame<-.default"!:
New default method for assigning bounding frame to a spatial object.
\item \code{connected.pp3}:
Connected components of a 3D point pattern.
\item \code{colouroutputs}, \verb!"colouroutputs<-"!:
Extract or assign colour values in a colour map.
(Documented a previously-existing function)
\item \texttt{fitin.profilepl}:
Extract the fitted interaction from a model fitted by profile likelihood.
\item \verb![<-.linim!:
Subset assignment method for pixel images on a linear network.
\item \texttt{nnfromvertex}:
Given a point pattern on a linear network,
find the nearest data point from each vertex of the network.
\item \texttt{tile.lengths}:
Calculate the length of each tile in a tessellation on a network.
\item \texttt{text.ppp}, \texttt{text.lpp}, \texttt{text.psp}:
Methods for \texttt{text} for spatial patterns.
\item \texttt{as.data.frame.envelope}:
Extract function data from an envelope object,
including the functions for the simulated data ('simfuns')
if they were saved.
\item \texttt{is.connected}, \texttt{is.connected.default},
\texttt{is.connected.linnet}:
Determines whether a spatial object consists of
one topologically connected piece, or several pieces.
\item \texttt{is.connected.ppp}:
Determines whether a point pattern is connected after
all pairs of points closer than distance R are joined.
\item \texttt{hist.funxy}:
Histogram of values of a spatial function.
\item \texttt{model.matrix.ippm}:
Method for \texttt{model.matrix} which allows computation of
regular and irregular score components.
\item \texttt{harmonise.msr}:
Convert several measures (objects of class \texttt{msr})
to a common quadrature scheme.
\item \texttt{bits.test}:
Balanced Independent Two-Stage Monte Carlo test,
an improvement on the Dao-Genton test.
\item \texttt{lineardirichlet}:
Computes the Dirichlet-Voronoi tessellation associated with a
point pattern on a linear network.
\item \texttt{domain.lintess}, \texttt{domain.linfun}:
Extract the linear network from a
\texttt{lintess} or \texttt{linfun} object.
\item \texttt{summary.lintess}:
Summary of a tessellation on a linear network.
\item \texttt{clicklpp}:
Interactively add points on a linear network.
\item \texttt{envelopeArray}:
Generate an array of envelopes
using a function that returns \texttt{fasp} objects.
\item \texttt{bw.pcf}:
Bandwidth selection for pair correlation function.
\item \texttt{grow.box3}:
Expand a three-dimensional box.
\item \texttt{hexagon}, \texttt{regularpolygon}:
Create regular polygons.
\item \texttt{Ops.msr}:
Arithmetic operations for measures.
\item \texttt{Math.imlist}, \texttt{Ops.imlist},
\texttt{Summary.imlist}, \texttt{Complex.imlist}:
Arithmetic operations for lists of pixel images.
\item \texttt{measurePositive}, \texttt{measureNegative},
\texttt{measureVariation}, \texttt{totalVariation}:
Positive and negative parts of a measure, and variation of a measure.
\item \texttt{as.function.owin}:
Convert a spatial window to a \texttt{function(x,y)},
the indicator function.
\item \texttt{as.function.ssf}:
Convert an object of class \texttt{ssf} to a \texttt{function(x,y)}
\item \texttt{as.function.leverage.ppm}
Convert an object of class \texttt{leverage.ppm} to a \texttt{function(x,y)}
\item \texttt{sdr}, \texttt{dimhat}:
Sufficient Dimension Reduction for point processes.
\item \texttt{simulate.rhohat}:
Simulate a Poisson point process with the
intensity estimated by \texttt{rhohat}.
\item \texttt{rlpp}:
Random points on a linear network with a specified probability density.
\item \texttt{cut.lpp}:
Method for \texttt{cut} for point patterns on a linear network.
\item \texttt{has.close}:
Faster way to check whether a point has a close neighbour.
\item \texttt{psib}:
Sibling probability (index of clustering strength in a cluster process).
\item \texttt{rags}, \texttt{ragsAreaInter}, \texttt{ragsMultiHard}:
Alternating Gibbs Sampler for point processes.
\item \texttt{bugfixes}:
List all bug fixes in recent versions of a package.
\item \texttt{ssf}:
Create a spatially sampled function
\item \texttt{print.ssf}, \texttt{plot.ssf}, \texttt{contour.ssf},
\texttt{image.ssf}:
Display a spatially sampled function
\item \texttt{as.im.ssf}, \texttt{as.ppp.ssf}, \texttt{marks.ssf},
\verb!marks<-.ssf!, \texttt{unmark.ssf}, \verb![.ssf!, \texttt{with.ssf}:
Manipulate data in a spatially sampled function
\item \texttt{Smooth.ssf}:
Smooth a spatially sampled function
\item \texttt{integral.ssf}:
Approximate integral of spatially sampled function
\item \texttt{roc.kppm}, \texttt{roc.lppm}, \texttt{roc.lpp}:
Methods for \texttt{roc} for fitted models of class \texttt{"kppm"} and
\texttt{"lppm"} and point patterns of class \texttt{"lpp"}
\item \texttt{auc.kppm}, \texttt{auc.lppm}, \texttt{auc.lpp}:
Methods for \texttt{auc} for fitted models of class \texttt{"kppm"} and
\texttt{"lppm"} and point patterns of class \texttt{"lpp"}
\item \texttt{timeTaken}:
Extract the timing data from a \texttt{"timed"} object or objects.
\item \texttt{rotate.infline},
\texttt{shift.infline}, \texttt{reflect.infline},
\texttt{flipxy.infline}:
Geometrical transformations for infinite straight lines.
\item \texttt{whichhalfplane}:
Determine which side of an infinite line a point lies on.
\item \texttt{matrixpower}, \texttt{matrixsqrt}, \texttt{matrixinvsqrt}:
Raise a matrix to any power.
\item \texttt{points.lpp}:
Method for \texttt{points} for point patterns on a linear network.
\item \texttt{pairs.linim}:
Pairs plot for images on a linear network.
\item \texttt{closetriples}:
Find close triples of points.
\item \texttt{anyNA.im}:
Method for \texttt{anyNA} for pixel images.
\item \texttt{bc}:
Bias correction (Newton-Raphson) for fitted model parameters.
\item \texttt{rex}:
Richardson extrapolation for numerical integrals and
statistical model parameter estimates.
\item \texttt{boundingcircle}, \texttt{boundingcentre}:
Find the smallest circle enclosing a window or point pattern.
\item \verb![.linim! :
Subset operator for pixel images on a linear network.
\item \texttt{mean.linim}, \texttt{median.linim}, \texttt{quantile.linim}:
The mean, median, or quantiles of pixel values in a
pixel image on a linear network.
\item \texttt{weighted.median}, \texttt{weighted.quantile}:
Median or quantile of numerical data with associated weights.
\item \verb!"[.linim"!:
Subset operator for pixel images on a linear network.
\item \texttt{mean.linim}, \texttt{median.linim}, \texttt{quantile.linim}:
The mean, median, or quantiles of pixel values in a
pixel image on a linear network.
\item \texttt{boundingcircle}, \texttt{boundingcentre}:
Smallest circle enclosing a spatial object.
\item \texttt{split.msr}:
Decompose a measure into parts.
\item \texttt{unstack.msr}:
Decompose a vector-valued measure into its component measures.
\item \texttt{unstack.ppp}, \texttt{unstack.psp}, \texttt{unstack.lpp}:
Given a spatial pattern with several columns of marks,
separate the columns and return a list of spatial patterns,
each having only one column of marks.
\item \texttt{kernel.squint}:
Integral of squared kernel, for the kernels used in density estimation.
\item \texttt{as.im.data.frame}:
Build a pixel image from a data frame of coordinates and pixel values.
\item \texttt{covering}:
Cover a window using discs of a given radius.
\item \texttt{dilationAny}, \texttt{erosionAny}, \verb!%(-)%! :
Morphological dilation and erosion by any shape.
\item \texttt{FmultiInhom}, \texttt{GmultiInhom}
Inhomogeneous multitype/marked versions of the summary functions
\texttt{Fest}, \texttt{Gest}.
\item \texttt{kernel.moment}
Moment or incomplete moment of smoothing kernel.
\item \texttt{MinkowskiSum}, \verb!%(+)%!:
Minkowski sum of two windows: \verb!A %(+)% B!,
or \texttt{MinkowskiSum(A,B)}
\item \texttt{nobjects}:
New generic function for counting the number of 'things' in a dataset.
There are methods for \texttt{ppp}, \texttt{ppx}, \texttt{psp}, \texttt{tess}.
\item \texttt{parameters.interact}, \texttt{parameters.fii}:
Extract parameters from interpoint interactions.
(These existing functions are now documented.)
\item \texttt{ppmInfluence}:
Calculate \texttt{leverage.ppm}, \texttt{influence.ppm} and
\texttt{dfbetas.ppm} efficiently.
\item \texttt{rppm}, \texttt{plot.rppm}, \texttt{predict.rppm},
\texttt{prune.rppm}:
Recursive-partition point process models.
\item \texttt{simulate.mppm}
Simulate a point process model fitted to replicated point patterns.
\item \texttt{update.interact}:
Update the parameters of an interpoint interaction.
[This existing function is now documented.]
\item \texttt{where.max}, \texttt{where.min}
Find the spatial location(s) where a pixel image achieves its
maximum or minimum value.
\item \texttt{compileK}, \texttt{compilepcf}:
make a $K$ function or pair correlation function
given the pairwise distances and their weights.
[These existing internal functions are now documented.]
\item \texttt{laslett}:
Laslett's Transform.
\item \texttt{lintess}:
Tessellation on a linear network.
\item \texttt{divide.linnet}:
Divide a linear network into pieces demarcated by a point pattern.
\item \texttt{insertVertices}:
Insert new vertices in a linear network.
\item \texttt{thinNetwork}:
Remove vertices and/or segments from a linear network etc.
\item \texttt{connected.linnet}:
Find connected components of a linear network.
\item \texttt{nvertices}, \texttt{nvertices.linnet}, \texttt{nvertices.owin}:
Count the number of vertices in a linear network
or vertices of the boundary of a window.
\item \texttt{as.data.frame.linim}, \texttt{as.data.frame.linfun}:
Extract a data frame of spatial locations and function values
from an object of class \texttt{linim} or \texttt{linfun}.
\item \texttt{as.linfun}, \texttt{as.linfun.linim}, \texttt{as.linfun.lintess}:
Convert other kinds of data to a \texttt{linfun} object.
\item \texttt{requireversion}:
Require a particular version of a package
(for use in stand-alone R scripts).
\item \texttt{as.function.tess}:
Convert a tessellation to a \texttt{function(x,y)}. The function value
indicates which tile of the tessellation contains the point $(x,y)$.
\item \texttt{tileindex}:
Determine which tile of a tessellation contains a given point $(x,y)$.
\item \texttt{persp.leverage.ppm}:
Method for persp plots for objects of class \texttt{leverage.ppm}
\item \texttt{AIC.mppm}, \texttt{extractAIC.mppm}:
AIC for point process models fitted to replicated point patterns.
\item \texttt{nobs.mppm}, \texttt{terms.mppm}, \texttt{getCall.mppm}:
Methods for point process models fitted to replicated point patterns.
\item \texttt{rPenttinen}:
Simulate the Penttinen process using perfect simulation.
\item \texttt{varcount}:
Given a point process model, compute the predicted variance
of the number of points falling in a window.
\item \texttt{inside.boxx}:
Test whether multidimensional points lie inside a specified
multidimensional box.
\item \texttt{lixellate}:
Divide each segment of a linear network into smaller segments.
\item \texttt{nsegments.linnet}, \texttt{nsegments.lpp}:
Count the number of line segments in a linear network.
\item \texttt{grow.boxx}:
Expand a multidimensional box.
\item \texttt{deviance.ppm}, \texttt{deviance.lppm}:
Deviance for a fitted point process model.
\item \texttt{pseudoR2}:
Pseudo-R-squared for a fitted point process model.
\item \texttt{tiles.empty}
Checks whether each tile of a tessellation is empty or nonempty.
\item \texttt{summary.linim}:
Summary for a pixel image on a linear network.
\item Determinantal Point Process models:
\begin{itemize}
\item \texttt{dppm}:
Fit a determinantal point process model.
\item \texttt{fitted.dppm}, \texttt{predict.dppm}, \texttt{intensity.dppm}:
prediction for a fitted determinantal point process model.
\item
\texttt{Kmodel.dppm}, \texttt{pcfmodel.dppm}:
Second moments of a determinantal point process model.
\item
\texttt{rdpp}, \texttt{simulate.dppm}:
Simulation of a determinantal point process model.
\item \texttt{logLik.dppm}, \texttt{AIC.dppm}, \texttt{extractAIC.dppm},
\texttt{nobs.dppm}: Likelihood and AIC for
a fitted determinantal point process model.
\item
\texttt{print.dppm}, \texttt{reach.dppm}, \texttt{valid.dppm}:
Basic information about a \texttt{dpp} model.
\item \texttt{coef.dppm}, \texttt{formula.dppm}, \texttt{print.dppm},
\texttt{terms.dppm}, \texttt{labels.dppm},
\texttt{model.frame.dppm}, \texttt{model.matrix.dppm},
\texttt{model.images.dppm}, \texttt{is.stationary.dppm},
\texttt{reach.dppm}, \texttt{unitname.dppm}, \verb!unitname<-.dppm!,
\texttt{Window.dppm}: Various methods for \texttt{dppm} objects.
\item \texttt{parameters.dppm}: Extract meaningful list of model parameters.
\item \texttt{objsurf.dppm}: Objective function surface of
a \texttt{dppm} object.
\item \texttt{residuals.dppm}: Residual measure for a \texttt{dppm} object.
\end{itemize}
\item Determinantal Point Process model families:
\begin{itemize}
\item \texttt{dppBessel}, \texttt{dppCauchy},
\texttt{dppGauss}, \texttt{dppMatern}, \texttt{dppPowerExp}:
Determinantal Point Process family functions.
\item \texttt{detpointprocfamilyfun}:
Create a family function.
\item
\texttt{update.detpointprocfamily}: Set parameter values in a
determinantal point process model family.
\item
\texttt{simulate.dppm}: Simulation.
\item \texttt{is.stationary.detpointprocfamily},
\texttt{intensity.detpointprocfamily}, \texttt{Kmodel.detpointprocfamily},
\texttt{pcfmodel.detpointprocfamily}: Moments.
\item \texttt{dim.detpointprocfamily}, \texttt{dppapproxkernel},
\texttt{dppapproxpcf}, \texttt{dppeigen},
\texttt{dppkernel}, \texttt{dppparbounds}, \texttt{dppspecdenrange},
\texttt{dppspecden}:
Helper functions.
\end{itemize}
\item \texttt{dg.envelope}:
Simulation envelopes corresponding to Dao-Genton test.
\item \texttt{dg.progress}:
Progress plot (envelope representation) for the Dao-Genton test.
\item \texttt{dg.sigtrace}: significance trace for the Dao-Genton test.
\item \texttt{markcrosscorr}:
Mark cross-correlation function for point patterns with
several columns of marks.
\item \texttt{rtemper}:
Simulated annealing or simulated tempering.
\item \texttt{rgb2hsva}:
Convert RGB to HSV data, like \texttt{rgb2hsv}, but preserving transparency.
\item \texttt{superimpose.ppplist}, \texttt{superimpose.splitppp}:
New methods for 'superimpose' for lists of point patterns.
\item \texttt{dkernel}, \texttt{pkernel}, \texttt{qkernel}, \texttt{rkernel}:
Probability density, cumulative probability, quantiles
and random generation from distributions used in basic one-dimensional
kernel smoothing.
\item \texttt{kernel.factor}:
Auxiliary calculations for one-dimensional kernel smoothing.
\item \texttt{spatdim}:
Spatial dimension of any object in the \spst\ package.
\item \texttt{as.boxx}:
Convert data to a multi-dimensional box.
\item \texttt{intensity.ppx}:
Method for \texttt{intensity} for multi-dimensional
space-time point patterns.
\item \texttt{fourierbasis}:
Evaluate Fourier basis functions in any number of dimensions.
\item \texttt{valid}:
New generic function, with methods
\texttt{valid.ppm}, \texttt{valid.lppm}, \texttt{valid.dppm}.
\item \texttt{emend}, \texttt{emend.ppm}, \texttt{emend.lppm}:
New generic function with methods for \texttt{ppm} and \texttt{lppm}.
\texttt{emend.ppm} is equivalent to \texttt{project.ppm}.
\item \texttt{Penttinen}:
New pairwise interaction model.
\item \texttt{quantile.density}:
Calculates quantiles from kernel density estimates.
\item \texttt{CDF.density}:
Calculates cumulative distribution function from kernel density estimates.
\item \texttt{triangulate.owin}: decompose a spatial window into triangles.
\item \texttt{fitted.lppm}: fitted intensity values for a point process
on a linear network.
\item \texttt{parameters}:
Extract all parameters from a fitted model.
\end{itemize}
\section{Alphabetical list of changes}
Here is a list of all changes made to existing functions,
listed alphabetically.
\begin{itemize}
%%A
\item \texttt{adaptive.density}:
This function can now perform adaptive estimation by three methods:
tessellation-based methods, variable-bandwidth kernel estimation,
and nearest-neighbour intensity estimation.
The calculations are performed by \texttt{densityVoronoi},
\texttt{densityAdaptiveKernel} or \texttt{nndensity}.
\item \texttt{affine.owin}:
Allows transformation matrix to be singular, if the window is polygonal.
\item \texttt{alltypes}:
If \texttt{envelope=TRUE} and the envelope computation reaches the
maximum permitted number of errors (\texttt{maxnerr}) in evaluating
the summary function for the simulated patterns, then instead
of triggering a fatal error, the envelope limits will be set to \texttt{NA}.
\item \texttt{anova.mppm}:
\begin{itemize}
\item
Now handles Gibbs models,
and performs the adjusted composite likelihood ratio test.
\item
New argument \texttt{fine}.
\item
Issues a warning when applied to random-effects models
(models fitted using the argument \texttt{random}).
\end{itemize}
\item \texttt{anyDuplicated.ppp}: Accelerated.
\item \texttt{append.psp}: arguments may be \texttt{NULL}.
\item \texttt{applynbd}:
Now works for point patterns in three dimensions (class \texttt{"pp3"})
and point patterns on a network (class \texttt{"lpp"}).
\item \texttt{as.function.tess}:
New argument \texttt{values} specifies the function values.
\item \texttt{as.im}: Many methods for \texttt{as.im}
now have argument \texttt{rule.eps}.
\item \texttt{as.im.distfun}:
New argument \texttt{approx} specifies the choice of algorithm.
\item \texttt{as.im.tess}:
New argument \texttt{values}.
\item \texttt{as.im.function}:
\begin{itemize}
\item New argument \texttt{strict}.
\item New argument \texttt{stringsAsFactors}.
\item
The formal default value of \texttt{stringsAsFactors}
has been changed to \texttt{NULL}
to conform to changes in R. (The actual default value is \texttt{TRUE}
for \texttt{R < 4.1.0} and \texttt{FALSE} for \texttt{R >= 4.1.0}).
\end{itemize}
\item \texttt{as.im.leverage.ppm}:
New argument \texttt{what}.
\item \texttt{as.im.nnfun}:
New argument \texttt{approx} chooses between a fast, approximate algorithm
and a slow, exact algorithm.
\item \texttt{as.im.smoothfun}:
New argument \texttt{approx} chooses between a fast, approximate algorithm
and a slow, exact algorithm.
\item \texttt{as.layered}:
Default method now handles a (vanilla) list of spatial objects.
\item \texttt{as.linfun.lintess}:
\begin{itemize}
\item New argument \texttt{values} specifies the function value for each tile.
\item The default \texttt{values} are the marks, if present.
\item New argument \texttt{navalue}.
\item Computation accelerated.
\end{itemize}
\item \texttt{as.linim.default}:
\begin{itemize}
\item
New arguments \texttt{delta} and \texttt{nd} control spacing of sample points
in internal data.
\item New argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{as.linim.linfun}:
\begin{itemize}
\item New argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{as.linnet.linnet}:
New argument \texttt{maxsize}.
\item \texttt{as.linnet.psp}:
\begin{itemize}
\item
If the line segment pattern has marks, then the resulting linear network
also carries these marks in the \verb!$lines! component.
\item Computation accelerated.
\item The resulting network has attribute \texttt{"camefrom"}
indicating the provenance of each line segment in the network.
\end{itemize}
\item \texttt{as.lpp}: accepts more data formats:
\begin{itemize}
\item
Now handles the case where coordinates
\texttt{seg} and \texttt{tp} are given
but \texttt{x} and \texttt{y} are missing.
\item Now handles the case where \texttt{x} is a data frame
with columns named \texttt{x,y,seg,tp} or
\texttt{x,y} or \texttt{seg,tp}.
\end{itemize}
\item \texttt{as.mask:}
New argument \texttt{rule.eps} specifies what to do when the
desired pixel size is not a divisor of the frame size.
\item \texttt{as.owin.default}:
\begin{itemize}
\item Now refuses to convert a \code{box3} to a two-dimensional window.
\item Now accepts a structure with entries named
\code{xmin},\code{xmax}, \code{ymin}, \code{ymax} in any order.
This handles objects of class \code{bbox} in the \pkg{sf} package.
\item Now detects objects of class \code{SpatialPolygons} and issues a
more helpful error message.
\end{itemize}
\item \texttt{as.owin.data.frame}:
New argument \texttt{step}
\item \texttt{as.polygonal}:
\begin{itemize}
\item
Can now repair errors in polygon data, if \texttt{repair=TRUE}.
\item Accelerated when \texttt{w} is a pixel mask.
\end{itemize}
\item \texttt{as.psp}: now permits a data frame of marks
to have only one column, instead of coercing it to a vector.
\item \texttt{as.rectangle}: accelerated in many cases.
\item \texttt{as.solist}:
The argument \texttt{x} can now be a spatial object;
\texttt{as.solist(cells)} is the same as \texttt{solist(cells)}.
%%B
\item \texttt{bdist.pixels}:
Accelerated for polygonal windows. New argument \texttt{method}.
\item \texttt{bdist.points}:
Accelerated for polygonal windows.
\item \texttt{beachcolours}:
\begin{itemize}
\item Improved positioning of the yellow colour band.
\item If \texttt{sealevel} lies outside \texttt{srange},
then \texttt{srange} will be extended
to include it (without a warning).
\end{itemize}
\item \texttt{beachcolourmap}:
Improved positioning of the yellow colour band.
\item \texttt{bilinearform}: This function has been moved
to the sub-package \texttt{spatstat.sparse}.
\item \texttt{bind.fv}:
\begin{itemize}
\item Additional arguments may be functions in the R language.
\item New argument \texttt{clip}.
\end{itemize}
\item \texttt{blur}:
New argument \texttt{kernel}.
\item \texttt{bw.abram}:
\begin{itemize}
\item
This function is now generic, with a method for class \texttt{ppp}.
\item
Default method added.
\item
New argument \texttt{smoother} determines
how the pilot estimate is computed.
\item
Formal arguments rearranged.
\end{itemize}
\item \texttt{bw.diggle}, \texttt{bw.ppl}, \texttt{bw.relrisk},
\texttt{bw.smoothppp}:
\begin{itemize}
\item
These functions now extract and store the name of the unit of length
from the point pattern dataset. When the bandwidth selection criterion
is plotted, the name of the unit of length is shown on the x-axis.
\item
A warning is issued if the optimal value of the cross-validation criterion
occurs at an endpoint of the search interval.
New argument \texttt{warn}.
\end{itemize}
\item \texttt{bw.ppl}:
\begin{itemize}
\item
New argument \texttt{varcov1} for anisotropic bandwidth selection.
\item
New arguments \texttt{weights} and \texttt{sigma}.
\item New argument \texttt{shortcut} allows faster computation.
\item Argument \texttt{shortcut} now defaults to \texttt{TRUE}.
\item Additional arguments \verb!...! are now passed to \texttt{density.ppp}.
\end{itemize}
\item \texttt{bw.relrisk}:
This function is now generic, with methods for
class \texttt{"ppp"} and \texttt{"lpp"}.
\item \texttt{bw.relrisk.lpp}:
When \texttt{method="likelihood"}, the cross-validation criterion
is now defined as the \underline{\emph{negative}} likelihood. This is consistent with
\texttt{bw.relrisk.ppp}, and ensures that the optimum bandwidth is always
found by minimising the cross-validation criterion.
\item \texttt{bw.relrisk.ppp}:
Additional arguments \texttt{...} are now passed to \texttt{density.ppp}.
\item \texttt{bw.scott}:
\begin{itemize}
\item
the two bandwidth values in the result
now have names \texttt{sigma.x} and \texttt{sigma.y}.
\item Now handles point patterns of any dimension.
\item New arguments \texttt{isotropic} and \texttt{d}.
\end{itemize}
\item \texttt{bw.smoothppp}:
New argument \texttt{varcov1} for anisotropic bandwidth selection.
\item \texttt{bw.stoyan}: The rule has been modified so that,
if the pattern is empty,
it is now treated as if it contained 1 point,
so that a finite bandwidth value is returned.
%%C
\item \texttt{cbind.fv}:
\begin{itemize}
\item Additional arguments may be functions in the R language.
\end{itemize}
\item \texttt{cbind.hyperframe}:
\begin{itemize}
\item
The result now retains the \texttt{row.names}
of the original arguments.
\item
\end{itemize}
\item \texttt{cdf.test}:
\begin{itemize}
\item Calculations are more robust against numerical rounding effects.
\item The methods for classes \texttt{ppp}, \texttt{ppm}, \texttt{lpp},
\texttt{lppm}, \texttt{slrm} have a new argument \texttt{interpolate}.
\item Monte Carlo test runs much faster.
\item More jittering is applied when \texttt{jitter=TRUE}.
Warnings about tied values should not occur any more.
\end{itemize}
\item \texttt{cdf.test.ppm}:
\begin{itemize}
\item
Recognises argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{cdf.test.mppm}:
\begin{itemize}
\item Now handles Gibbs models.
\item Now recognises \texttt{covariate="x"} or \texttt{"y"}.
\end{itemize}
\item \texttt{circdensity}:
Improved output of \texttt{print} method.
\item \texttt{clarkevans}:
The argument \texttt{correction="all"} is now recognised: it selects
all the available options. [This is also the default.]
\item \texttt{clarkevans.test}:
\begin{itemize}
\item
The asymptotic test is now available for any choice of edge correction.
\item
New argument \texttt{method} determines whether to use the asymptotic test
or Monte Carlo test. The default has changed to
\texttt{method="asymptotic"}.
\item
Default edge correction has changed, to avoid bias.
\end{itemize}
\item \texttt{clickpoly}:
The polygon is now drawn progressively as the user clicks new vertices.
\item \texttt{closepairs.ppp}:
New argument \code{periodic}.
\item \texttt{closepairs.ppp}, \texttt{closepairs.pp3}:
\begin{itemize}
\item New arguments \texttt{distinct} and \texttt{neat} allow more options.
\item Argument \texttt{ordered} has been replaced by \texttt{twice}
(but \texttt{ordered} is still accepted, with a warning).
\item
Performance improved (computation time and memory requirements reduced.)
This should improve the performance of many functions in \texttt{spatstat}.
\end{itemize}
\item \texttt{closepairs.pp3}:
Argument \texttt{what} can take the value \texttt{"ijd"}
\item \texttt{clusterset}:
Improved behaviour.
\item \texttt{clusterfit}:
\begin{itemize}
\item
New argument \texttt{algorithm} specifies the choice
of optimisation algorithm.
\item
Changed precedence rule for handling the algorithm parameters
in the minimum contrast algorithm. Individually-named arguments
\texttt{q,p,rmax,rmin} now take precedence over entries
with the same names in the list \texttt{ctrl}.
\item New argument \texttt{verbose}.
\end{itemize}
\item \texttt{colourmap}: argument \texttt{col} have have length 1,
representing a trivial colour map in which all data values are
mapped to the same colour.
\item \texttt{collapse.fv}:
\begin{itemize}
\item
This is now treated as a method for the \texttt{nlme}
generic \texttt{collapse}.
Its syntax has been adjusted slightly.
\item Recognises the abbreviations used by \texttt{fvnames()}.
\end{itemize}
\item \texttt{connected.im}:
Now handles a logical-valued image properly.
Arguments \texttt{...} now determine pixel resolution.
\item \texttt{connected.owin}:
Arguments \texttt{...} now determine pixel resolution.
\item \texttt{contour.im}:
\begin{itemize}
\item
New argument \texttt{col} specifies the colour of the contour lines.
If \texttt{col} is a colour map, then the contours are drawn
in different colours.
\item New argument \texttt{log} specifies whether the contour lines
should be equally spaced on a logarithmic scale.
\end{itemize}
\item \texttt{convolve.im}: the name of the unit of length is preserved.
\item \texttt{crossdist.lpp}:
\begin{itemize}
\item
Now handles much larger networks, using the sparse representation
of the network.
\item
New argument \texttt{check}.
\end{itemize}
\item \texttt{crossing.psp}:
New argument \texttt{details} gives more information about the intersections
between the segments.
\item \texttt{crosspairs.ppp}:
\begin{itemize}
\item New argument \texttt{periodic} specifies whether
to use periodic (toroidal) distances.
\item New arguments \texttt{iX}, \texttt{iY} make it possible to eliminate pairs
in which the two points are identical.
\end{itemize}
\item \texttt{crosspairs.pp3}:
Argument \texttt{what} can take the value \texttt{"ijd"}
\item \texttt{cut.ppp}:
Argument \texttt{z} can be \texttt{"x"} or \texttt{"y"}
indicating one of the spatial coordinates.
%%D
\item \texttt{dclf.test, mad.test, dclf.progress, mad.progress,}
\texttt{dclf.sigtrace, mad.sigtrace},
\texttt{dg.progress, dg.sigtrace}:
\begin{itemize}
\item
New argument \texttt{clamp} determines the test statistic
for one-sided tests.
\item
New argument \texttt{rmin} determines the left endpoint
of the test interval.
\item
New argument \texttt{leaveout} specifies how to calculate
discrepancy between observed and simulated function values.
\item
New argument \texttt{scale} allows summary function values to be rescaled
before the comparison is performed.
\item
New argument \texttt{interpolate} supports interpolation of $p$-value.
\item Function values which are infinite, \texttt{NaN} or \texttt{NA}
are now ignored in the calculation (with a warning) instead of causing
an error. Warning messages are more detailed.
\end{itemize}
\item \texttt{default.rmhcontrol, default.rmhexpand}:
New argument \texttt{w}.
\item \texttt{densityfun.ppp}:
The resulting function can now handle query points which lie
outside the window of the original data,
and has argument \texttt{drop=TRUE} which specifies how to handle them.
\item \texttt{densityEqualSplit}:
New arguments \texttt{at} and \texttt{leaveoneout}
for consistency with other functions.
\item \texttt{densityHeat}:
\begin{itemize}
\item default behaviour has changed slightly.
\item new argument \texttt{finespacing}.
\end{itemize}
\item \texttt{density.lpp}:
\begin{itemize}
\item
Argument \texttt{sigma} can now be a function in the R language,
assumed to provide a bandwidth selection rule. This function
will be applied to the point pattern \texttt{x} to compute the bandwidth.
\item
Argument \texttt{sigma=NULL}
is now accepted. The default value is one-eighth
of the length of the shortest side of the bounding box of \texttt{x}.
\item
New fast algorithm (up to 1000 times faster) for the default case
where \texttt{kernel="gaussian"} and \texttt{continuous=TRUE}.
Generously contributed by Greg McSwiggan.
\item Fast algorithm has been further accelerated.
\item Further accelerated when the point pattern contains duplicated points.
\item
New argument \texttt{kernel} specifies the smoothing kernel.
Any of the standard one-dimensional smoothing kernels can be used.
\item
Now supports both the `equal-split continuous' and
`equal-split discontinuous' smoothers. New argument \texttt{continuous}
determines the choice of smoother.
\item
New arguments \texttt{weights} and \texttt{old}.
\item New argument \texttt{distance} offers a choice of different
kernel methods.
\item Infinite bandwidth (\texttt{sigma=Inf}) is now permitted,
and results in a density estimate that is constant over all locations.
\end{itemize}
\item \texttt{density.ppp}:
\begin{itemize}
\item A non-Gaussian kernel can now be specified
using the argument \texttt{kernel}.
\item Standard error calculation is now available with any smoothing kernel.
\item The interpretation of \texttt{weights} in the calculation of
standard error has changed. New argument \texttt{wtype}
controls this interpretation.
\item Argument \texttt{weights} can now be a pixel image.
\item Infinite bandwidth \texttt{sigma=Inf} is supported.
\item
Accelerated by about 30\% when \texttt{at="pixels"}.
\item Accelerated by about 15\%
in the case where \texttt{at="points"}
and \texttt{kernel="gaussian"}.
\item
Accelerated in the cases where weights are given or \texttt{diggle=TRUE}.
\item New argument \texttt{verbose}.
\end{itemize}
\item \texttt{densityQuick.lpp}:
Argument \texttt{X} changed to \texttt{x} for consistency.
\item \texttt{density.psp}:
\begin{itemize}
\item New argument \texttt{method}.
\item Accelerated by 1 to 2 orders of magnitude.
\end{itemize}
\item \texttt{density.splitppp}: New argument \texttt{weights}.
\item \texttt{dfbetas.ppm}:
\begin{itemize}
\item
For Gibbs models, memory usage has been dramatically reduced,
so the code can handle larger datasets and finer quadrature schemes.
\item
Increased the default resolution of the pixel images.
Spatial resolution can now be controlled by the arguments
\code{dimyx}, \code{eps}.
\item
Recognises argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{diagnose.ppm}:
\begin{itemize}
\item
Infinite values of \texttt{rbord} are now ignored and treated as zero.
This ensures that \texttt{diagnose.ppm} has a sensible default
when the fitted model has infinite reach.
\item Accelerated, when \texttt{type="inverse"}, for models
without a hard core.
\end{itemize}
\item \texttt{diagnose.ppm, plot.diagppm}:
\begin{itemize}
\item
New arguments \texttt{col.neg, col.smooth} control the colour maps.
\item Accelerated, when \texttt{type="inverse"}, for models without
a hard core.
\end{itemize}
\item \texttt{diameter.owin}: accelerated when the window is a rectangle.
\item \texttt{dilation.ppp}:
Improved geometrical accuracy.
Now accepts arguments to control resolution of polygonal approximation.
\item \texttt{dirichletEdges}:
New argument \texttt{clip}.
\item \texttt{discretise}:
\begin{itemize}
\item
New argument \texttt{move.points}
determines whether the point coordinates
are also discretised.
\item New argument \texttt{rule.eps}
\end{itemize}
\item \texttt{discs}:
\begin{itemize}
\item Now accepts a single numeric value for \texttt{radii}.
\item New argument \texttt{npoly}.
\item Accelerated in some cases.
\end{itemize}
\item \texttt{distcdf}:
\begin{itemize}
\item Arguments which are \texttt{NULL} will be treated as missing.
\item New argument \texttt{savedenom}.
\end{itemize}
\item \texttt{distfun}:
\begin{itemize}
\item
When the user calls a distance function
that was created by \texttt{distfun},
the user may now give a \texttt{ppp} or \texttt{lpp}
object for the argument \texttt{x},
instead of giving two coordinate vectors \texttt{x} and \texttt{y}.
\item
New argument \texttt{rule.eps}
\end{itemize}
\item \texttt{distfun.lpp}:
\begin{itemize}
\item New argument \texttt{k} allows computation of $k$-th nearest point.
\item Computation accelerated.
\end{itemize}
\item \texttt{distmap.owin}:
\begin{itemize}
\item New argument \texttt{connect}.
\item
Behaviour has been altered so that, when \texttt{X} is a binary mask, the results of
\texttt{distmap(X, invert=TRUE)} and \texttt{distmap(complement.owin(X))} are identical.
This affects a few pixels close to the edge of the frame.
\end{itemize}
\item \texttt{distmap.ppp}:
New argument \texttt{clip}.
\item \texttt{distmap.psp}:
New arguments \texttt{extras} and \texttt{clip}.
\item \texttt{dppm}:
Changed precedence rule for handling the algorithm parameters
in the minimum contrast algorithm. Individually-named arguments
\texttt{q,p,rmax,rmin} now take precedence over entries
with the same names in the list \texttt{ctrl}.
\item \texttt{duplicated.ppp}: accelerated.
%%E
\item \texttt{edge.Trans}:
New argument \texttt{gW} for efficiency.
\item \texttt{eem}:
The function \texttt{eem} is now generic, with methods for
\texttt{ppm} and \texttt{slrm}.
The function previously named \texttt{eem} is now called \texttt{eem.ppm}.
\item \texttt{effectfun}:
\begin{itemize}
\item
Now works for \texttt{ppm}, \texttt{kppm},
\texttt{lppm}, \texttt{dppm}, \texttt{rppm} and \texttt{profilepl} objects.
\item New argument \texttt{nvalues}.
\item Standard error calculation (\texttt{se.fit=TRUE}) now works
for models fitted with \texttt{use.gam=TRUE}.
\end{itemize}
\item \texttt{envelope}:
\begin{itemize}
\item
All methods for \texttt{envelope} now accept a summary function
in which the function argument is not named \texttt{r}.
This includes functions such as \texttt{transect.im} and \texttt{roc}.
\item
New argument \texttt{clamp} gives greater control
over one-sided envelopes.
\item New argument \texttt{funargs}
\item
New argument \texttt{scale} allows global envelopes to have
width proportional to a specified function of $r$,
rather than constant width.
\item
New argument \texttt{funYargs} contains arguments to the summary function
when applied to the data pattern only.
\item
The argument \texttt{simulate} can now be a function
(such as \texttt{rlabel}). The function will be applied repeatedly
to the original data pattern.
\item \texttt{rejectNA} and \texttt{silent}.
\end{itemize}
\item \texttt{envelope.lpp}, \texttt{envelope.lppm}:
\begin{itemize}
\item
New arguments \texttt{fix.n} and \texttt{fix.marks}
allow envelopes to be computed
using simulations conditional on the observed number of points.
\item New arguments \texttt{maxnerr}, \texttt{rejectNA} and \texttt{silent}.
\end{itemize}
\item \texttt{eval.im}: New argument \texttt{warn}.
\item \texttt{eval.linim}: New argument \texttt{warn}.
\item \texttt{eval.fasp}: automatically generated labels have been improved.
\item \texttt{ewcdf}:
\begin{itemize}
\item
Argument \texttt{weights} can now be \texttt{NULL}.
\item
New arguments \texttt{normalise} and \texttt{adjust}.
\item
Computation accelerated.
\item
The result does not inherit class \texttt{"ecdf"} if
\texttt{normalise=FALSE}.
\end{itemize}
%%F
\item \texttt{Fest}:
Additional checks for errors in input data.
\item \texttt{Finhom}:
\begin{itemize}
\item
A warning is issued if bias is likely to occur because of
undersmoothing.
\item
New arguments \texttt{warn.bias} and \texttt{savelambda}.
\end{itemize}
\item \texttt{fitted.lppm}:
New argument \texttt{leaveoneout}
allows leave-one-out computation of fitted value.
\item \texttt{fitted.ppm}:
\begin{itemize}
\item New option, \texttt{type="link"}.
\item New argument \code{ignore.hardcore}.
\end{itemize}
\item \texttt{fitted.slrm}:
\begin{itemize}
\item New argument \texttt{type} allows calculation of fitted
probabilities, intensities or link function values.
\item
New arguments \texttt{dataonly} and \texttt{leaveoneout}
allow calculation of fitted
values at the data points only,
using leave-one-out calculation if desired.
\end{itemize}
\item \texttt{funxy}:
\begin{itemize}
\item
When the user calls a function that was created by \texttt{funxy},
the user may now give a \texttt{ppp} or \texttt{lpp}
object for the argument \texttt{x},
instead of giving two coordinate vectors \texttt{x} and \texttt{y}.
\item
Functions of class \texttt{"funxy"} can now be applied to
quadrature schemes.
\item
The result now has a \texttt{unitname}, inherited from the argument \texttt{W}.
\end{itemize}
%%G
\item \texttt{Gcross}:
Function labels (shown on the plot legend) have been improved when
\texttt{i = j}.
\item \texttt{Geyer}:
The saturation parameter \texttt{sat} can now be less than 1.
\item \texttt{Ginhom}:
\begin{itemize}
\item
A warning is issued if bias is likely to occur because of
undersmoothing.
\item
New arguments \texttt{warn.bias} and \texttt{savelambda}.
\end{itemize}
\item \texttt{grow.rectangle}:
New argument \texttt{fraction}.
%%H
\item \texttt{harmonise.im}:
The result belongs to classes \texttt{solist} and \texttt{imlist}
so that it can be plotted.
\item \texttt{Hest}:
\begin{itemize}
\item Argument \texttt{X} can now be a pixel image with logical values.
\item New argument \texttt{W}. [Based on code by Kassel Hingee.]
\item Additional checks for errors in input data.
\end{itemize}
\item \texttt{hist.im}: New argument \texttt{xname}.
\item \texttt{hyperframe}:
\begin{itemize}
\item
The formal default value of \texttt{stringsAsFactors}
has been changed to \texttt{NULL}
to conform to changes in R. (The actual default value is \texttt{TRUE}
for \texttt{R < 4.1.0} and \texttt{FALSE} for \texttt{R >= 4.1.0}).
\end{itemize}
%%I
\item \texttt{identify.ppp}:
Automatically starts a new plot device if none is open.
\item \texttt{identify.psp}:
\begin{itemize}
\item Identified segments are highlighted.
\item Automatically starts a new plot device if none is open.
\item
Improved placement of labels.
\item
Arguments can be passed to \texttt{text.default}
to control the plotting of labels.
\end{itemize}
\item \texttt{idw}: Standard errors can now be calculated by
setting \texttt{se=TRUE}.
\item \texttt{imcov}: the name of the unit of length is preserved.
\item \texttt{im.apply}:
\begin{itemize}
\item Computation accelerated
\item New argument \texttt{fun.handles.na}
\item New argument \texttt{check}
\end{itemize}
\item \texttt{influence.ppm}:
For Gibbs models, memory usage has been dramatically reduced,
so the code can handle larger datasets and finer quadrature schemes.
\item \texttt{integral.im}:
\begin{itemize}
\item New argument \texttt{weight} specifies a weight function for the integration.
\item Accelerated in the case where \texttt{domain} is a tessellation.
\end{itemize}
\item \texttt{integral.linfun}:
\begin{itemize}
\item New argument \texttt{weight} specifies a weight function for the integration.
\item New argument \texttt{delta} controls step length of
approximation to integral.
\item New argument \texttt{nd} controls approximate number of sample points
used to calculate integral.
\item Argument \code{domain} can be a tessellation.
\item Now handles complex-valued functions.
\end{itemize}
\item \texttt{integral.linim}:
\begin{itemize}
\item New argument \texttt{weight} specifies a weight function for the integration.
\item Argument \code{domain} can be a tessellation.
\item Now handles complex-valued functions.
\end{itemize}
\item \texttt{integral.msr}:
New argument \texttt{weight} specifies a weight (integrand) for the integration.
\item \texttt{integral.ssf}:
Argument \code{domain} can be a tessellation.
\item \texttt{intensity.ppm}:
\begin{itemize}
\item Intensity approximation is now implemented for
area-interaction model, and Geyer saturation model.
\item Can now calculate the Coeurjolly-Lavancier DPP approximation of intensity.
[Code kindly contributed by Frederic Lavancier]
\item New argument \texttt{approx} specifies the choice of approximation.
\end{itemize}
\item \texttt{interp.im}:
New argument \texttt{bilinear}.
\item \texttt{intersect.lintess}:
Can also compute the intersection between a two-dimensional tessellation
and a linear network (yielding a tessellation on the network).
\item \texttt{intersect.tess}:
New argument \texttt{keepempty}.
\item \texttt{invoke.symbolmap}: new argument \texttt{angleref}.
\item \texttt{iplot}, \texttt{iplot.ppp},
\texttt{iplot.layered}, \texttt{iplot.linnet}, \texttt{iplot.default}:
These interactive plotting functions have been removed from
\pkg{spatstat} into a new package \pkg{spatstat.gui}.
\item \texttt{ippm}:
\begin{itemize}
\item Accelerated.
\item
The internal format of the result has been extended slightly.
\item Improved defaults for numerical algorithm parameters.
\end{itemize}
\item \texttt{istat}:
This interactive analysis function has been removed from \pkg{spatstat}
into a new package \pkg{spatstat.gui}.
%%J
\item \texttt{Jcross}:
Function labels (shown on the plot legend) have been improved when
\texttt{i = j}.
\item \texttt{Jfox}: new argument \texttt{warn.trim}.
\item \texttt{Jinhom}:
\begin{itemize}
\item
A warning is issued if bias is likely to occur because of
undersmoothing.
\item
New arguments \texttt{warn.bias} and \texttt{savelambda}.
\end{itemize}
%%K
\item \texttt{Kcross}:
\begin{itemize}
\item
Function labels (shown on the plot legend) have been improved when
\texttt{i = j}.
\item
Now accepts the option \texttt{correction="periodic"}
to compute the periodic (toroidal) edge correction estimate.
\end{itemize}
\item \texttt{Kcross.inhom}, \texttt{Kdot.inhom}, \texttt{Kmulti.inhom}:
\begin{itemize}
\item
These functions now allow intensity values to be given by
a fitted point process model.
\item
New arguments \texttt{update}, \texttt{leaveoneout}, \texttt{lambdaX}.
\item
Leave-one-out calculation is now implemented
when \texttt{lambbdaX} is a fitted model of class \texttt{"dppm"}.
\end{itemize}
\item \texttt{Kdot}:
Now accepts the option \texttt{correction="periodic"}
to compute the periodic (toroidal) edge correction estimate.
\item \texttt{Kest}
\begin{itemize}
\item
Accelerated computation (for translation and rigid corrections)
when window is an irregular shape.
\item
Calculation of isotropic edge correction for polygonal windows
has changed slightly. Results are believed to be more accurate.
Computation has been accelerated by about 20 percent in typical cases.
\item
Now accepts the option \texttt{correction="periodic"}
to compute the periodic (toroidal) edge correction estimate.
\end{itemize}
\item \texttt{Kest.fft}:
Now has \verb!...! arguments allowing control of spatial resolution.
\item \texttt{Kinhom}:
\begin{itemize}
\item
New argument \texttt{ratio}.
\item
Stops gracefully if \texttt{lambda} contains any zero values.
\item
Leave-one-out calculation is implemented when \texttt{lambda}
is a fitted model of class \texttt{"dppm"}.
\end{itemize}
\item \texttt{Kmulti}:
Now accepts the option \texttt{correction="periodic"}
to compute the periodic (toroidal) edge correction estimate.
\item \texttt{kernel.moment}:
\begin{itemize}
\item New arguments \texttt{mean} and \texttt{sd}.
\item Computation accelerated for \texttt{kernel='cosine'} or
\texttt{'optcosine'}.
\item All cases are now computed using analytic expressions, for
\texttt{m=0,1,2}.
\end{itemize}
\item \texttt{kppm}:
\begin{itemize}
\item
The code for fitting log-Gaussian Cox process models
(\texttt{clusters="LGCP"})
has been re-implemented without using the package \pkg{RandomFields}.
The current code supports the \texttt{"exponential"},
\texttt{"gauss"}, \texttt{"stable"},
\texttt{"gencauchy"} and \texttt{"matern"} covariance models.
\item
Computation accelerated when \texttt{method="palm"} or
\texttt{method="clik2"}.
[Kindly contributed by Bethany Macdonald.]
\item
New argument \texttt{trajectory} specifies whether to save the history
of function evaluations performed by the optimization algorithm.
\item
New argument \texttt{penalised} supports penalised model-fitting
with a penalty against extremely large or small values
of the cluster scale.
\item
New arguments \texttt{ppm.improve.type} and \texttt{ppm.improve.args}.
\item
The first order trend is fitted using a regularized fitting algorithm
when \texttt{ppm.improve.type="enet"}.
\item
New default settings ensure greater numerical stability of the
optimization algorithm against the effects of the scale of the
spatial coordinates. New argument \texttt{stabilize} specifies whether
the optimization algorithm should be numerically stabilized.
\item
Fitting a model with \texttt{clusters="LGCP"} no longer requires the
package \pkg{RandomFields} to be loaded explicitly.
\item
New argument \texttt{algorithm} specifies the choice
of optimisation algorithm.
\item
Left hand side of formula can now involve entries
in the list \texttt{data}.
\item refuses to fit a log-Gaussian Cox model with anisotropic covariance.
\item
A warning about infinite values of the summary function
no longer occurs when the default settings are used.
Also affects \texttt{mincontrast},
\texttt{cauchy.estpcf}, \texttt{lgcp.estpcf}, \texttt{matclust.estpcf},
\texttt{thomas.estpcf}, \texttt{vargamma.estpcf}.
\item
Changed precedence rule for handling the algorithm parameters
in the minimum contrast algorithm. Individually-named arguments
\texttt{q,p,rmax,rmin} now take precedence over entries
with the same names in the list \texttt{ctrl}.
\item
Improved printed output.
\item
Improved numerical robustness.
\end{itemize}
%%L
\item \texttt{latest.news}:
Now prints news documentation for the current major version, by default.
New argument \texttt{major}.
\item \texttt{layout.boxes}: Argument \code{aspect} can be
\code{NA} or \code{Inf} indicating that the aspect ratio
of the boxes is unconstrained.
\item \texttt{Lcross}:
Now accepts the option \texttt{correction="periodic"}
to compute the periodic (toroidal) edge correction estimate.
\item \texttt{Ldot}:
Now accepts the option \texttt{correction="periodic"}
to compute the periodic (toroidal) edge correction estimate.
\item \texttt{Lcross.inhom}, \texttt{Ldot.inhom}:
These functions now allow intensity values to be given by
a fitted point process model.
New arguments \texttt{update}, \texttt{leaveoneout}, \texttt{lambdaX}.
\item \texttt{lengths.psp}:
\begin{itemize}
\item New argument \texttt{squared}.
\item This function will soon be Deprecated in favour of the
new name \verb!lengths_psp!.
\end{itemize}
\item \texttt{Lest}, \texttt{Linhom}, \texttt{Ldot},
\texttt{Lcross}, \texttt{Ldot.inhom}, \texttt{Lcross.inhom}:
These summary functions now have explicit argument \texttt{"correction"}.
\item \texttt{leverage.ppm}:
\begin{itemize}
\item
For Gibbs models, memory usage has been dramatically reduced,
so the code can handle larger datasets and finer quadrature schemes.
\item
Increased the default resolution of the pixel images.
Spatial resolution can now be controlled by the arguments
\code{dimyx}, \code{eps}.
\item
Recognises argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{leverage.ppm}, \texttt{influence.ppm}, \texttt{dfbetas.ppm}:
\begin{itemize}
\item These methods now work for models that were fitted by logistic
composite likelihood (\texttt{method='logi'}).
\item Computation has been vastly accelerated for models
with Geyer interaction
fitted using isotropic or translation edge corrections.
\item Faster computation in many cases.
\item Virtually all models and edge corrections are now supported,
using a ``brute force'' algorithm. This can be slow in some cases.
\end{itemize}
\item \texttt{lgcp.estK}, \texttt{lgcp.estpcf}:
This code for fitting log-Gaussian Cox process models
has been re-implemented without using the package \pkg{RandomFields}.
The current code supports the \texttt{"exponential"},
\texttt{"gauss"}, \texttt{"stable"},
\texttt{"gencauchy"} and \texttt{"matern"} covariance models.
\item \texttt{lineardisc}:
\begin{itemize}
\item New argument \texttt{add}.
\item Default plotting behaviour has changed.
\end{itemize}
\item \texttt{linearK}, \texttt{linearpcf} and relatives: \\
\begin{itemize}
\item substantially accelerated.
\item ratio calculations are now supported.
\item new argument \texttt{ratio}.
\end{itemize}
\item \texttt{linearKEuclidInhom}, \texttt{linearpcfEuclidInhom}:
Argument \texttt{lambda=NULL}
is now interpreted to mean that the intensity
should be estimated by kernel smoothing. A warning is issued that this
is different from the previous behaviour.
\item \texttt{linearKinhom}:
new argument \texttt{normpower}.
\item \texttt{linearKdot.inhom}, \texttt{linearpcfdot.inhom}
Argument \texttt{lambdaI=NULL} or \texttt{lambdadot=NULL}
is now interpreted to mean
that the intensity should be estimated by kernel smoothing.
\item \texttt{linearKcross.inhom}, \texttt{linearpcfcross.inhom}
Argument \texttt{lambdaI=NULL} or \texttt{lambdaJ=NULL}
is now interpreted to mean
that the intensity should be estimated by kernel smoothing.
\item \texttt{linearKinhom}, \texttt{linearpcfinhom}:
\begin{itemize}
\item Argument \texttt{lambda=NULL}
is now interpreted to mean that the intensity
should be estimated by kernel smoothing. A warning is issued that this
is different from the previous behaviour.
\item Changed behaviour when \texttt{lambda} is a fitted model.
\item New arguments \texttt{update} and \texttt{leaveoneout}.
\end{itemize}
\item \texttt{linearpcf}:
new argument \texttt{normpower}.
\item \texttt{linearpcfinhom}:
New arguments \texttt{adjust.sigma}, \texttt{bw} and \texttt{adjust.bw}.
\item \texttt{linearpcfcross.inhom}, \texttt{linearpcfdot.inhom}:
New arguments \texttt{adjust.sigma}, \texttt{bw} and \texttt{adjust.bw}.
\item \texttt{linearpcfEuclidInhom}:
New arguments \texttt{adjust.sigma}, \texttt{bw} and \texttt{adjust.bw}.
\item \texttt{linim}:
\begin{itemize}
\item The image \texttt{Z} is now automatically restricted to the network.
\item New argument \texttt{restrict}.
\end{itemize}
\item \texttt{linnet}:
\begin{itemize}
\item
The internal format of a \texttt{linnet} (linear network) object
has been changed. Existing datasets of class \texttt{linnet}
are still supported. However, computation will be faster if they
are converted to the new format. To convert a linnet object \texttt{L}
to the new format, use \verb!L <- as.linnet(L)!.
\item
If the argument \texttt{edges} is given, then this argument
now determines the
ordering of the sequence of line segments. For example, the \texttt{i}-th
row of \texttt{edges} specifies the \texttt{i}-th line segment in
\texttt{as.psp(L)}.
\item New argument \texttt{warn}.
\item When argument \texttt{edges} is specified, the code now checks
whether any edges are duplicated.
\end{itemize}
\item \texttt{lintess}:
\begin{itemize}
\item Argument \texttt{df} can be missing or \texttt{NULL},
resulting in a tesellation with only one tile.
\item Tessellations can now have marks. New argument \texttt{marks}.
\end{itemize}
\item \texttt{localpcf}:
New argument \texttt{rvalue}.
\item \texttt{localpcfinhom}:
\begin{itemize}
\item New arguments \texttt{update}, \texttt{leaveoneout}, \texttt{rvalue}.
\end{itemize}
\item \texttt{logLik.ppm}:
\begin{itemize}
\item New argument \texttt{absolute}.
\item The warning about pseudolikelihood (`log likelihood not available')
is given only once, and is not repeated in subsequent calls,
within a spatstat session.
\end{itemize}
\item \texttt{logLik.mppm}: new argument \texttt{warn}.
\item \texttt{lohboot}:
\begin{itemize}
\item
Algorithm has been corrected and extended
thanks to Christophe Biscio and Rasmus Waagepetersen.
\item
New arguments \texttt{block}, \texttt{basicboot}, \texttt{Vcorrection}.
\item
Accelerated when the window is a rectangle.
\item
Now works for multitype $K$
functions \texttt{Kcross}, \texttt{Kdot}, \texttt{Lcross}, \texttt{Ldot},
\texttt{Kcross.inhom}, \texttt{Lcross.inhom}
\item
Confidence bands for \texttt{Lest}, \texttt{Linhom},
\texttt{Lcross}, \texttt{Ldot}, \texttt{Lcross.inhom}
are now computed differently.
First a confidence band is computed for the corresponding $K$
function \texttt{Kest}, \texttt{Kinhom}, \texttt{Kcross}, \texttt{Kdot},
\texttt{Kcross.inhom} respectively. Then this is transformed
to a confidence band for the $L$ function by applying the
square root transformation.
\end{itemize}
\item \texttt{lpp}:
\begin{itemize}
\item
The internal format of an \texttt{lpp} object
has been changed. Existing datasets of class \texttt{lpp}
are still supported. However, computation will be faster if they
are converted to the new format. To convert an \texttt{lpp}
object \texttt{X} to the new format, use \verb!X <- as.lpp(X)!.
\item
\texttt{X} can be missing or \texttt{NULL},
resulting in an empty point pattern.
\item
Now handles the case where coordinates
\texttt{seg} and \texttt{tp} are given
but \texttt{x} and \texttt{y} are missing.
\end{itemize}
\item \texttt{lppm}:
\begin{itemize}
\item Covariates can be objects of class \texttt{lintess}.
\item New argument \texttt{random} controls placement of dummy points.
\item Computation accelerated.
\end{itemize}
\item \texttt{lurking.ppm}: accelerated.
\item \texttt{lut}: argument \texttt{outputs} may have length 1,
representing a lookup table in which all data values are mapped
to the same output value.
%%M
\item \texttt{markconnect}:
Accepts the argument \texttt{weights} which is passed to \texttt{markcorr}.
\item \texttt{markcorr}:
\begin{itemize}
\item
New argument \texttt{weights} allows computation of the weighted version
of the mark correlation function.
Weights can be an expression
to be evaluated, or a function, or a pixel image, or a numeric vector.
\item
Now allows negative mark values, when \texttt{normalise=FALSE}.
\end{itemize}
\item \texttt{markcrosscorr}:
Now allows negative mark values, when \texttt{normalise=FALSE}.
\item \texttt{markstat}:
Now works for point patterns in three dimensions (class \texttt{"pp3"})
and point patterns on a network (class \texttt{"lpp"}).
\item \texttt{marktable}:
Now works for point patterns in three dimensions (class \texttt{"pp3"})
and point patterns on a network (class \texttt{"lpp"}).
\item \texttt{markvario}:
Accepts the argument \texttt{weights} which is passed to \texttt{markcorr}.
\item \texttt{mincontrast}:
New argument \texttt{action.bad.values} specifies what action is taken
when the summary function produces \texttt{NA} or \texttt{NaN}
or infinite values.
\item \texttt{minnndist}, \texttt{maxnndist}:
New argument \texttt{by} makes it possible to find the minimum or maximum
nearest neighbour distance between each pair of possible types
in a multitype pattern.
\item \texttt{mppm}:
\begin{itemize}
\item
Now handles models with a random effect component.
(This is covered in \cite[Chap.\ 16]{baddrubaturn15}.)
\item
New argument \texttt{random} is a formula specifying the random effect.
(This is covered in \cite[Chap.\ 16]{baddrubaturn15}.)
\item
Performs more checks for consistency of the input data.
\item
New arguments \texttt{gcontrol} and \texttt{reltol.pql} control
the fitting algorithm.
\item
New argument \texttt{weights} specifies case weights for each row of data.
\end{itemize}
\item \texttt{msr}:
Infinite and \texttt{NA} values are now detected (if \texttt{check=TRUE})
and are reset to zero, with a warning.
%%N
\item \texttt{nbfires}:
\begin{itemize}
\item
the unit of length for the coordinates is now specified in this dataset.
\item This dataset now includes information about the different
land and sea borders of New Brunswick.
\end{itemize}
\item \texttt{nncorr,nnmean,nnvario}:
New argument \texttt{na.action}.
\item \texttt{nncross.lpp}:
\begin{itemize}
\item New argument \texttt{k} allows computation of $k$-th nearest point.
\item Computation accelerated.
\end{itemize}
\item \texttt{nncross.ppp}:
\begin{itemize}
\item slightly accelerated.
% \item new argument \texttt{dmax}.
\item
When \texttt{X} is a point pattern and \texttt{Y} is a line segment pattern,
higher order neighbours (\verb!k > 1!) are now supported.
\end{itemize}
\item \texttt{nndist.pp3}:
New argument \texttt{by} allows computation of the nearest
distance to each group of points.
\item \texttt{nndist.ppx}:
New argument \texttt{by} allows computation of the nearest
distance to each group of points.
\item \texttt{nndist.lpp}:
\begin{itemize}
\item New argument \texttt{k} allows computation of $k$-th nearest point.
\item new argument \texttt{by} allows computation of the nearest
distance to each group of points.
\item Computation accelerated.
\end{itemize}
\item \texttt{nnwhich.lpp}:
\begin{itemize}
\item New argument \texttt{k} allows computation of $k$-th nearest point.
\item new argument \texttt{by} allows computation of the nearest
distance to each group of points.
\item Computation accelerated.
\end{itemize}
\item \texttt{nnfun}: new argument \texttt{rule.eps}.
\texttt{nnfun.lpp}:
\begin{itemize}
\item New argument \texttt{k}.
\item New argument \texttt{value} specifies whether to return the
index of the nearest neighbour or the mark value of the nearest
neighbour.
\end{itemize}
\texttt{nnfun.ppp}:
\begin{itemize}
\item New argument \texttt{value} specifies whether to return the
index of the nearest neighbour or the mark value of the nearest
neighbour.
\end{itemize}
\texttt{nnfun.psp}:
\begin{itemize}
\item New argument \texttt{value} specifies whether to return the
index of the nearest neighbour or the mark value of the nearest
neighbour.
\end{itemize}
%%O
\item \texttt{owin}:
\begin{itemize}
\item
accelerated in many cases.
\item
If argument \texttt{mask} is a logical matrix,
\texttt{NA} entries will be accepted, and converted to \texttt{FALSE}.
\end{itemize}
\item \texttt{owin2mask}:
New options \texttt{op="majority"} and \texttt{op="minority"}.
If \texttt{op="majority"}, a pixel belongs to the resulting mask if
at least half of the pixel area is covered by the window.
%%P
\item \texttt{padimage}:
New argument \texttt{W} allows an image to be padded out to fill any window.
\item \texttt{pairdist.lpp}:
Now handles much larger networks, using the sparse representation
of the network.
\item \texttt{pairorient}: Default edge corrections now include
\texttt{"bord.modif"}.
\item \texttt{pairs.im}: new argument \texttt{drop}.
\item \texttt{parres}:
the argument \texttt{covariate} is allowed to be missing
if the model only depends on one covariate.
\item \texttt{pcf.ppp}:
\begin{itemize}
\item
New argument \code{close} for advanced use.
\item
New argument \texttt{ratio} allows several estimates of pcf to be pooled.
\item
Now calculates an analytic approximation to the variance of
the estimate of the pair correlation function
(when \texttt{var.approx=TRUE}).
\item
Now returns the smoothing bandwidth used, as an attribute of the result.
\item
New argument \texttt{close} for advanced use.
\item Now accepts \texttt{correction="none"}.
\end{itemize}
\item \texttt{pcfcross}, \texttt{pcfdot}, \texttt{pcfmulti}:
New argument \texttt{ratio} makes it possible to save the numerator and
denominator of the function estimates, so that estimates can be pooled.
\item \texttt{pcfcross.inhom}, \texttt{pcfdor.inhom}:
New arguments \texttt{adjust.sigma} and \texttt{adjust.bw} allow
separate adjustment of the one-dimensional smoothing bandwidth \texttt{bw}
and the spatial smoothing bandwidth \texttt{sigma}.
\item \texttt{pcfinhom}:
\begin{itemize}
\item
New arguments \texttt{adjust.sigma} and \texttt{adjust.bw} allow
separate adjustment of the one-dimensional smoothing bandwidth \texttt{bw}
and the spatial smoothing bandwidth \texttt{sigma}.
\item
New argument \code{close} for advanced use.
\item
Default behaviour is changed when \texttt{lambda} is a fitted model.
The default is now to re-fit the model to the data before computing pcf.
New arguments \texttt{update} and \texttt{leaveoneout} control this.
\item
New argument \texttt{close} for advanced use.
\item Now handles \texttt{correction="good"}
\item
Leave-one-out calculation is implemented when \texttt{lambda}
is a fitted model of class \texttt{"dppm"}.
\end{itemize}
\item \code{persp.funxy}:
Improved $z$-axis label.
\item \texttt{pixellate.ppp}:
\begin{itemize}
\item If the pattern is empty, the result is an integer-valued image
(by default) for consistency with the results for non-empty patterns.
\item Accelerated in the case where weights are given.
\item New arguments \texttt{fractional} and \texttt{preserve}
for more accurate discretisation.
\item New argument \texttt{savemap}.
\end{itemize}
\item \texttt{plot.anylist}:
\begin{itemize}
\item
If a list entry \verb!x[[i]]!
belongs to class \texttt{"anylist"}, it will be expanded
so that each entry \verb!x[[i]][[j]]! will be plotted as a separate panel.
\item
New arguments \texttt{panel.begin.args}, \texttt{panel.end.args}
\item Result is now an (invisible) list containing the result
from executing the plot of each panel.
\end{itemize}
\item \texttt{plot.bermantest}:
Improved layout for plots of Berman's \texttt{Z2} test.
\item \texttt{plot.colourmap}:
\begin{itemize}
\item Now handles a colour map for a zero-length interval [a,a]
\item
New argument \texttt{increasing} specifies whether the colours are
displayed in order left-to-right/bottom-to-top.
\item
Changed default behaviour for discrete colour maps
when \texttt{vertical=FALSE}.
\item
New argument \texttt{nticks} controls the number of axis tick marks
when the colourmap is defined on a continuous range of numerical values.
\item
New argument \texttt{box} controls whether a box will be drawn
around the colours.
\end{itemize}
\item \texttt{plot.fv}:
New argument \texttt{clip.xlim}.
\item \texttt{plot.im}:
\begin{itemize}
\item New argument \texttt{addcontour} specifies that contour lines should be drawn
over the image plot.
\item Now handles complex-valued images.
\item New argument \texttt{workaround} to avoid a bug in some MacOS
device drivers that causes the image to be displayed
in the wrong spatial orientation.
\item The number of tick marks in the colour ribbon can now be controlled
using the argument \texttt{nint} in \texttt{ribargs}.
\item Improved behaviour when all pixel values are \texttt{NA}.
\item Improved handling of tickmarks on colour ribbon.
\item Improved behaviour when the image values are almost constant.
\item New argument \texttt{riblab}.
\item Axes are prevented from extending outside the image rectangle.
\item New argument \texttt{zap}.
\item Some warnings are suppressed when \texttt{do.plot=FALSE}.
\end{itemize}
\item \texttt{plot.imlist}:
Result is now an (invisible) list containing the result
from executing the plot of each panel.
\item \texttt{plot.influence.ppm}:
New argument \texttt{multiplot}.
\item \texttt{plot.kppm}:
\begin{itemize}
\item
New arguments \texttt{pause} and \texttt{xname}.
\item
The argument \texttt{what="all"} is now recognised: it selects
all the available options. [This is also the default.]
\end{itemize}
\item \texttt{plot.leverage.ppm}:
\begin{itemize}
\item
New arguments \texttt{multiplot} and \code{what}.
\item
A contour line showing the average value of leverage
is now drawn on the colour ribbon, as well as on the main image.
New argument \texttt{args.contour}.
\end{itemize}
\item \texttt{plot.linfun}:
\begin{itemize}
\item Now passes arguments to the function being plotted.
\item A scale bar is now plotted when \texttt{style="width"}.
\item New argument \texttt{legend}.
\item The return value has a different format.
\end{itemize}
\item \texttt{plot.linim}:
\begin{itemize}
\item The return value has a different format.
\item New argument \texttt{fatten} improves visual appearance
when \texttt{style="colour"}.
\item A scale bar is now plotted when \texttt{style="width"}.
\item When \texttt{style="width"}, negative values are plotted in
red (by default). New argument \texttt{negative.args} controls this.
\item New argument \texttt{zlim} specifies the range of values to be mapped.
\item New explicit argument \texttt{box} determines whether to plot a
bounding box; default is \texttt{FALSE} in all cases.
\end{itemize}
\item \texttt{plot.linnet}:
\begin{itemize}
\item New argument \texttt{adj.main}.
\end{itemize}
\item \texttt{plot.lintess}:
\begin{itemize}
\item Improved plot method, with more options.
\item Modified to display the marks attached to the tiles.
\item Options: \verb!style=c("colour", "width", "image")!.
\end{itemize}
\item \texttt{plot.lpp}:
\begin{itemize}
\item New argument \texttt{adj.main}.
\item New argument \texttt{show.network}.
\item
For a point pattern with continuous marks (``real numbers'')
the colour arguments \texttt{cols}, \texttt{fg}, \texttt{bg} can now
be vectors of colour values, and will be used to determine
the default colour map for the marks.
\item If \texttt{shape="crossticks"}, the points will be drawn as
short line segments perpendicular to the network.
\end{itemize}
\item \texttt{plot.mppm}:
\begin{itemize}
\item New argument \texttt{main}.
\item New argument \texttt{se}.
\end{itemize}
\item \texttt{plot.msr}:
\begin{itemize}
\item Now handles multitype measures.
\item New argument \texttt{multiplot}.
\item New argument \texttt{massthresh}.
\item New arguments \texttt{equal.markscale} and \texttt{equal.ribbon}.
\end{itemize}
\item \texttt{plot.onearrow:}
Graphical parameters, specified when the object was created,
are now taken as the defaults for graphical parameters to the plot.
\item \texttt{plot.owin:}
\begin{itemize}
\item
New argument \texttt{use.polypath} controls how to plot
a filled polygon when it has holes.
\item
New argument \texttt{adj.main} controls the justification of the text
in the main title.
\end{itemize}
\item \texttt{plot.profilepl}:
This function has now been documented, and the graphics improved.
\item \texttt{plot.psp}:
\begin{itemize}
\item Segments can be plotted with widths proportional to their mark values.
\item New argument \texttt{style}.
\item New argument \texttt{col} gives control over the colour map
representing the values of marks attached to the segments.
\item The code for \texttt{style="width"} has been completely rewritten,
so that it no longer depends on \texttt{plot.linim},
and is much more efficient.
\item The formal argument list has been extended.
\end{itemize}
\item \texttt{plot.pp3}:
New arguments \texttt{box.front}, \texttt{box.back}
control plotting of the box.
\item \texttt{plot.ppp}:
\begin{itemize}
\item For multitype point patterns, a warning is issued if
the plot legend does not represent every possible type of point
due to space restrictions.
\item The default colour for the points is now a transparent grey,
if this is supported by the plot device.
\item For a point pattern with continuous marks (``real numbers'')
the colour arguments \texttt{cols}, \texttt{fg}, \texttt{bg} can now
be vectors of colour values, and will be used to determine
the default colour map for the marks.
\item Now recognises graphics parameters for text, such as
\texttt{family} and \texttt{srt}
\item
When \texttt{clipwin} is given, any parts of the boundary
of the window of \texttt{x} that lie inside \texttt{clipwin}
will also be plotted.
\item
Improved placement of symbol map legend when argument \texttt{symap} is given.
\end{itemize}
\item \code{plot.tess}:
\begin{itemize}
\item This plot method can now fill each tile with a different colour.
\item New arguments \code{do.col}, \code{values}, \code{col} and
\code{ribargs}.
Old argument \code{col} has been renamed \code{border} for consistency.
\item Now generates a separate plot panel for each column of marks,
if \texttt{do.col=TRUE}.
\item New argument \texttt{multiplot}.
\item Changed the default values for \code{do.col} and \code{do.labels}.
\end{itemize}
\item \texttt{plot.palmdiag}:
\begin{itemize}
\item Improved calculation of $y$ axis limits.
\item Improved rule for automatic placement of legend.
\end{itemize}
\item \texttt{plot.profilepl} ,\texttt{plot.quadratcount},
\texttt{plot.quadrattest}, \texttt{plot.tess}:
Now recognise graphics parameters for text, such as
\texttt{family} and \texttt{srt}
\item \texttt{plot.solist}:
\begin{itemize}
\item When \texttt{equal.ribbon=TRUE}, the images may now be factor-valued
or character-valued. Character-valued images will be converted
to factor-valued images. The common colour map will combine the
levels of all the factor images.
\item
New arguments \texttt{panel.begin.args}, \texttt{panel.end.args}
\item
Result is now an (invisible) list containing the result
from executing the plot of each panel.
\end{itemize}
\item \texttt{plot.studpermutest}: This existing function now has a
help file.
\item \texttt{plot.symbolmap}:
\begin{itemize}
\item New argument \texttt{colour.only} makes
it possible to display only the colour map information in a symbol map.
\item New argument \texttt{warn}.
\item Issues a warning if the plot of a discrete symbol map does not
represent every possible input value, due to space restrictions.
\item New argument \texttt{nsymbols} controls the number of symbols plotted.
\end{itemize}
\item \code{ponderosa}:
In this installed dataset, the function \code{ponderosa.extra\$plotit}
has changed slightly (to accommodate the
dependence on the package \pkg{spatstat.utils}).
\item \texttt{polynom}: This function now has a help file.
\item \texttt{pool.fv}:
\begin{itemize}
\item
The default plot of the pooled function no longer includes
the variance curves.
\item New arguments \texttt{relabel} and \texttt{variance}.
\end{itemize}
\item \texttt{pool.rat}:
New arguments \texttt{weights}, \texttt{relabel} and \texttt{variance}.
\item \texttt{ppm}:
\begin{itemize}
\item Now supports regularized model-fitting.
\item Huang-Ogata approximate maximum likelihood can be applied to logistic fits.
\item New argument \texttt{improve.type}.
\begin{itemize}
\item Option \texttt{method="ho"} is replaced by \texttt{improve.type="ho"}.
\item Regularized model-fitting is performed when \texttt{improve.type="enet"}.
\item Huang-Ogata approximate maximum likelihood can be applied to logistic fits
by setting \texttt{method="logi"} and \texttt{improve.type="ho"}.
\end{itemize}
\item
Argument \code{interaction} can now be a function that makes an interaction,
such as \code{Poisson}, \code{Hardcore}, \code{MultiHard}.
\item
Argument \texttt{subset} can now be a window (class \texttt{"owin"})
specifying the sub-region of data to which the model should be fitted.
\end{itemize}
\item \texttt{ppm.ppp, ppm.quad}:
\begin{itemize}
\item
New argument \texttt{emend}, equivalent to \texttt{project}.
\item
New arguments \texttt{subset} and \texttt{clipwin}.
\item
New argument \texttt{quad.args} is a list of arguments passed
to \texttt{quadscheme} to control the construction of the quadrature
scheme.
\end{itemize}
\item \code{ppmInfluence}:
The result now belongs to class \code{ppmInfluence}, for which there are
methods for \code{leverage}, \code{influence}, \code{dfbetas}
which extract the desired component.
\item \texttt{ppp}:
\begin{itemize}
\item New argument \texttt{checkdup}.
\item
If the coordinate vectors \code{x} and \code{y} contain \code{NA},
\code{NaN} or infinite values,
these points are deleted with a warning,
instead of causing a fatal error.
\end{itemize}
\item \texttt{pp3}:
New argument \texttt{marks}.
\item \texttt{predict.kppm, residuals.kppm}
Now issues a warning when the calculation ignores the
cluster/Cox component and treats the model as if it were Poisson.
(This currently happens in predict.kppm when se=TRUE or interval != "none",
and in residuals.kppm when type != "raw").
\item \texttt{predict.lppm}:
Argument \texttt{locations} can now be an \texttt{lpp} object.
\item \texttt{predict.mppm}:
\begin{itemize}
\item
The argument \texttt{type="all"} is now recognised: it selects
all the available options. [This is also the default.]
\item Now supports multitype point process models.
\item Improved handling of argument \texttt{newdata}.
\end{itemize}
\item \texttt{predict.ppm}:
\begin{itemize}
\item Now recognises the arguments
\code{dimyx} and \code{eps} for specifying the
resolution of the grid of prediction points.
\item New argument \code{ignore.hardcore}.
\item Accelerated for models fitted with \texttt{method="VBlogi"}
\item Standard error calculation (\texttt{se=TRUE}) now works
for models fitted with \texttt{use.gam=TRUE}.
\end{itemize}
\item \texttt{predict.rhohat}:
New argument \texttt{what} determines which value should be calculated:
the function estimate, the upper/lower confidence limits, or the
standard error.
\item \texttt{print.kppm}: Additional characteristics of the fitted model
are reported,
including the cluster strength \texttt{phi} and the sibling probability.
\item \texttt{print.linim}: More information is printed.
\item \texttt{print.lintess}: Output includes information about marks.
\item \texttt{print.lppm}: The name of the original point pattern dataset
(to which the model was fitted) is now printed.
\item \texttt{print.quad}: More information is printed.
\item \texttt{print.rmhmodel}: More information is printed.
\item \texttt{progressreport}
\begin{itemize}
\item The estimated time of completion is also printed,
if the remaining time is longer than 10 minutes.
\item Behaviour improved.
\item New arguments \texttt{state}, \texttt{tick}, \texttt{showtime}.
\item New option: \verb!style="tk"!
\item New argument \texttt{formula} controls the calculation
of estimated time remaining.
\item
New argument \texttt{savehistory}
specifies whether to save the elapsed times
when the function was called.
\end{itemize}
\item \code{pseudoR2.ppm}, \code{pseudoR2.lppm}:
\begin{itemize}
\item The null model now includes any offset terms, by default.
\item New argument \code{keepoffset}.
\end{itemize}
%%Q
\item \texttt{quadform}: This function has been moved
to the sub-package \texttt{spatstat.sparse}.
\item \texttt{quadratcount.ppp}:
Computation accelerated in some cases.
\item \texttt{quadrat.test.ppm}:
Computation accelerated in some cases.
\item \texttt{quantess}:
\begin{itemize}
\item The covariate \texttt{Z}
can now be \texttt{"rad"} or \texttt{"ang"} representing polar coordinates.
\item New argument \texttt{origin} specifies the origin of polar coordinates.
\item New argument \texttt{eps} controls the accuracy of the calculation.
\end{itemize}
\item \texttt{quantile.ecdf}:
\begin{itemize}
\item Now supports \texttt{type=4} (linear interpolation).
\end{itemize}
\item \texttt{quantile.ewcdf}:
\begin{itemize}
\item Now supports \texttt{type=4} (linear interpolation).
\item
The function is now normalised to the range \verb![0,1]!
before the quantiles are computed.
This can be suppressed by setting \texttt{normalise=FALSE}.
\end{itemize}
\item \texttt{qqplot.ppm}
Argument \texttt{expr} can now be a list of point patterns,
or an envelope object containing a list of point patterns.
%%R
\item Most random generators: now accept \texttt{nsim=0}
and return a zero-length list.
\item \texttt{rbind.hyperframe}:
The result now retains the \texttt{row.names}
of the original arguments.
\item \texttt{rcellnumber}:
New argument \texttt{mu}.
\item \texttt{rebound.owin}: Now preserves unitnames of the objects.
\item \texttt{rescale.owin}, \texttt{rescale.ppp}, \texttt{rescale.psp}:
The geometrical type of the window is now preserved in all cases.
(Previously if the window was polygonal but was equivalent to a
rectangle, the rescaled window was a rectangle.)
\item \texttt{rgbim, hsvim}:
New argument \texttt{A} controls the alpha (transparency) channel.
\item \texttt{rgb2hex, col2hex, paletteindex, is.colour, samecolour,}
\texttt{complementarycolour, is.grey, to.grey}
These colour tools now handle transparent colours.
\item \texttt{rgb2hex}:
New argument \texttt{maxColorValue}
\item \texttt{relrisk.ppp}:
\begin{itemize}
\item
If \texttt{se=TRUE} and \texttt{at="pixels"}, the result belongs
to class \texttt{solist}.
\item
The arguments \texttt{adjust}, \texttt{edge}, \texttt{diggle}
are now explicit formal arguments.
\item
New argument \texttt{weights}.
\item
Ratios which are close to 0/0 are handled more effectively,
reducing the likelihood of strange-looking plots when \texttt{sigma} is very small.
\item Issues a warning if numerical underflow is detected.
\item
The interpretation of \texttt{weights} in the calculation of
standard error has changed. New argument \texttt{wtype}
controls this interpretation.
\item
New argument \texttt{fudge} specifies a constant numeric value
that will be added to each estimate of point process intensity
before calculation of relative risk.
\end{itemize}
\texttt{rhohat}:
\begin{itemize}
\item The result now includes the ``average'' intensity $\overline\rho$.
\item
New options \texttt{smoother="piecewise"}
computes a piecewise-constant estimate of $\rho(z)$.
\item Nonparametric maximum likelihood estimation is now supported,
assuming the intensity is a monotone function of the covariate.
\item
New options \texttt{smoother="increasing"}
and \texttt{smoother="decreasing"} for estimating
a monotone increasing or monotone decreasing curve.
\item
New options \texttt{smoother="mountain"}
and \texttt{smoother="valley"}
for estimating a unimodal function (U-shaped or inverted-U-shaped curve).
\item
New argument \texttt{subset} allows computation for a subset of the data.
\item
New argument \texttt{positiveCI} specifies whether confidence limits
should always be positive.
\item If the covariate is a \texttt{distfun}, the name of the unit of length
is saved and displayed on the plot.
\item New argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{rhohat.lpp}:
\begin{itemize}
\item New argument \texttt{random} controls placement of dummy points.
\item New argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{rhohat.lppm}:
\begin{itemize}
\item New argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item\texttt{rhohat.ppm}:
New argument \texttt{rule.eps} passed to \texttt{as.mask}.
\item \texttt{rjitter.ppp}: If \texttt{trim=TRUE},
the displacement radius will be constrained
to be less than or equal to the distance from the data point
to the window boundary. This guarantees that all displaced points fall
inside the window, and accelerates the computation.
\item \texttt{rlabel}:
\begin{itemize}
\item New argument \texttt{group} specifies that the points are
divided into several groups, and that relabelling is applied
within each group.
\item New arguments \texttt{nsim} and \texttt{drop}.
\item
\texttt{X} can now be a point pattern of any type
(\texttt{ppp}, \texttt{lpp}, \texttt{pp3},
\texttt{ppx}) or a line segment pattern (\texttt{psp}).
\end{itemize}
\item \texttt{rlabel.ppp}:
New argument \texttt{group} specifies that the points are divided into
several groups, and that relabelling is applied within each group.
\item \texttt{rLGCP}:
\begin{itemize}
\item
This function has been completely re-implemented
so that it no longer requires the package \pkg{RandomFields},
which is defunct (and sadly missed).
\item
The current implementation supports only the
\texttt{"exponential"}, \texttt{"gauss"},
\texttt{"stable"}, \texttt{"gencauchy"} and
\texttt{"matern"} covariance functions.
\item
Now recognises argument \texttt{rule.eps} passed to \texttt{as.mask}.
\end{itemize}
\item \texttt{rMaternI, rMaternII}:
These functions can now generate random patterns in
three dimensions and higher dimensions, when the argument
\texttt{win} is of class \texttt{box3} or \texttt{boxx}.
\item \texttt{rMatClust}:
\begin{itemize}
\item Can now perform conditional simulation given a
fixed number of points.
\item New arguments \texttt{n.cond} and \texttt{w.cond}.
\end{itemize}
\item \texttt{rmh}:
\begin{itemize}
\item
Accelerated, in the case where multiple patterns are saved
using \texttt{nsave}.
\item
The printed output of the debugger (invoked by \texttt{snoop=TRUE})
has been improved.
\end{itemize}
\item \texttt{rmh.ppm, rmhmodel.ppm, simulate.ppm}:
A model fitted using the \texttt{Penttinen} interaction can now be simulated.
\item \texttt{rmh.default, rmhmodel.default}:
\begin{itemize}
\item
These functions now recognise \verb!cif='penttinen'!
for the Penttinen interaction.
\item
New arguments \texttt{nsim}, \texttt{saveinfo}.
\item
The printed output of the debugger (invoked by \texttt{snoop=TRUE})
has been improved.
\end{itemize}
\item \texttt{rmhcontrol}:
\begin{itemize}
\item
New parameter \texttt{pstage} determines when to generate
random proposal points.
\item The parameter \texttt{nsave} can now be a vector of integers.
\end{itemize}
\item \texttt{rNeymanScott}:
\begin{itemize}
\item Argument \texttt{lmax} has been replaced by \texttt{kappamax}.
\item New argument 'mumax'.
\end{itemize}
\item \texttt{rose.default}
New argument \texttt{weights}.
\item \texttt{rose}
New arguments \texttt{start} and \texttt{clockwise} specify the convention
for measuring and plotting angles.
\item \texttt{rotmean}:
\begin{itemize}
\item New argument \texttt{padzero}.
\item Default behaviour has changed.
\item Improved algorithm stability.
\item The result now has the same \texttt{unitname} as the input object.
\item New argument \texttt{adjust} controls the smoothing bandwidth.
\end{itemize}
\item \texttt{rpoint}:
New argument \texttt{forcewin} forces the code to use the window
\texttt{win} when \texttt{f} is a pixel image.
\item \texttt{rpoispp}:
Accelerated, when \texttt{lambda} is a pixel image.
\item \texttt{rpoisppx}:
New argument \code{drop}.
\item \texttt{rpoisline}:
Also returns information about the original infinite random lines.
\item \texttt{rpoislpp}:
If \texttt{lambda} is a list of \texttt{"linim"} or \texttt{"linfun"}
objects, then the argument \texttt{L} can be omitted.
\item \texttt{rPoissonCluster}:
Argument \texttt{lmax} has been replaced by \texttt{kappamax}.
\item \texttt{rshift.ppp}, \texttt{rshift.splitppp}:
new argument \texttt{nsim}.
\item \texttt{rSSI}:
\begin{itemize}
\item Accelerated.
\item New argument \texttt{verbose} specifies whether to
print progress reports when \texttt{nsim > 1}.
\end{itemize}
\item \texttt{rStrauss, rHardcore, rStraussHard, rDiggleGratton, rDGS, rPenttinen:}
New argument \texttt{drop}.
\item \texttt{rtemper:} new argument \texttt{track}.
\item \texttt{rthin}
\begin{itemize}
\item
Accelerated, when \texttt{P} is a single number.
\item
\texttt{X} can now be a point pattern of any type
(\texttt{ppp}, \texttt{lpp}, \texttt{pp3},
\texttt{ppx}) or a line segment pattern (\texttt{psp}).
\end{itemize}
\item \texttt{rThomas, rMatClust, rCauchy, rVarGamma}:
\begin{itemize}
\item
These algorithms have been accelerated by several orders of magnitude
in the case where the cluster radius is large.
\item
These functions now offer a choice of simulation algorithms.
\item
Formal arguments have changed.
\item
When the model is approximately Poisson, it is simulated using rpoispp.
This avoids computations which would require huge amounts of memory.
New argument \texttt{poisthresh} controls this behaviour.
\item
New argument \texttt{saveparents}.
\end{itemize}
\item \texttt{runiflpp}, \texttt{rpoislpp}:
The simulation parameters can be determined from an example
point pattern, given as the argument \texttt{ex}.
\item \texttt{runifpointOnLines}, \texttt{rpoisppOnLines}:
New argument \code{drop}.
\item \texttt{runifpointx}:
New argument \code{drop}.
%%S
\item \texttt{selfcut.psp}:
\begin{itemize}
\item Computation accelerated.
\item The result now has an attribute \texttt{"camefrom"}
indicating the provenance of each segment in the result.
\item No longer checks for validity of the resulting segments.
\end{itemize}
\item \texttt{sessionInfo}:
Output now includes a list of packages that are imported but not loaded.
\item \texttt{sessionLibs}:
Package names are now sorted alphabetically
\item \texttt{setcov}: the name of the unit of length is preserved.
\item \code{shapley}:
In this installed dataset, the function \code{shapley.extra\$plotit}
has changed slightly (to accommodate the
dependence on the package \pkg{spatstat.utils}).
\item \texttt{shift.im}, \texttt{shift.owin},
\texttt{shift.ppp}, \texttt{shift.psp}:
More options for the argument \texttt{origin}.
\item Simulation:
Several basic simulation algorithms have been accelerated.
Consequently, simulation outcomes are not identical to
those obtained with previous versions of \spst, even when the
same random seed is used. To ensure compatibility with previous
versions of spatstat, revert to the slower code by setting
\texttt{spatstat.options(fastthin=FALSE, fastpois=FALSE)}.
\item \texttt{simulate.kppm}:
\begin{itemize}
\item
For log-Gaussian Cox process models (\texttt{clusters="LGCP"})
the simulation algorithm has been completely re-implemented
without using the package \pkg{RandomFields}.
The current code supports the \texttt{"exponential"},
\texttt{"gauss"}, \texttt{"stable"},
\texttt{"gencauchy"} and \texttt{"matern"} covariance models.
\item Conditional simulation of the model,
given a fixed number of points,
is now supported using the new arguments \texttt{n.cond}
and \texttt{w.cond}.
\item
Additional arguments \verb!...! are now passed to
the function that performs the simulation.
\end{itemize}
\item \texttt{simulate.ppm}:
\begin{itemize}
\item
New argument \texttt{w} controls the window of the simulated patterns.
\item
New argument \texttt{verbose}.
\item
Now recognises the argument \texttt{window} as an alternative to
\texttt{w}.
\end{itemize}
\item \texttt{slrm}:
\begin{itemize}
\item In the default case (where \texttt{dataAtPoints} is not given)
all spatial covariates,
including the spatial coordinates \texttt{x} and \texttt{y},
are now evaluated at the centre of each pixel. This improves
consistency with other implementations of spatial logistic regression.
\item
Silently ignores any arguments \verb!'...'!
that are not recognised by \texttt{as.mask}
\end{itemize}
\item \texttt{Smooth.ppp}:
\begin{itemize}
\item A non-Gaussian kernel can now be specified
using the argument \texttt{kernel}.
\item Argument \texttt{weights} can now be a pixel image, a function,
a numeric vector or an expression to be evaluated.
\item Infinite bandwidth \texttt{sigma=Inf} is supported.
\item Accelerated by about 30\% in the case where \texttt{at="pixels"}.
\item Accelerated by about 15\% in the case where \texttt{at="points"}
and \texttt{kernel="gaussian"}.
\item Now exits gracefully if any mark values are \texttt{NA}, \texttt{NaN}
or \texttt{Inf}.
\item New argument \texttt{geometric} supports geometric-mean smoothing.
\item The arguments \texttt{adjust}, \texttt{edge}, \texttt{diggle}
and \texttt{kernel}
are now explicit formal arguments.
\item Standard error calculation is now supported (Experimental).
\end{itemize}
\item \texttt{solist}:
New argument \verb!.NameBase!
\item \texttt{spatialcdf}:
\begin{itemize}
\item
Computation accelerated.
\item
The result does not inherit class \texttt{"ecdf"} if
\texttt{normalise=FALSE}.
\end{itemize}
\item \texttt{spatstat.options}
New options \texttt{fastthin} and \texttt{fastpois}
enable fast simulation algorithms.
Set these options to \texttt{FALSE} to reproduce results obtained with
previous versions of \spst.
\item \texttt{split.ppp}, \texttt{split.ppx}:
The splitting variable \texttt{f} can now be a logical vector.
\item \verb!split<-.ppp!:
The default for argument \texttt{un} in \verb!split<-.ppp!
now agrees with the default for the same argument in \texttt{split.ppp}.
\item \texttt{square}:
Handles a common error in the format of the arguments.
\item \texttt{step}: now works for models of class \texttt{"mppm"}.
\item \texttt{stieltjes}:
Argument \texttt{M} can be a stepfun object (such as an empirical CDF).
\item \texttt{subset.ppp}, \texttt{subset.lpp}, \texttt{subset.pp3},
\texttt{subset.ppx}:
The argument \texttt{subset} can now be any argument acceptable to
the \verb!"["! method.
\item \texttt{Summary.linim} (methods for the operations \texttt{range}, \texttt{max},
\texttt{min} etc):
Recognises the argument \texttt{finite} so that
\texttt{range(x, finite=TRUE)} works for a linim object \texttt{x}.
\item summary functions:
The argument \texttt{correction="all"} is now recognised: it selects
all the available options.
\begin{quote}
This applies to
\texttt{Fest}, \texttt{F3est}, \texttt{Gest},
\texttt{Gcross}, \texttt{Gdot}, \texttt{Gmulti}, \texttt{G3est},
\texttt{Gfox}, \texttt{Gcom}, \texttt{Gres}, \texttt{Hest},
\texttt{Jest}, \texttt{Jmulti}, \texttt{Jcross}, \texttt{Jdot},
\texttt{Jfox}, \texttt{Kest}, \texttt{Kinhom},
\texttt{Kmulti}, \texttt{Kcross}, \texttt{Kdot}, \texttt{Kcom},
\texttt{Kres},
\texttt{Kmulti.inhom}, \texttt{Kcross.inhom},
\texttt{Kdot.inhom}, \texttt{Kscaled}, \texttt{Ksector},
\texttt{Kmark}, \texttt{K3est}, \texttt{Lscaled}, \texttt{markcorr},
\texttt{markcrosscorr},
\texttt{nnorient}, \texttt{pairorient}, \texttt{pcfinhom},
\texttt{pcfcross.inhom}, \texttt{pcfcross}, \texttt{pcf},
\texttt{Tstat}.
\end{quote}
\item \texttt{summary.distfun}, \texttt{summary.funxy}:
\begin{itemize}
\item More information is printed.
\item Pixel resolution can now be controlled.
\end{itemize}
\item \texttt{summary.im}:
Output improved when the image is empty (i.e. when all pixel values
are undefined).
\item \texttt{summary.kppm}:
prints more information about algorithm convergence.
\item \texttt{summary.lintess}:
prints information about marks.
\item \texttt{summary.lppm}: The name of the original point pattern dataset
(to which the model was fitted) is now printed.
\item \texttt{summary.mppm}:
Improved summary of the dependence of the
interpoint interaction on the covariates.
\item \texttt{summary.ppm}:
New argument \texttt{fine} selects the algorithm for variance estimation.
\item \texttt{summary.owin}, \texttt{summary.im}:
The fraction of frame area that is occupied by the window/image
is now reported.
\item \texttt{sumouter}:
\begin{itemize}
\item New argument \texttt{y} allows computation of asymmetric outer products.
\item This function has now been moved to the
sub-package \texttt{spatstat.sparse}
\end{itemize}
\item \texttt{symbolmap}:
\begin{itemize}
\item
Now accepts a vector of colour values for the arguments \texttt{col},
\texttt{cols}, \texttt{fg}, \texttt{bg} if the argument \texttt{range}
is given.
\item New option: \texttt{shape="arrows"}.
\end{itemize}
%%T
\item \texttt{tess}:
Argument \texttt{window} is ignored when xgrid, ygrid are given.
\item \texttt{texturemap}:
Argument \texttt{textures} can be missing or NULL.
\item \texttt{textureplot}:
Argument \texttt{x} can now be something acceptable to \texttt{as.im}.
\item \texttt{thinNetwork}:
\texttt{X} can be a pixel image on a network.
\item \texttt{tilenames}, \verb!tilenames<-!:
These functions are now generic, with methods for \texttt{tess}
and \texttt{lintess}.
\item \texttt{to.grey}
New argument \texttt{transparent}.
\item \texttt{transect.im}: new argument \texttt{nsample}.
%%U
\item \texttt{union.owin}:
Improved behaviour when there are more than 2 windows.
\item \texttt{unnormdensity}:
\begin{itemize}
\item Suppress annoying warning messages from \texttt{density.default}.
This affects many functions in the \spst\ family of packages.
\item Argument \texttt{weights} may have length 1.
\item New argument \texttt{defaults}.
\item Computation accelerated.
\end{itemize}
\item \texttt{unstack.lintess}: now handles marks.
\item \texttt{update}: now works for models of class \texttt{"mppm"}.
\item \texttt{update.kppm}:
\begin{itemize}
\item New argument \texttt{evaluate}.
\item Now handles additional arguments in any order, with or without names.
\item Changed arguments.
\item Improved behaviour.
\end{itemize}
\item \texttt{update.ppm}:
For the case \texttt{update(model, X)} where \texttt{X} is a point pattern,
if the window of \texttt{X} is different from the original window,
then the model is re-fitted from scratch (i.e. \texttt{use.internal=FALSE}).
%%V
\item \texttt{valid.ppm}
This is now a method for the generic function \texttt{valid}.
\item \texttt{varcount}:
New argument \texttt{relative} supports calculation of the
overdispersion index.
\item \texttt{vcov.mppm}:
\begin{itemize}
\item Now handles models with Gibbs interactions.
\item New argument \texttt{nacoef.action} specifies what to do
if some of the fitted coefficients are \texttt{NA}, \texttt{NaN}
or \texttt{Inf}.
\end{itemize}
\item \texttt{vcov.ppm}:
\begin{itemize}
\item
Performance slightly improved, for Gibbs models.
\item Variance calculations now handle larger datasets
because they use sparse arrays, by default.
\item New argument \texttt{nacoef.action} specifies what to do if
some of the fitted model coefficients are \texttt{NA}, \texttt{NaN}
or infinite.
\end{itemize}
%%W
%%X
%%Y
%%Z
\item \verb![<-.hyperframe!:
Improved error message when the format of the index is not supported.
\item \verb![<-.im!
\begin{itemize}
\item
Accepts an array for \texttt{value}.
\item
The subset index \texttt{i} can now be a linear network.
Then the result of \verb!x[i, drop=FALSE]! is a pixel image of
class \texttt{linim}.
\item New argument \texttt{drop} controls behaviour when indices are missing
as in \verb!x[] <- value!
\end{itemize}
\item \verb![.layered!:
\begin{itemize}
\item
Subset index \texttt{i} can now be an \texttt{owin} object.
\item Additional arguments \verb!...! are now passed to other methods.
\end{itemize}
\item \verb![.leverage.ppm!:
New argument \texttt{update}.
\item \verb![.linnet!:
\begin{itemize}
\item
New argument \texttt{snip} determines what to do with segments
of the network that cross the boundary of the window.
Default behaviour has changed.
\item More robust against artefacts when the subset index is a pixel mask.
\end{itemize}
\item \verb![.linim!:
\begin{itemize}
\item More robust against artefacts.
\item Accelerated.
\end{itemize}
\item \verb![.lpp!:
New argument \texttt{snip} determines what to do with segments
of the network that cross the boundary of the window.
Default behaviour has changed.
\item \verb![.ppx!:
\begin{itemize}
\item
The subset index \texttt{i} may now be a spatial domain
of class \texttt{boxx} or \texttt{box3}.
\item
New argument \texttt{clip}.
\end{itemize}
\item \verb![.ppp!:
\begin{itemize}
\item
New argument \texttt{clip} determines whether the window is clipped.
\item
The previously-unused argument \texttt{drop} now determines whether
to remove unused levels of a factor.
\end{itemize}
\item \verb![.pp3!, \verb![.lpp!, \verb![.ppx!,
\texttt{subset.ppp, subset.pp3, subset.lpp, subset.ppx}:
These methods now have an argument \texttt{drop} which determines
whether to remove unused levels of a factor.
\item \verb![.psp!:
\begin{itemize}
\item accelerated.
\item
New argument \texttt{fragments} specifies whether to keep fragments of
line segments that are cut by the new window, or only to retain
segments that lie entirely inside the window.
\end{itemize}
\item \verb![.solist!:
Subset index \texttt{i} can now be an \texttt{owin} object.
\end{itemize}
\begin{thebibliography}{1}
\bibitem{badd10wshop}
A.~Baddeley.
\newblock Analysing spatial point patterns in {{R}}.
\newblock Technical report, CSIRO, 2010.
\newblock Version 4.
\newblock URL \texttt{https://research.csiro.au/software/r-workshop-notes/}
\bibitem{baddrubaturn15}
A. Baddeley, E. Rubak, and R. Turner.
\newblock {\em Spatial Point Patterns: Methodology and Applications with {{R}}}.
\newblock Chapman \& Hall/CRC Press, 2015.
\end{thebibliography}
\vspace*{\fill}
\noindent
Current total package size:
\Sexpr{currentcount[["ndatasets"]]} datasets,
\Sexpr{currentcount[["nobjects"]]} functions,
\Sexpr{currentcount[["Rlines"]]} lines of R,
\Sexpr{currentcount[["srclines"]]} lines of C,
\Sexpr{currentcode} total lines of code.
\end{document}