地理问题:如何在给定地面控制点的情况下生成.wld文件?

时间:2009-11-02 16:34:14

标签: geocoding gdal

好的,所以我有一个jpeg和一堆地面控制点(x / y像素和相应的纬度/经度参考)。

我想从命令行生成一个.wld世界文件以伴随jpeg。我的坐标系是谷歌地图,即EPSG:900913。

我知道我可以使用gdal_transform在给定gcps的情况下生成.vrt,但我需要的是.wld文件。 (不太清楚差异,但这绝对是我需要的!)

任何人都知道如何做到这一点?

由于 理查德

2 个答案:

答案 0 :(得分:3)

世界文件基本上是一个确定地理配准的6行ascii文本文件。如果您有一组GCP,则需要将它们(使用gdal等工具)映射到单个仿射变换。

我不相信gdal命令行实用程序可以直接创建一个world文件,但是如果你在驱动程序中设置了WORLDFILE = yes,那么当你编写一个图像时,GDAL中的某些驱动程序会为你做这个。您必须检查驱动程序的特定格式,看它是否支持此功能。

如果没有,你可以手动轻松完成。只需使用GCP制作.VRT文件,然后在文本编辑器中查看。它将有一个这样的部分:

<GeoTransform>440720.0,  60,  0.0,  3751320.0,  0.0, -60.0</GeoTransform>

这个“GeoTransform”是世界文件使用的仿射变换。您需要做的就是创建一个ascii文件,每行放一个值,如下所示:

60
0.0
0.0
-60.0
440720.0
3751320.0

这将是您的应用程序的有效.WLD文件。

FYI - 6个数字是x像素大小,每x值y移位,每y像素x移位,x原点,然后是y原点。 (这些变化在仿射变换中提供旋转/剪切能力。通常,它们将为0/0,因为您通常需要经过正射校正的图像。)

有关详细信息,请参阅Wikipedia's entry on Worldfiles

答案 1 :(得分:1)

GDAL存储库中有Python脚本gcps2wld.py将文件上的GCP集转换为世界文件格式的一阶近似值

我想补充一下Reed的答案,可以将GCP作为命令行参数提供给gdal_translate:

gdal_translate -gcp 1 2 3 4 -gcp 6 7 8 9 [-gcp ...] -of GTiff inp.img out.tif