我正在对 ArcGIS 中的卫星图像进行分类。我想在 R 中部分评估我的结果,例如通过交叉验证。 我想使用马赛克(具有 6 个波段的栅格(将波段值提取到点,但从我的栅格中它只能从 1 个波段获取值。如何从每个波段获取值?
下面是我使用的代码:
df <- mosaic %>%
extract(y = points) %>%
as.data.frame %>%
mutate(id_cls = points@data$id_cls) %>%
left_join(y = unique(poly@data), by = c("id_cls" = "id")) %>%
mutate(id_cls = NULL)
我想接收包含选定点处所有波段值的数据帧。
这是一个最小的、独立的、可重现的示例,对?extract
进行了微小的修改
r <- raster(ncol=36, nrow=18, vals=1:(18*36))
s <- stack(r,r,r) # similar to your mosaic
# from what I see you are using polygons to extract?
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
polys <- spPolygons(cds1, cds2)
v <- extract(r, polys)
str(v)
#List of 2
# $ : num [1:38] 326 327 328 329 330 331 332 333 334 335 ...
# $ : num [1:23] 173 208 209 244 245 280 281 282 315 316 ...