将GeoTIFF批量转换为KMZ文件


11

我大约有600个GeoTIFF地图文件,每个文件的大小约为140 mb,我希望将其转换为KMZ文件,以便人们可以下载它们并将其与Garmin GPS装置,Google Earth等配合使用。

有谁知道批处理这些内容的简便方法,最好将tiff图像转换为更小的jpeg图像,作为处理的一部分?

我偶然发现了gdal_translate,我想使用“ -co COMPRESS = JPEG”选项将图像优化成更小的图像可能有用。


看起来G-Raster可能会让我逐个文件进行处理。
加文

Global Mapper看起来也很强大,但是有点贵,因为我不会从人们下载KMZ文件中获利。
加文

OkMap产生了很好的输出,但是同样缺少有用的批处理选项。
加文

1
如果图像很大,则不仅必须以最大1百万像素平铺它们,而且在同一KMZ内您也不得超过100块,以使Garmin手持设备将其接受为自定义地图。它也必须在WGS84上较长。有关Garmin KMZ支持的更多详细信息,请参见garmin论坛
Stefan 2012年

最后,我使用OkMap手动完成了该过程。感谢大家的投入。
加文2012年

Answers:


15

最新版本的gdal_translate支持KML Superoverlay。尽管尚未在GDAL网站上进行记录,但可以使用以下内容:

gdal_translate.exe -of KMLSUPEROVERLAY c:\ in.tif c:\ out.kmz -co FORMAT = JPEG

这将使用jpeg压缩将切片版本保存在kmz文件中。

在Windows上,您可以自动使用

forfiles / m * .tif / c“ cmd / c gdal_translate.exe -of KMLSUPEROVERLAY @FILE @ FNAME.kmz -co FORMAT = JPEG”

假定输入文件在WGS84中。


1
不幸的是,我刚刚发现所生成的KMZ不是与Garmin Custom Map兼容的KMZ文件。
加文

你知道为什么不兼容吗?
亚当·米尔斯

SuperOverlay的结构不同。它是一个kmz,其中包含大量kmz。Garmin格式是一个kmz,其中包含jpg的文件夹和一个描述jpg范围的doc.kml文件。不知道为什么会有替代的结构,但是我个人发现Garmin格式更清洁...这很奇怪,因为我讨厌大多数Garmin数据结构。
迈克

@Gavin您是否找到解决方案?我遇到了我认为同样的问题,请参阅此问题
Gerrit

@gerrit抱歉,不。这是我要再次查看的内容。
加文

0

如果Geotiff文件的大小均为140 mb,则生成的jpg文件可能仍然很大。将文件拆分为较小的文件可能会很有趣,以便可以更轻松地显示它们。您可以使用http://www.maptiler.org/尝试使用一个文件,该文件具有生成KML Superoverlay的选项。MapTiler可能不适用于批处理所有文件,但是它易于使用,因此可以进行一些初步测试。

如果您希望使用它,则可以尝试使用GDAL2Tiles批处理所有文件。我还没有尝试过,但是我认为它应该可行,因为MapTiler基于GDAL2Tiles。


OkMap这样做-取得GeoTIFF,然后将其拆分为多个较小的图像,以供KMZ文件使用。gdal2tiles是一个方便的工具-只是还没有想出如何从中生成kmz。会玩更多。
加文

OkMap对我来说是新的。它将看一下,这似乎是一个有趣的程序。
命名

gdal2tiles几乎在那儿,但OkMap产生的结果要优雅得多。确定大小是由OkMap计算的,以有效地分割原始图像,允许使用矩形而不是正方形,从而避免了额外的透明区域。我想知道是否可以通过某种方式自动执行/命令行OkMap以批处理我的文件。
加文

0

尽管看起来gdal2tiles.py可能有所帮助,但我从未在KML中使用过图像。根据操作系统的不同,可以采用多种方式进行批量转换。在具有CMD的Windows中,使用命令:DIR path > yourfile .txt(生成文件列表),将.txt导入Excel / OpenOffice,对其进行清理并添加GDAL的语法。另存为filename.bat并从命令行运行它。


我很熟悉并且经常使用gdal2tiles,但是有点不确定我应该使用什么设置来吐出kmz。有任何想法吗?
加文

1
我猜这只是压缩kml输出和图像,然后将zip文件重命名为kmz扩展名的情况。
加文

而已。如果要压缩图像,则应查看它是哪种数据类型,并可能将其更改为内存效率更高的数据。
Tomek

gdal2tiles几乎在那儿,但OkMap产生的结果要优雅得多。确定大小是由OkMap计算的,以有效地分割原始图像,允许使用矩形而不是正方形,从而避免了额外的透明区域。我想知道是否可以通过某种方式自动执行/命令行OkMap以批处理我的文件。
加文


0

我在这里发布了一个Python脚本供ArcGIS使用:

将3GB ArcGIS Raster导出到KML而不丢失分辨率?

不同的模型支持不同数量的图块。您必须查看此限制,要使用的图像范围以及要使用的最低分辨率。然后,您可能需要从原始图像创建多个文件,使用脚本工具处理图像的每个部分,然后根据需要将文件从便携式计算机传输到GPS(Garmin一次仅支持1个“自定义地图”) 。许多* map模型仅支持100个1024x1024瓦片。科罗拉多州和蒙大拿州支持更多。我尝试将图块大小更改为2048 x 2048,这似乎仍然有效,并且一次可以容纳更多数据。

在您的情况下,我将镶嵌到一些多Gig图像上并处理这些大区域的图像,并让用户将它们在Google Earth中子集化,然后从那里保存自己的kmz。“自定义地图”的内容故意受到很大限制,因为Garmin宁愿支持其jnx格式并向您出售Birdseye订阅。...或强迫您入侵其设备。


0

OkMap Desktop(完整版,付费版本)现在包括一个批处理功能,用于生成Garmin Custom Map兼容的KMZ文件,因此我现在使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.