Estou tentando cortar um grande ECW (detalhes abaixo), mas o arquivo raster é muito grande para ser processado completamente.
Alguns detalhes da ECW abaixo
Driver: Wavelets compactadas ECW / ERDAS (SDK 5.0)
tamanho do arquivo: 50gb O tamanho é 450000, 565081 Tamanho do pixel: 0,15 0,15 COLORSPACE = RGB COMPRESSION_RATE_TARGET = 9 VERSION = 2 Número de bandas: 4
A área que eu quero cortar é aproximadamente 1/5 do arquivo original.
Aqui estão os métodos que experimentei sem sucesso:
Arcgis usado para salvar o ecw em tiff / outros formatos ... (eu rapidamente desisti)
Utilizou o Qgis e sua ferramenta clipper ... a criação do arquivo ficou paralisada em cerca de 40%.
Utilizou o gdal_translate do OSGeo4W com outras opções que não o Qgis. (Tentei pensar que TALVEZ libertar alguma memória que não usasse Qgis seria o truque)
Usei gdal_retile pensando que eu cortaria a imagem em pedaços e pegaria a que eu queria. O comando "gdal_retile -ps 10000 10000 -of ecw -tileIndex tile.shp -targetDir input.ecw Isso travou ainda mais rápido"
Alguém tem alguma ideia?
Para informações eu corro o windows 7 64bits em um i5-3470 3.2Ghz com 16gb de ram.
Você pode cortá-lo diretamente com a ferramenta gdal gdal_translate se souber as coordenadas da sua área de interesse, se for georreferenciado:
Caso contrário, use a
-srswin
bandeira assim:Arquivo de infile gdal_translate -srcwin [xoff yoff xsize ysize].
Outra opção é criar uma varredura 'virtual' (de alguns kilobytes) que aponte para o seu conjunto de dados inicial, com o gdalbuildvrt .
Infelizmente, você precisará de um arquivo georreferenciado para usar o gdalbuildvrt.
Após o clipe, não esqueça de criar pirâmides para facilitar a visualização. O comando a seguir criará pirâmides externas compactadas com o algoritmo DEFLATE (sem perdas):
Como etapa final, você pode calcular as estatísticas também para evitar alguns problemas estúpidos com um programa comercial específico:
fonte
gdaladdo -ro input.vrt 2 4 8 16
entãogdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE input.vrt 2 4 8 16
. Meu objetivo é terminar com um ECW, então eu tenteigdal_translate -of ECW input.vrt output.ecw
e recebi o seguinte erro: #0ERROR 6: GDALDriver::Create() ... no create method implemented for this format.
gdalinfo --formats
. Se você não vê o ECW na lista, tente as seguintes instruções: faunalia.pt/node/438Um uso direto de "clipe"
gdalwarp
deve funcionar (eu sei que essa é uma pergunta antiga: 18 meses de IRL é como uma época geológica nos anos da Internet).Eu tenho uma antena de 70Gb (ECW, 94000x81000 pixel a 10cm / px) e a GDAL pode cortá-la arbitrariamente com um shapefile usando
gdalwarp -cutline [clipfile] -crop_to_cutline [infile] [outfile]
na linha de comando do Windows. (Percebo que essa solução requer a criação de um shapefile para a área de interesse de destino, mas esse não é o maior desafio conhecido pelo GIS).
Para extrair um pedaço do tamanho de um subúrbio leva ~ 0,4s; dividir o arquivo em quartos leva 4 segundos. As especificações da minha máquina não são muito diferentes (i7-4770 @ 3.4GHz, 16GB RAM, Win7-64 Ultimate).
fonte