Conversão em lote de GeoTIFF para arquivos KMZ

11

Eu tenho cerca de 600 arquivos de mapa GeoTIFF, cada um com cerca de 140 mb de tamanho que eu gostaria de converter para arquivos KMZ, para que as pessoas possam baixá-los e usá-los com unidades GPS Garmin, Google Earth, etc.

Alguém conhece uma maneira fácil de processá-los em lote, de preferência convertendo a imagem tiff em uma imagem jpeg muito menor como parte do processo?

Eu me deparei com gdal_translate, que acho que pode ser útil para otimizar as imagens em algo menor usando a opção "-co COMPRESS = JPEG".

Gavin
fonte
Parece que o G-Raster pode me deixar fazer o processo arquivo por arquivo.
Gavin
O Global Mapper também parece capaz, mas é um pouco caro, pois não vou lucrar com as pessoas que estão baixando os arquivos KMZ.
Gavin
O OkMap produz uma boa saída, mas novamente não possui essa opção útil de processamento em lote.
Gavin
1
se as imagens são grandes, você não deve apenas colocá-las em mosaico no máximo 1 megapixels, mas também não deve exceder 100 mosaicos no mesmo KMZ para que os computadores de mão Garmin aceitem como um mapa personalizado. Ele também deve estar em WGS84 lat. Consulte o fórum garmin para obter mais detalhes sobre o suporte ao Garmin KMZ.
21413 Stefan
No final, concluí o processo manualmente usando o OkMap. Obrigado pela contribuição de todos.
Gavin

Respostas:

15

Versões recentes do gdal_translate têm suporte para o Superoverlay KML. Embora ainda não esteja documentado no site da GDAL, o seguinte pode ser usado:

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

Isso salvará uma versão lado a lado em um arquivo kmz usando a compactação jpeg.

No Windows, você pode automatizar usando

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

Isso pressupõe que os arquivos de entrada estejam no WGS84.

Matthew Snape
fonte
1
Infelizmente, acabei de descobrir que os KMZs produzidos não são arquivos KMZ compatíveis com o Garmin Custom Map.
Gavin
Você sabe por que não é compatível?
Adam Mills
A estrutura do SuperOverlay é diferente. Tem um kmz com um monte de kmz dentro dele. O formato Garmin é um kmz com uma pasta de jpg e um arquivo doc.kml que descreve as extensões do jpg. Não faço ideia por que existem estruturas alternativas, mas, pessoalmente, acho o formato Garmin mais limpo ... O que é estranho, pois odeio a maioria das estruturas de dados Garmin.
Mike
@ Gavin Você já encontrou uma solução? Estou encontrando o que acredito ser o mesmo problema, veja esta pergunta .
gerrit
@gerrit Desculpe, não. Está na minha lista de coisas para analisar novamente em breve.
Gavin
0

Se os arquivos Geotiff tiverem 140 MB de tamanho, os arquivos jpg resultantes ainda poderão ser grandes. Pode ser interessante dividir os arquivos em arquivos menores, para que possam ser exibidos com mais facilidade. Você pode tentar com um arquivo usando http://www.maptiler.org/, que tem uma opção para gerar um superoverlay KML. O MapTiler pode não ser apropriado para processar todos os arquivos em lote, mas é fácil de usar, portanto é bom fazer alguns testes preliminares.

Se funcionar como desejar, você poderá tentar processar em lote todos os arquivos usando GDAL2Tiles . Eu não tentei, mas acho que deve ser possível, pois o MapTiler é baseado em GDAL2Tiles.

Nome
fonte
O OkMap faz isso - pega o GeoTIFF e o divide em várias imagens menores para uso no arquivo KMZ. O gdal2tiles é uma ferramenta útil - ainda não descobrimos como produzir o kmz a partir dele. Vai jogar um pouco mais.
Gavin
O OkMap é novo para mim. Ele vai dar uma olhada, parece ser um programa interessante.
Nome
O gdal2tiles está quase lá, mas o OkMap produz resultados muito mais elegantes. Os tamanhos dos ladrilhos são calculados pelo OkMap para dividir a imagem original com eficiência, permitindo ladrilhos retangulares em vez de quadrados, evitando áreas extra transparentes. Gostaria de saber se de alguma forma eu posso automatizar / linha de comando OkMap para processar em lote meus arquivos.
Gavin
0

Eu nunca usei imagens no KML, embora pareça que gdal2tiles.py pode ajudar. Dependendo do sistema operacional, você pode fazer a conversão em lote de várias maneiras. No Windows com CMD, use o comando: DIR path > yourfile .txt (gere a lista de seus arquivos), importe .txt para o Excel / OpenOffice, limpe-o e adicione sua sintaxe ao GDAL. Salve como filename.bat e execute-o na linha de comando.

Tomek
fonte
Eu estou familiarizado e uso regularmente o gdal2tiles, mas estou um pouco inseguro sobre quais configurações devo usar para cuspir kmz. Alguma ideia?
Gavin
1
Eu acho que é apenas um caso de compactar a saída e imagens do kml e renomear o arquivo zip para a extensão kmz.
Gavin
É isso aí. Se você deseja compactar suas imagens, verifique qual é o tipo de dados e talvez mude para algo mais eficiente em memória.
Tomek
O gdal2tiles está quase lá, mas o OkMap produz resultados muito mais elegantes. Os tamanhos dos ladrilhos são calculados pelo OkMap para dividir a imagem original com eficiência, permitindo ladrilhos retangulares em vez de quadrados, evitando áreas extra transparentes. Gostaria de saber se de alguma forma eu posso automatizar / linha de comando OkMap para processar em lote meus arquivos.
Gavin
0

Também existe um plug-in QGIS para criar arquivos .kmz da tela QGIS para dispositivos Garmin. É chamado GarminCustomMap

Chris Karounos
fonte
0

Publiquei um script python para usar no ArcGIS aqui:

Exportando 3GB ArcGIS Raster para KML sem perder a resolução?

Os diferentes modelos suportam diferentes números de peças. Você precisa examinar essa limitação, a extensão das imagens que deseja usar e a resolução mínima que deseja usar. Depois, é necessário criar vários arquivos a partir das imagens originais, processar cada seção das imagens com a ferramenta de script e transferir os arquivos de um laptop para o GPS conforme necessário (a Garmin suporta apenas 1 "Mapa Personalizado" de cada vez) . Muitos dos modelos de mapa * suportam apenas 100 blocos 1024x1024. O Colorado e Montana suportam mais. Eu experimentei alterar o tamanho do bloco para 2048 x 2048 e isso ainda parecia funcionar e permitir um pouco mais de dados por vez.

No seu caso, eu usaria um mosaico para algumas imagens multi-Gig e processaria essas grandes áreas de imagens, permitindo que os usuários as agrupassem no google earth e salvassem seus próprios kmz a partir daí. A coisa dos Mapas Personalizados é intencionalmente muito limitadora, pois a Garmin prefere suportar o formato jnx e vender uma assinatura do Birdseye ... Ou forçá-lo a invadir seus dispositivos.

Mike
fonte
0

O OkMap Desktop (completo, pago pela versão) agora inclui uma função em lote para gerar arquivos KMZ compatíveis com o Garmin Custom Map, então agora estou usando isso.

Gavin
fonte