【问题标题】:Creating raster with circles from dataframe in R从R中的数据框创建带有圆圈的栅格
【发布时间】:2016-06-15 07:39:49
【问题描述】:

如何从数据框中创建一个以“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

【问题讨论】:

    标签: r raster rasterize


    【解决方案1】:
    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)
    

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

    【讨论】:

    • 这正是我所需要的。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2021-01-20
    相关资源
    最近更新 更多