从 {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.
我想使用 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.