# [Qgis-user] Find and filter points within a variable radius

```Hi all,

I have a set of projected spatial points (id, x, y, dist, value) that needs to
be filtered. For each point I have to find the other ones falling within a
variable distance. For each selection, I need only the one with the maximum
value or, if duplicated, keeping just one.```
```
I tried to check the available tools and I found out what follows:

-          A simpler possibility would be to use the “Select by expression”,
but I’m not that familiar with the syntax and I ended up with [clearly
non-working]: CASE WHEN distance(\$currentfeature)<”dist” THEN max(“value”) END

-          Another possibility would be to improve the following R code,
available online (thanks to the author)

Any (R, Python, else) suggestion?

##Layer=vector

##ID=Field Layer

##distance= Field Layer

##Output= output vector

library(rgeos)

library(sp)

library(spdep)

coordi <- as.matrix(coordinates(Layer))

tram_nb <- dnearneigh(coordi, d1 = 0, d2 = distance,row.names=Layer[[ID]])

tram_nb<-as.data.frame(card(tram_nb))

tram<-cbind(as.vector(Layer[[ID]]), tram_nb)

Coord<-cbind()

n<-length(Layer[[ID]])

for(i in 1:n){

if (tram[i,2]!=0 ){ Coord <-rbind(Coord,cbind(coordi[i,1],
coordi[i,2],as.vector(Layer[[ID]])[i]))

}

}

x<-as.numeric(Coord[,1])

y<-as.numeric(Coord[,2])

X<-cbind(x,y)

matrix<-as.matrix(X)

matrix<-SpatialPointsDataFrame(matrix,as.data.frame(Coord),proj4string=CRS(Layer))

Output=matrix

All the best,

Nic

```
```_______________________________________________
Qgis-user mailing list
Qgis-user@lists.osgeo.org
List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user```