2016-06-15 47 views
0

如何從數據框創建一個以「c(df $ lat,cd $ lon)」和radius「df $ radius」爲中心的實心圓的柵格圖層?使用R中的數據框創建圓形柵格

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 

回答

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,不經/緯度

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) 

(如果您不希望重疊計數,請在circles函數中使用dissolve=TRUE

+0

這正是我所需要的。非常感謝你! – ADM