使用R从DEM GRID光栅中获取坡度光栅



经过大量的谷歌搜索,我找不到答案(第一次我无法通过查看其他问题/答案来克服这个问题(。我不太会问问题,所以请原谅我的失误。

我正试图在R中使用坡度工具执行ArcGIS或QGIS所执行的操作。为此,我一直在导入一个栅格,该栅格是我从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光栅,我使用斜率工具,输出测量输入为"度",方法输入为"平面",Z因子输入为1,得到的斜率光栅范围从0.001到73.396°。

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

我看到的唯一危险信号是你说"它已经被投影在正确的坐标系中";。投影光栅数据会降低质量。随着单元格值的平滑,斜率将变小。如果起伏是在单元大小的尺度上(例如沙丘与山脉(,这可能特别明显。你有没有将你得到的数据与原始数据进行比较?

另一个误差来源可能是数值的单位与坐标参考系的单位不同。但在你的情况下,两者似乎都是脚。

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

最新更新