terra R coord.ref 未命名
Posted
技术标签:
【中文标题】terra R coord.ref 未命名【英文标题】:terra R coord.ref unnamed 【发布时间】:2021-11-26 22:05:15 【问题描述】:我正在使用带有统一 HLS 数据 (https://hls.gsfc.nasa.gov/) 的 terra
库。这些是 HDF4_EOS 文件(您可以在此处下载图像:https://hls.gsfc.nasa.gov/data/v1.4/S30/2020/11/T/M/M/)。
一旦下载场景并尝试使用 sds 函数(即datat=sds(ImageIn)
)加载到 R 中,它可以工作,但 coord.ref
未命名,如下所示:
datat
class : SpatRasterDataset
subdatasets : 14
dimensions : 3660, 3660 (nrow, ncol)
nlyr : 1, 1, 1, 1, 1, 1, 1, 1, 1
resolution : 30, 30 (x, y)
extent : 399960, 509760, 5090220, 5200020 (xmin, xmax, ymin,
ymax)
coord. ref. : unnamed
source(s) : HLS.S30.T11TMM.2019310.v1.4.hdf
names : B01, B02, B03, B04, B05, B06, B07, B08, B8A, B09, B10,
B11, B12, QA
当我使用terra::crs(ImageIn)
时,我收到以下错误消息:
(函数(类,fdef,mtable)中的错误: 无法找到用于签名的函数“crs”的继承方法 ‘“字符”’
如果我使用来自gdalUtils
库的函数get_subdatasets()
和来自raster
库的函数raster()
(即raster(imageIn[2])
),则会找到crs(即+proj=utm +zone=11 +datum=WGS84 +units=m +no_defs
)。
class : RasterLayer
dimensions : 3660, 3660, 13395600 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 399960, 509760, 5090220, 5200020 (xmin, xmax, ymin,
ymax)
crs : +proj=utm +zone=11 +datum=WGS84 +units=m +no_defs
source : HLS.S30.T11TMM.2019310.v1.4.hdf:Grid:B02
names : HLS.S30.T11TMM.2019310.v1.4.hdf.Grid.B02
values : -32768, 32767 (min, max)
有没有办法让terra
库找到栅格的投影?
谢谢!!
【问题讨论】:
你试过terra::crs(imageIn[2])
吗?
您能否提供一个示例文件,您能否编辑您的问题并show
使用 terra 和 raster 获得的结果?
感谢两位的建议。我已按上述问题进行了编辑。
【参考方案1】:
这不是故意的,此问题已修复。
library(terra)
r <- rast("HLS.S30.T11TMM.2020002.v1.4.hdf")
r
#class : SpatRaster
#dimensions : 3660, 3660, 14 (nrow, ncol, nlyr)
#resolution : 30, 30 (x, y)
#extent : 399960, 509760, 5090220, 5200020 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=utm +zone=11 +ellps=WGS84 +units=m +no_defs
#sources : HLS.S30.T11TMM.2020002.v1.4.hdf:Grid:B01
# HLS.S30.T11TMM.2020002.v1.4.hdf:Grid:B02
# HLS.S30.T11TMM.2020002.v1.4.hdf:Grid:B03
# ... and 11 more source(s)
#names : Grid:B01, Grid:B02, Grid:B03, Grid:B04, Grid:B05, Grid:B06, ...
您也可以使用crs
方法,如下所示
crs(r, proj=TRUE)
#[1] "+proj=utm +zone=11 +ellps=WGS84 +units=m +no_defs"
SpatRasterDataset 还没有 crs 方法,但你可以这样做
s <- sds("HLS.S30.T11TMM.2020002.v1.4.hdf")
crs(s[[1]], proj=TRUE)
#[1] "+proj=utm +zone=11 +ellps=WGS84 +units=m +no_defs"
【讨论】:
感谢您的帮助。它有效。以上是关于terra R coord.ref 未命名的主要内容,如果未能解决你的问题,请参考以下文章