Conversion par lots de GeoTIFF en fichiers KMZ


11

J'ai environ 600 fichiers cartographiques GeoTIFF, chacun d'environ 140 Mo de taille que j'aimerais convertir en fichiers KMZ afin que les gens puissent les télécharger et les utiliser avec les unités GPS Garmin, Google Earth, etc.

Quelqu'un connaît-il un moyen facile de les traiter par lots, de préférence en convertissant l'image tiff en une image jpeg beaucoup plus petite dans le cadre du processus?

Je suis tombé sur gdal_translate qui, je suppose, pourrait être utile pour optimiser les images en quelque chose de plus petit en utilisant l'option "-co COMPRESS = JPEG".


On dirait que G-Raster pourrait me laisser faire le processus fichier par fichier.
Gavin

Global Mapper semble également capable, mais est un peu cher car je ne vais pas profiter des gens qui téléchargent les fichiers KMZ.
Gavin

OkMap produit une bonne sortie, mais manque encore une fois cette option de traitement par lots utile.
Gavin

1
si les images sont si grandes, vous devez non seulement les recouvrir de 1 mégapixels maximum, mais vous ne devez pas dépasser 100 vignettes dans le même KMZ pour que les ordinateurs de poche Garmin l'acceptent comme une carte personnalisée. Il doit également être en WGS84 lat long. Consultez le forum garmin pour plus de détails sur la prise en charge de Garmin KMZ.
Stefan

À la fin, j'ai terminé le processus manuellement en utilisant OkMap. Merci pour la contribution de tout le monde.
Gavin

Réponses:


15

Les versions récentes de gdal_translate prennent en charge KML Superoverlay. Bien qu'il ne soit pas encore documenté sur le site Web de GDAL, les éléments suivants peuvent être utilisés:

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

Cela enregistrera une version en mosaïque dans un fichier kmz en utilisant la compression jpeg.

Sur Windows, vous pouvez automatiser en utilisant

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

Cela suppose que les fichiers d'entrée se trouvent dans WGS84.


1
Malheureusement, je viens de découvrir que les KMZ produits ne sont pas des fichiers KMZ compatibles avec Garmin Custom Map.
Gavin

Savez-vous pourquoi pas compatible?
Adam Mills

La structure du SuperOverlay est différente. Il a un kmz avec tout un tas de kmz. Le format Garmin est un kmz avec un dossier de jpg et un fichier doc.kml qui décrit l'étendue du jpg. Aucune idée de la raison pour laquelle il existe des structures alternatives, mais personnellement, je trouve le format Garmin plus propre ...
Mike

@Gavin Avez-vous déjà trouvé une solution? Je rencontre ce que je crois être le même problème, voir cette question .
gerrit

@gerrit Désolé, non. C'est sur ma liste de choses à revoir bientôt.
Gavin

0

Si la taille des fichiers Geotiff est de 140 Mo chacun, les fichiers jpg résultants peuvent encore être assez volumineux. Il peut être intéressant de diviser les fichiers en fichiers plus petits, afin qu'ils puissent être affichés plus facilement. Vous pouvez essayer avec un fichier en utilisant http://www.maptiler.org/ qui a une option pour générer une superposition KML. MapTiler n'est peut-être pas approprié pour traiter par lots tous les fichiers, mais il est facile à utiliser afin qu'il soit bon de faire des tests préliminaires.

Si cela fonctionne comme vous le souhaitez, vous pouvez alors essayer de traiter par lots tous les fichiers à l'aide de GDAL2Tiles . Je ne l'ai pas essayé, mais je pense que cela devrait être possible car MapTiler est basé sur GDAL2Tiles.


OkMap fait cela - prend le GeoTIFF puis le divise en plusieurs images plus petites à utiliser dans le fichier KMZ. gdal2tiles est un outil pratique - je n'ai pas encore trouvé comment en produire le kmz. Jouera un peu plus.
Gavin

OkMap est nouveau pour moi. Il va y jeter un coup d'oeil, il semble que ce soit un programme intéressant.
Nom

gdal2tiles est presque là mais OkMap produit des résultats beaucoup plus élégants. Les tailles de tuile sont calculées par OkMap pour diviser efficacement l'image d'origine, permettant des tuiles rectangulaires plutôt que des carreaux carrés, évitant ainsi les zones transparentes supplémentaires. Je me demande si je peux en quelque sorte automatiser / ligne de commande OkMap pour traiter par lots mes fichiers.
Gavin

0

Je n'ai jamais utilisé d'images en KML, bien qu'il semble que gdal2tiles.py puisse aider. Selon le système d'exploitation, vous pouvez effectuer la conversion par lots de différentes manières. Dans Windows avec CMD, utilisez la commande: chemin DIR > votrefichier .txt (générez la liste de vos fichiers), importez .txt dans Excel / OpenOffice, nettoyez-le et ajoutez votre syntaxe pour GDAL. Enregistrez-le sous nomfichier.bat et exécutez-le à partir de la ligne de commande.


Je suis familier et j'utilise régulièrement gdal2tiles mais je ne suis pas certain des paramètres à utiliser pour cracher kmz. Des idées?
Gavin

1
Je suppose que c'est juste un cas de zipper la sortie et les images kml puis de renommer le fichier zip en extension kmz.
Gavin

C'est tout. Si vous souhaitez compresser vos images, vous devriez voir de quel type de données il s'agit et peut-être les changer en quelque chose de plus efficace en mémoire.
Tomek

gdal2tiles est presque là mais OkMap produit des résultats beaucoup plus élégants. Les tailles de tuile sont calculées par OkMap pour diviser efficacement l'image d'origine, permettant des tuiles rectangulaires plutôt que des carreaux carrés, évitant ainsi les zones transparentes supplémentaires. Je me demande si je peux en quelque sorte automatiser / ligne de commande OkMap pour traiter par lots mes fichiers.
Gavin


0

J'ai posté un script python à utiliser depuis ArcGIS ici:

Vous exportez 3 Go d'ArcGIS Raster vers KML sans perdre la résolution?

Les différents modèles prennent en charge différents nombres de tuiles. Vous devez examiner cette limitation, l'étendue des images que vous souhaitez utiliser et la résolution minimale que vous souhaitez utiliser. Ensuite, vous devez éventuellement créer plusieurs fichiers à partir de vos images d'origine, traiter chaque section d'images avec l'outil de script et transférer les fichiers d'un ordinateur portable vers le GPS selon vos besoins (Garmin ne prend en charge qu'une seule "carte personnalisée" à la fois) . De nombreux modèles de carte * ne prennent en charge que 100 tuiles 1024x1024. Le Colorado et le Montana en soutiennent davantage. J'ai expérimenté la modification de la taille des carreaux à 2048 x 2048 et cela semblait toujours fonctionner et permettre un peu plus de données à la fois.

Dans votre cas, je mosaïquerais quelques images multi-Gig et traiterais ces grandes zones d'images et laisserais les utilisateurs les sous-définir dans google earth et enregistrer leur propre kmz à partir de là. Le truc des cartes personnalisées est intentionnellement très limitatif car Garmin préfère prendre en charge leur format jnx et vous vendre un abonnement Birdseye .... Ou vous forcer à pirater leurs appareils.


0

OkMap Desktop (version complète et payante) comprend désormais une fonction de traitement par lots pour générer des fichiers KMZ compatibles Garmin Custom Map, donc j'utilise maintenant cela.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.