[R-sig-Geo] ploting Kernel results (adhabitatHR) with ggplot2

Diego Pavon diego.pavonjordan at gmail.com
Mon Feb 22 10:48:42 CET 2016


Dear All

I am new user of R as a GIS software and I would like to ask you about how
to plot the results of a Kernel estimation with ggplot2 (amazing package!).

So, I have a number of locations (latitude and longitude coordinates) and I
wanted to do a kernel 50% of those locations. I used the adhabitatHR
package to do so. I read in the help file of ggplot that it is required to
have the input as a data.frame. So, after running the kernelUD command I
get an object of class estUD with all the parameters of the kernel
analysis. However this can't be understood by ggplot2.

summary(AccgenK.kernel)Object of class estUD
Coordinates:
            min     max
Var2   163706.1 8481877
Var1 -1286076.5 7378685
Is projected: TRUE
proj4string :
[+init=epsg:3035 +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000
+y_0=3210000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m
+no_defs]
Number of points: 9600
Grid attributes:
     cellcentre.offset cellsize cells.dim
Var2          207029.9 86647.61        96
Var1        -1242752.7 86647.61       100
Data attributes:
       ud
 Min.   :0.000e+00
 1st Qu.:0.000e+00
 Median :0.000e+00
 Mean   :1.387e-14
 3rd Qu.:3.890e-17
 Max.   :5.162e-13



I can transform this object to a data.frame:

kernel.df<-as.data.frame(AccgenK.kernel)

And I get this:

str(kernel.df)'data.frame':	9600 obs. of  3 variables:
 $ ud  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Var2: num  207030 207030 207030 207030 207030 ...
 $ Var1: num  7335361 7248713 7162065 7075418 6988770 ...>
head(kernel.df)  ud     Var2    Var1
1  0 207029.9 7335361
2  0 207029.9 7248713
3  0 207029.9 7162065
4  0 207029.9 7075418
5  0 207029.9 6988770
6  0 207029.9 6902123


But when I try to plot this with ggplot2... nothing happens.

p <- ggmap(glgmap)
p <- p + geom_point(aes(x=X, y=Y, col = Killed, shape = Killed), alpha= 0.5,
                    data = Accgen,
                    size = 4)
p <- p + xlab("Longitude") + ylab("Latitude")
p <- p + theme(text = element_text(size = 15))
p <- p + scale_color_manual(values=c('royalblue', 'firebrick')) +
labs(title = substitute(paste(italic('Turdus merula'))))
p <- p + geom_polygon(data = kernel.df, aes(x = Var1, y = Var2))
p


I have also tried to create a SpatialPolygondataFrame:

ver75_AccgenK <- getverticeshr(AccgenK.kernel, 75, unout= "km2")

But then, this data.frame has only the area of the polygon...

> as.data.frame(ver75_AccgenK)                 id    area
homerange homerange 2914920


I can plot this using only the plot command, but I would like to use
ggplot and all the features that it provides.

So, does anyone know how can I plot this kernel polygon with ggplot? I
have found this earlier post:

https://stat.ethz.ch/pipermail/r-sig-geo/2010-April/008143.html


but I fail to understand how he did it...

Thank you very much for your time and help.

Best

Diego



















-- 
*Diego Pavón Jordán*

*Finnish Museum of Natural History*
*PO BOX 17 *

*Helsinki. Finland*



*0445061210https://tuhat.halvi.helsinki.fi/portal/en/persons/diego-pavon-jordan%288d5db37c-eddd-4fca-92cd-9c9956a42b4a%29.html
<https://tuhat.halvi.helsinki.fi/portal/en/persons/diego-pavon-jordan%288d5db37c-eddd-4fca-92cd-9c9956a42b4a%29.html>http://www.linkedin.com/profile/view?id=170617924&trk=nav_responsive_tab_profile
<http://www.linkedin.com/profile/view?id=170617924&trk=nav_responsive_tab_profile>https://helsinki.academia.edu/DiegoPavon
<https://helsinki.academia.edu/DiegoPavon>*

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list