0

我正在使用terra具有协调 HLS 数据的库 ( https://hls.gsfc.nasa.gov/ )。这些是 HDF4_EOS 文件(您可以在此处下载图像:https ://hls.gsfc.nasa.gov/data/v1.4/S30/2020/11/T/M/M/ )。

一旦下载场景并尝试使用 sds 函数加载到 R 中,(即datat=sds(ImageIn))它可以工作,但未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”找到继承的方法</p>

如果我使用库中的函数和库中的函数get_subdatasets()(即),则找到 crs(即)。gdalUtilsraster()rasterraster(imageIn[2])+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图书馆找到栅格的投影?

谢谢!!

4

1 回答 1

0

这不是故意的,这已得到修复。

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"
于 2021-10-07T15:01:39.803 回答