从 {terra} 扩展填充 0 而不是 255?

Extend from {terra} fills with 0 instead of 255?

我想使用 terra::extend 函数。尽管我的栅格数据类型为 INT1U(其中 nodata 由值 255 指定),但当我使用扩展时,新的空单元格的值为 0。这对我的工作流来说是有问题的(因为我有其他单元格的值为 0 但不适用)。

r <- rast(xmin=-150, xmax=-120, ymin=30, ymax=60, ncols=3, nrows=3)
values(r) <- c(0,1,2,3,4,5,6,7,255)

r <- writeRaster(r, filename = "/databricks/driver/test.tif", datatype = "INT1U", overwrite=T)

e <- ext(-180, -100, 40, 70)

re <- extend(r, e, file = "/databricks/driver/test2.tif", datatype = "INT1U", overwrite=T)

plot(re)

我觉得也许扩展函数应该有一个用于添加单元格的值的选项。例如:

re <- extend(r, e, val = 255, file = "/databricks/driver/test2.tif", datatype = "INT1U", overwrite=T)

对别人的想法感兴趣。谢谢

我不确定为什么,但如果您在单独的步骤中使用 writeRaster,这会起作用。

r <- rast(xmin=-150, xmax=-120, ymin=30, ymax=60, ncols=3, nrows=3)
values(r) <- c(0,1,2,3,4,5,6,7,255)
r <- writeRaster(r, filename = "test.tif", datatype = "INT1U", overwrite=T)
e <- ext(-180, -100, 40, 70)

re <- extend(r, e)
re <- writeRaster(re, file = "test2.tif", datatype = "INT1U", overwrite=T)
plot(re)

这只发生在“INT1U”上。也许你可以提出一个问题 here.