R包terra仅指定CRS投影时,如何确定新栅格的属性?
关于terra包投影时新栅格属性的疑问
我想了解R包terra在执行投影操作时,如何确定所创建新栅格的属性。我知道投影的最佳实践是使用目标CRS下的模板栅格,例如project(my_raster, my_template_raster)。但如果用户仅指定CRS进行投影(如project(my_raster,"ESRI:54009")),就不清楚terra是如何确定新投影下栅格的维度、范围(extent)和分辨率(resolution)的。
以下示例代码中,投影后的栅格未覆盖栅格矢量化后再投影的多边形范围,这一现象令人困惑:
library(terra) #> terra 1.7.71 r <- rast(xmin = 0, xmax = 5, ymin = 0, ymax = 5, resolution = 1) values(r) <- 1:ncell(r) # Mollweide投影 proj_moll <- "ESRI:54009" # 创建栅格对应的矢量网格并投影 v_moll <- r |> as.polygons(dissolve = FALSE) |> project(proj_moll) # 将栅格投影到Mollweide r_moll <- project(r, proj_moll) # 绘图:手动设置范围,因为当前ext=参数似乎无法正常工作 plot(r_moll, xlim = c(ext(v_moll)$xmin, ext(v_moll)$xmax), ylim = c(ext(v_moll)$ymin, ext(v_moll)$ymax)) lines(v_moll, col = "red", lwd = 2)

内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

