Batch-Konvertierung von GeoTIFFs in KMZ-Dateien


11

Ich habe ungefähr 600 GeoTIFF-Kartendateien mit einer Größe von jeweils ungefähr 140 MB, die ich in KMZ-Dateien konvertieren möchte, damit die Leute sie herunterladen und mit Garmin-GPS-Geräten, Google Earth usw. verwenden können.

Kennt jemand eine einfache Möglichkeit, diese stapelweise zu verarbeiten und vorzugsweise das TIFF-Bild als Teil des Prozesses in ein viel kleineres JPEG-Bild umzuwandeln?

Ich bin auf gdal_translate gestoßen, was meiner Meinung nach nützlich sein könnte, um die Bilder mit der Option "-co COMPRESS = JPEG" in etwas Kleineres zu optimieren.


Es sieht so aus, als könnte G-Raster mich den Vorgang Datei für Datei ausführen lassen.
Gavin

Global Mapper sieht ebenfalls leistungsfähig aus, ist aber etwas teuer, da ich nicht von Leuten profitieren werde, die die KMZ-Dateien herunterladen.
Gavin

OkMap liefert eine gute Ausgabe, aber auch hier fehlt diese nützliche Stapelverarbeitungsoption.
Gavin

1
Wenn die Bilder so groß sind, müssen Sie sie nicht nur mit maximal 1 Megapixel kacheln, sondern auch nicht mehr als 100 Kacheln innerhalb derselben KMZ, damit Garmin-Handhelds sie als benutzerdefinierte Karte akzeptieren können. Es muss auch in WGS84 lat lang sein. Weitere Informationen zur Unterstützung von Garmin KMZ finden Sie im Garmin- Forum .
Stefan

Am Ende habe ich den Vorgang manuell mit OkMap abgeschlossen. Vielen Dank für alle Beiträge.
Gavin

Antworten:


15

Neuere Versionen von gdal_translate unterstützen KML Superoverlay. Obwohl es noch nicht auf der GDAL-Website dokumentiert ist, kann Folgendes verwendet werden:

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

Dadurch wird eine gekachelte Version mithilfe der JPEG-Komprimierung in einer kmz-Datei gespeichert.

Unter Windows können Sie die Verwendung automatisieren

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

Dies setzt voraus, dass sich die Eingabedateien in WGS84 befinden.


1
Leider habe ich gerade festgestellt, dass die produzierten KMZ-Dateien nicht mit Garmin Custom Map kompatibel sind.
Gavin

Wissen Sie, warum nicht kompatibel?
Adam Mills

Die Struktur des SuperOverlays ist unterschiedlich. Es ist ein kmz mit einer ganzen Reihe von kmz darin. Das Garmin-Format ist ein kmz mit einem Ordner mit JPGs und einer doc.kml-Datei, die die Ausdehnung des JPGs beschreibt. Keine Ahnung, warum es alternative Strukturen gibt, aber ich persönlich finde das Garmin-Format sauberer ... Was seltsam ist, da ich die meisten Garmin-Datenstrukturen hasse.
Mike

@ Gavin Hast du jemals eine Lösung gefunden? Ich stoße auf das, was ich für das gleiche Problem halte, siehe diese Frage .
Gerrit

@gerrit Sorry, nein. Es ist auf meiner Liste der Dinge, die ich bald wieder sehen muss.
Gavin

0

Wenn die Geotiff-Dateien jeweils 140 MB groß sind, sind die resultierenden JPG-Dateien möglicherweise immer noch recht groß. Es kann interessant sein, die Dateien in kleinere Dateien aufzuteilen, damit sie einfacher angezeigt werden können. Sie können es mit einer Datei unter http://www.maptiler.org/ versuchen, die eine Option zum Generieren eines KML-Superoverlays bietet. MapTiler ist möglicherweise nicht für die Stapelverarbeitung aller Dateien geeignet, es ist jedoch einfach zu verwenden, sodass einige vorläufige Tests durchgeführt werden können.

Wenn es wie gewünscht funktioniert, können Sie versuchen, alle Dateien mit GDAL2Tiles stapelweise zu verarbeiten . Ich habe es nicht ausprobiert, aber ich denke, es sollte möglich sein, da MapTiler auf GDAL2Tiles basiert.


