# RELEASE NOTES
## spatstat 1.61-0
### 12 September 2019
We thank Jordan Brown, Tilman Davies and Greg McSwiggan for contributions.
### OVERVIEW
* Fast kernel estimation on a linear network using 2D kernels.
* Nonparametric maximum likelihood estimation of 'rho'.
* Extension of Scott's rule for bandwidth selection.
* Cross-validated bandwidth selection on a linear network.
* More support for character-valued images.
* Random thinning of clumps.
* Bug fixes and minor improvements.
* Nickname: 'Puppy zoomies'
### NEW FUNCTIONS
* densityQuick.lpp
Fast kernel estimator of point process intensity on a network
using 2D smoothing kernel.
* bw.scott.iso
Isotropic version of Scott's rule (for point patterns in any dimension).
* data.lppm
Extract the original data point pattern from a fitted model of class 'lppm'.
* rthinclumps
Divide a spatial region into clumps and randomly delete some of them.
* dimnames.hyperframe, dimnames<-.hyperframe
Methods for extracting and changing the 'dimnames' of a hyperframe.
### SIGNIFICANT USER-VISIBLE CHANGES
* rhohat
Estimation by nonparametric maximum likelihood is now supported,
assuming the intensity is a monotone function of the covariate.
New options: smoother="increasing" and smoother="decreasing".
* density.lpp
New argument 'distance' offers a choice of different kernel methods.
* bw.scott
Now handles point patterns of any dimension.
New arguments 'isotropic' and 'd'.
* bw.ppl
New argument 'shortcut' allows faster computation.
Additional arguments '...' are now passed to density.ppp.
* [<-.im
New argument 'drop' controls behaviour when indices are missing
as in 'x[] <- value'
* mppm
Now supports 'self-starting' interactions.
* as.im
New argument 'stringsAsFactors' is recognised by many methods.
It enables the creation of character-string-valued images.
* plot.im
Axes are now prevented from extending outside the image rectangle.
* plot.im
New argument 'zap'.
* blur
New argument 'kernel'.
* Smooth.im
New argument 'kernel'.
* quadrat.test
New argument 'df.est'.
* edge.Ripley
Numerical stability has been improved on some platforms.
Results may have changed in marginal cases (e.g. where the circle
of radius r centred at X is tangent to an edge of the polygonal window).
* rownames, rownames<-, colnames, colnames<-
These operations now work for hyperframes.
* quadrat.test
Improved labelling of test when argument 'CR' is given.
* plot.pppmatching
This existing function now has a help file.
New argument 'adjust'.
* solist, is.sob, lintess
Objects of class 'lintess' are now recognised as 2D spatial objects
for the purposes of solist() and is.sob().
* as.linfun.lintess
Functions created by as.linfun.lintess() now generate better output
when the function is printed.
### BUG FIXES
1. densityVoronoi.lpp
Did not correctly handle patterns containing duplicated points.
Fixed.
2. quadrat.test
Argument 'CR' was ignored when method="MonteCarlo".
Fixed.
3. localKcross.inhom, localLcross.inhom
Argument lambdaX was ignored.
Fixed.
4. "[.linim"
Factor values were erroneously converted to integers, in some cases.
Fixed.
5. "[<-.hyperframe"
Did not handle some classes of objects correctly.
Fixed.
6. effectfun
In a multitype point process model, effectfun() ignored any
user-specified value of 'marks'.
Fixed.
7. as.linim.linfun
Additional arguments (other than spatial coordinates) were ignored.
Fixed.
8. plot.solist
Display output was mangled if one entry in the list was
an object that would normally generate multiple panels of graphics,
such as an 'lpp' or 'tess' object with multiple columns of marks,
or a marked 'msr', 'leverage.ppm' or 'influence.ppm' object.
Fixed.
9. plot.lpp
Return value was mangled when x had multiple columns of marks.
Fixed.
10. colourtable
Crashed in some cases when 'breaks' was given.
Fixed.
11. rLGCP
Crashed if 'win' was not a rectangle and 'mu' was not a constant.
Fixed.
12. intersect.tess
Crashed if 'Y' was a window object and 'keepmarks=TRUE'.
Fixed.
13. envelope.lppm
Crashed if argument 'simulate' was given.
Fixed.
14. unstack.solist
Did not correctly handle objects of class 'lintess'.
15. unstack.solist
Did not correctly handle objects of class 'tess' if they had multiple
columns of marks.
16. plot.pppmatching
Issued spurious warnings about unrecognised plot arguments.
Fixed.
17. plot.lintess
Issued spurious warnings about unrecognised plot arguments.
Fixed.
18. shift.lpp, rotate.lpp
Issued spurious warnings if argument 'origin' was given.
Fixed.