使用Python更改图像投影

1 投票
1 回答
1248 浏览
提问于 2025-04-16 18:40

已知图像的四个角坐标:

  • 左上角: (70.20315, 20.92749)
  • 右上角: (70.20315, 31.45240)
  • 左下角: (59.70571, 20.92749)
  • 右下角: (59.70571, 31.45240)

(基本上是芬兰的地图,还有一点点瑞典、挪威和俄罗斯的部分)

我找不到方法将图像投影转换为谷歌地图的叠加图像,最好是用Python来实现。

可以使用pyprojPIL来做到这一点,但我没能弄明白具体怎么做。我还发现了GDAL,更具体地说是gdalwarp,但是找不到正确的方法来更改投影。

示例图像

1 个回答

0

(摘自gis的回答)

经过大量的尝试和错误,我发现其实不指定源投影也能正常工作。只用GDAL的Python接口也能做到这一点。下面是重现的步骤:

首先,给TIF文件添加控制点(当然,第一步是先用 convert mapimage.png mapimage.tif 将PNG文件转换为TIF文件):

gdal_translate mapimage.tif mapimage_georeffed.tif -gcp 2300 2300 31.45240 59.70571 -gcp 0 0 20.92749 70.20315 -gcp 2300 0 31.45240 70.20315 -gcp 0 2300 20.92749 59.70571 -a_srs +proj=longlat

接下来,GDAL的Python绑定里有一个 gdal2tiles.py,它可以自动生成适合地图的投影瓦片,还能生成样本地图页面。

顺便说一下,我不能完全确定投影是否完全正确,但在那个区域看起来至少是足够好的。

撰写回答