# RELEASE NOTES
## spatstat 1.62-1
### 08 December 2019
We thank Mohammad Ghorbani, Ute Hahn, Abdollah Jalilian, Nestor Luambua,
Greg McSwiggan, Annie Mollie and Jakob Gulddahl Rasmussen for contributions.
### OVERVIEW
* spatstat now requires spatstat.utils version 1.15-0
and goftest version 1.2-2.
* Nearest Neighbour Index function can now return mark values.
* Important fix in Ripley isotropic correction.
* Index of repulsion strength for determinantal point process models.
* Nearest neighbours between two point patterns in any number of dimensions.
* More options for handling bad simulation outcomes in envelope().
* Bandwidth selectors warn about extreme values of bandwidth.
* Tessellations on a linear network can now have marks.
* New functions for simulating point processes on a linear network.
* More functions for manipulating tessellations on a linear network.
* mppm accepts case weights.
* Bug fixes and minor improvements.
* Nickname: 'An update which will live in infamy'
### NEW FUNCTIONS
* repul
Repulsiveness index for a determinantal point process model.
* reach.kppm
Reach (interaction distance) for a Cox or cluster point process model.
* summary.dppm, print.summary.dppm
Summary method for determinantal point process models.
* nncross.ppx
Nearest neighbours between two point patterns in any number of dimensions.
* uniquemap.matrix
Method for uniquemap for matrices.
* repairNetwork
Detect and repair inconsistencies in internal data
in a linnet or lpp object.
* marks<-.lintess, unmark.lintess
Assign marks to the tiles of a tessellation on a linear network.
* marks.lintess
Extract the marks of the tiles of a tessellation on a linear network.
* tilenames.lintess
Extract the names of the tiles in a tessellation on a linear network
* tilenames<-.lintess
Change the names of the tiles in a tessellation on a linear network
* nobjects.lintess
Count the number of tiles in a tessellation on a linear network
* as.data.frame.lintess
Convert a tessellation on a linear network into a data frame.
* rcelllpp
Simulate the cell point process on a linear network
* rSwitzerlpp
Simulate the Switzer-type point process on a linear network
* intersect.lintess
Form the intersection of two tessellations on a linear network
* chop.linnet
Divide a linear network into tiles using infinite lines
### SIGNIFICANT USER-VISIBLE CHANGES
* lintess
New argument 'marks'
Tessellations can now have marks.
* tilenames, tilenames<-
These functions are now generic, with methods for 'tess' and 'lintess'
* mppm
New argument 'weights' specifies case weights for each row of data.
* unstack.lintess
Now handles marks.
* plot.lintess
Modified to display the marks attached to the tiles.
Changed options: style=c("colour", "width", "image").
* as.linfun.lintess
The default function values are the marks.
* print.lintess, summary.lintess, print.summary.lintess
Output now includes information about marks.
* nnfun.ppp, nnfun.psp, nnfun.lpp
New argument 'value' specifies whether to return the index of the
nearest neighbour or the mark value of the nearest neighbour.
* envelope.ppp, envelope.ppm, envelope.kppm, envelope.pp3
New arguments 'rejectNA' and 'silent'.
* envelope.lpp, envelope.lppm
New arguments 'maxnerr', 'rejectNA' and 'silent'.
* plot.psp
New argument 'col' gives control over the colour map
representing the values of marks attached to the segments.
* plot.im
Some warnings are suppressed when do.plot=FALSE.
* plot.linim
New explicit argument 'box' determines whether to plot a bounding box.
Default is now FALSE in all cases.
* Kest, Kinhom, pcf, pcfinhom, edge.Ripley
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.
* bw.diggle, bw.ppl, bw.lppl, bw.pcf, bw.CvL, bw.voronoi
A warning is issued if the optimal value of the cross-validation criterion
occurs at an endpoint of the search interval.
New argument 'warn'.
* mad.test, dclf.test, dg.test, bits.test
Function values which are infinite, NA or NaN are now ignored
in the calculation (with a warning) instead of causing an error.
Warning messages are more detailed.
* rmhcontrol, rmh
The parameter 'nsave' can now be a vector of integers.
* diagnose.ppm
Accelerated, when type="inverse", for models without a hard core.
* uniquemap.data.frame
Accelerated for some cases.
* vcov.ppm, vcov.mppm
New argument 'nacoef.action' specifies what to do if
some of the fitted coefficients are NA, NaN or Inf.
* Lest, Linhom, Ldot, Lcross, Ldot.inhom, Lcross.inhom
These summary functions now have an explicit argument 'correction'.
Behaviour is unchanged.
* bugfixes
Arguments sinceversion="book" or sincedate="book"
are interpreted to give all bugs reported after publication
of the spatstat book.
* cbind.hyperframe, rbind.hyperframe
The result now retains the row.names of the original arguments.
* print.summary.owin
More information is printed.
* append.psp
Arguments may be NULL.
* as.psp
Now permits a data frame of marks to have only one column,
instead of coercing it to a vector.
### BUG FIXES
1. as.linnet.psp
Sometimes produced a network with duplicated segments.
[Such objects can be repaired using 'repairNetwork'.]
Fixed.
2. edge.Ripley, Kest, Kinhom
Isotropic correction weights for polygonal windows were sometimes incorrect
for small radius 'r' if the polygon contained many small segments
[spotted by Annie Mollie] or if the polygon was very long and thin
[spotted by Nestor Luambua]. Problem arose in spatstat 1.60-0.
Fixed.
3. lppm
Did not correctly handle the case where the left-hand side of the formula
is the name of an entry in the 'data' argument.
Fixed.
4. plot.lpp
Did not correctly handle the argument 'which.marks'.
Fixed.
5. plot.im
Did not correctly handle the argument 'ribargs$at'.
Fixed.
6. density.lpp
Sometimes requested a larger value of 'iterMax' but ignored it.
Fixed.
7. [.linnet, [.lpp
Crashed if x contained inconsistent internal data
(when index 'j' was a window, and snip=TRUE).
Fixed.
8. plot.linim
Crashed if the pixel values were complex numbers.
Fixed.
9. plot.linfun
Crashed if the function values were complex numbers.
Fixed.
10. integral.linim, mean.linim
Crashed if the image had logical values.
Fixed.
11. Re, Im, Arg, Mod, Conj
For pixel images on a linear network (class 'linim')
these operations crashed if the pixel values were complex numbers.
12. studpermu.test
Crashed if the hyperframe was very large.
Fixed.
13. studpermu.test
Crashed in some cases when the simulated functions were
incompatible with each other, due to the use of different edge
corrections.
Fixed.
14. vcov.ppm, print.ppm, summary.ppm
Crashed in some cases if the fitted coefficients were NA.
Fixed.
15. quantess.owin, quantess.ppp, quantess.im
Crashed in some cases because the tile labels were not unique.
Fixed.
16. plot.pp3
Did not correctly handle graphical arguments ('col', 'pch', 'cex')
if they were vectors [Spotted by Abdollah Jalilian].
Fixed.
17. shift.linnet
Generated a spurious warning.
Fixed.
18. density.lpp, lixellate
Crashed in some cases when a data point was exactly at a vertex.
[Spotted by Jakob Gulddahl Rasmussen.]
Fixed.
19. plot.linim
Crashed (when style="width") if any pixel values were NaN.
Fixed.
20. Fest, Jest, Jdot, Jcross, Hest, Iest, rectcontact
envelope() commands using one of these summary functions
crashed sometimes with a message about illegal spacing of 'r' values.
Fixed.
21. plot.linnet, plot.psp
Ignored argument 'col' when style="width".
Fixed.
22. rshift.psp
Crashed if X had a data frame of marks.
[Spotted by Ute Hahn.]
Fixed.
23. Kscaled
Crashed if Ripley's isotropic edge correction was selected
but the translation edge correction was not.
Fixed.