Convertendo enormes geotiffs em tilepyramid

9

Estou tentando converter um geotiff comprimido de 20 GB LZW em uma pirâmide de telha usando gdal2tiles. Infelizmente, o gdal2tiles parece não ser capaz de lidar com isso, depois de executá-lo por 10 horas, ainda não atingiu o primeiro "ponto" ainda. Eu tentei isso com um arquivo menor (1 GB) e funcionou bem. Minha pergunta agora é: existe algum outro software que me permita fazer isso (comercial ou de código aberto)? Pode-se criar blocos do GlobalMapper, mas não consigo carregar o arquivo de 20 GB na memória.

AndreJ
fonte

Respostas:

4

Se você estiver usando um computador com processador multicore, poderá achar útil o Parallel GDAL2Tiles (ppgdal2tiles). Nesse tipo de computador, o ppgdal2tiles deve executar mais rápido que a versão "single-core". Citando a página da web ppgdal2tiles:

"A versão padrão do GDAL2Tiles está usando apenas um núcleo de processamento por vez.

Caso você tenha um computador com mais processadores (ou um dos processadores Mutli-Core da Intel ou AMD), vários processos podem ser iniciados para usar todo o poder de computação do seu computador para concluir a renderização do bloco o mais rápido possível. "

dariapra
fonte
E você pode certamente pedir ajuda a Petr sobre esse problema e apoiar o projeto, se for o caso. -> maptiler.com
relet
O link fornecido está inoperante.
mrgloom
4

Eu tive o mesmo problema há apenas algumas semanas. Pela primeira vez, você usa a opção

--config GDAL_CACHEMAX 2047

(deve permanecer abaixo de 2048 por enquanto!) E segundo, você pode copiar o script gdal2tiles.py para outro local e alterar o loop for que itera sobre os blocos para contar de trás para frente. na minha versão do gdal2tiles que está na linha 1174:

for ty in range(tmaxy, tminy-1, -1):

mudar para:

for ty in range(tminy, tmaxy+1):

em seguida, use os dois scripts com os mesmos argumentos ao mesmo tempo e adicione -e (ou seja, continue, não exclua os arquivos já existentes). Observe que você deve encerrar um dos scripts, pois eles chegam a 50% de conclusão (da base telhas) ou você terá telhas quebradas. Se você esquecer, basta procurar todos os arquivos com tamanho 0, excluí-los e começar tudo de novo - com a opção -e;)

espero que tenha ajudado


fonte
Uma pergunta: por que GDAL_CACHEMAX deve permanecer abaixo de 2047? Eu usá-lo feliz com 8GB ou mais para gdalwarp e afins ...
markusN
1

Experimente o segundo patch desta edição para uma versão paralela do gdal2tiles.py usando o módulo 'multiprocessing': http://trac.osgeo.org/gdal/ticket/4379

Eu tenho uma aceleração de 5,5 x em uma CPU de 6 núcleos.

Stefan Talpalaru
fonte
1

Eu espero que o FME seja capaz de fazer isso. Certamente pode fazer o ladrilho - e estou confiante de que pode lidar com os tamanhos de arquivos grandes. A parte de pirâmide rasterizada é bastante simples, consulte o exemplo de pirâmide rasterizada nas páginas de amostras e demos.

Você pode obter uma cópia de avaliação para experimentá-la primeiro

Mark Ireland, Evangelista de produtos, Software seguro

Mark Ireland
fonte
11
este é um anúncio limítrofe. Para colocá-lo em uma resposta sólida, faça um resumo de como alguém usaria o FME para produzir blocos e vincular à documentação que cobre diretamente a questão dos OPs, em vez de apenas a primeira página. Obrigado.
mate Wilkie
Desculpa. Não era para ser. A parte de pirâmide rasterizada é bastante simples ( fmepedia.safe.com/articles/Samples_and_Demos/… ). Eu era apenas um pouco vago, pois a questão era mais sobre desempenho e não queria me comprometer quando não havia tentado pessoalmente. Foi por isso que convidei o OP para experimentá-lo diretamente.
Mark Ireland