News

Montando banco de dados espacial com a GDAL - Parte 4 (Obtendo os dados para o banco de dados (Shapefile do PRODES))


Obtendo os dados para o banco de dados (shapefile do PRODES)

Os polígonos de desmatamento do PRODES são disponibilizados na forma de shapefile (SHP). Pode-se baixar os SHP por cena ou na forma de mosaico (http://www.dpi.inpe.br/prodesdigital/dadosn/).

O PRODES utiliza uma grade própria de cenas para fazer ao levantamento do desmatamento, sendo essa a unidade de trabalho do PRODES. Nessa postagem vamos trabalhar com os SHPs de PRODES por cena, sendo o ano base de 2010.

Podemos verificar no endereço das cenas de 2010 (http://www.dpi.inpe.br/prodesdigital/dadosn/2010/), que podemos baixar arquivos de imagem e SHPs.

Para organizar os dados, vamos criar uma pasta para o PRODES 2010 e baixar os SHPs nela. A seguir os passos no terminal configurado para usar o Linux.

- Criar o diretório e torna-lo como diretório corrente
mkdir prodes2010
cd prodes2010

- Obter a página do PRODES 2010 (o nome do arquivo é index.html)
wget http://www.dpi.inpe.br/prodesdigital/dadosn/2010/

- O arquivo index.html possui o nome dos SHPs, e vamos criar uma listagem desses arquivos com o endereço completo.

A listagem vai conter em cada linha o endereço completo de cada SHP, como exemplo, http://www.dpi.inpe.br/prodesdigital/dadosn/2010/PDigital2010_00165_shp.zip

Vamos criar um script shell, 'list_zip.sh', para listar os endereços completos, e coloca-lo no diretório onde está o arquivo 'index.html'.

Conteúdo do arquivo 'list_zip.sh':

for file in `grep _shp.zip index.html | cut -d= -f4 | cut -d'"' -f2`;
do echo "http://www.dpi.inpe.br/prodesdigital/dadosn/2010/$file";
done;

A sequência de processamento do script é:

1) Executa a sequência de comandos conectados com pipe '|', definida entre os caracteres '`'
`grep _shp.zip index.html | cut -d= -f4 | cut -d'"' -f2`
Obs.: A saída de cada comando passa a ser a entrada de outro comando (uso do pipe)

1.1) Lista as linhas do arquivo index.html que contém o texto '_shp.zip'
grep _shp.zip index.html

1.2) Corta o 4o campo (field) de cada linha, onde os campos são delimitados pelo caracter '='
cut -d= -f4

1.3) Corta o 2o campo (field) de cada linha, onde os campos são delimitados pelo caracter '"'
cut -d'"' -f2

2) Cada linha da saída da sequência de comandos do ítem (1) passa a ser o valor da variável
'file' dentro do comando 'for'
for file in `Lista de valores do ítem (1)`;
do "Comando onde utiliza o valor de file";
done;

Obs.: O comando de interação 'for' inicia com o comando 'do' e termina o laço de interação com o comando 'done'

2.1) Cada valor de 'file' no interior do comando 'for' é utilizado para escrever na saída padrão (o janela do terminal) o caminho completo do SHP.
echo "http://www.dpi.inpe.br/prodesdigital/dadosn/2010/$file"
Obs.: O valor de file é obtido pelo uso do caracter '$'

Você pode testar cada comando do script para estuda-los.

Para criar a lista contendo o endereço completo de cada SHP, execute o script shell, list_zip.sh, pelo comando 'sh', e canalize para um arquivo, ou seja, troque a saída padrão para um arquivo com uso do '>'.

sh list_zip.sh > list_zip.sh.txt

- O arquivo 'list_zip.txt' tem todos os SHPs que precisamos, assim, podemos baixar todos os arquivos usando o 'wget' , passando como argumento o arquivo com as listagem (uso da opção '-i')

wget -i list_zip.txt

A utilização dos comandos/programas via console LINUX é um recurso poderoso para obtermos dados de sites, para maiores informações vejam os detalhes do comando 'wget'.

Até a próxima,

Luiz Motta
--
motta.luiz@gmail.com

Geotecnologias Luís Lopes Designed by Templateism.com Copyright © 2014

Imagens do modelo de Bim. Tecnologia do Blogger.