-
Notifications
You must be signed in to change notification settings - Fork 4
/
processamento.txt
85 lines (62 loc) · 3.71 KB
/
processamento.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
This is an old instructions file, before Nov/2016, detailing what I did when I first tried to create a large RapidEye mosaic. No color balance applied. Procedure was used to create the 'before' image in readme (unbalanced Brazil Southeast mosaic).
Old stuff kept for the record!
-----------------------------------
Como foi gerada a pir�mide RapidEye p/ o Sudeste
1) Copiar imagens para o disco
2) Gerar lista das imagens em cada pasta dos fusos
find <pasta> -name *[0-9].tif > lista_<pasta>.txt
3) converter para epsg_4326, passando para 8 bits antes (reduzir tamanho do arquivo)
se for utilizar apenas algumas bandas, esta � a hora. Usar op��o -b 1 -b 2 -b 3 no gdal_translate, por exemplo
for i in `cat lista_fuso21.txt`; do
nome=`echo $i | awk -F "/" '{print $3}'`
if [ ! -f epsg4326_fuso21s/$nome ];
then
gdal_translate -b 1 -b 2 -b 3 -ot Byte -scale 0 65535 0 255 $i epsg4326_fuso21s/temp_$nome
gdalwarp -t_srs epsg:4326 epsg4326_fuso21s/temp_$nome epsg4326_fuso21s/$nome
rm epsg4326_fuso21s/temp_$nome
fi
done
4) Gerar mosaico virtual
gerado lista com todos os arquivos no epsg 4326. Isso pq n�o aceita wildcard no nome da pasta, s� no arquivo
find epsg4325_fuso* -name *.tif > lista_completa_epsg4326.txt
gdalbuildvrt -srcnodata "0 0 0" -vrtnodata "0 0 0" -b 3 -b 2 -b 1 -input_file_list lista_completa_epsg4326.txt rapideye_sudeste.vrt
Para funcionar a transparencia � preciso usar o estilo padr�o de raster do Geoserver e n�o um estilo customizado
Ent�o j� coloco as bandas na ordem correta (3,2,1) para poder utilizar o estilo raster
A porcaria do -b s� funciona para o GDAL mais novo. O que esta no chor�o � velho! Pedindo para atualizar
Vi um coment�rio no stackexchange para usar -srcnodata "0 0 0" e -vrtnodata "0 0 0" do buildvrt para n�o ter as bordas pretas. Vou testar com o mosaico do Nordeste.
http://gis.stackexchange.com/questions/64358/black-zones-after-tiling-two-tiff-files
5) Exportar mosaico virtual como pir�mide
gdal_retile -v -levels 5 -ps 2048 2048 -co "TILED=YES" -co "BLOCKXSIZE=256" -co "BLOCKYSIZE=256" -co "COMPRESS=LZW" -useDirForEachRow -targetDir <pasta> rapideye.vrt
Para reduzir n�mero de arquivos, estou usando ps = 8192
Existe op��o de usar resample cubico (-r cubic). N�o sei se fica melhor
habilitar useDirForEachRow para ter menos arquivos por pasta
criei RapidEye Sudeste usando 5 niveis. Se for reduzir tamanho do ps, aumentar um n�vel
usar -co para op��es de compacta��o. Geoserver on steroids recomenda jpeg com photometric YCbCr
DICAS:
Compactando ou rodando programas em paralelo no shell
Usar o XARGS para compactar arquivos, de 3 em 3
find . -name '*.tif' | xargs -n 1 -P 3 bzip2
--------------------------------
Shell script que usei para gerar o mosaico (converte_rapideye.sh)
# programa para converter imagens para 8 bits, 3 bandas, epsg4326
# converte_rapideye.sh <imagem> <pasta_saida>
# como usar com o xarg:
# Encontrar aquivos p/ processar usando FIND e mandar p/ script
# find <pasta_entrada> -name *[0-9].tif | xargs -n 1 -P 3 -I % ../converte_rapideye.sh % <pasta_saida>
# ver exemplo do xarg aqui: http://offbytwo.com/2011/06/26/things-you-didnt-know-about-xargs.html
if [ "$#" -ne 2 ]; then
echo "Verificar argumentos. Precisa ser nome da imagem e pasta de saida"
exit
fi
arq=$1
pasta=$2
nome=`echo $arq | awk -F "/" '{print $NF}'`
#echo $arq
#echo $pasta
#echo $nome
#exit
if [ ! -f $pasta/$nome ]; then
gdal_translate -b 1 -b 2 -b 3 -ot Byte -scale 0 65535 0 255 $arq $pasta/temp_$nome
gdalwarp -t_srs epsg:4326 -CO "COMPRESS=LZW" $pasta/temp_$nome $pasta/$nome
rm $pasta/temp_$nome
fi