Conversión por lotes de GeoTIFF's a archivos KMZ

11

Tengo alrededor de 600 archivos de mapas GeoTIFF, cada uno de unos 140 mb de tamaño que me gustaría convertir a archivos KMZ para que las personas puedan descargarlos y usarlos con las unidades GPS de Garmin, Google Earth, etc.

¿Alguien sabe una manera fácil de procesar estos lotes, preferiblemente convirtiendo la imagen tiff a una imagen jpeg mucho más pequeña como parte del proceso?

Me topé con gdal_translate, que creo que podría ser útil para optimizar las imágenes en algo más pequeño usando la opción "-co COMPRESS = JPEG".

Gavin
fuente
Parece que G-Raster podría dejarme hacer el proceso archivo por archivo.
Gavin
Global Mapper también parece capaz, pero es un poco caro ya que no voy a beneficiarme de la gente que descarga los archivos KMZ.
Gavin
OkMap produce una buena salida, pero nuevamente carece de esa útil opción de procesamiento por lotes.
Gavin
1
Si las imágenes son tan grandes, no solo debe colocarlas en mosaico en un máximo de 1 megapíxeles, tampoco debe exceder las 100 fichas dentro del mismo KMZ para que las computadoras de mano Garmin lo acepten como un mapa personalizado. También debe estar en WGS84 lat de largo. Consulte el foro de Garmin para obtener más detalles sobre el soporte de Garmin KMZ.
Stefan
Al final, completé el proceso manualmente usando OkMap. Gracias por el aporte de todos.
Gavin

Respuestas:

15

Las versiones recientes de gdal_translate tienen soporte para KML Superoverlay. Aunque todavía no está documentado en el sitio web de GDAL, se puede utilizar lo siguiente:

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

Esto guardará una versión en mosaico en un archivo kmz usando la compresión jpeg.

En Windows puede automatizar usando

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

Esto supone que los archivos de entrada están en WGS84.

Matthew Snape
fuente
1
Desafortunadamente, acabo de descubrir que los KMZ producidos no son archivos KMZ compatibles con Garmin Custom Map.
Gavin
¿Sabes por qué no es compatible?
Adam Mills el
La estructura de SuperOverlay es diferente. Tiene un kmz con un montón de kmz dentro. El formato Garmin es un kmz con una carpeta de archivos jpg y un archivo doc.kml que describe la extensión de los archivos jpg. No tengo idea de por qué hay estructuras alternativas, pero personalmente encuentro el limpiador de formatos de Garmin ... Lo cual es extraño ya que odio la mayoría de las estructuras de datos de Garmin.
Mike
@Gavin ¿Alguna vez encontraste una solución? Me encuentro con lo que creo que es el mismo problema, mira esta pregunta .
gerrit
@gerrit Lo siento, no. Está en mi lista de cosas para ver de nuevo pronto.
Gavin
0

Si los archivos Geotiff tienen un tamaño de 140 mb, los archivos jpg resultantes podrían ser bastante grandes. Puede ser interesante dividir los archivos en archivos más pequeños, para que puedan mostrarse más fácilmente. Puede intentar con un archivo usando http://www.maptiler.org/ que tiene una opción para generar un KML Superoverlay. MapTiler puede no ser apropiado para procesar por lotes todos los archivos, pero es fácil de usar, por lo que es bueno hacer algunas pruebas preliminares.

Si funciona como lo desea, puede intentar procesar por lotes todos los archivos con GDAL2Tiles . No lo he probado, pero creo que debería ser posible ya que MapTiler se basa en GDAL2Tiles.

Nombre
fuente
OkMap hace esto: toma el GeoTIFF y luego lo divide en varias imágenes más pequeñas para usar en el archivo KMZ. gdal2tiles es una herramienta útil, pero todavía no he descubierto cómo producir el kmz. Jugará un poco más.
Gavin
OkMap es nuevo para mí. Lo mirará, parece ser un programa interesante.
Nombre
gdal2tiles está casi allí, pero OkMap produce resultados mucho más elegantes. OkMap calcula los tamaños de los mosaicos para dividir la imagen original de manera eficiente, permitiendo mosaicos rectangulares en lugar de cuadrados para evitar áreas transparentes adicionales. Me pregunto si de alguna manera puedo automatizar / línea de comando OkMap para procesar mis archivos por lotes.
Gavin
0

Nunca he usado imágenes en KML, aunque parece que gdal2tiles.py puede ayudar. Dependiendo del sistema operativo, puede realizar la conversión por lotes de varias maneras. En Windows con CMD, use el comando: ruta DIR > su archivo .txt (genere una lista de sus archivos), importe .txt a Excel / OpenOffice, límpielo y agregue su sintaxis para GDAL. Guarde como filename.bat y ejecútelo desde la línea de comandos.

Tomek
fuente
Estoy familiarizado y uso regularmente gdal2tiles pero no estoy seguro de qué configuraciones debo usar para escupir kmz. ¿Algunas ideas?
Gavin
1
Supongo que es solo un caso de comprimir la salida e imágenes kml y luego cambiar el nombre del archivo zip a la extensión kmz.
Gavin
Eso es. Si desea comprimir sus imágenes, debe mirar qué tipo de datos es y quizás cambiarlo a algo más eficiente en la memoria.
Tomek
gdal2tiles está casi allí, pero OkMap produce resultados mucho más elegantes. OkMap calcula los tamaños de los mosaicos para dividir la imagen original de manera eficiente, permitiendo mosaicos rectangulares en lugar de cuadrados para evitar áreas transparentes adicionales. Me pregunto si de alguna manera puedo automatizar / línea de comando OkMap para procesar mis archivos por lotes.
Gavin
0

También hay un complemento QGIS para crear archivos .kmz desde su lienzo QGIS para dispositivos Garmin. Se llama GarminCustomMap

Chris Karounos
fuente
0

Publiqué un script de Python para usar desde ArcGIS aquí:

¿Exportar 3GB ArcGIS Raster a KML sin perder resolución?

Los diferentes modelos admiten diferentes números de mosaicos. Debe tener en cuenta esta limitación, el alcance de las imágenes que desea usar y la resolución mínima que desea usar. Luego, posiblemente deba crear varios archivos a partir de sus imágenes originales, procesar cada sección de imágenes con la herramienta de secuencia de comandos y transferir los archivos desde una computadora portátil al GPS cuando los necesite (Garmin solo admite 1 "Mapa personalizado" a la vez) . Muchos de los modelos de mapas * solo admiten 100 mosaicos de 1024x1024. Colorado y Montana apoyan más. Experimenté con cambiar el tamaño del mosaico a 2048 x 2048 y eso parecía seguir funcionando y permitir bastante más datos a la vez.

En su caso, haría un mosaico de algunas imágenes de varios conciertos y procesaría estas grandes áreas de imágenes y dejaría que los usuarios las subconjustaran en Google Earth y ahorraran su propio kmz desde allí. Lo de los mapas personalizados es intencionalmente muy limitante, ya que Garmin preferiría admitir su formato jnx y venderle una suscripción a Birdseye ... O forzarlo a hackear sus dispositivos.

Miguel
fuente
0

OkMap Desktop (versión completa y paga) ahora incluye una función por lotes para generar archivos KMZ compatibles con Garmin Custom Map, así que ahora estoy usando esto.

Gavin
fuente