我一直在使用R包adehabitatHR来查找某些企鹅的核密度等值线,并且一切正常。但是,当我使用mcp或kernel.area来找到50%和95%轮廓的区域时,我得到了一些非常低的估计值。这些鸟的行程为30-80公里,但面积估计为3.087401 x 10 ^ -7ha。以前的数据显示面积估计为4000-6000公顷。 有谁知道可能会发生什么? 谢谢!
#please ignore all the libraries, I'm new to R and keep them all up
library(adehabitatHR)
library(sp)
library(rgdal)
library(raster)
F14A <- read_csv("74F314A f.csv")
str(F14A)
loc <- F14A[, c("Latitude", "Longitude")]
str(loc)
# Change Lat & Long to spatial points
loc <- as.matrix.data.frame(loc)
loc <- SpatialPoints(loc)
## Estimation of KUD
ud <- kernelUD(loc, h = "href", grid = 100, same4all = FALSE,
kern = c("bivnorm"), extent = 1)
mcp(loc, percent=100)
mcp.area(loc,percent=seq(50,95, by=5), unin = c("m"),
unout = c("ha"))
答案 0 :(得分:0)
我对你的内核带宽感到好奇。如果你正在使用为你计算带宽的函数,那么无论它做了什么优化都有可能陷入太小的价值而无法发挥作用(它发生在我身上) - 内核带宽太小会导致内核密度区域太小。
如果您正在使用的功能contour()
的实现,我很想plot(contour(ud))
看看它是否看起来像一张好的等高线图(或不!)如果没有,请尝试将内核带宽设置为某些不同的值,以查看结果的行为。
这似乎是一个博学的观点,但带宽选择是涉及内核密度的任何分析的关键且非平凡的部分。不幸的是,有时候黑盒软件没有像你(主题专家)那样选择 学习适当的带宽。
答案 1 :(得分:0)
等高线图看起来很好,它们非常适合地图并沿着我的轨道行进。地图是一个shapefile,内置了GPS坐标。
问题是我的观点没有正确转变。对于其他具有相同问题的人,我使用以下代码将其转换为UTM区域55,然后kernel.area函数完美运行。
longlatcoor<-SpatialPoints(cbind(F14A$Longitude,F14A$Latitude), proj4string=CRS("+proj=longlat +datum=WGS84"))
# converting
utmcoord<-spTransform(longlatcoor,CRS("+proj=utm +south +zone=55 +datum=WGS84"))
utmcoord #just to double check the transformation has occured
kud<-kernelUD(utmcoord, h="href", grid=100, hlim = c(0.1, 1.5), kern = c("bivnorm"), extent = 0.5,boundary=barrier)
image(kud)
kernel.area(kud,percent=seq(50,95,by=5),unin=("m"),unout=("ha"))
这产生的GPS值如lat 319187.6 long 5807109,最终的内核面积为公顷:50%= 1153.162,95%= 7025.186,这更接近我的预期。