我有一个包含125个独特多边形的多边形sf对象(代表散布在美国各州的不同区域)。所有多边形都不共享边界。我也有一个30米山体阴影的数字高程模型栅格图像的状态,它涵盖了多边形的区域(然后一些)。我想使用光栅包中的terrain函数来计算每个多边形的唯一坡度和坡向。我的最终产品是具有两个新列的多边形sf对象,斜率和纵横比,因此每个多边形都有其斜率和纵横比。
我在原始的全州范围的光栅图像上使用了terrain函数,并且只返回了多边形区域的蒙版光栅图像,它返回了整个光栅图像的最小和最大坡度和坡度。
除此之外,我对如何计算每个唯一多边形的面积的坡度和坡向,然后将这些数据放入多边形sf对象中非常困惑。如果有人有什么建议,我很乐意倾听。
谢谢!
发布于 2019-08-25 08:02:20
示例数据
library(raster)
elevation <- getData('alt', country='CHE')
x <- terrain(elevation, opt=c('slope', 'aspect'), unit='degrees')解决方案
sw <- getData("GADM", country="CHE", level=1)
e <- extract(x, sw, fun=mean, na.rm=TRUE)
x <- data.frame(sw$NAME_1, e)
head(x)
# sw.NAME_1 slope aspect
#1 Aargau 3.065123 170.2449
#2 Appenzell Ausserrhoden 4.905536 187.5591
#3 Appenzell Innerrhoden 7.380191 170.1497
#4 Basel-Landschaft 3.742552 178.2771
#5 Basel-Stadt 1.002250 125.0466
#6 Bern 9.025566 195.5117您可以像这样将值分配给SpatialPolygons
swe <- cbind(sw, e)https://stackoverflow.com/questions/57641580
复制相似问题