使用R从DEM GRID栅格获取坡度栅格

Using R to obtain slope raster from DEM GRID raster

经过大量谷歌搜索后,我无法找到答案(这是我第一次无法通过查看其他人来解决问题 questions/answers)。我刚开始提问,所以请原谅任何错误。

我正在尝试使用坡度工具执行 ArcGIS 或 QGIS 执行的操作,就在 R 中。为此,我一直在导入从 ArcGIS 导出的具有以下特征的 GRID 格式的栅格:

class      : RasterLayer 
dimensions : 821, 581, 477001  (nrow, ncol, ncell)
resolution : 4.996121, 4.996121  (x, y)
extent     : 2832147, 2835049, 14234048, 14238150  (xmin, xmax, ymin, ymax)
crs        : +proj=tmerc +lat_0=34.75 +lon_0=-118.583333333333 +k=0.9999 +x_0=800000.000000001 +y_0=3999999.99999999 +datum=NAD83 +units=us-ft +no_defs 
source     : rr_2020_shell 
names      : rr_2020_shell 
values     : 5623.253, 6401.356  (min, max)

它已经投影在正确的坐标系(EPSG:3423)中,但是当我使用以下代码查找斜率时:

RR_2020_Slope = terrain(RR_2020_St1_Raster,'slope', units = 'degrees', neighbors = 8, filename = 'RR_2020_Slope.grd', overwrite = T)

结果是0到1.28°的坡度栅格,这与我在ArcGIS中使用坡度工具计算的结果有很大不同。在 ArcGIS 中的同一投影中使用相同的 DEM 栅格我使用坡度工具,输入为 'Degree' 用于输出测量,'Planar' 用于方法,1 用于 Z 因子和我得到的坡度栅格范围从 0.001 到 73.396°。

总的来说,我想知道我在 R 中的错​​误是从哪里来的,是高程分辨率问题吗?我的投影有问题吗?原谅我,我不一定包括数据,因为它们是敏感材料,但也许我的方法或对我使用的功能的假设存在明显的错误?

我看到的唯一危险信号是您说“它已经投影在正确的坐标系中”。投影光栅数据会降低质量。随着像元值变得平滑,斜率将变小。如果地势在像元大小的尺度上(例如沙丘与山脉),这可能会特别明显。您是否与原始数据进行了比较?

另一个错误来源可能是值的单位与坐标参考系统的单位不同。但在你的情况下,两者似乎都是以英尺为单位的。

你也可以用 terra::terrain() 试试这个吗?