如何解决R:从 SpatialGridDF 转换时,raster() 更改像素大小
我使用以下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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。