[R-sig-Geo] complex coastline and adehabitatHR: trouble with kerneloverlaphr function after coastline has been clipped out
ehartel
ehartel at hboi.fau.edu
Tue Dec 4 18:39:21 CET 2012
Hi all,
I am using R version 2.14.2 on a Windows 7 machine and adehabitatHR version
0.4.2.
I have an extensive database of dolphin locations and would like to look at
home range overlap between animals. My study area has a complex coastline
and does not work with the "boundary" slot in the kernelUD function. I was
able to clip out the land using the method devised by Tony Fischback and
Clement Calenge in the following post
http://r-sig-geo.2731867.n2.nabble.com/Walruses-and-adehabitatHR-class-estUDm-exclusion-of-non-habitat-pixels-and-summary-over-all-animals-td6497315.html.
The above method requires coversion of the kernelUD output (of class-estUDm)
into a SpatialPixelsDataFrame. Once the land is clipped out, I successfully
converted the object back into class-estUDm. However, when I try to run the
kerneloverlaphr function with the converted file, I get 0 for every overlap
(which should not be the case). Kerneloverlaphr works fine if I run it
using the kernelUDs before the land is clipped out, but not after. I have
no idea why it's not working properly, but it must have something to do with
the process of clipping out the land.
Any advice on the matter would be greatly appreciated. I have included an
example of my code using the data(puechabonsp) that comes with the
adehabitatHR package.
# Load data
data(puechabonsp)
# Store relocations
loc <- puechabonsp$relocs
# Store map
elev <- puechabonsp$map
# Build "fake" habitat map (1= habitat, 0 = non habitat)
fullgrid(elev) <- TRUE
hab <- elev
hab[[1]] <- as.numeric(!is.na(hab[[1]]))
# Convert hab back into SpatialPixelsDataFrame (as needed for kernelUD
function)
hab <- as(hab, "SpatialPixelsDataFrame")
# Estimate UD
ud <- kernelUD(loc[,1], grid=hab)
# Convert to SpatialPixelsDataFrame
udspdf <- estUDm2spixdf(ud)
# Convert resulting file to fullgrid
fullgrid(udspdf) <- TRUE
# Convert habitat map to fullgrid
fullgrid(hab)<-TRUE
# Multiply each column of udspdf by the habitat variable
resu <- lapply(1:ncol(udspdf), function(i) {udspdf[[i]] * hab[[1]] /
sum(udspdf[[i]] * hab[[1]])})
resu <- as.data.frame(resu)
names(resu) <- names(udspdf at data)
# Define it as a data slot for udspdf
udspdf at data <- resu
# Convert to SpatialPixelsDataFrame
fullgrid(udspdf) <- FALSE
# Convert result back into class estUDm
re <- lapply(1:ncol(udspdf), function(i) {
so <- new("estUD", udspdf[,i])
so at h <- list(h=0, meth="specified") # fake value
so at vol <- FALSE
return(so)
})
names(re) <- names(udspdf)
class(re) <- "estUDm"
# Find kernel overlap
kov_clipped <- kerneloverlaphr(re, method = "PHR", percent = 95,
conditional = FALSE)
# Result is all zeros (copied directly from R window)
> kov_clipped
Brock Calou Chou Jean
Brock 0 0 0 0
Calou 0 0 0 0
Chou 0 0 0 0
Jean 0 0 0 0
# Run kernel overlap for non-clipped UDs (to test accuracy of the above)
kov_nonclipped <- kerneloverlaphr(ud, method = "PHR", percent = 95,
conditional = FALSE)
# Result is not all zeros (copied directly from R window)
> kov_nonclipped
Brock Calou Chou Jean
Brock 0.94933028 0.7198043 0.0000000 0.02139490
Calou 0.30917730 0.9495502 0.0000000 0.02949861
Chou 0.00000000 0.0000000 0.9496367 0.89242679
Jean 0.04359732 0.3086748 0.9122472 0.94957049
Thanks so much for your time and assistance!
Liz
-----------
Liz Hartel
Biological Scientist
Population Biology and Behavioral Ecology
Harbor Branch Oceanographic Institute - FAU
5600 US 1 North, Fort Pierce, FL 34946
work: (772) 242-2238
cell: (772) 216-4363
www.hboi.fau.edu
--
View this message in context: http://r-sig-geo.2731867.n2.nabble.com/complex-coastline-and-adehabitatHR-trouble-with-kerneloverlaphr-function-after-coastline-has-been-clt-tp7581851.html
Sent from the R-sig-geo mailing list archive at Nabble.com.
More information about the R-sig-Geo
mailing list