我希望我没有忽视这方面的其他地方的类似问题,但我还无法解决我的问题......
我有一个分辨率为10x10m的DEM。我需要找到所有具有> 35°斜率的像素并找出它们的展示。 (在(?)之后,我需要以某种方式将它与来自另一个100x100m程序的网格链接起来并对它们做进一步的工作)。我怎么能做到最好?
到目前为止我做了什么:
DEM=raster("DEM_10m.tif")
DEM
class : RasterLayer
dimensions : 2731, 2407, 6573517 (nrow, ncol, ncell)
resolution : 10, 10 (x, y)
extent : 57495.5, 81565.5, 202547.5, 229857.5 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232
names : DEM_10m
values : -32768, 32767 (min, max)
slope_aspect <- terrain(DEM, opt=c("slope", "aspect"), unit="degrees")
slope_aspect$elevation <- DEM
slope_aspect
x y slope aspect
1 79560.5 229462.5 3.007349e+01 3.273391e+02
2 79570.5 229462.5 2.946020e+01 3.351363e+02
3 79550.5 229452.5 3.025771e+01 3.150000e+02
4 79560.5 229452.5 3.200538e+01 3.231301e+02
5 79570.5 229452.5 2.902189e+01 3.374794e+02
6 79540.5 229442.5 2.391028e+01 3.195739e+02
7 79550.5 229442.5 3.054151e+01 3.063844e+02
8 79560.5 229442.5 2.719728e+01 3.110548e+02
等
当我这样做时:
slope_35<-slope_aspect[slope_aspect$slope>=35]
slope_35
slope aspect elevation
[1,] 35.14579 7.349564e+01 969
[2,] 35.13729 1.465922e+02 975
[3,] 35.94211 4.639718e+01 1063
[4,] 36.00673 4.081508e+01 1057
[5,] 36.19906 9.785331e+01 917
等。 它返回一个矩阵,坐标消失了(我可能需要稍后将DEM中的像素链接到.asc文件的像素)。 好吧,我真的不知道如何解决这个问题,不幸的是我是一个R-beginner ...... 谢谢你的帮助!
答案 0 :(得分:0)
您可以获得仅包含超过此阈值的像素的栅格:
slope_aspect <- terrain(DEM, opt=c("slope", "aspect"), unit="degrees")
slope_aspect_masked <- mask(x = slope_aspect , mask = slope_aspect[[1]]>35 , maskvalue = 0)
输出将是一个栅格文件,其有效值以像素为单位,斜率值超过35.您可以将其与其他网格一起使用以进行进一步分析。