# RELEASE NOTES ## spatstat 1.48-0 ### 22 December 2016 We thank Kim Colyvas, Yongtao Guan, Gopalan Nair, Nader Najari, Suman Rakshit, Ian Renner and Hangsheng Wang for contributions. ### OVERVIEW * Sufficient Dimension Reduction for point processes. * Alternating Gibbs Sampler for point process simulation. * Intensity approximation for area-interaction and Geyer models. * New class of spatially sampled functions. * ROC and AUC extended to other types of point patterns and models. * More support for linear networks. * More support for infinite straight lines. * Simulation of 'rhohat' objects. * Kernel smoothing accelerated. * Methods for 'head' and 'tail' for spatial patterns. * More low-level functionality. * Improvements and bug fixes. * spatstat now has more than 1000 help files. * Nickname: 'Model Prisoner' ### NEW CLASSES * ssf Class of spatially sampled functions. ### NEW FUNCTIONS * sdr, dimhat Sufficient Dimension Reduction for point processes. Matlab code contributed by Yongtao Guan, translated by Suman Rakshit. * rags, ragsAreaInter, ragsMultiHard Alternating Gibbs Sampler for point processes. * psib Sibling probability (index of clustering strength in a cluster process). * bugfixes List all bug fixes in recent versions of a package. * roc.kppm, roc.lppm, roc.lpp Methods for 'roc' (receiver operating characteristic curve) for fitted models of class 'kppm' and 'lppm' and point patterns of class 'lpp' * auc.kppm, auc.lppm, auc.lpp Methods for 'auc' (area under the ROC curve) for fitted models of class 'kppm' and 'lppm' and point patterns of class 'lpp' * rlpp Random points on a linear network with a specified probability density. * cut.lpp Method for 'cut' for point patterns on a linear network. * crossing.linnet Find crossing points between a linear network and another set of lines. * ssf Create a spatially sampled function * print.ssf, plot.ssf, contour.ssf, image.ssf Display a spatially sampled function * as.im.ssf, as.ppp.ssf, marks.ssf, marks<-.ssf, unmark.ssf, [.ssf, with.ssf Manipulate data in a spatially sampled function * Smooth.ssf Smooth a spatially sampled function * integral.ssf Approximate integral of spatially sampled function * simulate.rhohat Generate a Poisson random point pattern with intensity that is a function of a covariate, given by a 'rhohat' object. * head.ppp, head.ppx, head.psp, head.tess, tail.ppp, tail.ppx, tail.psp, tail.tess Methods for 'head' and 'tail' for spatial patterns. * as.data.frame.tess Convert a tessellation to a data frame. * timeTaken Extract the timing data from a 'timed' object or objects. * rotate.infline, shift.infline, reflect.infline, flipxy.infline Geometrical transformations for infinite straight lines. * whichhalfplane Determine which side of an infinite line a point lies on. * points.lpp Method for 'points' for point patterns on a linear network. * pairs.linim Pairs plot for images on a linear network. * has.close Faster way to check whether a point has a close neighbour. * closetriples Low-level function to find all close triples of points. * matrixpower, matrixsqrt, matrixinvsqrt Raise a matrix to any power. ### SIGNIFICANT USER-VISIBLE CHANGES * intensity.ppm Intensity approximation is now available for the Geyer saturation process and the area-interaction process (results of research with Gopalan Nair). * envelope.lpp, envelope.lppm New arguments 'fix.n' and 'fix.marks' allow envelopes to be computed using simulations conditional on the observed number of points. * "[.im" The subset index "i" can now be a linear network (object of class 'linnet'). The result of "x[i, drop=FALSE]" is then a pixel image of class 'linim'. * cut.ppp Argument z can be "x" or "y" indicating one of the spatial coordinates. * rThomas, rMatClust, rCauchy, rVarGamma, rPoissonCluster, rNeymanScott New argument 'saveparents'. * lintess Argument 'df' can be missing or NULL, resulting in a tesellation with only one tile. * lpp X can be missing or NULL, resulting in an empty point pattern. * plot.lintess Improved plot method, with more options. * rpoisline Also returns information about the original infinite random lines. * density.ppp, Smooth.ppp Accelerated. * density.psp New argument 'method' controls the method of computation. New faster option 'method="FFT"' * nndist.lpp Accelerated. ### BUG FIXES 1. F3est Estimates of F(r) for the largest value of r were wildly incorrect. Fixed. 2. clip.infline Results were incorrect unless the midpoint of the window was the coordinate origin. Fixed. 3. integral.linim Results were inaccurate if many of the segment lengths were shorter than the width of a pixel. Fixed. 4. predict.lppm Bizarre error messages about 'class too long' or 'names too long' occurred if the model was multitype. Fixed. 5. superimpose Point patterns containing 0 points were ignored when determining the list of possible marks. Fixed. 6. chop.tess Vertical lines were not handled correctly with pixellated tessellations. Fixed. 7. timed Argument 'timetaken' was ignored. Fixed. 8. ppm Crashed if method="logi" and the 'covariates' were a data frame. [Spotted by Kim Colyvas and Ian Renner.] Fixed. 9. rpoislpp, runiflpp Crashed if nsim > 1. Fixed. 10. rpoisline Crashed if zero lines were generated. Fixed. 11. model.frame.ppm Crashed if the original model was fitted to a data frame of covariates and there were NA's amongst the covariate values. [Spotted by Kim Colyvas.] Fixed. 12. any, all When applied to pixel images (objects of class 'im') the result was sometimes NA when a finite value should have been returned. Fixed. 13. predict.rhohat When the original data were on a linear network, the result of predict.rhohat did not belong to the correct class 'linim'. Fixed.