Last chance! 50% off unlimited learning
Sale ends in
An object of class "Patterns"
.
Generates n
points uniformly in the support for Type I segregation in the convex hull of
set of points, Yp
.
delta
is the parameter of segregation (that is, delta
corresponds to eps
in the standard equilateral triangle
rsegTe
function).
If Yp
consists only of 3 points, then the function behaves like the
function rseg.tri
.
DTmesh
must be the Delaunay triangulation of Yp
and DTr
must be the corresponding Delaunay triangles (both DTmesh
and DTr
are NULL
by default).
If NULL
, DTmesh
is computed via tri.mesh
and DTr
is computed via triangles
function in interp
package.
tri.mesh
function yields the triangulation nodes with their neighbours, and creates a triangulation object,
and triangles
function yields a triangulation data structure from the triangulation object created
by tri.mesh
(the first three columns are the vertex indices of the Delaunay triangles.)
See (ceyhan:arc-density-PE,ceyhan:arc-density-CS,ceyhan:dom-num-NPE-Spat2011;textualpcds) for more on the segregation pattern. Also see (okabe:2000,ceyhan:comp-geo-2010,sinclair:2016;textualpcds) for more on Delaunay triangulation and the corresponding algorithm.
rsegMT(n, Yp, delta, DTmesh = NULL, DTr = NULL)
A positive integer representing the number of points to be generated.
A set of 2D points from which Delaunay triangulation is constructed.
A positive real number in delta
is the parameter of segregation (that is,
A list
with the elements
The type of the pattern from which points are to be generated
The "main"
title for the plot of the point pattern
Exclusion parameter, delta
, of the Type I segregation pattern. delta
is in
The input set of points Yp
;
reference points, i.e., points from which generated points are segregated.
The output set of generated points segregated from Yp
points.
Logical output, TRUE
if triangulation based on Yp
points should be implemented.
Description of the point pattern
The vector
of two numbers, which are the number of generated points
and the number of reference (i.e., Yp
) points.
The ranges of the Yp
points
# NOT RUN {
#nx is number of X points (target) and ny is number of Y points (nontarget)
nx<-20; ny<-4; #try also nx<-1000; ny<-10;
set.seed(1)
Yp<-cbind(runif(ny),runif(ny))
del<-.4
Xdt<-rsegMT(nx,Yp,del)
Xdt
summary(Xdt)
plot(Xdt)
Yp<-cbind(runif(ny),runif(ny))
del<-.3 #try .5, .75, .85
dat<-rsegMT(nx,Yp,del) #data under CSR in the convex hull of Ypoints
#or use
DTY<-interp::tri.mesh(Yp[,1],Yp[,2],duplicate="remove") #Delaunay triangulation based on Y points
dat<-rsegMT(nx,Yp,del,DTY) #data under CSR in the convex hull of Ypoints
#or use
DTY<-interp::tri.mesh(Yp[,1],Yp[,2],duplicate="remove") #Delaunay triangulation based on Y points
TRY<-interp::triangles(DTY)[,1:3];
dat<-rsegMT(nx,Yp,del,DTr=TRY) #data under CSR in the convex hull of Ypoints
#or use
DTY<-interp::tri.mesh(Yp[,1],Yp[,2],duplicate="remove") #Delaunay triangulation based on Y points
TRY<-interp::triangles(DTY)[,1:3];
dat<-rsegMT(nx,Yp,del,DTY,TRY)$gen.points #data under CSR in the convex hull of Ypoints
Xlim<-range(Yp[,1])
Ylim<-range(Yp[,2])
xd<-Xlim[2]-Xlim[1]
yd<-Ylim[2]-Ylim[1]
#plot of the data in the convex hull of Y points together with the Delaunay triangulation
DTY<-interp::tri.mesh(Yp[,1],Yp[,2],duplicate="remove") #Delaunay triangulation based on Y points
oldpar <- par(no.readonly = TRUE)
par(pty="s")
plot(dat,main=" ", xlab=" ", ylab=" ",xlim=Xlim+xd*c(-.05,.05),ylim=Ylim+yd*c(-.05,.05),type="n")
interp::plot.triSht(DTY, add=TRUE, do.points=TRUE,col="blue")
points(dat,pch=".",cex=3)
par(oldpar)
Yp<-rbind(c(.3,.2),c(.4,.5),c(.14,.15))
rsegMT(nx,Yp,del)
dat.fr<-data.frame(a=Yp)
rsegMT(nx,dat.fr,del)
# }
Run the code above in your browser using DataLab