【问题标题】:Transforming Robinson to EPSG:3857 with GDAL使用 GDAL 将 Robinson 转换为 EPSG:3857
【发布时间】:2021-10-14 06:02:19
【问题描述】:

我正在尝试将全球 Robinson 投影转换为墨卡托投影。比如我用这个image

首先,我应用地理标记:

gdal_translate -a_ullr -180 90 180 -90 -a_srs ESRI:54030 source.jpg source_tagged.tif

最后将其变形为墨卡托:

gdalwarp -t_srs ESRI:54030 -s_srs EPSG:3857 source_tagged.tif target.tif

结果略微垂直拉伸,但远不及正确的墨卡托。我做错了什么?

【问题讨论】:

    标签: gdal


    【解决方案1】:

    您的命令中有几个问题。首先是 -180 90 不在全球 Robinson 投影 GeoTIFF 的左上角像素中。左上角是 -338.2187147689 90,右下角是 338.2187147689 -90。但是,您还将 srs 指定为 ESRI:54030,因此这些边界需要位于投影坐标中,而不是纬度/经度。从您的图像生成 GeoTIFF 的命令是:

    gdal_translate -a_ullr -17005833.3305252 8625154.47184994 17005833.3305252 -8625154.47184994 -a_srs ESRI:54030 source.jpg source_tagged.tif
    

    您的第二个命令切换了 -t_srs 和 -s_srs。鉴于您要投影到 EPSG:3857,您还需要提供边界,因为墨卡托在两极处无限远。因此更新后的命令将如下所示:

    gdalwarp -s_srs ESRI:54030 -t_srs EPSG:3857 -te -180 -81 180 81 -te_srs EPSG:4326 source_tagged.tif target.tif
    

    我使用这些命令从您的示例中制作了以下投影图像(在运行它们之前裁剪图像中的空白)。

    【讨论】:

    • 效果很好,谢谢。不过,我还有两个问题。对于gdal_translate 命令,“投影坐标”到底是什么?这是从投影到投影的不同之处吗?有没有办法从纬度/经度计算这些?对于gdalwarp 命令,您将边界设置为-81 / 81。我想匹配谷歌地图墨卡托投影。是否有明确的界限?谢谢!
    • 投影坐标是坐标系中的 x 和 y。对于大多数预测,您只需查看它们,例如epsg.io,但我认为它们不是为 ESRI:54030 提供的,因为它不是圆柱形的。所以我只是在 x 为 180W/180E 0N 和 y 为 0E 90N/90S 时使用cs2cs 抓住了界限。对于EPSG:3857,纬度从 -85.06 到 85.06,因此您可以使用这些值更新命令。
    猜你喜欢
    • 2021-12-23
    • 2022-01-08
    • 1970-01-01
    • 2018-11-20
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2019-06-04
    相关资源
    最近更新 更多