OkMap macht das - nimmt das GeoTIFF und teilt es dann in mehrere kleinere Bilder auf, um es in der KMZ-Datei zu verwenden. gdal2tiles ist ein praktisches Tool - ich habe nur noch nicht herausgefunden, wie man die kmz daraus herstellt. Wird noch mehr spielen.
Gavin

OkMap ist neu für mich. Es wird einen Blick darauf werfen, es scheint ein interessantes Programm zu sein.
Name

gdal2tiles ist fast da, aber OkMap liefert viel elegantere Ergebnisse. Die Kachelgrößen werden von OkMap berechnet, um das Originalbild effizient zu teilen. Dabei werden rechteckige Kacheln anstelle von quadratischen Kacheln zugelassen, wodurch zusätzliche transparente Bereiche vermieden werden. Ich frage mich, ob ich OkMap irgendwie automatisieren / befehlen kann, um meine Dateien stapelweise zu verarbeiten.
Gavin

0

Ich habe noch nie Bilder in KML verwendet, obwohl es so aussieht, als ob gdal2tiles.py helfen könnte. Je nach Betriebssystem können Sie die Stapelkonvertierung auf verschiedene Arten durchführen. Verwenden Sie in Windows mit CMD den folgenden Befehl: DIR- Pfad > Ihre Datei .txt (Liste Ihrer Dateien generieren), importieren Sie .txt in Excel / OpenOffice, bereinigen Sie es und fügen Sie Ihre Syntax für GDAL hinzu. Speichern Sie als filename.bat und führen Sie es über die Befehlszeile aus.


Ich bin vertraut und benutze regelmäßig gdal2tiles, bin mir aber nicht sicher, welche Einstellungen ich verwenden soll, um kmz auszuspucken. Irgendwelche Ideen?
Gavin

1
Ich denke, es geht nur darum, die kml-Ausgabe und die Bilder zu komprimieren und dann die Zip-Datei in die kmz-Erweiterung umzubenennen.
Gavin

Das ist es. Wenn Sie Ihre Bilder komprimieren möchten, sollten Sie sich ansehen, um welche Art von Datentyp es sich handelt, und ihn möglicherweise in einen speichereffizienteren ändern.
Tomek

gdal2tiles ist fast da, aber OkMap liefert viel elegantere Ergebnisse. Die Kachelgrößen werden von OkMap berechnet, um das Originalbild effizient zu teilen. Dabei werden rechteckige Kacheln anstelle von quadratischen Kacheln zugelassen, wodurch zusätzliche transparente Bereiche vermieden werden. Ich frage mich, ob ich OkMap irgendwie automatisieren / befehlen kann, um meine Dateien stapelweise zu verarbeiten.
Gavin


0

Ich habe hier ein Python-Skript zur Verwendung in ArcGIS veröffentlicht:

3 GB ArcGIS Raster nach KML exportieren, ohne die Auflösung zu verlieren?

Die verschiedenen Modelle unterstützen unterschiedliche Anzahlen von Kacheln. Sie müssen sich diese Einschränkung, den Umfang der Bilder, die Sie verwenden möchten, und die Mindestauflösung ansehen, die Sie verwenden möchten. Dann müssen Sie möglicherweise mehrere Dateien aus Ihren Originalbildern erstellen, jeden Bildabschnitt mit dem Skript-Tool verarbeiten und die Dateien nach Bedarf von einem Laptop auf das GPS übertragen (Garmin unterstützt jeweils nur 1 "Benutzerdefinierte Karte"). . Viele der * Kartenmodelle unterstützen nur 100 1024x1024-Kacheln. Colorado und Montana unterstützen mehr. Ich habe versucht, die Kachelgröße auf 2048 x 2048 zu ändern, und das schien immer noch zu funktionieren und gleichzeitig einiges an Daten zu ermöglichen.

In Ihrem Fall würde ich ein paar Multi-Gig-Bilder mosaikieren und diese großen Bildbereiche verarbeiten und die Benutzer sie in Google Earth unterteilen lassen und von dort aus ihre eigenen kmz speichern. Die Sache mit benutzerdefinierten Karten ist absichtlich sehr einschränkend, da Garmin lieber das jnx-Format unterstützt und Ihnen ein Birdseye-Abonnement verkauft. Oder Sie zwingen, ihre Geräte zu hacken.


0

OkMap Desktop (Vollversion, kostenpflichtig) enthält jetzt eine Batch-Funktion zum Generieren von Garmin Custom Map-kompatiblen KMZ-Dateien. Daher verwende ich diese jetzt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.