寻找核密度区域

时间:2017-03-03 03:38:48

标签: r gps kernel-density

我一直在使用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"))

2 个答案:

答案 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,这更接近我的预期。