基于SpatialPolygonsDataFrame的位置的颜色点

时间:2017-10-09 10:57:21

标签: r gis data-manipulation

我从这里下载了一个大型SpatialPolygonsDataFrame:

http://omap.africanmarineatlas.org/BIOSPHERE/pages/3_terrestrial%20vegetation.htm

我使用以下方法创建SpatialPolygonsDataFrame:

white_veg <- readOGR(dsn="data", 
                     layer="Whites vegetation")

我有一个单独的数据框,如下所示:

id <- c(1,2,3,4,5,6,7,8)
lat <- c(13.8, 13.552, 13.381, -15.440, -15.860, 13.967, -27.750, -27.750)
lon <- c(2.250, 2.687, 2.865, 23.250, 23.340, 30.527, 21.420, 21.420)
x <- c(566, 537, 554, 879, 811, 268, 216, 216)
y <- c(8, 10.32, 3.83, 64.8, 53.7, 4, 5.8, 2.2)

locations <- data.frame(id, lat, lon, x, y)

我想在locations中创建一个新列,根据来自white_veg + lat坐标的lon内部的植被类型多边形对每一行进行分类,例如white_veg@data$DESCRIPTIO中的因素。

我已在gcontains()包中的rgeos上阅读a question,但这只会返回长度为1的逻辑向量,我不确定这表示什么:

locations_coords <- data.frame(locations$lat, locations$lon)
locations_spoints <- SpatialPoints(locations_coords,proj4string=CRS(proj4string(white_veg)))
gContains(white_veg, locations_spoints)

我还使用over包中的sp查看了this on the GIS SE,但答案还不够全面,无法理解。

1 个答案:

答案 0 :(得分:0)

我最终使用over包中的sp,如下所示:

locations_veg_class <- locations %>% 
mutate(veg_class = over(locations_spoints, white_veg)$DESCRIPTIO)

其中locations_spoints是我在问题中创建的SpatialPoints对象。