问题描述
我使用以下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,: discarded datum 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椭球的废弃数据未知
结果如下:
我找不到这个问题的解决方案,我想知道这是否应该发生,如果不是,我该如何解决?指定CRS?使用正弦投影时(“+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs”)只出现警告,也许我没有正确使用CRS .
解决方法
是什么让您说像素大小会发生变化?我只看到有关 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)