0

我正在使用以下 MODIS DSR 1km 产品做一些分析:MCD18A1.A2001001.h15v05.061.2020097222704.hdf

但是,我无法从 SpatialGridDataFrame 转换为 Raster,因为像素大小会发生变化......

这是我的脚本:

Filename <- "ModisProductsOriginal/MCD18A1.A2001001.h15v05.061.2020097222704.hdf"
SDSs <- getSds(Filename)
GMT_1200_DSR_sgdf <- readGDAL(SDSs$SDS4gdal[8], as.is = TRUE)
GMT_1200_DSR_rast <- raster(GMT_1200_DSR_sgdf)

以下是警告:

1: 在 getProjectionRef(x, OVERRIDE_PROJ_DATUM_WITH_TOWGS84 = OVERRIDE_PROJ_DATUM_WITH_TOWGS84, : Proj4 定义中未指定的废弃基准(基于 Clarke 1866 球体): +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=clrk66 +units= m +no_defs

2:在 showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj = prefer_proj) 中:丢弃的数据未知,基于 Proj4 定义中的 Clarke 1866 椭球

结果如下:

GMT_1200_DSR_sgdf

GMT_1200_DSR_rast

我找不到这个问题的解决方案,我想知道这是否应该发生,如果不是,我该如何解决?指定 CRS?使用正弦投影时(“+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs”)只会出现警告,可能我没有正确使用 CRS .

4

1 回答 1

0

是什么让您说像素大小发生了变化?我只看到有关 CRS 的警告。警告是因为新版本的 PROJ 库不喜欢具有不是 WGS84 的数据的 PROJ 字符串。

带有子数据集的 HDF 更容易使用terra.

library(terra)
f <- "ModisProductsOriginal/MCD18A1.A2001001.h15v05.061.2020097222704.hdf"
s <- sds(f)
s8 <- s[8] 

# or
r <- rast(f)
于 2021-04-30T19:53:00.630 回答