CHANGES IN spatstat VERSION 1.21-6 OVERVIEW o A line segment pattern can now have a data frame of marks. o Various minor extensions and alterations in behaviour NEW FUNCTIONS o nsegments Number of segments in a line segment pattern SIGNIFICANT USER-VISIBLE CHANGES o psp class A line segment pattern (object of class 'psp') can now have a data frame of marks. o density.ppp New argument 'adjust' makes it easy to adjust the smoothing bandwidth o plot.envelope If the upper envelope is NA but the lower envelope is finite, the upper limit is now treated as +Infinity o msr Argument 'continuous' renamed 'density' BUG FIXES o [.psp In X[W] if X is a line segment pattern and W is a polygonal window, marks were sometimes discarded, leading to an error. Fixed. o [.psp In X[W] if X is a line segment pattern and W is a rectangular window, if the marks of X were factor values, they were converted to integers. Fixed. o superimposePSP If the marks were a factor, they were mistakenly converted to integers. Fixed. o is.marked.ppp Did not generate a fatal error when na.action="fatal" as described in the help file. Fixed. CHANGES IN spatstat VERSION 1.21-5 OVERVIEW o Increased numerical stability. o New 'self-starting' feature of interpoint interactions. SIGNIFICANT USER-VISIBLE CHANGES o ppm Interaction objects may now be 'self-starting' i.e. initial parameter estimates can be computed from the point pattern dataset. So far, only the LennardJones() interaction has a self-starting feature. o LennardJones Increased numerical stability. New (optional) scaling argument 'sigma0'. Interpoint distances are automatically rescaled using 'self-starting' feature. o vcov.ppm New argument 'matrix.action' controls what happens when the matrix is ill-conditioned. Changed name of argument 'gamaction' to 'gam.action' o rmhmodel.ppm Default resolution of trend image has been increased. o is.poisson.ppm Accelerated. o ppm, kppm, qqplot.ppm Improved robustness to numerical error CHANGES IN spatstat VERSION 1.21-4 OVERVIEW o Urgent bug fix BUGS o print.summary.ppm exited with an error message, if the model had external covariates. Fixed. CHANGES IN spatstat VERSION 1.21-3 OVERVIEW o Point process model covariates may now depend on additional parameters. o New class of signed measures, for residual analysis. o Miscellaneous improvements and bug fixes. NEW FUNCTIONS o clarkevans.test Classical Clark-Evans test of randomness o msr New class 'msr' of signed measures and vector-valued measures supporting residual analysis. o quadrat.test.quadratcount Method for 'quadrat.test' for objects of class 'quadratcount' (allows a chi-squared test to be performed on quadrat counts rather than recomputing from the original data) o tile.areas Computes areas of tiles in a tessellation (efficiently) SIGNIFICANT USER-VISIBLE CHANGES o ppm The spatial trend can now depend on additional parameters. This is done by allowing spatial covariate functions to have additional parameters: function(x, y, ...) where ... is controlled by the new argument 'covfunargs' to ppm o profilepl Can now maximise over trend parameters as well as interaction parameters o residuals.ppm The value returned by residuals.ppm is now an object of class 'msr'. It can be plotted directly. o eval.im When the argument 'envir' is used, eval.im() now recognises functions as well as variables in 'envir' o colourmap The argument 'col' can now be any kind of colour data o persp.im The 'colmap' argument can now be a 'colourmap' object o ppm The print and summary methods for 'ppm' objects now show standard errors for parameter estimates if the model is Poisson. o quadrat.test The print method for 'quadrattest' objects now displays information about the quadrats o lurking Improved format of x axis label o distmap.ppp Internal code is more robust. BUGS o im Did not correctly handle 1 x 1 arrays. Fixed. o as.mask, pixellate.ppp Weird things happened if the argument 'eps' was set to a value greater than the size of the window. Fixed. CHANGES IN spatstat VERSION 1.21-2 OVERVIEW o New multitype hardcore interaction. o Nonparametric estimation of covariate effects on point patterns. o Output of 'Kmeasure' has been rescaled. o Numerous improvements and bug fixes. NEW FUNCTIONS o MultiHard multitype hard core interaction for use in ppm() o coords<- Assign new coordinates to the points in a point pattern o rhohat Kernel estimate for the effect of a spatial covariate on point process intensity SIGNIFICANT USER-VISIBLE CHANGES o as.ppp.matrix, as.ppp.data.frame These methods for 'as.ppp' now accept a matrix or data frame with any number of columns (>= 2) and interpret the additional columns as marks. o Kmeasure The interpretation of the output has changed: the pixel values are now density estimates. o rmh.ppm, rmhmodel.ppm These functions now accept a point process model fitted with the 'MultiHard' interaction o rmh.default, rmhmodel.default These functions now accept the option: cif='multihard' defining a multitype hard core interaction. o markcorr Now handles a data frame of marks o varblock Improved estimate in the case of the K function o colourmap, lut New argument 'range' makes it easier to specify a colour map or lookup table o [<-.hyperframe Now handles multiple columns o plot.fv Improved y axis labels o spatstat.options New option 'par.fv' controls default parameters for line plotting o rmhmodel More safety checks on parameter values. o quadratresample New argument 'verbose' o smooth.fv Default value of 'which' has been changed. BUGS o Kest If the argument 'domain' was used, the resulting estimate was not correctly normalised. Fixed. o Kest The Lotwick-Silverman variance approximation was incorrectly calculated. (Spotted by Ian Dryden and Igor Chernayavsky). Fixed. o plot.owin, plot.ppp Display of binary masks was garbled if the window was empty or if it was equivalent to a rectangle. Fixed. o plot.bermantest One of the vertical lines for the Z1 test was in the wrong place. Fixed. o marks<-.ppx Crashed in some cases. Fixed. o is.convex An irrelevant warning was issued (for non-convex polygons). Fixed. CHANGES IN spatstat VERSION 1.21-1 OVERVIEW o Confidence intervals for K-function and other statistics o Bug fixes for smoothing and relative risk estimation NEW FUNCTIONS o varblock Variance estimation (and confidence intervals) for summary statistics such as Kest, using subdivision technique o bw.stoyan Bandwidth selection by Stoyan's rule of thumb. o which.max.im Applied to a list of images, this determines which image has the largest value at each pixel. o as.array.im Convert image to array SIGNIFICANT USER-VISIBLE CHANGES o smooth.ppp, markmean, sharpen.ppp, relrisk, bw.relrisk Further acceleration achieved. o Kest Argument 'correction' now explicitly overrides automatic defaults o plot.fv More robust handling of 'shade' BUGS o relrisk Format of relrisk(at="points") was incorrect. Fixed. o bw.relrisk Result was incorrect in the default case method="likelihood" because of previous bug. Fixed. o Jdot, Jcross, Jmulti Return value did not include the hazard function, when correction="km" Fixed. o Jdot, Jcross, Jmulti Format of output was incompatible with format of Jest. Fixed. CHANGES IN spatstat VERSION 1.21-0 OVERVIEW o Implemented Spatial Logistic Regression o Implemented nonparametric estimation of relative risk with bandwidth selection by cross-validation. o Smoothing functions can handle a data frame of marks. o New options in Kinhom; default behaviour has changed. NEW FUNCTIONS o slrm Fit a spatial logistic regression model o anova.slrm, coef.slrm, fitted.slrm, logLik.slrm, plot.slrm, predict.slrm Methods for spatial logistic regression models o relrisk Nonparametric estimation of relative risk o bw.relrisk Automatic bandwidth selection by cross-validation o default.rmhcontrol Sets default values of Metropolis-Hastings parameters SIGNIFICANT USER-VISIBLE CHANGES o smooth.ppp, markmean These functions now accept a data frame of marks. o Kinhom Default behaviour has changed. New argument 'renormalise=TRUE' determines scaling of estimator and affects bias and variance in small samples. o residuals.ppm Now also computes the score residuals. o plot.im New argument 'ribscale' o plot.listof, plot.splitppp New arguments panel.begin, panel.end and panel.args o ppp Now checks for NA/NaN/Inf values in the coordinates o envelope.ppm Changed default value of 'control' New argument 'nrep' o qqplot.ppm Changed default value of 'control' BUGS o marks<-.ppp, setmarks, %mark% A matrix of marks was accepted by ppp() but not by these assignment functions. Fixed. o density.ppp, smooth.ppp, sharpen.ppp, markmean Crashed if the bandwidth was extremely small. Fixed. CHANGES IN spatstat VERSION 1.20-5 OVERVIEW o Accelerated computations of kernel smoothing. o Implemented Choi-Hall data sharpening. NEW FUNCTIONS o sharpen.ppp Performs Choi-Hall data sharpening of a point pattern SIGNIFICANT USER-VISIBLE CHANGES o density.ppp, smooth.ppp Computation has been vastly accelerated for density(X, at="points") and smooth.ppp(X, at="points") o Kinhom Accelerated in case where lambda=NULL o Vignette 'shapefiles' updated CHANGES IN spatstat VERSION 1.20-4 OVERVIEW o New functions for inhomogeneous point patterns and local analysis. o Pair correlation function for 3D point patterns o Minor improvements and bug fixes to simulation code and image functions NEW FUNCTIONS o pcf3est Pair correlation function for 3D point patterns. o Kscaled, Lscaled Estimator of the template K function (and L-function) for a locally-scaled point process. o localpcf Local version of pair correlation function o identify.psp Method for 'identify' for line segment patterns. o as.im.matrix Converts a matrix to a pixel image SIGNIFICANT USER-VISIBLE CHANGES o rMaternI, rMaternII New argument 'stationary=TRUE' controls whether the simulated process is stationary (inside the simulation window). Default simulation behaviour has changed. o im New arguments 'xrange', 'yrange' o envelope Improvements to robustness of code. BUGS o quadratcount If V was a tessellation created using a factor-valued image, quadratcount(X, tess=V) crashed with the error "Tessellation does not contain all the points of X". Fixed. o [.im If Z was a factor valued image and X was a point pattern then Z[X] was not a factor. Fixed. CHANGES IN spatstat VERSION 1.20-3 OVERVIEW o minor improvements (mostly internal). NEW FUNCTIONS o unmark.ppx Method for 'unmark' for general space-time point patterns SIGNIFICANT USER-VISIBLE CHANGES o plot.ppx Now handles marked patterns, in two-dimensional case o as.psp.psp Default value of argument 'check' set to FALSE CHANGES IN spatstat VERSION 1.20-2 OVERVIEW o Extensions to minimum contrast estimation. o Bug fix in simulation of Lennard-Jones model. o More support for distance functions. o Changes to point process simulations. NEW FUNCTIONS o thomas.estpcf Fit Thomas process model by minimum contrast using the pair correlation function (instead of the K-function). o matclust.estpcf Fit Matern Cluster model by minimum contrast using the pair correlation function (instead of the K-function). o lgcp.estpcf Fit log-Gaussian Cox process model by minimum contrast using the pair correlation function (instead of the K-function). o contour.distfun, persp.distfun Methods for 'contour' and 'persp' for distance functions o default.expand Computes default window for simulation of a fitted point process model. SIGNIFICANT USER-VISIBLE CHANGES o kppm Models can now be fitted using either the K-function or the pair correlation function. o ppm The list of covariates can now include windows (objects of class 'owin'). A window will be treated as a logical covariate that equals TRUE inside the window and FALSE outside it. o plot.distfun Pixel resolution can now be controlled. o envelope.ppm, qqplot.ppm The default value of 'control' has changed; simulation results may be slightly different. o rmh Slightly accelerated. BUGS o rmh Simulation of the Lennard-Jones model (cif = 'lennard') was incorrect due to an obscure bug, introduced in spatstat 1.20-1. Fixed. o thomas.estK, matclust.estK, lgcp.estK The value of 'lambda' (if given) was ignored if X was a point pattern. Fixed. CHANGES IN spatstat VERSION 1.20-1 OVERVIEW o Further increases in speed and efficiency of ppm and rmh o New pairwise interaction model NEW FUNCTIONS o DiggleGatesStibbard Diggle-Gates-Stibbard pairwise interaction for use in ppm() SIGNIFICANT USER-VISIBLE CHANGES o ppm has been accelerated by a factor of 10 for the BadGey interaction. o rmh simulation of the Lennard-Jones model (cif='lennard') has been greatly accelerated. o rmh, rmhmodel.ppm Point process models fitted by ppm() using the DiggleGatesStibbard interaction can be simulated automatically using rmh. BUG FIXES o fitin The plot of a fitted Hardcore interaction was incorrect. Fixed. CHANGES IN spatstat VERSION 1.20-0 OVERVIEW o spatstat now contains over 1000 functions. o Substantial increase in speed and efficiency of model-fitting code. o Changes to factor-valued images. SIGNIFICANT USER-VISIBLE CHANGES o ppm has been accelerated by a factor of 10, and can handle datasets with 20,000 points, for the following interactions: DiggleGratton, Fiksel, Geyer, Hardcore, Strauss, StraussHard o predict.ppm accelerated by a factor of 3 (when type = "cif") with vastly reduced memory requirements for the following interactions: DiggleGratton, Fiksel, Geyer, Hardcore, Strauss, StraussHard o pixel images (class "im") The internal representation of factor-valued images has changed. Existing objects in the old format should still work. o im The syntax for creating a factor-valued image has changed. Argument 'lev' has been deleted. o ppm Some warnings have been reworded for greater clarity. BUG FIXES o [.im Mishandled some factor-valued images. Fixed. o hist.im Produced slightly erroneous output for some factor-valued images. Fixed. o plot.owin Filled polygons appeared to contain criss-cross lines on some graphics drivers. Fixed. o deltametric Did not handle windows with different enclosing frames (error message: 'dA and dB are incompatible') Fixed. o quadratcount Crashed if the pattern was empty and the window was a rectangle. (Noticed by Sandro Azaele) Fixed. o rNeymanScott Crashed if the parent process realisation was empty. (Noticed by Sandro Azaele) Fixed. CHANGES IN spatstat VERSION 1.19-3 ACKNOWLEDGEMENTS o We thank David Dereudre for contributions. OVERVIEW o Urgent bug fix to Metropolis-Hastings for Lennard-Jones model. o Miscellaneous additions to plotting and colour management. NEW FUNCTIONS o col2hex, rgb2hex, paletteindex, samecolour Functions for converting and comparing colours. o plot.envelope New method for plotting envelopes. By default the area between the upper and lower envelopes is shaded in grey. SIGNIFICANT USER-VISIBLE CHANGES o plot.fasp If the entries in the array are envelopes, they are plotted using plot.envelope (hence the envelope region is shaded grey). o plot.fv Now displays mathematical notation for each curve, if legendmath=TRUE. o print.fv Now prints the available range of 'r' values as well as the recommended range of 'r' values. BUGS o rmh Simulation of Lennard-Jones model was incorrect; the simulations were effectively Poisson patterns. (Spotted by David Dereudre.) Fixed. o plot.fv Did not correctly handle formulas that included I( ) Fixed. CHANGES IN spatstat VERSION 1.19-2 ACKNOWLEDGEMENTS o We thank Jorge Mateu, Michael Sumner and Sebastian Luque for contributions. OVERVIEW o More support for fitted point process models and pixel images. o Improved plotting of pixel images and envelopes. o Simulation algorithm for Lennard-Jones process. o Improvements and bug fixes to envelopes. o Bug fixes to Metropolis-Hastings simulation. NEW FUNCTIONS o pairs.im Creates a scatterplot matrix for several pixel images. o model.frame.ppm Method for 'model.frame' for point process models. o sort.im Method for 'sort' for pixel images. SIGNIFICANT USER-VISIBLE CHANGES o plot.fv, plot.fasp New argument 'shade' enables confidence intervals or significance bands to be displayed as filled grey shading. o LennardJones The parametrisation of this interaction function has been changed. o rmh, rmhmodel These functions will now simulate a point process model that was fitted using the LennardJones() interaction. o rmh.default, rmhmodel.default These functions will now simulate a point process model with the Lennard-Jones interaction (cif='lennard'). o ecdf This function now works for pixel images. o dim, row, col These functions now work for pixel images. o order This function now works for pixel images. o [.im and [<-.im The subset index can now be any valid subset index for a matrix. o density.ppp, smooth.ppp The return value now has attributes 'sigma' and 'varcov' reporting the smoothing bandwidth. o plot.im The argument 'col' can now be a 'colourmap' object. This makes it possible to specify a fixed mapping between numbers and colours (e.g. so that it is consistent between plots of several different images). o rmh, spatstat.options spatstat.options now recognises the parameter 'expand' which determines the default window expansion factor in rmh. o rmh Improved handling of ppm objects with covariates. o kstest The 'covariate' can now be one of the characters "x" or "y" indicating the Cartesian coordinates. BUG FIXES o model.matrix.ppm For a fitted model that used a large number of quadrature points, model.matrix.ppm sometimes reported an internal error about mismatch between the model matrix and the quadrature scheme. Fixed. o plot.ppx Minor bugs fixed. o rmh In rare cases, the simulated point pattern included multiple points at the origin (0,0). (Bug introduced in spatstat 1.17-0.) Fixed. o rmh, rmhmodel.ppm Crashed when applied to a fitted multitype point process model if the model involved more than one covariate image. (Spotted by Jorge Mateu) Fixed. o density.psp If any segment had zero length, the result contained NaN values. (Spotted by Michael Sumner and Sebastian Luque.) Fixed. o envelope Crashed with fun=Lest or fun=Linhom if the number of points in a simulated pattern exceeded 3000. Fixed. o plot.kstest Main title was corrupted if the covariate was a function. Fixed. CHANGES IN spatstat VERSION 1.19-1 OVERVIEW o New dataset: replicated 3D point patterns. o Improvements to Metropolis-Hastings simulation code. o More support for hyperframes. o Bug fixes. NEW DATASETS o osteo: Osteocyte Lacunae data: replicated 3D point patterns NEW FUNCTIONS o rbind.hyperframe: Method for rbind for hyperframes. o as.data.frame.hyperframe: Converts a hyperframe to a data frame. SIGNIFICANT USER-VISIBLE CHANGES o Fiksel: Fitted point process models (class ppm) with the Fiksel() double exponential interaction can now be simulated by rmh. o rmh.default: Point processes with the Fiksel interaction can now be simulated by specifying parameters in rmh.default. o logLik.ppm: New argument 'warn' controls warnings. o profilepl: No longer issues spurious warnings. BUG FIXES o Hardcore, rmh: Simulation of the 'Hardcore' process was incorrect. The hard core radius was erroneously set to zero so that the simulated patterns were Poisson. Fixed. o fitin: A plot of the pairwise interaction function of a fitted model, generated by plot(fitin(model)) where model <- ppm(...), was sometimes incorrect when the model included a hard core. Fixed. CHANGES IN spatstat VERSION 1.19-0 OVERVIEW o Numerous bugs fixed in the implementation of the Huang-Ogata approximate maximum likelihood method. o New interpoint interaction model. NEW FUNCTIONS o Fiksel: new interpoint interaction: Fiksel's double exponential model. SIGNIFICANT USER-VISIBLE CHANGES o runifpoint, rpoispp, envelope These functions now issue a warning if the number of random points to be generated is very large. This traps a common error in simulation experiments. BUG FIXES o predict.ppm, fitted.ppm: Predictions and fitted values were incorrect for objects fitted using ppm(..., method="ho"). Fixed. o logLik, AIC: Values of logLik() and AIC() were incorrect for objects fitted using ppm(..., method="ho"). Fixed. o profilepl: Results were incorrect if the argument 'method="ho"' was used. Fixed. o fitin The result of fitin() was incorrect for objects fitted using ppm(..., method="ho"). Fixed. o rmhcontrol: rmhcontrol(NULL) generated an error. Fixed. CHANGES IN spatstat VERSION 1.18-4 ACKNOWLEDGEMENTS o We thank Michael Sumner for contributions. BUG FIXES o pixellate.psp: segments shorter than one pixel width were measured incorrectly if the 'weights' argument was present. Fixed. NEW FUNCTIONS o pairdist.ppx, crossdist.ppx, nndist.ppx, nnwhich.ppx: Methods for pairdist, crossdist, nndist, nnwhich for multidimensional point patterns (class 'ppx') o runifpointx, rpoisppx: Random point patterns in any number of dimensions o boxx: Multidimensional box in any number of dimensions o diameter.boxx, volume.boxx, shortside.boxx, eroded.volumes.boxx: Geometrical computations for multidimensional boxes o sum.im, max.im, min.im: Methods for sum(), min(), max() for pixel images. o as.matrix.ppx: Convert a multidimensional point pattern to a matrix SIGNIFICANT USER-VISIBLE CHANGES o plot.ppp: New argument 'zap' o diameter: This function is now generic, with methods for "owin", "box3" and "boxx" o eroded.volumes: This function is now generic, with methods for "box3" and "boxx" CHANGES IN spatstat VERSION 1.18-3 ACKNOWLEDGEMENTS o We thank Michael Sumner for contributions. BUG FIXES o pixellate.psp: segments shorter than one pixel width were measured incorrectly. Fixed. o fv: 'alim' not handled correctly. Fixed. NEW FUNCTIONS o smooth.fv: Applies spline smoothing to the columns of an fv object. CHANGES IN spatstat VERSION 1.18-2 ACKNOWLEDGEMENTS o We thank Michael Sumner for contributions. NEW FUNCTIONS o Gfox, Jfox: Foxall's G and J functions o as.owin.distfun: New method for as.owin extracts the domain of a distfun object. SIGNIFICANT USER-VISIBLE CHANGES o distfun: objects of class 'distfun', when called as functions, will now accept either two vectors (x,y) or a point pattern x. o Hest: this function can now compute the Hanisch estimator. It now has arguments 'r', 'breaks' and 'correction', like other summary functions. o Hest: new argument 'conditional'. BUG FIXES o pixellate.psp: Values were sometimes incorrect due to coding error. (Spotted by Michael Sumner) Fixed. o kstest: Crashed if the covariate contained NA's. Fixed. o kstest: Crashed if X was a multitype point pattern in which some mark values were unrepresented. Fixed. o lurking: Minor bug in handling of NA values. Fixed. o Hest: labels of columns were incorrect. Fixed. CHANGES IN spatstat VERSION 1.18-1 ACKNOWLEDGEMENTS o we thank Andrew Bevan and Ege Rubak for suggestions. NEW FUNCTIONS o Hardcore: Hard core interaction (for use in ppm) o envelope.pp3: simulation envelopes for 3D point patterns o npoints: number of points in a point pattern of any kind SIGNIFICANT USER-VISIBLE CHANGES o rmh.ppm, rmhmodel.ppm: It is now possible to simulate Gibbs point process models that are fitted to multitype point patterns using a non-multitype interaction, e.g. data(amacrine) fit <- ppm(amacrine, ~marks, Strauss(0.1)) rmh(fit, ...) o rmh.ppm, rmhmodel.ppm, rmh.default, rmhmodel.default: Hard core models can be simulated. o rmh.default, rmhmodel.default: The argument 'par' is now required to be a list, in all cases (previously it was sometimes a list and sometimes a vector). o Fest: Calculation has been accelerated in some cases. o summary.pp3 now returns an object of class 'summary.pp3' containing useful summary information. It is plotted by 'plot.summary.pp3'. o F3est, G3est, K3est: these functions now accept 'correction="best"' o union.owin, intersect.owin: these functions now handle any number of windows. o envelope.ppp, envelope.ppm, envelope.kppm: argument lists have changed slightly BUG FIXES o Fest: The result of Fest(X, correction="rs") had a slightly corrupted format, so that envelope(X, Fest, correction="rs") in fact computed the envelopes based on the "km" correction. (Spotted by Ege Rubak). Fixed. o rmh (rmh.ppm, rmhmodel.ppm): rmh sometimes failed for non-stationary point process models, with a message about "missing value where TRUE/FALSE needed". (Spotted by Andrew Bevan). Fixed. o diagnose.ppm, lurking: Calculations were not always correct if the model had conditional intensity equal to zero at some locations. Fixed. o ppm, profilepl: If data points are illegal under the model (i.e. if any data points have conditional intensity equal to zero) the log pseudolikelihood should be -Inf but was sometimes returned as a finite value. Thus profilepl did not always work correctly for models with a hard core. Fixed. o F3est, G3est: Debug messages were printed unnecessarily. Fixed. CHANGES IN spatstat VERSION 1.18-0 ACKNOWLEDGEMENTS o we thank Ege Rubak and Tyler Dean Rudolph for suggestions. HEADLINES o A point pattern is now allowed to have a data frame of marks (previously the marks had to be a vector). o Extended capabilities for 'envelope' and 'kstest'. NEW FUNCTIONS o pixellate.psp, as.mask.psp Convert a line segment pattern to a pixel image or binary mask o as.data.frame.im Convert a pixel image to a data frame SIGNIFICANT USER-VISIBLE CHANGES o A point pattern is now allowed to have a data frame of marks (previously the marks had to be a vector). o Many functions in spatstat now handle point patterns with a data frame of marks. These include print.ppp, summary.ppp, plot.ppp, split.ppp. o finpines, nbfires, shapley: The format of these datasets has changed. They are now point patterns with a data frame of marks. o envelope() is now generic, with methods for "ppp", "ppm" and "kppm". o kstest() now handles multitype point patterns and multitype point process models. o nnclean() now returns a point pattern with a data frame of marks. o plot.ppp() has new argument 'which.marks' to select one column from a data frame of marks to be plotted. o plot.ppp() now handles marks that are POSIX times. o complement.owin now handles any object acceptable to as.owin. BUG FIXES o erosion(w) and opening(w) crashed if w was not a window. Fixed. o diameter() and eroded.areas() refused to work if w was not a window. Fixed. CHANGES IN spatstat VERSION 1.17-6 ACKNOWLEDGEMENTS o We thank Simon Byers and Adrian Raftery for generous contributions. OVERVIEW o Nearest neighbour clutter removal algorithm o New documentation for the 'fv' class. o Minor improvements and bug fixes. NEW FUNCTIONS o nnclean: Nearest neighbour clutter removal for recognising features in spatial point patterns. Technique of Byers and Raftery (1998) [From original code by Simon Byers and Adrian Raftery, adapted for spatstat.] o marks.ppx, marks<-.ppx: Methods for extracting and changing marks in a multidimensional point pattern o latest.news: print news about the current version of the package SIGNIFICANT USER-VISIBLE CHANGES o news: spatstat now has a NEWS file which can be printed by typing news(package="spatstat"). o areaGain, areaLoss: New algorithms in case exact=TRUE. Syntax slightly modified. o with.hyperframe: - The result now inherits 'names' from the row names of the hyperframe. - New argument 'enclos' controls the environment in which the expression is evaluated. - The algorithm is now smarter at simplifying the result when simplify=TRUE. o update.ppm: Tweaked to improve the ability of ppm objects to be re-fitted in different contexts. ADVANCED USERS ONLY o Documentation for the class 'fv' of function value tables - fv: Creates an object of class 'fv' - cbind.fv, collapse.fv: Combine objects of class 'fv' - bind.fv: Add additional columns of data to an 'fv' object BUG FIXES o "$<-.hyperframe" destroyed the row names of the hyperframe. Fixed. o model.matrix.ppm had minor inconsistencies. Fixed. o ppm: The fitted coefficient vector had incorrect format in the default case of a uniform Poisson process. Fixed. o plot.ppx: Crashed if the argument 'main' was given. Fixed. o envelope.ppp: Crashed if the object returned by 'fun' did not include a column called "theo". Fixed.