[R-sig-Geo] Interpolating along an XY path]
Michael Sumner
mdsumner at utas.edu.au
Thu Apr 13 00:57:13 CEST 2006
Rob Schick wrote:
> I have a series of x,y coordinates that represent a movement path of a
> tagged animal. I want to regularize the track, but approx interpolates over
> the range of x's as opposed to treating the track as an ordered sequence.
> I've tried coercing it into a time series, but this only seems to work when
> the X's constantly increase. The following dummy track provides a glimpse of
> the problem with approx:
>
If you treat the x's and y's separately with approx you can get what you
want (although I'm sure some careful thought would produce a better use
of approx):
x <- c(1,3,5,5,5,4,2,1.5)
y <- c(1,1,1,2,3,3,3,3)
xypair <- cbind(x,y)
xypair
rownames(xypair) <- 1:length(x)
plot(x,y,type='l')
points(xypair)
text(x,y,rownames(xypair),offset=.5,pos=2)
points(approx(xypair[,1],n=30)$y, approx(xypair[,2],n=30)$y,col=3,pch="*")
BTW, I have a package for animal track data that contains a function
called equalTime - it interpolates points in space (euclidean) based on
an (approximation to an) equal time interval to create regular spaced
points in time, assuming straight motion between fixes. You might find
it useful. It's never really been finished, but I use it especially for
the S4 validation of trajectory with "trip", and for quick speed
filtering and time spent gridding.
http://staff.acecrc.org.au/~mdsumner/Rutas/
HTH, Mike.
More information about the R-sig-Geo
mailing list