You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

转换至莫尔韦德投影时出现区域匹配问题

原因分析

  • 原边界框是WGS84经纬度投影下的轴对齐矩形,Mollweide是等面积投影,经纬度矩形转换后会因投影扭曲变成非轴对齐的多边形,这是投影转换的正常现象。
  • 目标栅格ghsl是Mollweide投影下的轴对齐栅格,二者的视觉差异是不同投影下空间范围的表现形式不同,并非转换错误。

解决方法

方法1:直接使用terra::crop自动处理跨投影裁剪

无需手动转换边界框投影,crop函数会自动完成投影转换并裁剪:

# 读取原栅格(补充缺失的读取步骤)
template_rast <- rast("你的原栅格文件路径.tif")
# 获取原栅格边界框
my_box <- vect(st_as_sfc(st_bbox(template_rast), crs = crs(template_rast, proj=TRUE)))
# 读取目标栅格并裁剪
ghsl <- rast("GHS_POP_E2015_GLOBE_R2019A_54009_1K_V1_0.tif")
cropped_ghsl <- crop(ghsl, my_box)

# 验证裁剪结果
plot(cropped_ghsl)
plot(my_box, add = TRUE, border = "red", lwd = 2)

方法2:手动验证投影范围(可选)

若要确认转换后的范围是否正确,可将目标栅格的范围转换回WGS84投影,与原边界框对比:

# 获取目标栅格的Mollweide投影范围,转换为WGS84
ghsl_ext_wgs84 <- project(ext(ghsl), from = crs(ghsl), to = crs(template_rast))
# 打印对比两个范围
cat("原栅格边界框(WGS84):\n")
print(st_bbox(template_rast))
cat("\n目标栅格的WGS84范围:\n")
print(ghsl_ext_wgs84)

注意事项

  • 避免手动转换轴对齐矩形后去匹配目标栅格的轴对齐范围,不同投影下的轴对齐规则不同,视觉上无法直接对应。
  • terra包的空间操作函数(如crop、mask、extract)均支持跨投影自动处理,优先使用内置函数减少误差。

内容的提问来源于stack exchange,提问作者TheRealJimShady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:35:25