【发布时间】:2018-05-21 10:54:44
【问题描述】:
我正在尝试在 R 中做一些多边形/栅格工作。提取功能没有像我预期的那样工作。这是一个可重现的示例。
library(sf)
library(raster)
library(maptools)
raster <- download.file('https://raw.githubusercontent.com/JimShady/london_osm_canyons/master/test.tif', 'downloaded_raster')
raster <- raster('test.tif')
polygons <- read_sf('https://raw.githubusercontent.com/JimShady/london_osm_canyons/master/test2.geojson')
polygons <- st_transform(polygons, crs(raster)@projargs)
polygons$id <- 1
polygons <- as(polygons, 'Spatial')
new_polygon <- elide(polygons, rotate=-50)
proj4string(new_polygon) <- crs(raster)@projargs
polygons <- rbind(polygons, new_polygon)
plot(raster)
plot(polygons, add=T)
我想获取每个多边形相交的单元格的数量,即使它们是 NA,并将它们作为列存储在多边形中
polygons$cell_count <- extract(raster, polygons, fun = function(x,...)length(x), na.rm=F)
但是,当多边形明显与栅格的 5 个以上像元相交时,这将返回第一个多边形的数字 5。 这是怎么回事?
然后我想得到加权平均值。如果有任何 NA 单元格相交,那么这应该“失败”并返回 NA。 我认为这行得通,但是由于上面的错误,我现在对我的方法不是很有信心。
polygons$mean <- round(extract(raster, polygons, fun = mean, weights=T, na.rm=F),2)
我还想知道相交小于 1 的单元格的数量。我不知道该怎么做。有人有什么好主意吗?
polygons$almost_zero <-
感谢您的帮助。
【问题讨论】:
-
运行您的上述代码时出现许多错误。确保代码易于重现。
-
对不起,我认为它有效。我现在就修。
-
现在应该可以工作了@SamAct