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

时间:2019-05-06 11:17:51

标签: r raster r-raster

我有一个具有不同分辨率的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的分辨率为1 m,dsm的分辨率为0.5m。

我要计算Crown Heigth模型(CHM)。 最简单的方法是 CHM = dsm-dtm

但是当我尝试使用R时,会出现以下错误代码:

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

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

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

是的,Arc ***会为您执行此操作,但是实际上它会做什么?我认为最好避免这种歧义。在这种情况下,由于范围不同,您不能使用分散/聚合。因此,您需要使用resample