从dBBMM栅格导出多边形时

时间:2018-12-13 21:27:06

标签: r raster qgis

我正在尝试通过使用移动对象创建具有功能Brownian.bridge.dyn的动态Brownian Bridge运动模型来从动物跟踪数据中计算利用分布。这是用于创建脚本移动对象,然后使用brownian.bridge.dyn

栅格
PR <- move(x=bird$Long, y=bird$Lat, time=as.POSIXct(muleys$PosTime, format="%Y%m%d %H:%M:%S"), proj=CRS("+proj=longlat +ellps=WGS84"),data=bird, animal=bird$ID)
PR_t <- spTransform(x=PR, CRSobj="+proj=aeqd +ellps=WGS84", center=TRUE)
PR_dbbmm <- brownian.bridge.dyn(object=PR_t, location.error=22, window.size=35, ext=0.4, margin=7, dimSize=30, time.step=5)

现在,我需要创建指定的轮廓并将其导出为.shp格式的多边形,以便在QGIS中可视化。为此,我找到了以下脚本:

dbbmm.px <- as(PR_dbbmm, "SpatialPixelsDataFrame")
image(dbbmm.px)
dbbmm.ud <- new("estUD",dbbmm.px)
dbbmm.ud@vol = FALSE
dbbmm.ud@h$meth = "dBBMM"

shp50 <- getverticeshr(dbbmm.ud, percent=50, standardize=TRUE)
class(shp50)
map.ps50 <- SpatialPolygons2PolySet(shp50)
diss.map.50 <- as.PolySet(map.ps50, projection = "LL", zone = "35N")
diss.map.p50 <- PolySet2SpatialPolygons(diss.map.50, close_polys = TRUE)
diss.map.p50p <- spTransform(x=diss.map.p50, CRSobj="+ellps=WGS84 +proj=longlat +datum=WGS84 +no_defs", center=TRUE)
diss.map.p50 <- diss.map.p50p
data50 <- data.frame(PID = 1)
diss.map.p50 <- SpatialPolygonsDataFrame(diss.map.p50, data = data50)
writeOGR(diss.map.p50, dsn = ".", layer="PR_dBBMM_contour50", driver = "ESRI Shapefile")

我希望这些多边形位于 WGS84投影中。该脚本似乎可以工作并创建多边形。当我在QGIS中加载.shp文件时,多边形似乎位于确切的位置。我也加载了用于计算WGS84投影中的dBBMM的原始数据点以及一些带有国界的.shp。 当您看到使用上述脚本创建的多边形时,所有图层似乎都覆盖了BUT,这些点就像后面的单个点一样,因此您必须放大直到看到地图上点的正态分布以及国家/地区边界。因此,多边形看起来比其他图层要高得多,因此您必须显着放大orded才能正确看到它们。看起来真的很奇怪,我不知道如何解决此问题以及我使用的脚本出了什么问题。

任何帮助将不胜感激。请注意,我是R的新手

0 个答案:

没有答案