使用不同分辨率的 dtm 和 dsm 计算 CHM

Calculating a CHM with dtm and dsm with different resolutions

我有不同分辨率的 DTM 和 DSM。 以下是每个栅格图层的摘要。

> raster_dsm
class       : RasterLayer 
dimensions  : 2001, 2501, 5004501  (nrow, ncol, ncell)
resolution  : 0.5, 0.5  (x, y)
extent      : -112500.2, -111249.8, 388999.8, 390000.2  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +units=m +no_defs 
data source : D:/Test_Raster/DSM/dsm.asc 
names       : dsm 

>raster_dtm
class       : RasterLayer 
dimensions  : 1001, 1251, 1252251  (nrow, ncol, ncell)
resolution  : 1, 1  (x, y)
extent      : -112500.5, -111249.5, 388999.5, 390000.5  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +units=m +no_defs 
data source : D:/Test_Raster/DTM/dtm.asc 
names       : dtm

可以看到,dtm的分辨率是1m,dsm的分辨率是0.5m。

我想计算冠高模型 (CHM)。 最简单的方法是 CHM = dsm - dtm

但是当我在 R 中尝试时,出现以下错误代码:

Error in compareRaster(e1, e2, extent = FALSE, rowcol = FALSE, crs = TRUE,  : 
  different resolution

有没有简单的方法可以忽略分辨率?或者我必须在进一步计算之前对数据进行重新采样吗? 在 ArcGis 中,您可以轻松地进行这种栅格计算,因为您不必先对数据进行重新采样。

如有任何建议,我们将不胜感激!

是的,Arc*** 会为您做这件事,但它实际上做了什么?我认为最好避免这种歧义。在这种情况下,您不能使用 dis/aggregate,因为范围不同。所以你需要使用 resample