4

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

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

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

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

谢谢理查德

4

2 回答 2

3

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

我不相信 gdal 命令行实用程序可以让您直接制作世界文件,尽管如果您在驱动程序中设置 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 文件。

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

有关详细信息,请参阅Wikipedia 关于 Worldfiles 的条目

于 2009-11-02T16:42:39.230 回答
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
于 2010-01-23T21:18:15.477 回答