如何用gdalwarp输出ISEA投影栅格?转换报错求助
解决GDAL转换ISEA投影时的点转换失败问题
PROJ/GDAL对ISEA投影的支持情况
PROJ和GDAL完全支持ISEA(二十面体斯奈德等面积)投影,你遇到的报错并非工具不支持该投影,而是命令参数设置不符合ISEA投影的特性导致的。
报错原因分析
ISEA是一种基于二十面体的分块投影,并非全局连续的平面矩形投影。你在命令中使用-te -180 -90 +180 +90强制指定了全局地理边界,GDAL尝试将这个矩形范围内的所有点转换到ISEA投影时,会因为ISEA投影的平面坐标无法覆盖这种全局矩形范围,导致大量点转换失败,进而无法计算输出边界。
解决方法
1. 调整命令参数,移除强制边界并增加采样点
修改gdalwarp命令,去掉-te参数,同时添加-wo SOURCE_EXTRA=1000参数提升采样密度,帮助GDAL正确计算ISEA投影的输出范围:
gdalwarp -t_srs "proj=isea +ellps=sphere +units=m" -wo SOURCE_EXTRA=1000 NE1_50M_SR_W.tif out-isea.tif
SOURCE_EXTRA参数会增加GDAL在计算边界时的采样点数量,确保能覆盖ISEA投影的分块边界,避免转换失败。- 明确指定
units=m可以避免坐标单位混淆,提升转换稳定性。
2. 反向转换(ISEA转Plate-Carree)
如果需要将生成的ISEA投影文件转回Plate-Carree投影,使用类似命令,目标投影指定为经纬度投影即可:
gdalwarp -t_srs "proj=longlat +ellps=sphere" -wo SOURCE_EXTRA=1000 out-isea.tif back-platecarree.tif
补充说明
ISEA投影的核心是将地球表面划分为二十个三角形面进行局部投影,全局转换时无法用传统的矩形地理边界来约束输出。通过移除-te参数并增加采样点,GDAL可以自动识别每个分块的有效范围,完成投影转换。
内容的提问来源于stack exchange,提问作者Molly
相关产品推荐
相关产品推荐

