I've been attempting for many moons to develop a function which will allow
me to place a buffer of adjustable radius around an animal's movement
trajectory with which I may extract underlying pixel values from a raster of
environmental data.  I would like to be able to extract the habitat values
using read functions in the raster package as I have tens of thousands of
observations (trajectories) and importing or cropping images is much too
demanding on time and processing.

One fairly intuitive solution is to create circular buffers around points
along each trajectory, thus creating the buffered trajectory with which I
can interpolate the raster values.  This is fairly simple and looks good:

> temp
        x        y        X2       Y2
1 -300358 748992.6 -300450.8 748764.8

xran<-range(c(temp$x, temp$X)-500, c(temp$x, temp$X)+500)
  yran<-range(c(temp$y, temp$Y)-500, c(temp$y, temp$Y)+500)
  subwin<-owin(xrange=xran, yrange=yran)
  traj<-pointsOnLines(psp(temp$x, temp$y, temp$X, temp$Y, subwin), eps=12)
  polys<-list()
    for(i in 1:length(traj$x)) {
     discbuff<-disc(radius=25, centre=c(traj$x[i], traj$y[i]))
     discpoly<-Polygon(rbind(cbind(discbuff$bdry[[1]]$x,
y=discbuff$bdry[[1]]$y), c(discbuff$bdry[[1]]$x[1],
y=discbuff$bdry[[1]]$y[1])))
     polys<-c(polys, discpoly)
    }
  spolys<-list()
    for(i in 1:length(polys)) {
      polybuff<-Polygons(list(polys[[i]]), ID=i)
      spolys<-c(spolys, polybuff)
  }
polybuffs<-SpatialPolygons(spolys)

plot(polybuffs)

...but is there a way now to merge all these circles into one polygon?  I'm
afraid I haven't found it yet yet.

Likewise if there are other methods folks can suggest that would accomplish
the same goal I am all ears.

Tyler

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to