[R-sig-Geo] Filtering a set of points in a "ppp" object by distance using marks

Marcelino de la Cruz Rot m@rce||no@de|@cruz @end|ng |rom urjc@e@
Wed Sep 16 09:18:36 CEST 2020


Hi Alexandre,

may be this?


ddd <- nndist(insects.ppp, by=factor(insects.ppp$marks))
subset(insects.ppp,  marks=="termiNests" & ddd[,"termiNests"] >20)


Cheers,

Marcelino


El 15/09/2020 a las 22:52, ASANTOS via R-sig-Geo escribió:
> Dear R-Sig-Geo Members,
>
> I'd like to find any way to filtering a set of points in a "ppp" object by minimum distance just only between different marks. In my example:
>
> #Package
> library(spatstat)
>
> #Point process example - ants
> data(ants)
> ants.ppp<-ppp(x=ants$x,y=ants$y,marks=rep("antNests",length(ants$x)),window=Window(ants))
>
>
> # Create a artificial point pattern - termites
> termites <- rpoispp(0.0005, win=Window(ants))
> termites.ppp<-ppp(x=termites$x,y=termites$y,marks=rep("termiNests",length(termites$x)),window=Window(ants))
>
>
> #Join ants.ppp and termites.ppp
> insects.ppp<-superimpose(ants.ppp,termites.ppp)
>
>
> #If I try to use subset function:
>
> subset(insects.ppp, pairdist(insects.ppp) > 20 & marks=="termiNests")
>
> #Marked planar point pattern: 223 points #marks are of storage type
> �character� #window: polygonal boundary #enclosing rectangle: [-25, 803]
> x [-49, 717] units (one unit = 0.5 feet) #Warning message: #In ppp(X[,
> 1], X[, 2], window = win, marks = marx, check = check) : # 70751 out of
> 70974 points had NA or NaN coordinate values, and were discarded
>
> Not the desirable result yet, because I'd like to calculate just only the > 20 "termiNests" to "antNests" marks and not the "termiNests" with "termiNests" too.
>
> Please any ideas?
>
> Thanks in advanced,
>

-- 
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España



More information about the R-sig-Geo mailing list