He everybody,
I'm studying the migration pattern and wintering distribution of the Great
shearwater using geolocation data. For this, I want to work out the kernel
density surfaces using the package adehabitat of R. However, I've some problems
when I'm trying to run my script.
Original data:
head(Geo7)
lon latcom
27 30.73 -41.08
30 37.44 -40.66
31 37.59 -40.54
33 46.27 -43.86
35 49.94 -43.25
38 53.52 -40.07
> class(Geo7)
[1] "data.frame"
> str(Geo7)
'data.frame': 160 obs. of 2 variables:
$ lon : num 30.7 37.4 37.6 46.3 49.9 ...
$ latcom: num -41.1 -40.7 -40.5 -43.9 -43.2 ..
Script:
Geo7 <- subset(Geo6b, select=c (lon, latcom)) ########## cambiar latitud y
longitud de orden
location<-project(Geo7,list(proj="laea", lat_O=1,lon_0=2, x_0=6,
y_0=7),inverse=FALSE, degrees=TRUE, silent=FALSE) #### we use Lambert
azimuthal equal-area projection
location1a <- data.frame(location) #### It's necessary to convert the list
into dataframe
xy= location1a[c("x", "y")]
class(location1a)
coordinates(location1a) <- ~x+y ###### To convert mapping coordinates to
Spatial points
class(location1a)
################KERNEL
Kernel1<-kernelUD(location1a, h="href",grid=40,same4all=F,
hlim=c(0.1,1.5),kern=c("bivnorm"),extent=0.5) ###
image(Kernel1, axes=FALSE, mar=c(0,0,2,0), addcontour=TRUE, addpoints=TRUE)
kernel2 <-getvolumeUD(Kernel1)
Kernel3 <- kernel.area(kernel2, id=NULL, h="href", grid=40, same4all=FALSE,
hlim=c(0.1,1.5), kern="bivnorm", levels=seq(25,95,by=10), unin=c("m"),
unout=c("m2"), extent=0.5) ###### same problem I need two columns instead of
oneele
Kernel6<-getverticeshr(Kernel1,lev=40)
image(Kernel1) ### problemas con la paleta por eso he eliminado col=rainbow(4)
plot(Kernel6, add=TRUE)
Kernel7 <- getverticeshr(kernel1,lev=90)
image(Kernel1)
plot(Kernel6, add=TRUE)
When a run it:
location<-project(Geo7,list(proj="laea", lat_O=1,lon_0=2, x_0=6,
y_0=7),inverse=FALSE, degrees=TRUE, silent=FALSE) #### we use Lambert
azimuthal equal-area projection
> class(location)
[1] "list"
> str(location)
List of 2
$ x: num [1:160] 2533084 3115667 3132780 3682706 3994351 ...
$ y: num [1:160] -4593850 -4615167 -4603968 -5069889 -5060989 ...
> location1a <- data.frame(location) #### It's necessary to convert the
> list into dataframe
> xy= location1a[c("x", "y")]
> class(location1a)
[1] "data.frame"
> coordinates(location1a) <- ~x+y ###### To convert mapping coordinates to
> Spatial points
> class(location1a)
[1] "SpatialPoints"
attr(,"package")
[1] "sp" Kernel1<-kernelUD(location1a, h="href",grid=40,same4all=F,
hlim=c(0.1,1.5),kern=c("bivnorm"),extent=0.5) ###
Error en if (ncol(xy) != 2) stop("xy should have 2 columns") :
argumento tiene longitud cero I would appreciate a lot if someone can help me
to find a solution to this error. Laila
_______________________________________________
AniMov mailing list
[email protected]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/animov