使用R中的数据框创建带圆的栅格

时间:2016-06-15 07:39:50

标签: r raster rasterize

如何从数据框创建一个以“c(df $ lat,cd $ lon)”和半径“df $ radius”为中心的实心圆圈创建栅格图层?

df <- data.frame(lat=c(40.4,42.4,42.4,42.4,42.3), 
                 lon=c(-0.3,1,1.5,2.7,2.1), 
                 radius=c(4.4,8.4,11.4,5.4,10.3))

df
#   lat  lon radius
#  40.4 -0.3    4.4
#  42.4  1.0    8.4
#  42.4  1.5   11.4
#  42.4  2.7    5.4
#  42.3  2.1   10.3

1 个答案:

答案 0 :(得分:0)

library(dismo)
df <- data.frame(lat=c(40.4,42.4,42.4,42.4,42.3), 
                 lon=c(-0.3,1,1.5,2.7,2.1), 
                 radius=c(4.4,8.4,11.4,5.4,10.3))

注意使用lon / lat,而不是lat / lon

p <- df[,2:1]

半径以米为单位,因此您的数字非常小。我会改变它们

rad <- df[,3]*2500

计算圈子

cc <- circles(p, rad, lonlat=TRUE, dissolve=FALSE)
plot(cc)
points(p)

获取多边形

pls <- polygons(cc)

要获取RasterLayer,您可以使用predict(cc, )rasterize(pls, )

r <- raster(extent(pls), res=.01)
pr <- predict(cc, r)

(如果您不希望计算重叠,请在dissolve=TRUE函数中使用circles