阅读带有R terra的COG时,如何忽略/强制缩放和偏移

ve7v8dk2  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(108)

我正在使用terra包从LPCLOUD加载大量HLS.S30和HLS.L30 COG作为SpatRasters。我注意到其中一些像素值最终是整数(0到1000之间),而其他的则是浮点数(0到1之间)。使用terra::describe检查文件时发现,有些文件具有“Offset:0,Scale:0.0001 "字段,而其他人没有,这就是我认为造成这种不一致的原因。
是否有办法忽略这些刻度/偏移,或者在使用terra::rast读取日期时强制刻度= 1,偏移= 0,也许在GDAL选项中?
可重现的示例(需要NASA Earthdata登录):

library(terra)

setGDALconfig("GDAL_HTTP_UNSAFESSL", value = "YES")
setGDALconfig("GDAL_HTTP_COOKIEFILE", value = ".rcookies")
setGDALconfig("GDAL_HTTP_COOKIEJAR", value = ".rcookies")
setGDALconfig("GDAL_DISABLE_READDIR_ON_OPEN", value = "EMPTY_DIR")
setGDALconfig("CPL_VSIL_CURL_ALLOWED_EXTENSIONS", value = "TIF")

url1 <- "https://data.lpdaac.earthdatacloud.nasa.gov/lp-prod-protected/HLSS30.020/HLS.S30.T32ULC.2022237T103641.v2.0/HLS.S30.T32ULC.2022237T103641.v2.0.B08.tif"
url2 <- "https://data.lpdaac.earthdatacloud.nasa.gov/lp-prod-protected/HLSS30.020/HLS.S30.T31UGT.2022237T103641.v2.0/HLS.S30.T31UGT.2022237T103641.v2.0.B08.tif"

r1 <- rast(url1, vsi=TRUE)
r2 <- rast(url2, vsi=TRUE)
r1[1]
r2[2]
describe(url1)
describe(url2)
relj7zay

relj7zay1#

您应该能够使用terra::scoff设置或删除比例和偏移。例如,你可以做

scoff(r1) <- NULL
scoff(r2) <- NULL

或等同物

scoff(r1) <- cbind(1, 0)
scoff(r2) <- cbind(1, 0)

相关问题