modelo formal de apresentação de teses e dissertações ... · concepção e desenvolvimento de...
TRANSCRIPT
1
Dissertação apresentada para cumprimento dos requisitos necessários à
obtenção do grau de Mestre em Ordenamento do Território e Sistemas de
Informação Geográfica, realizada sob a orientação científica de José
António Tenedório
2
AGRADECIMENTOS
Em memória do meu pai.
A todos que de alguma forma me fizeram chegar aqui.
Especial agradecimento ao Professor José António Tenedório, pela sua
paciência e conhecimentos.
A todo corpo docente da FCSH que me fizeram escolher este caminho.
3
RESUMO
As sucessivas gerações de satélites LANDSAT, geridas por um consórcio que
integra a NASA e a USGS, registaram um enorme acervo de imagens da Terra;
registos esses que se iniciaram em 1972 e têm decorrido até aos nossos dias.
Esse acervo, estruturado em bases de dados, pode ser inquirido e as imagens
podem ser descarregadas sem custo. Contudo, todo o processo de aquisição
que compreende a inquirição à base de dados e download - é relativamente
complexo devido ao facto da plataforma da USGS conter uma enorme
densidade de informação. Esta dissertação tem como objectivo principal a
concepção e desenvolvimento de uma plataforma WEB, designada GeoRef,
para aquisição de imagens de satélite. O GeoRef tem também implementadas
algumas funções de processamento e de cálculo sobre imagens LANDSAT,
nomeadamente dos sensores MSS,TM,ETM e OLI. Todo o processo de
aquisição foi revisto de forma a simplificar a pesquisa, assim como foram
operacionalizadas ‘rotinas’ que optimizam a execução de tarefas frequentes.
Em média, o tempo necessário para a plataforma produzir resultados, que
eram obtidos de forma manual e algumas vêzes em softwares diversos, é de
15 a 20 minutos. Os processos optimizados foram implementados com a
integração de software R e linguagem PHP, facto que permitiu a construção
de um modelo de utilização sobre os packages do software R, abrindo um
variadíssimo leque de opções que poderão a vir integrar a plataforma. Na fase
de cálculo foi utilizado o software FRAGSTATS (Spatial Pattern Analysis
Program for Categorical Maps) em modo Batch utilizando o mesmo método
de integração com R.
PALAVRAS-CHAVE: Detecção Remota, Imagens Landsat, GeoRef, software R
4
ABSTRACT
Successive generations of LANDSAT satellites, managed by a consortium
including NASA and USGS, have recorded a huge collection of Earth surface
images – this recording having began in 1972 and continuing until this day.
This wealth of data, structured in databases, can be queried and the images
can be downloaded without any cost. However, this acquisition process -
comprising the querying to the database itself and data downloading - is
relatively complex due to the fact that the USGS platform contains a huge
density of information. The main aim of this thesis’ was to design and develop
a web platform called GEOREF for acquiring these satellite images. GEOREF
also implements some processing and calculation functionalities upon Landsat
data, namely data coming from the MSS, TM, ETM and OLI sensors. The whole
data acquisition process has been tuned in order to simplify the search, and
some ‘routines’ were designed which optimize the performance of common
tasks. On average, the time required for the platform to produce results is 15
to 20 minutes -- which compares with many hours when this data was
obtained manually and frequently using disparate software’s. These optimized
processes were implemented by integrating ‘R’ software with PHP language,
which also allowed the construction of a model of usage for packages of the
‘R’ software, thus opening a wide variety of options that may later be added
into this platform. For the calculations phase, the FRAGSTATS software
(“Spatial Pattern Analysis Program for Categorical Maps”) was used in batch
mode, resorting to the same method of integration as with ‘R’.
KEYWORDS: Remote Sensing, Landsat images, GeoRef, R software
5
Índice
AGRADECIMENTOS ................................................................................................ 2
AO POVO DA AMAZÔNIA! ...................................................................................... 8
Notas: ............................................................................................................... 10
1.CONCEITOS E DEFINIÇÕES .................................................................................. 12
2. INTRODUÇÃO ................................................................................................... 15
3.OBJECTIVO ........................................................................................................ 18
4. A PLATAFORMA GEOREF ................................................................................... 20
4.1 ARQUITETURA DA PLATAFORMA .............................................................................. 20
Servidor de base de dados Mysql ...................................................................... 20
Servidor de páginas Apache .............................................................................. 20
Linguagem HTML, PHP com Jquery e “R” .......................................................... 21
Scheduler – System Scheduler ........................................................................... 21
4.2 ESTRUTURA DE DADOS .......................................................................................... 22
4.3 AQUISIÇÃO DE METADADOS ................................................................................... 24
Passo 1.............................................................................................................. 26
Passo 2.............................................................................................................. 26
Passo 3.............................................................................................................. 28
Passo 4.............................................................................................................. 29
4.4 A INTERFACE WEB ................................................................................................ 29
Dashboard ........................................................................................................ 30
4.4.1-GERAÇÃO LANDSAT ........................................................................................... 31
4.4.2 - PESQUISAS ..................................................................................................... 32
4.4.3 - IMAGENS ....................................................................................................... 35
Unpack de imagens. .......................................................................................... 36
Extração de metadados sobre cada banda espectral. ........................................ 36
Informações sobre o sensor ............................................................................... 36
6
Gerar imagem png – Côr normal ....................................................................... 37
Gerar imagem em formato ENVI – Cor Normal.................................................. 37
Gerar imagem png – Falsa-cor .......................................................................... 37
Gerar imagem em formato ENVI – Falsa cor...................................................... 37
Frequências sobre as bandas espectrais ............................................................ 37
Gerar histogramas / Gráficos de Densidade sobre as bandas espectrais............ 38
Estatísticas sobre as bandas espectrais ............................................................. 39
4.4.4 -ANÁLISE DE BANDAS ESPECTRAIS ......................................................................... 39
Estatística ......................................................................................................... 40
Histogramas ..................................................................................................... 40
Densidades ....................................................................................................... 41
Scatter .............................................................................................................. 41
4.4.5 - COMPOSIÇÃO DE IMAGENS ................................................................................ 42
4.4.6 - METADADOS .................................................................................................. 42
Scheduler .......................................................................................................... 43
Comandos gdal ................................................................................................. 44
Linha de comando ............................................................................................. 45
4.4.7 – GEORREFERENCIAR.......................................................................................... 45
4.4.8 – KML ............................................................................................................ 46
4.4.9 – SOBREPOSIÇÃO/ OVERLAYS ............................................................................... 46
4.4.10 – ANÁLISE ESPACIAL ........................................................................................ 47
4.4.10.1 - FRAGSTATS ........................................................................................ 47
Linha de comando - FRAGSTATS ........................................................................ 49
Linha de comando (Windows) ........................................................................... 49
Linha de código (PHP) ....................................................................................... 49
Resultados de métricas de CLASSES ................................................................... 50
Resultados de Métricas de Fragmentos ............................................................. 52
Resultados de Métricas de Paisagem ................................................................ 53
4.4.10.2 – SDMTOOLS ............................................................................................... 1
5. CONCLUSÂO ..................................................................................................... 62
6. REFERÊNCIAS .................................................................................................... 64
7
7. ANEXOS ............................................................................................................ 66
Anexo 1 – R - Download de metadados ............................................................. 66
Anexo II – R – KML ( Overlays ) ......................................................................... 67
Anexo III – PHP – Gerar KML (ETM) ................................................................... 68
Índice de Figuras
Figura 1 GeoRef - Estrutura Funcional ....................................................................... 20
Figura 2 GeoRef - Interface Web ............................................................................... 30
Figura 3 - GeoRef - Fluxo Operacional ....................................................................... 30
Figura 4 GeoRef - Dashboard .................................................................................... 31
Figura 5 GeoRef - Timeline ........................................................................................ 32
Figura 6 GeoRef - Histogramas .................................................................................. 40
Figura 7 GeoRef - Densidade ..................................................................................... 41
Figura 8 GeoRef - Scatter .......................................................................................... 41
Figura 9 GeoRef - System Scheduler ......................................................................... 43
8
AO POVO DA AMAZÔNIA!
Era uma vez na Amazônia a mais bonita floresta
mata verde, céu azul, a mais imensa floresta
no fundo d'água as Iaras, caboclo lendas e mágoas
e os rios puxando as águas
Papagaios, periquitos, cuidavam de suas cores
os peixes singrando os rios, curumins cheios de amores
sorria o jurupari, uirapuru, seu porvir
era fauna, flora, frutos e flores
Toda mata tem caipora para a mata vigiar
veio caipora de fora para a mata definhar
e trouxe dragão-de-ferro, prá comer muita madeira
e trouxe em estilo gigante, prá acabar com a capoeira
Fizeram logo o projeto sem ninguém testemunhar
prá o dragão cortar madeira e toda mata derrubar:
Se a floresta meu amigo, tivesse pé prá andar
eu garanto, meu amigo, com o perigo não tinha ficado lá
O que se corta em segundos gasta tempo prá vingar
e o fruto que dá no cacho prá gente se alimentar?
Depois tem o passarinho, tem o ninho, tem o ar
igarapé, rio abaixo, tem riacho e esse rio que é um mar
Mas o dragão continua a floresta devorar
e quem habita essa mata, prá onde vai se mudar?
Corre índio, seringueiro, preguiça, tamanduá
9
tartaruga: pé ligeiro, corre-corre tribo dos Kamaiura
No lugar que havia mata, hoje há perseguição
grileiro mata posseiro só prá lhe roubar seu chão,
Castanheiro, seringueiros já viraram até peão,
Afora os que já morreram como ave-de-arribação
Zé de Nata tá de prova, naquele lugar tem cova
gente enterrada no chão
Pois mataram índio que matou grileiro que matou posseiro
disse um castanheiro para um seringueiro que um estrangeiro
roubou seu lugar
Foi então que um violeiro chegando na região
ficou tão penalizado que escreveu essa canção
e talvez, desesperado com tanta devastação
pegou a primeira estrada, sem rumo, sem direção
com os olhos cheios de água, sumiu levando essa mágoa
dentro do seu coração
Aqui termina essa história para gente de valor
prá gente que tem memória, muita crença, muito amor
prá defender o que ainda resta, sem rodeio, sem aresta
era uma vez uma floresta na Linha do Equador... (Vital Farias).
10
Notas:
Iaras: Sereia, mãe d' água. Iara é uma sereia: mulher metade peixe.
Caboclo: Segundo o Dicionário Aurélio, "caboclo" procede do tupi kari'boka,
que significa "procedente do branco". O tupinólogo Eduardo de Almeida
Navarro defende que "caboclo" se originou do termo tupi kuriboka, que, num
primeiro momento, designava o filho de índio com africana.
Curumins: Curumim é uma palavra de origem tupi, e designa, de modo geral,
as crianças indígenas. Possui, como variantes, as seguintes formas: colomim,
culumim, colomi, curumi e culumi, sendo a forma usual, no português falado
no Brasil, a de Curumim, como sinônimo para criança.
Jurupari: Rio no estado do Acre- Brasil
Uirapuru : designação comum de diversas aves florestais, da ordem
Passeriformes, da família dos Certhídeos (subfamília Troglodytinae) ou da
família dos Tiranídeos (subfamília Priprinae). O Termo vem da língua Tu-´
pi (¨wirapu ' ru¨) e também pode ser chamado de arapuru, guirapuru,
virapuru, rendeira e tangará. É uma ave muito ativa que se locomove muito
rapidamente; alimenta-se de frutas e pequenos insetos. São cerca de 20
espécies, incluindo as duas famílias, destacando-se o chamado ¨uirapuru-
verdadeiro¨ (CyphorhinusAradus).
Caipora: [Do tupi: ¨caapora¨] -
1- Indivíduo do mato.
2- Duende sertanejo cujos pés têm os calcanhares para a frente e os dedos
para trás e protege as caças das florestas. A figura do caipora faz parte do
folclore indígena.
Capoeira: mato baixo , clareira no mato
Igarapé: "igara", significa "canoa"; "pé", significa "caminho".
Portanto, Igarapé significa "caminho da canoa" ou seja, um pequeno rio, um
riacho por onde passa somente canoas.
11
Grileiro: Nome dado as pessoas que falsificam documentos, para se apropriar
de terras alheias. O nome surgiu da técnica utilizada pelos falsificadores, que
consiste em colocar documentos falsificados dentro de uma gaveta com
grilos, fazendo que o documento fique amarelado devido aos excrementos e
roído, dando mais veracidade ao documento. Grileiros invadiram terras da
união e começaram a lotear para famílias de baixa renda.
12
1.CONCEITOS E DEFINIÇÕES
A natureza do trabalho desenvolvido nesta dissertação exige a definição
prévia de conceitos utilizados com frequência, conforme seguidamente se
expõe.
Sensoriamento remoto - “Termo cunhado no início dos anos de 1960 por
Evelyn L. Pruit e colaboradores, é uma das mais bem-sucedidas tecnologias de
coleta automática de dados para o levantamento e monitoração dos recursos
terrestres em escala global. Actualmente, a resolução espectral das imagens
obtidas pelos sensores imageadores já ultrapassa centenas de bandas, e a
resolução espacial de muitas imagens já é maior que 1 metro, possibilitando
suas aplicações nas áreas de levantamentos de recursos naturais e
mapeamentos temáticos, monitoração ambiental, detecção de desastres
naturais, desmatamentos florestais, previsões de safras, cadastramentos
multifinalitários, cartografia de precisão, defesa e vigilância, entre outras”. A
definição mais conhecida ou clássica de sensoriamento remoto:
Sensoriamento remoto é uma técnica de obtenção de imagens dos objectos
da superfície terrestre sem que haja um contacto físico de qualquer espécie
entre o sensor e o objecto. (INPE - INTRODUÇÃO AO PROCESSAMENTO DE
IMAGENS DE SENSORIAMENTO REMOTO - 2012).
SQL - Linguagem utilizada para consultar a base de dados
Queries - Consultas feitas com SQL.
WRS - Wordwide Reference System – Sistema utilizado pela USGS e NASA que
determina a localização de imagens sobre o globo terreste. Este sistema
composto por “linhas verticais”, chamadas de path, e “linhas horizontais”
denominadas rows. O encontro destas determina/localiza uma cena ou seja
imagens de satélite. (Orbit Path).USGS.
CloudCover - Nível de cobertura de nuvens em uma imagem, sendo este
factor determinante na escolha de imagens de satélite. O termo determina a
fração do céu coberta por nuvens.
13
Sensores remotos – “São equipamentos capazes de colectar energia
proveniente do objecto, convertê-la em sinal passível de ser registado e
apresentá-lo em forma adequada à extracção de informações”...” sistemas
fotográficos ou óptico-electrônicos capazes de detectar e registar, sob a
forma de imagens ou não, o fluxo de energia radiante reflectido ou emitido
por objectos distantes”. (INPE).
Bandas/Imagens espectrais - É o intervalo entre dois comprimentos de onda,
no espectro electromagnético. (INPE).
Resolução espectral: é uma medida da largura das faixas espectrais do
sistema sensor. Por exemplo, um sensor que opera na faixa de 0.4 a 0.45 m
tem uma resolução espectral menor do que o sensor que opera na faixa de
0.4 a 0.5 um. (INPE).
Imagens Espectrais – São imagens que cobrem diferentes faixas do espectro
da luz. Os satélites possuem sensores que cobrem diferentes faixas do
espectro da luz. A informação espectral de uma cena/imagem pode ser
representada por uma imagem espectral, na qual cada "pixel" tem
coordenadas espaciais x, y e uma espectral L, que representa a radiância do
alvo em todas as bandas espectrais, ou seja para uma imagem de K bandas,
existem K níveis de cinza associados a cada "pixel" sendo um para cada banda
espectral. O conjunto de características espectrais de um "pixel" é denotado
pelo termo atributos espectrais (INPE).
Espectro electromagnético - O espectro representa a distribuição da radiação
Eletromagnética (REM), por regiões; todos os corpos emitem e absorvem
energia em faixas dentro do espectro magnético de forma diferenciada, ou
seja cada corpo na superfície da terra tem diferentes niveis de aborção e
reflecxão de energia, sendo este o factor que os diferenciam nas
imagens.(INPE)
SPRING - Sistema para Processamento de Informações Georeferenciadas e
banco de dados geográfico, desenvolvido pelo INPE( Instituto Nacional de
Pesquisas Espaciais).
14
ENVI – Software para Processamento Digital de Imagens
LOAD – Processo de carga na base de dados sem usar a instrução “insert” do
SQL
Chucks – Pequenos pedaços de programas informáticos em R
Batch – Processamento em lote de informações
PDI – Processamento digital de Imagens
KML - Keyhole Markup Language – Linguagem utilizada para construção de
objectos utilizados no Google Earth.
KMZ – Keyhole Markup Zip – Zip de um KML – Devido ao tamanho dos
ficheiros as vezes é necessário comprimir os dados e torna mais rápido a
transferência de dados na WEB.
ZIP – Formato que permite comprimir de dados
15
2. INTRODUÇÃO
Desde as antigas civilizações às modernas, dados espaciais tem sido
colectados por navegadores, geógrafos, topógrafos no sentido de produção
de mapas. Os mapas produzidos desde então tem dado contributos a
organização das sociedades no sentido de estudos do uso dos solos e
administração de recursos naturais. Com o avanço tecnológico do último
século este processo sofreu alterações significativas e não só mapas tem sido
produzidos com qualidade superior, mas imagens de satélites e de avião e
tem sido objecto de estudo.
A utilização de imagens de satélite tem sido usada nos últimos anos para
pesquisas nas mais diversas áreas, desde a subida do nível do mar; destruição
de barreiras de corais; estudos sobre a ocupação dos solos; observações sobre
desmatamentos; índices florestais; crescimento urbano; mitigação de riscos
ambientais; gestão de recursos hídricos; controle de doênças e pragas; clima e
atmosfera, sendo estes exemplos não extensivos, existindo muito mais
aplicações que podem ser estudadas, acompanhadas com imagens de satélite
em estudos multítemporais. A aquisição destas imagens é muitas vêzes um
obstáculo a realização de trabalhos com maior rapidez e precisão , visto que
todo o processo implica em saber onde adquirir as imagens, quais imagens
utilizar; de que período será a imagem; ainda coloca-se em questão o tempo
de “download” destas imagens, visto que as imagens são todas compactadas
devido ao seu tamanho, o que por si só, dificulta o processo de aquisição.
Todo o processo é feito de modo manual o que leva a erros e re-trabalho. A
escolha de uma imagem errada pode levar a resultados não esperados, esta
escolha deve levar em consideração a ocorrência de obstáculos a uma análise
correcta, assim nuvens, e a propria qualidade da imagem quando do início do
tratamento de imagens implicam directamente nos resultados, uma análise
preliminar visual é de grande importância, os metadados das imagens
permítem uma escolha mais adequada da imagem, paramêtros como
cloudCover, índice de nuvens é um deles.
16
O processo para aquisição de imagens de satélite disponibilizado pela USGS –
US Geological Survey consiste em dois métodos, directamente via FTP
“ftp://ftp.glcf.umd.edu/glcf/Landsat/” ou IP: 128.8.1.52, user: anonymous,
onde existe o caminho: glcf/Landsat/WRS2/ que contém todos os path e estes
todas as rows, e estas todas as pastas onde estão as imagens do satélite
Landsat. Para os satélites Landsat 1 a 3 usamos o sistema WRS1 e para os
demais (4,5,7 e 8) usamos o sistema WRS2. Através destes sistemas é
disponibilizado um ficheiro KML pela USGS, que devemos efetuar download
para utilização no Google Earth, o qual permite achar o lugar desejado. Após
achar o path, podemos ir ao servidor FTP para o download da imagem
desejada.
Todo o processo implica na utilização de diversas ferramentas (softwares)
para obter as imagens, desde o Browser e/ou software (Cliente) para acesso
ao servidor FTP, e Google Earth.
Este processo apesar de simples, obriga que se tenha conhecimento dos
padrões definidos pela USGS nomeadamente a nomenclatura de nomes das
imagens; visto ser através dos nomes que podemos identificar as imagens e
estas não estão separadas por satélite. A pesquisa no servidor FTP exige
conhecimento sobre a estrutura para uma perfeita navegação no sentido de
encontrar a imagem alvo. Neste processo visualizar as imagens antes de
efectuar download não é possível.
O segundo método, baseado numa interface web designada EarthExplorer, a
qual apresenta uma densidade de informação que não facilita a utilização.
Este método consiste em selecção visual das imagens e posterior download. É
necessário um registo para obter permissão para efectuar o download de
imagens. No endereço http://earthexplorer.usgs.gov/ está a plataforma
mencionada, nesta existem termos muito específicos como “Dataset”,
”shapefile”, “kml” entre outros. Esta plataforma foi gerada para cientistas ou
técnicos muito especializados e com grande conhecimento sobre todos os
“modelos” e sensores dos diversos satélites sendo o Landsat um deles.
17
Após a identificação e escolha do método mais adequado é feito download
das imagens, estas estão todas em formato “gz”, algo semelhante ao “zip”,
imagens compactadas para facilitar a transmissão pela web, visto que reduz
seu tamanho. Após download faz-se necessária a extracção das imagens, ou
seja descompactar as imagens.
Os dois métodos nos levam ao mesmo problema, visto que as tecnologias de
informação apesar de estarem disponíveis, nem todos a sabem utilizar. A
sociedade de informação trouxe mudanças e estas na medida em que
avançam geram a exclusão digital. A sociedade não esta preparada para
velocidade com as tecnologias de informação evoluem apesar de “aumentar o
potencial para gerar conhecimento, uma vez que, como se sabe, a
informação, em processos de análise, é tanto mais útil quanto os outputs
gerados por uns, servem de inputs para outros" (Jorge Ferreira). A velocidade
com que a informação circula é inversamente proporcional a sua utilização.
Visto que a informação gerada a grande velocidade não é na maioria das
vezes assimilada, e quando assimilada leva a especialização. Como a origem
da informação é nos EUA toda a interface está escrita no idioma inglês, o que
para muitos ainda torna mais difícil a aquisição das imagens.
18
3.OBJECTIVO
Este trabalho pretende dar respostas as questões mencionadas
anteriormente, disponibilizar uma “plataforma” em que todo o processo,
excluído a classificação de imagens (por enquanto), seja feito de forma
dinâmica e ágil«, possibilitando um maior ganho de tempo e disponibilidade
para maior aprofundamento em questões intrínsecas ao tratamento de
imagens, e que a aquisição de imagens de satélite não seja uma operação
impactante em processamento digital de imagens(PDI). A plataforma tem
interface Web o que facilita as operações necessárias em virtude de sua
interface mais amigavél e algumas dificuldades inerentes ao processo são
corrigidas; Interface em português e operações automatizadas ou disponíveis
a um click. Para além da aquisição de imagens a plataforma através de
processos automáticos especialmente construídos, possibilita a análise das
imagens em modo visual e análise estatística dos dados. De forma conclusiva
o diferencial ao existente, é que a plataforma agrega diversas funcionalidades
e automatismos, especificamente em relação a fase de pré-processamento
em PDI . No processo actual existente, se faz necessário a utilização de vários
softwares para aquisição de imagens (USGS/NASA), para tratar imagens (
Spring, Envi , Saga, Qgis….), para análise de dados ( Excel ), sendo a utilização
destes em função da diferenciação de performance de algorítmos e/ou
funcionalidades específicas. Ainda no processo actual existente é comum a
repetição de uma mesma função N vezes, devido a análise ocorrer sobre
imagens espectrais, as quais podem ser diversas, dependendo do “modelo”
Landsat. A agregação de funcionalidades permite em um único lugar executar
diversas funçoes e criar funçoes automaticas, não sendo necessário a
mudança de software. A plataforma em um futuro não distante terá a
capacidade de processar as mais diversas funcionalidades existentes e que
hoje estão dispersas em diversos softwares (Em uma próxima versão). Um
software é algo “vivo” pois está em constante actualização, não se retendo a
novas funcionalidades, mas a evolução de novas tecnologias. O que
19
diferencia estas mudanças a cada nova funcionalidade e ou as novas
tecnologias são as chamdas “releases” ou versões de cada software.
Ao longo deste trabalho, o que já tem um ano, a entidade que fornece os
dados no caso USGS, mudou a forma como disponibiliza as informações, na
verdade padronizou as informações independente do “modelo” do satélite
Landsat. Este processo será descriminado ao longo deste trabalho.
Estas mudanças tiveram implicações directas sobre o processo de aquisição
de imagens construído, o que levou a completa remodelação do modelo
proposto inicialmente. O modelo inicial foi feito sobre o protocolo FTP (File
Transfer Protocol), e sobre ficheiros “MET” disponibilizados nos directórios
FTP em USGS, processo que foi descontinuado.
Nos dias actuais a velocidade com que as informações são geradas, um
trabalho com este perfil está sujeito a reestruturações em função da evolução
tecnológica. A base continua a mesma da inicial, mas diversos programas e
scripts, deixaram de ter utilidade e outros foram feitos no sentido de adaptar
as mudanças que foram feitas no repositório dos dados em USGS.
A utilização das tecnologias de informação aplicada a SIG é uma necessidade
colocada a nível jurídico nacional, conforme descrito em, Decreto-Lei n.º
141/2014, «Artigo 1.º, alínea C)” «Cartografia topográfica de imagem»,
também designada por cartografia de imagem ou ortofotocartografia, a
cartografia que consiste em imagens digitais do terreno obtidas a partir da
retificação ou orto-retificação de imagens métricas captadas por sensores
colocados em plataformas aéreas ou espaciais, completadas ou não,
conforme o fim a que se destina, por informação oro-hidrográfica
tridimensional, redes viária e ferroviária e informação toponímica”.
20
4. A PLATAFORMA GEOREF
A figura 1 representa a estrutura funcional da plataforma GeoRef.
Figura 1 GeoRef - Estrutura Funcional
4.1 Arquitectura da Plataforma
A plataforma foi toda desenvolvida em software open-source, e sistema
operacional Windows. Vale observar que esta plataforma pode ser migrada
para Linux/Unix, devido a compatibilidade entre softwares suportados em
ambos sistemas operacionais.
Servidor de base de dados Mysql
Mysql é um sistema gerenciador de base de dados relacionais, tem o código
aberto e utilizado em ambiente corporativo. Permite diversas conecxões
simultâneas, ou seja atende diversos utilizadores ao mesmo tempo.
Servidor de páginas Apache
A procura de conteúdo na internet, ou mais especificamente uma página é um
serviço oferecido por servidores de páginas. O Apache é o servidor de páginas
mais usado no mundo tendo, mais que 60% do mercado mundial de
servidores de páginas.
21
Linguagem HTML, PHP com Jquery e “R”
A linguagem de marcação HTML foi criada em 1991 por Tim Berners-Lee, no
CERN (European Council for Nuclear Research) na suíça. Nasceu da
necessidade de partilhar informações entre instituições de pesquisa. Hoje é
largamente utilizado para criação de páginas WEB.
As linguagens de programação tiveram um avanço significativo com a WEB,
sendo muitas delas criadas especificamente para atender este segmento. O
PHP é uma linguagem que tem uma curva de aprendizado relativamente baixa
e amplamente utilizada na construção de “sites” dinâmicos com consultas a
bases de dados, oferecendo suporte a diversos SGBD (sistemas de
gerenciamento de base de dados).
A linguagem Jquery foi criada há poucos anos, no sentido de facilitar a
utilização da linguagem javascript, (linguagem que possui linhas de código
muito extensas), em função de suas variáveis. Jquery permite a construção de
páginas com “movimento” e/ou interação com o utilizador com menor
número de linhas a ser codificada.
A utilização do software R, deve-se ao facto da sua enorme quantidade de
packages (conjunto de programas com finalidades específicas) e, sua possível
integração a outros softwares. O R é largamente utilizado na comunidade
científica, e permite tratamento estatístico e visualização de grandes
quantidades de dados.
Scheduler – System Scheduler
Um Scheduler é um software que permite que tarefas rotineiras sejam
programadas para executarem em dia e hora específico. A escolha e utilização
do “System Scheduler” deve-se a simplicidade na utilização.
22
4.2 Estrutura de Dados
A USGS disponibiliza os metadados em formato CSV por sensor (satélite) no
endereço http://landsat.usgs.gov/metadatalist.php e estes são actualizados
diariamente. Nestes ficheiros existem 98 colunas, as quais são a base para
construção da plataforma. Os dados foram agrupados por “modelo” Landsat,
desta forma totalizando 4 tabelas, sendo estas em ordem de “modelo”
Landsat:
Landsat_mss (deste o Landsat 1 ao Landsat 3)
Landsat_tm (desde Landsat 4 ao 5)
Landsat_etm (Landsat 7)
Landsat_8 (Landsat 8)
A padronização feita pela USGS fez com que todos os metadados da geração
Landsat tenham a mesma estrutura.
23
Name DataType length
sceneId varchar 30
sensor varchar 12
acquisitionDate varchar 10
dateUpdated varchar 10
browseAvailable varchar 2
browseURL varchar 100
path int 11
row int 11
upperLeftCornerLatitude varchar 12
upperLeftCornerLongitude varchar 12
upperRightCornerLatitude varchar 12
upperRightCornerLongitude varchar 12
lowerLeftCornerLatitude varchar 12
lowerLeftCornerLongitude varchar 12
lowerRightCornerLatitude varchar 12
lowerRightCornerLongitude varchar 12
sceneCenterLatitude varchar 12
sceneCenterLongitude varchar 12
cloudCover varchar 5
cloudCoverFull varchar 10
FULL_UL_QUAD_CCA varchar 10
FULL_UR_QUAD_CCA varchar 10
FULL_LL_QUAD_CCA varchar 10
FULL_LR_QUAD_CCA varchar 10
dayOrNight varchar 10
flightPath varchar 10
sunElevation varchar 20
sunAzimuth varchar 20
receivingStation varchar 20
sceneStartTime varchar 30
sceneStopTime varchar 30
lookAngle varchar 30
….
….
….
….
….
….
….
….
PRESENT_BAND_1 varchar 30
PRESENT_BAND_2 varchar 30
PRESENT_BAND_3 varchar 30
PRESENT_BAND_4 varchar 30
PRESENT_BAND_5 varchar 30
PRESENT_BAND_6 varchar 30
PRESENT_BAND_7 varchar 30
PRESENT_BAND_8 varchar 30
NADIR_OFFNADIR varchar 30
1
1 Estrutura Tabelas - Landsat
24
4.3 Aquisição de Metadados
Como representado na figura I, o processo inicia-se com a obtenção dos
metadados. Este processo foi feito em PHP e R, e um Scheduler o controla, o
“core” da plataforma, sendo esta funcionalidade o que forma o corpo a
plataforma. A aquisição de metadados, automatizada em um Scheduler que
por conveniência esta programada para ser executada aos finais de semana, o
que pode ser alterado a qualquer hora. Em caso de necessidade existe ainda
no interior da plataforma a possibilidade da aquisição de imagens ser feita
através da selecção de uma opção de menu.
A conjugação da linguagem PHP com R cria uma ferramenta com infinitas
possibilidades, associa a facilidade de programar em PHP com a enorme
quantidade de “packages” existentes em R, quer de análises estatísticas,
análise espacial, construção de gráficos dinâmicos quer de outras
funcionalidades. Pequenos programas (“chucks”) são criados em R e o PHP os
chama para execução via servidor de páginas Apache, visto o R permitir
execução “Batch”. Após conclusão de execução do programa em R, o output
fica disponível para a plataforma.
A construção de um programa implica na construção de funções e/ou classes,
que são instruções com a finalidade de resolver determinado problema, não
sendo necessário reconstruir a cada vez que é utilizada, resumindo-se a,
utilizar o que já está feito, através da execução de uma função. O software R,
possui centenas de packages com milhares de funções já construídas e que
eliminam a necessidades de programar em PHP funcionalidades existentes em
R, o que tornaria todo o processo de construção da plataforma muito mais
lento. O processo de automação da plataforma utiliza-se desta enorme
potencialidade. O Programa em PHP é responsável por montar os scripts em
R, assim como passar variáveis a estes. Após sua construção, o PHP chama a
execução dos scripts construídos de forma dinâmica.
O dinamismo refere-se por exemplo a leitura de bandas espectrais em um
diretório, e sua utilização em um script, sem que seja necessário explicitar seu
nome, devido a uma função existente em R.
25
setwd(“c:/bandas”)
files <- list. Files(path=getwd(), pattern = ".TIF$", full.names = TRUE)
O código acima lista todos os ficheiros do path contido em “setwd”, definido
na linha 1.
O vector “files” contém todos os nomes de todas as bandas que estão em
(“c:/bandas”), desta forma posso fazer referência a uma banda somente
indicando:
A1 <- files[1]
Onde A1 ira conter a banda 1.
Em programação elimina-se a tarefa de repetir uma mesma tarefa; no caso a
utilização de bandas 1, bandas 2 e banda 3 seria files[1], files[2] e files[3] ao
invés de LC82240652014186LGN00_B1.TIF, LC82240652014186LGN00_B2.TIF
e LC82240652014186LGN00_B3,nomes dos ficheiros de imagens espectrais.
Vale ressaltar que não é necessário a utilização de nomes de forma explícita, e
sim de índices de um vector, o que simplifica as operações envolvidas.
Em PHP teria que escrever a função para listar um diretório, e simplesmente é
utilizado o que já esta feito em R, a função ”list. files”. Desta forma é reduzido
de forma significativa os tempos para construção de novas funcionalidades e
inclusão na plataforma. O software R tem packages com funções específicas
para tratamento e análise espacial e a plataforma os utiliza via linguagem
PHP.
As funções são utilizadas para organizar a programação, criando subfunções
ou sub-rotinas que podem ser reutilizadas em várias partes do programa.
Nos parágrafos seguintes serão descritos de forma resumida os programas e
suas iterações, não sendo extensivo, somente será evidenciado um programa
por sensor (satélite).
26
Passo 1
Um pequeno “chuck” foi criado e utiliza o package (R.utils) com a função
“download.file”, como o próprio nome já indica, afectará os ficheiros que
serão objecto de download.
#'extrai_l8.r'
#-------------------------download USGS – Landsat 8
down <- function(end,htt){ # função
.exdir = 'D:/xampp/htdocs/terra/carga_dados/' # pasta local
#dir.create(.exdir)
.file = file.path(.exdir, end)
url = htt # URL dos ficheiros
download.file(url, .file)
}
down('LANDSAT_8_2013_2015.csv','http://landsat.usgs.gov/metadata_servic
e/bulk_metadata_files/LANDSAT_8.csv') #landsat 8
Passo 2
Programa em PHP que chama a execução do “chuck” em R, limpa a tabela
com dados existentes e volta a carregar (dar “Load” na tabela) com dados
actuais (extraídos).
<?php // Landsat 8
set_time_limit(0);
//-------------------------------link a base de dados
$link = mysql_connect("localhost", "root", "")
or die("Não pude conectar: " . mysql_error());
27
mysql_set_charset('utf8', $link);;
//-------------------------------seleciona Base de dados e limpa Tabela = Landsat_8
mysql_select_db("l_all") or die("Não pude selecionar o banco de dados");
$sqlt = "delete from landsat_8";
$resultt = mysql_query($sqlt) or die("A query falhou: " . mysql_error());
//----------------------------------extrai dados landsat 8 – Liga php ao R
$rs = 'extrai_l8.r'; // “chuck” para Landsat 8
$mount_r = '"C:/Program Files/R/R-3.2.0/bin/i386/R.exe" CMD BATCH --
vanilla --slave "D:/xampp/htdocs/terra/carga_dados/'.$rs. '"' ;
passthru($mount_r); // executa R
echo "<h1> Dados Extraídos .......</h1>";
sleep(20);
//----------------------------------- Lê ficheiro extraído
$handle=opendir('.');
if($file != '.' && $file != '..') {
while (false !== ($file = readdir($handle))) {
//echo $file . "<br>";
if($file != '.' && $file != '..') {
$txt = explode('.', $file);
if($txt[1] == 'csv'){
$arquivo = trim($file);
//--------------------------------------------------- Load da Tabela = Landsat_8
$l8 = substr_count($arquivo,"LANDSAT_8");
if($l8 > 0 ) {
$sqlt = "
28
LOAD DATA INFILE
'D:/xampp/htdocs/Terra/carga_dados/".$arquivo."'
INTO TABLE landsat_8
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
";
echo $sqlt . "<br>";
$resultt = mysql_query($sqlt);
}
}
}
}
}
echo "<h1> Tabela Landsat_8 atualizada .......</h1>";
FOREACH (GLOB("*.csv") AS $filename) { // Apaga ficheiro CSV
//ECHO "$filename size " . FILESIZE ($filename) . "\n";
UNLINK ($filename);
}
?>
Passo 3
Com os dados carregados na base de dados “all_l” na tabela “Landsat_8” a
interface web criada executa consultas (“ Queries”) sobre os metadados que
são apresentados como links na interface, os quais permitem a visualização
das imagens e posterior download após selecção.
29
Passo 4
Download de imagens
4.4 A Interface Web
A construção só foi exequível devido a USGS disponibilizar as imagens de
forma gratuita, estas são um enorme acervo de informações totalizando mais
de 6.000.000 (seis milhões) de imagens, as quais são compostas por bandas
espectrais, levando em consideração que cada imagem pode ter 7 bandas em
média (Landsat 5, 7 e 8), temos aproximadamente 42.000.000 (quarenta e
dois milhões) de imagens espectrais.
A plataforma foi construída com interface Web e agrega funcionalidades de
processamento digital de imagens nomeadamente a fase de pré-
processamento, onde as imagens são preparadas sobre o ponto de vista
geométrico, radiométrico e efeitos da atmosfera. Nesta fase métodos
matemáticos e estatísticos são aplicados com função de extracção de dados
para análise, visto uma imagem de satélite conter muito mais informação do
que o que se observa. Actualmente estas funções são feitas em softwares
específicos como Arcgis, Envi, Spring entre outros e sua utilização está
condicionada a melhores funcionalidades e algoritmos, o que implica na
utilização não só de um software.
30
Figura 2 GeoRef - Interface Web
Figura 3 - GeoRef - Fluxo Operacional
Dashboard
Devido ao grande número de dados nas tabelas da base de dados “all_l” o
acompanhamento do crescimento dos dados “estruturais” se faz necessário
em função do número de linhas na base de dados, que pode comprometer a
performance de “Queries”, as quais representarão os resultados esperados. A
selecção de dados por data, na carga dos dados é uma opção, que retira
31
registos e acelera o processo. Os gráficos no dasboard representam o número
de registos nas tabelas, e o acompanhamento visual pode ser feito, e caso
seja necessário, procedimentos via SQL podem ser tomados no sentido de
manter a operacionalidade da plataforma, aumentando sua performance. A
capacidade de processamento esta directamente associada ao modelo do
computador utilizado para instalação da plataforma. Em computadores com
capacidade de armazenamento, com discos com maior velocidade e com
maior quantidade de memória, as “Queries” são executadas com maior
velocidade.
A cada atualização na plataforma, crescem em média de 500 registos dia por
tabela/satélite. O dashboard é actualizado em conjunto com os metadados,
de forma dinâmica, na sua construção foi utilizado R, com os packages RMysql
e GoogleVis. Os gráficos no dashboard, representam o número de linhas,
número de rows e total de rows por tabela/satélite.
Figura 4 GeoRef - Dashboard
4.4.1-Geração Landsat
O projecto Landsat tem início em 1972 com o lançamento do primeiro satélite
Landsat 1, após 4 décadas e com o satélite Landsat 8, o projecto constitui um
32
enorme acervo sobre a evolução da superfície do planeta. Cientistas, geólogos
e os mais diversos profissionais têm utilizado estes dados em estudos
multítemporais sobre esta evolução. Cada satélite que foi lançado tem
particularidades e características próprias e a plataforma disponibiliza através
de um item de menu “Geração Landsat” uma hiperligação (link) direta a USGS,
onde cada item deste menu possibilita a pesquisa e leitura sobre os diversos
“modelos” da geração Landsat.
Figura 5 GeoRef - Timeline
Neste menu existe uma hiperligação para um “dicionário” de termos técnicos
os quais são os nomes das colunas que compõe as tabelas geradas a partir dos
metadados.
Esta prevista para 2023, o lançamento do Landsat 9 e segundo a NASA este
será, para além da continuação do programa, um satélite que apresentará
correcções em relação ao seu antecessor, Landsat 8.
4.4.2 - Pesquisas
O modelo actual de pesquisa de imagens de satélite consiste em um ficheiro
(e somente um) Kml disponibilizado por USGS, o qual é utilizado no software
“Google Earth” para localização da imagem pretendida. Os modelos Landsat
(1, 2 e 3) estão sobre o sistema WRS1 e os demais (4, 5,7 e 8) sobre o sistema
WRS2. A diferença entre os dois sistemas deve-se ao número de path/rows
existentes e o tamanho das imagens, o que por consequência disponibiliza
33
mais imagens, ou não, dependendo do objecto de estudo. A USGS ainda
disponibiliza um ficheiro shapefile (ARGIS) para o sistema WRS1 o qual precisa
ser convertido para KML, para utilização no Google Earth. Como mencionado
anteriormente, na pesquisa da imagem e início do processo em PDI, ocorre
dispersão de softwares a serem utilizados; software para aquisição de
imagens – plataforma Earth Explorer; software para localização da imagem
pretendida Google Earth e/ou ARCGIS, caso precise ser convertido o sistema
WRS1 para KML.
É de grande relevância o sistema que contém as imagens pois o número de
path,rows se diferencia. No sistema WRS1 temos 251 path, enquanto no
sistema WRS2 temos 233 path. No sistema WRS2, existem diferenças, não em
número de path, mas em número de rows.
O processo gerado na plataforma para aquisição de imagens, unificou os
métodos de pesquisa, não sendo mais importante a identificação de qual
sistema é a imagem requerida (a identificação da imagem é função da data
pretendida, por consequência qual imagem (satélite) será usado, o que define
o sistema) podendo ser pesquisada em um único KMZ (zip de um KML) o qual
contém todos os “modelos” Landsat. Todos os pontos construídos têm a
origem na latitude e longitude do ponto central de cada imagem, sendo
89693 pontos no total. Para os modelos Landsat 1,2 e 3 temos 23305 pontos,
para o modelo Landsat 4 e 5, temos 18456 pontos, para o Landsat 7, temos
29140 pontos e para o modelo Landsat 8, temos 18792 pontos.
A construção dos KML’s foi feita sobre os metadados utilizando a linguagem
PHP, foram desenvolvidos programas e nestes foram embutidas “queries” que
utilizam a linguagem padrão para consulta a base de dados (SQL). Somente
uma linha de cada path/row foi extraída e os dados foram a base para
construção de um KML por sensor/satélite. Na plataforma é possível consultar
esta informação de duas formas; através de um plugin para o Browser o qual
permite visualizar o KML e via Google Earth o qual permite a visualização de
ficheiros KML.
34
Os modelos Landsat revisitam um mesmo ponto a cada “16 dias”, levando em
consideração o tempo operacional de cada “modelo” Landsat, podemos ter
centenas de imagens de um mesmo ponto.
O menu “Pesquisa” na plataforma permite consultar quais imagens estão
disponíveis para o path / row desejado, ou de outra forma, localizado o path
row no Google Earth, e inserido no submenu path, row, do menu Pesquisa,
após a escolha do satélite, a consulta retorna todas as imagens existentes
para o path/row designado. O processo de escolha de uma imagem esta
condicionada a qualidade visual e estatística da imagem, e a plataforma
permite através de uma hiperligação a escolha da imagem, a possível imagem
a ser gerada e ‘visualizada, estas precisam sem combinadas para obtenção de
imagens, sendo as imagens com nuvens eliminadas na escolha a priori.
A interface Web favorece a escolha e download da imagem, sendo intuitivo o
processo de download, feito através de um botão.
Dentro deste mesmo menu é possível pesquisar um lugar qualquer, processo
comum quando se trabalha com SIG. Esta pesquisa foi feita com a conjugação
da linguagem PHP e “R”, retirando desta união a enorme potencialidade e
facilidade com que novas funcionalidades podem ser incorporadas na
plataforma conforme já explicado anteriormente. Com esta união foi retirado
do processo de construção de programas o enorme fardo de construir
funções, sendo estas já construídas em “R”, a linguagem PHP as utiliza. O
processo é mais rápido, e de fácil adaptação a plataforma. Abaixo um
pequeno exemplo da integração de PHP e “R”.
1- $rs = "scatter.R";
2- $mount_r = '"C:/Program Files/R/R-3.2.0/bin/R.exe" CMD BATCH --
vanilla --slave "D:/xampp/htdocs/Terra/scatter/'.$rs.'"' ;
3- passthru($mount_r);
35
Na linha 1 definição de uma variável que tem o nome do script construído.
Na linha 2 definição do comando a ser executado em Batch.
Na linha 3 execução do comando.
Toda a plataforma foi automatizada utilizando PHP e “R”, conforme exemplo
anterior. Vale ressaltar que a versatilidade da linguagem PHP permite um
número sem fim de possíveis novos desenvolvimentos no futuro.
Pode ser visto na plataforma, o dashboard, todo construído em PHP e “R”,
sendo os packages “RMysql”, para consulta a base de dados e o package
“googleVis” para a construção dos gráficos. A cada actualização dos
metadados o dashboard é atualizado. A execução dos scripts é feita com PHP
e função do Scheduler.
4.4.3 - Imagens
Este item de menu na plataforma possui dois submenus, download de
imagens e unpack de imagens.
Download de imagens – Com a plataforma actualizada, o que é feito a cada
semana, o download de imagens inicia-se com a escolha do satélite na
Plataforma. Opções são apresentadas após a escolha do satélite, a inserção do
path / row desejado, a localização visual via interface WEB e a opção de
visualizar via Google Earth.
Unpack de imagens - Tem como funções para além de descompactar as
imagens, iniciar todo o processo de tratamento inicial de imagens. Como
explicitado anteriormente um script em R com varias funções, e funções de
packages diferentes, foi elaborado no sentido de automatizar a plataforma e
permitir a construção da memória descritiva de um projecto de tratamento de
imagens. O resultado deste “script” disponibiliza informações que no processo
existente é feito de forma manual e repetitiva, e na plataforma devido a
automatização é transparente ao utilizador da plataforma. Neste contexto a
36
plataforma ainda permite opções ao utilizador como escolha de objectos para
elaboração de gráficos “on-the-fly”.
Após escolha e download da imagem o processo, automatizado e que engloba
diversas funcionalidades é executado, sendo completamente transparente ao
operador da plataforma ou utilizador. O processo automático verifica em
intervalos de tempos pré-definidos a existência de ficheiros “GZ” no diretório
padrão da plataforma, na sua existência inicia-se o processo.
Em R foi feito o script que tem por função fazer o “unpack” das imagens e
executar funções de processamento de imagem digital (PDI).
Unpack de imagens.
filename<-paste("D:/xampp/htdocs/Terra/untar/",fil, sep="" )
untar(filename) # unpack de imagens
file.remove(filename) #-------------remover .gz
raster_data<-list.files(path=getwd(), pattern=".TIF$")
source(file="D:/xampp/htdocs/Terra/untar/all_l.R") # chama R script
Extracção de metadados sobre cada banda espectral.
for (i in 1:length(bb)) {
s <- lapply(bb[i], stack)
nom<-paste("METADADOS_", [i], ".TXT",sep="")
}
Informações sobre o sensor
library(bfastSpatial)
37
sensor<-getSceneinfo(b[1])
sink("sensor.txt")
print(sensor)
sink()
Gerar imagem png – Cor normal
png(filename="normal.png", width=640, height=640)
plotRGB(rgbRaster, 3, 2, 1, stretch="hist")
Gerar imagem em formato ENVI – Cor Normal
A=stack(c(bb[3],bb[2],bb[1]))
writeRaster(A, filename="cor_normal.tif",overwrite=TRUE)
Gerar imagem png – Falsa-cor
png(filename="false.png", width=640, height=640)
plotRGB(rgbRaster, 3, 2, 1, stretch="hist")
Gerar imagem em formato ENVI – Falsa cor
A=stack(c(bb[6],bb[4],bb[3]))
writeRaster(A, filename="falsa_cor.tif",overwrite=TRUE)
Frequências sobre as bandas espectrais
38
for (i in 1:length(bb)) {
rgbRaster <- stack(bb[i])
s<-freq(rgbRaster)
f<-bb[i]
u<-toupper(var)
t <- str_replace(f,'TIF',u)
}
Gerar histogramas / Gráficos de Densidade sobre as bandas espectrais
for (i in 1:length(bb)) {
rgbRaster <- stack(bb[i])
j<-i
fil <-paste("hist_b",j,".png",sep="")
png(filename=fil, width=300, height=300)
bd <- brick(rgbRaster)
hist(bd ,col="navy",border="black")
fil1 <-paste("Densidade_Banda",j,".png",sep="")
png(filename=fil1, width=300, height=300)
d <- density(bd)
plot(d, main=fil1)
polygon(d, col="navy", border="black")
dev.off()
dev.off()}
Formatada: Inglês (E.U.A.)
39
Estatísticas sobre as bandas espectrais
library(fBasics)
for (i in 1:length(bb)) {
b<-stack(bb[i])
stat<-basicStats(b)
s<-paste('Est_',i,'.txt',sep="")
}
4.4.4 -Análise de Bandas Espectrais
Neste menu da plataforma, gráficos e dados estatísticos estão disponíveis,
pois são resultado do programa executado quando é feito download de
imagens, sendo possível a construção de gráficos conforme escolha do
utilizador. A análise de bandas espectrais indicam quais materiais ou
elementos estão presentes na imagem. A diferenciação entre elementos
ocorre devido ao número atómico de cada elemento, o que de outra forma
traduz que cada elemento tem uma característica própria, o que diferencia
suas curvas espectrais, que são a capacidade de absorver e refletir energia,
sendo este o princípio básico de Sensoriamento remoto. Cada banda (imagem
espectral) tem sua característica dentro do espectro eletromagnético. A
estatística aplicada a Sensoriamento remoto busca comparar fenómenos
através de comportamentos espectrais e suas relações matemáticas. A
plataforma permite consultar os resultados obtidos de funções matemáticas
e/ou estatísticas, visto que “Uma imagem é uma grade ou matriz, onde cada
número representa o valor de uma grandeza (radiância, reflectância,
40
retroespalhamento, etc.) de um elemento de resolução (pixel ou célula). A
visualização é feita associando-se a cada número um nível de cinza (ou uma
cor) ”. (INPE).
Estatística
Diversas informações estatísticas sobre cada banda espectral como media,
desvio padrão, ocorrência de pixels sem DN entre outros. Dados que podem
ser representados em forma de gráficos.
Histogramas
Figura 6 GeoRef - Histogramas
Informações gráficas sobre a distribuição de pixels em uma banda espectral
41
Densidades
Figura 7 GeoRef - Densidade
Informações gráficas sobre a distribuição de pixels em uma banda espectral
Scatter
Figura 8 GeoRef - Scatter
Comparação entre a distribuição de pixels entre 2 (duas) bandas espectrais.
42
4.4.5 - Composição de Imagens
Uma imagem de sensoriamento remoto colorida é resultante da combinação
das três cores básicas (azul, verde e vermelho), associadas através de filtros às
imagens individuais obtidas em diferentes comprimentos de onda ou faixas
espectrais. (INPE).A composição de imagens é feita através da combinação de
bandas espectrais sendo possível realçar determinados elementos ou
objectos, através da variação de combinações e propriedades destes. Os
elementos ou objectos tem características de absorção e reflexão
diferenciados. Para o início do processo de classificação de imagens é
necessário compor imagens, estas que estejam mais bem adequadas ao
estudo a ser realizado. A plataforma após download e após “unpack” do
ficheiro oriundo da USGS, constrói por “default” a composição cor normal,
utilizando a bandas 3,2 e 1, associados respectivamente as cores red, green e
blue. Para a composição falsa cor é utilizado as bandas espectrais 7,5 e 4 e
associados a red, green e blue.
4.4.6 - Metadados
O processo de extração de metadados está automatizado em um Scheduler e
por convenção sendo executado aos fins-de-semana, o que pode representar
um diferencial entre os dados existentes de um lapso de 5 dias, visto que as
imagens em USGS são actualizadas diariamente. O Menu “Metadados” visa
suprir esta lacuna, sendo possível a execução dos processos de download de
metadados em casos excecionais através do menu “Metadados”, sendo
possível escolher o “modelo” Landsat. Todas as tabelas que contêm
metadados podem ser atualizadas desta forma, sendo elas Landsat_8,
Landsat_etm, landsat _mss e Landsat_tm para a geração Landsat.
43
Scheduler
Figura 9 GeoRef - System Scheduler
Um Scheduler é um progama que permite a execução de módulos executáveis
(.EXE) e/ou ficheiros (.BAT) em um dia /hora pré-definido. Qualquer Scheduler
pode ser usado, sendo a escolha deste por sua simplicidade na utilização e por
ser freeware. A linguagem PHP permite que programas sejam executados em
linha de comando, assim como os programas em R.
Carga_tm.bat
"D:\xampp\php\php.exe" -f
D:/xampp/htdocs/Terra/carga_dados/download_dadosbase_tm.php
A linha acima escrita no ficheiro carga_tm.bat (.BAT - ficheiros para execução
em lote no windows) executa o script PHP (download_dadosbase_tm.php)
através de seu interpretador “php.exe”. Esta forma simples e de fácil
implementação vêm permitir que qualquer programa seja automatizado,
desde que tenham propriedades de serem executados via linha de comando.
44
Exemplo.bat
C:/Program Files/R/R-3.2.0/bin/i386/R.exe" CMD BATCH --vanilla --slave
"D:/xampp/htdocs/terra/carga_dados/exemplo.R” ;
A linha acima executa o script “exemplo.R” via o interpretador “R.exe” em um
ficheiro “.BAT”
Em um item mais a frente deste trabalho poderemos observar que o
programa FRAGSTAT tem a mesma propriedade, ou seja, pode ser executado
em linha de comando, e como consequência pode sofrer automação.
Em sua grande maioria os programas existentes têm como propriedade a
execução em linha de comando. É desta forma que os programas, R, PHP e
FRAGSTATS foram integrados, permitindo um número sem fim de novas e
possíveis integrações e funcionalidades.
A grande maioria dos softwares existentes para utilização em SIG, utilizam a
biblioteca GDAL – Geospatial Data Abstraction Layer, para operações de
análise espacial e como já explanado, esta “classe” também pode ser usada
via linha de comando. Esta possibilidade em uma futura versão adicionará
inúmeras funções a plataforma, que hoje são executadas nos mais diversos
softwares, ESRI- Arcgis 9.2, Erdas, Grass, Idrisi e Quantun-Gis ,são exemplos
de utilização da biblioteca GDAL.
Comandos gdal
gdalinfo:
Informação sobre o ficheiro (raster)
gdalinfo srtm_37_02.tif
ogrinfo:
Informação sobre o ficheiro (vector)
ogrinfo -al roads.shp
45
gdal_translate:
Conversão de formatos de ficheiros.
gdal_translate -of FORMAT -ot DATATYPE inputFile outputFile
Linha de comando
ARCGIS
python [-BdEiOQsRStuUvVWxX3?] [-c command | -m module-name | script | -
] [args]
ERDAS
"C: /ProgramFiles/Intergraph/ERDAS IMAGINE
2014/bin/x64URelease/modeler.exe" @"C:
/Users/WRD/AppData/Local/Temp/ImagineCommandLine_modeler_3780003
780"
IDRISI
OVERLAY x 3 soilsuit slopsuit suitland
QUANTUN-GIS
C:\OSGeo4W\bin\qgis-dev.bat --project QGIS19_Test_snapshots_1.qgs --
snapshot QGIS19_Test_snapshots_1.png
4.4.7 – Georreferenciar
Georreferenciar ou “Geocoding” processo no qual uma morada, local ou
código postal é transformado em coordenadas geográficas. Quando na
execução de um trabalho em SIG, é um processo comum ter que
georreferenciar dados. A plataforma usa o Google como base para
46
georreferenciar dados. Além de georreferenciar os dados, uma imagem do
local é gerada. Esta opção está limitada a 2500 pontos dia, limitação imposta
pelo Google, na utilização freeware.
O processo reverso, ou seja, encontrar uma morada, local e/ou código postal,
sendo fornecido, latitude e longitude chama-se “Reverse Geocoding” e a
plataforma também oferece este serviço.
Os processos de “Geocoding/Reverse Geocoding”, assim como os demais
descritos neste trabalho, foram construídos com R utilizando o package
“RgoogleMaps”. Este processo ocorre “on-the-fly”, ou seja os scripts são
construídos em tempo de execução, assim como os resultados apresentados.
4.4.8 – Kml
Keyhole Markup Language – Linguagem utilizada para construção de ficheiros
KML, os quais são utilizados no software Google Earth, para localização e
visualização de imagens. A plataforma disponibiliza 4 ficheiros Kml, para
pesquisa de imagens de satélite. Após sua leitura no Google Earth, a pesquisa
de qualquer local indicará qual path / row se encontra no local pesquisado.
Com o path / row assinalado um click sobre ele, retorna informações
(metadados) sobre as imagens assim como uma imagem exemplo que pode
ser visualizada. Este é o processo que a USGS disponibiliza, sendo a diferença
em relação a plataforma, que nesta são 4 KML’s, abrangendo todos os
“modelos” da geração Landsat, e desta forma a unificação na forma de
pesquisa do ponto de referência desejado, sendo independente a qual
sistema é o modelo Landsat, WRS1 ou WRS2. Ao todo são aproximadamente
90.000 pontos que abrangem a geração Landsat, sendo um kml para cada
“modelo” Landsat (mss, tm, etm e oli/tirs).
4.4.9 – Sobreposição/ Overlays
Sobreposições são imagens sobrepostas em um mapa e que estão vinculados
à latitude / longitude. A utilização de imagens de satélite para construção de
overlays sobre interface Web, utilizando a API do Google maps, permite que
47
este sobre este overlay (imagem de satélite) seja efectuada a função de
“Zoon”, o qual permite melhor identificação de objectos e visualização da
imagem sem ter que utilizar nenhum software adicional. No processo atual
para que a mesma função fosse executada (zoom) sobre uma imagem,
programas específicos para PDI teriam que ser utilizados
(Envi,Spring,Quantun-Gis ……).
4.4.10 – Análise Espacial
4.4.10.1 - FRAGSTATS
Software desenvolvido como ferramenta de pesquisa, o qual disponibiliza
inúmeras métricas (50) sobre a paisagem em somente um programa,
desenvolvido por Dr. McGarigal and Barbara Marks, na Oregon State
University e disponibilizado ao público em 1995 na versão 2.0. Originalmente
FRAGSTATS foi desenvolvido para ecologistas em estudos de métricas da
paisagem. Em Sensoriamento remoto após o processo de classificação de
imagens é possível quantificar os elementos da paisagem com FRAGSTATS,
sendo que sua utilização adequada está associada ao conhecimento das
métricas existentes. De forma inequívoca a paisagem é quantificada, processo
que complementa as informações oriundas do processo de classificações de
imagens. Em complemento a plataforma, assim como o software R, este
programa permite sua execução em modo “Batch”, que em conformidade ao
explanado anteriormente pode ser automatizado pelo processo descrito. A
grande vantagem da automação do FRAGSTATS, para além de quantificar
métricas/indicadores nas imagens de satélite, prende-se ao facto da
possibilidade da criação de modelos, e com estes a exclusão de possíveis
erros, visto que o mesmo modelo pode ser aplicado a diferentes imagens de
diferentes datas. Os resultados obtidos para cada imagem podem ser
comparados com a certeza que as mesmas métricas/indicadores foram
aplicadas a diferentes objectos de estudo. Os indicadores, medidas que
48
podem ser trabalhadas em estatística de modo a fornecer melhor
compreensão sobre dados/imagens. “O uso das métricas tem sua grande
aplicação nas comparações entre paisagens, podendo-se avaliar as mudanças
temporais, as diferenças de paisagem provocadas pelo uso de diferentes
parâmetros na classificação de imagens, implicações das diferenças espaciais
provocadas por diferentes fragmentos de uma paisagem”. (INPE). Os
indicadores têm sua grande aplicação em estudos sobre imagens de
diferentes datas, permitindo quantificar as alterações ao longo do tempo.
Podemos definir o FRAGSTATS como um conjunto de ferramentas para análise
espacial e este dividido em três grandes módulos, oriundos de estudos da
ecologia, fragmentos, classes e paisagem.
A descrição da utilização do FRAGSTATS na plataforma não pretende ser um
manual de um software com opções tão vastas, mas somente mais uma opção
que a plataforma automatiza e íntegra.
Conforme manual do FRAGSTATS a criação de modelos é sempre feita sobre a
interface (GUI). O modelo é composto por parâmetros que indicam quais
métricas são utilizadas, as quais são armazenadas em um ficheiro “.FCA”.
A plataforma utiliza o FRAGSTATS assim como utiliza o R, via linha de
comando com PHP, sendo necessário indicar onde estão os ficheiros “.FCA” e
“.FBT”, sendo modelo e layers, respetivamente.
Ficheiro “.FBT” (layers)
C:\dwn\bhattacharya_1990.tif, x, 999, x, x, 1, x, IDF_GeoTIFF
C:\dwn\bhattacharya_2000.tif, x, 999, x, x, 1, x, IDF_GeoTIFF
C:\dwn\bhattacharya_2010.tif, x, 999, x, x, 1, x, IDF_GeoTIFF
Ficheiro “.FCA” (Métricas)
Os ficheiros”. FCA” não podem ser extraídos como ficheiros TXT, como os
ficheiros “. FBT”.
49
Linha de comando - FRAGSTATS
frg -m model_name_here -b batch_file_name_here -o
output_file_name_here
Onde:
frg : Programa existente na pasta de instalação do FRAGSTATS
model_name : modelo criado via interface (GUI)
batch_file_name : ficheiros de layers
output_file_name_here: ficheiro de saída (opcional). Caso não seja
especificado é criado um ficheiro “basename”.
Linha de comando (Windows)
"C:/Program Files (x86)/Fragstats 4/frg" -m d:/dwn/rodao.fca -b
d:/dwn/rodao.fbt -o d:/dwn/frag
Linha de código (PHP)
passthru ("C:/Program Files (x86)/Fragstats 4/frg" -m d:/dwn/rodao.fca -b
d:/dwn/rodao.fbt -o d:/dwn/frag)
50
Resultados de métricas de CLASSES
LID TYPE CA PLAND LPI TE ED
C:\dwn\bhattacharya_1990.tif cls_6 21.129.554.700 654.351 609.388 727.593.900.000 225.325
C:\dwn\bhattacharya_1990.tif cls_1 4.279.529.700 132.531 30.216 412.647.600.000 127.791
C:\dwn\bhattacharya_1990.tif cls_4 3.269.844.900 101.262 34.714 387.976.200.000 120.151
C:\dwn\bhattacharya_1990.tif cls_7 946.202.400 29.302 0.5252 104.920.500.000 32.492
C:\dwn\bhattacharya_1990.tif cls_5 2.468.916.000 76.459 14.035 271.376.700.000 84.041
C:\dwn\bhattacharya_1990.tif cls_2 176.787.900 0.5475 0.0723 28.742.400.000
0.8901
C:\dwn\bhattacharya_1990.tif cls_3 20.014.200 0.0620 0.0323 3.425.700.000
0.1061
C:\dwn\bhattacharya_2000.tif cls_3 270.180.000 0.8232 0.0591 38.290.200.000 11.667
C:\dwn\bhattacharya_2000.tif cls_1 3.974.208.300 121.092 34.525 362.950.500.000 110.589
C:\dwn\bhattacharya_2000.tif cls_6 24.032.860.200 732.270 679.900 855.582.600.000 260.692
C:\dwn\bhattacharya_2000.tif cls_4 1.636.775.100 49.872 0.0789 301.439.100.000 91.847
C:\dwn\bhattacharya_2000.tif cls_7 925.582.500 28.202 0.3187 134.745.900.000 41.056
C:\dwn\bhattacharya_2000.tif cls_5 1.895.628.600 57.759 .2157 297.995.400.000 90.798
C:\dwn\bhattacharya_2000.tif cls_2 84.456.000 0.2573 0.0455 11.378.100.000
0.3467
C:\dwn\bhattacharya_2010.tif cls_2 522.461.700 15.018 0.6539 30.244.800.000
0.8694
C:\dwn\bhattacharya_2010.tif cls_1 22.515.472.800 647.206 482.602 778.001.100.000 223.636
C:\dwn\bhattacharya_2010.tif cls_6 9.998.241.300 287.399 49.255 766.302.900.000 220.273
C:\dwn\bhattacharya_2010.tif cls_4 415.549.800 11.945 0.1330 59.130.300.000 16.997
C:\dwn\bhattacharya_2010.tif cls_7 890.483.400 25.597 10.930 96.345.300.000 27.694
C:\dwn\bhattacharya_2010.tif cls_3 242.081.100 0.6959 0.0546 31.943.400.000 0.9182
51
Onde:
LID: Path da imagem no PC
TYPE: Classe
CA: Área de classe
PLAND: Percentagem da paisagem
LPI: Índice fragmento maior
TE: Total de bordas
DE: Densidade de bordas
52
Resultados de Métricas de Fragmentos
Onde:
LID: Path da imagem no PC
PID: Número do fragmento
TYPE: Classe
LID PID TYPE AREA PERIM GYRATE
C:\dwn\bhattacharya_1990.tif 1 cls_6 52.200 13.200.000 1.004.265
C:\dwn\bhattacharya_1990.tif 5 cls_6 1.397.700 129.600.000 4.942.562
C:\dwn\bhattacharya_1990.tif 6 cls_6 153.000 24.600.000 1.658.684
C:\dwn\bhattacharya_1990.tif 7 cls_6 162.000 50.400.000 2.645.097
C:\dwn\bhattacharya_1990.tif 9 cls_6 20.700 9.600.000 776.040
C:\dwn\bhattacharya_1990.tif 11 cls_6 3.737.700 586.800.000 10.500.552
C:\dwn\bhattacharya_1990.tif 14 cls_6 30.600 12.600.000 784.346
C:\dwn\bhattacharya_1990.tif 16 cls_6 26.100 10.200.000 862.588
C:\dwn\bhattacharya_1990.tif 17 cls_6 38.700 11.400.000 860.431
C:\dwn\bhattacharya_1990.tif 19 cls_6 1.164.600 174.600.000 5.697.226
C:\dwn\bhattacharya_1990.tif 20 cls_6 27.000 9.000.000 720.533
…..
…..
…..
53
ÁREA: Área do fragmento
PERIM: Perímetro
GYRATE: Distância média (em metros) de cada célula do fragmento
Resultados de Métricas de Paisagem
LID TA LPI TE ED
C:\dwn\bhattacharya_1990.tif 32.290.849.800 609.388 968.341.500.000 299.881
C:\dwn\bhattacharya_2000.tif 32.819.690.700 679.900 1.001.190.900.000 305.058
C:\dwn\bhattacharya_2010.tif 34.788.742.200 482.602 897.433.800.000 257.967
Onde:
LID: Path da imagem no PC
TA: Área total da Paisagem
LPI: Índice fragmento maior
TE: Total de Bordas
ED: Densidade de Bordas
54
Formatada: Direita
4.4.10.2 – SDMTools
Assim como outros packages do R utilizados na construção da plataforma, o
package, SDMTools, permitem o cálculo da fragmentação da paisagem, algo
similar ao FRAGSTATS. O processo de utilização deste package, é o mesmo dos
outros packages utilizados na plataforma, ou seja, a integração do software R
com PHP. Diversas funcionalidades podem ser utilizadas, passo a enumerar
somente algumas potencialidades já inclusas na plataforma, visto que, como
explanado anteriormente, a plataforma em uma nova ”release” ou versão
apresentara a integração de diversos pacotes e por consequência,
funcionalidades.
ClassStat - Calcula estatísticas para classes de uma matriz de dados, no caso
uma imagem classificada, resultado de processamento digital de imagens,
feitos por hora em software não incluso na plataforma.
Script R
library(SDMTools)
library(raster)
setwd("F:/frag/")
mat<-raster('bhattacharya_2010.tif')
cl<-ClassStat(mat, cellsize = 1, bkgd = NA, latlon = FALSE)
sink('smdfrag.txt')
print(cl)
sink()
Formatada: Português (Portugal)
55
Formatada: Direita
Resultado da execução Script R (SDMTools)
class n.patches total.area prop.landscape patch.density total.edge
0 8932 17717683 0.314300237 1,58E+02 661918
1 2076 25017192 0.443788806 3,68E+01 2838436
2 444 580513 0.010297925 7,88E+00 140300
3 917 268979 0.004771513 1,63E+01 108640
4 2107 461722 0.008190650 3,74E+01 206648
5 1517 227169 0.004029831 2,69E+01 114244
6 19337 11109157 0.197069260 3,43E+02 2876132
7 3285 989426 0.017551777 5,83E+01 330326
edge.density landscape.shape.index largest.patch.index mean.patch.area
1 0.011741997 3.931.096 0.2960064405 19.836.188
2 0.050352019 14.186.505 0.3309202018 120.506.705
3 0.002488831 4.603.018 0.0044836038 13.074.617
4 0.001927203 5.233.141 0.0003743713 2.933.250
5 0.003665802 7.597.353 0.0009117673 2.191.372
6 0.002026615 5.987.631 0.0001525584 1.497.488
7 0.051020721 21.569.912 0.0337740965 5.745.026
8 0.005859770 8.299.648 0.0074949300 3.011.951
Formatada: Português (Portugal)
56
sd.patch.area min.patch.area max.patch.area perimeter.area.frac.dim
1 176.559.160 1 16686428 0.07461831
2 425.162.881 21 18654581 0.22691797
3 15.523.631 21 252749 0.48333661
4 1.582.531 21 21104 0.80753148
5 1.438.094 21 51398 0.89471787
6 417.904 21 8600 100.513.237
7 19.064.590 21 1903908 0.51765184
8 7.395.784 21 422503 0.66736598
mean.perim.area.ratio sd.perim.area.ratio min.perim.area.ratio
1 0.8874453 0.3832087 0.007583528
2 0.9323806 0.3423232 0.092036068
3 0.8642933 0.2894618 0.134476085
4 0.8357288 0.2797340 0.168367932
5 0.8545848 0.3014151 0.128839187
6 0.8037160 0.2717082 0.118455843
7 0.8631522 0.3104794 0.078322062
8 0.8211692 0.3098851 0.116725421
57
max.shape.index mean.frac.dim.index sd.frac.dim.index min.frac.dim.index
1 12.234.165 1.210.040 0.08812377 1.000.000
2 116.910.059 1.258.416 0.11001403 1.007.447
3 25.676.938 1.224.731 0.11347136 1.000.000
4 15.393.939 1.208.891 0.09902843 1.023.195
5 15.726.872 1.226.561 0.10413830 1.000.000
6 6.677.419 1.207.917 0.09130184 1.012.532
7 33.235.403 1.257.581 0.09489535 1.012.532
8 26.730.208 1.219.797 0.09369671 1.000.000
max.perim.area.ratio mean.shape.index sd.shape.index min.shape.index
1 4.000.000 1.519.492 0.4024420 1
2 2.095.238 1.836.842 29.514.032 1
3 1.904.762 1.802.948 17.792.058 1
4 2.086.957 1.652.622 10.626.292 1
5 2.090.909 1.687.715 0.7921825 1
6 1.826.087 1.589.723 0.5239870 1
7 2.086.957 1.850.590 0.8870961 1
8 1.909.091 1.630.700 0.6821325 1
58
max.frac.dim.index total.core.area prop.landscape.core mean.patch.core.area
1 1.668.016 17122602 0.303743885 191.699.530
2 1.603.198 22246953 0.394646558 1.071.625.867
3 1.615.690 446930 0.007928249 100.659.910
4 1.637.057 168795 0.002994314 18.407.306
5 1.623.388 276795 0.004910164 13.136.925
6 1.523.455 124292 0.002204860 8.193.276
7 1.613.999 8477507 0.150385491 43.840.859
8 1.590.501 687335 0.012192878 20.923.440
sd.patch.core.area min.patch.core.area max.patch.core.area
1 1.752.314.415 0 16560949
2 3.799.622.456 0 16670408
3 124.344.642 0 202929
4 11.619.613 0 17319
5 10.625.646 0 37779
6 3.015.966 0 6234
7 172.626.305 0 1756651
8 61.884.220 0 353636
59
prop.like.adjacencies aggregation.index lanscape.division.index
1 0.9814933 9.908.956 0.9123784
2 0.9448350 9.718.295 0.8818719
3 0.8860439 9.408.142 0.9999662
4 0.8165726 9.007.636 0.9999993
5 0.7987393 8.894.201 0.9999986
6 0.7766316 8.761.138 0.9999999
7 0.8784205 9.355.564 0.9977864
8 0.8459311 9.174.586 0.9999434
splitting.index effective.mesh.size patch.cohesion.index
1 1,14E+07 4,94E+12 9.996.090
2 8,47E+06 6,66E+12 9.995.980
3 2,96E+10 1,91E+09 9.973.776
4 1,34E+12 4,21E+07 9.875.730
5 7,13E+11 7,91E+07 9.857.078
6 1,06E+13 5,30E+06 9.657.255
7 4,52E+08 1,25E+11 9.981.508
8 1,77E+10 3,19E+09 9.966.538
60
Formatada: Direita
PathStat – Calcula estatísticas para fragmentos de uma matriz de dados, no
caso uma imagem classificada, resultado de processamento digital de
imagens, feitos por hora em software não incluso na plataforma.
Script R
library(SDMTools)
library(raster)
setwd("F:/frag/")
mat<-raster('bhattacharya_2010.tif')
pat<-PatchStat(mat, cellsize = 1, latlon = FALSE)
sink('smdfrag1.txt')
print(pat)
sink()
Resultados da execução Script R (SDMTools)
patchID n.cell n.core.cell n.edges.perimeter n.edges.internal area
1 0 17717683 17122602 661918 70208814 17717683
2 1 25017192 22246953 2838436 97230332 25017192
3 2 580513 446930 140300 2181752 580513
4 3 268979 168795 108640 967276 268979
5 4 461722 276795 206648 1640240 461722
6 5 227169 124292 114244 794432 227169
7 6 11109157 8477507 2876132 41560496 11109157
8 7 989426 687335 330326 3627378 989426
core.area perimeter perim.area.ratio shape.index frac.dim.index
1 17122602 661918 0.03735917 3.931.096 1.439.970
2 22246953 2838436 0.11345942 14.186.505 1.581.733
3 446930 140300 0.24168279 4.603.018 1.577.080
4 168795 108640 0.40389770 5.233.141 1.633.208
5 276795 206648 0.44755935 7.597.353 1.664.144
6 124292 114244 0.50290312 5.987.631 1.663.735
7 8477507 2876132 0.25889741 21.569.912 1.662.507
8 687335 330326 0.33385620 8.299.648 1.640.223
61
Assim como FRAGSTATS o package SDMTools extrai informações de uma
imagem classificada. A plataforma possibilitará a análise de ambas as formas.
core.area.index
1 0.9664132
2 0.8892666
3 0.7698880
4 0.6275397
5 0.5994841
6 0.5471345
7 0.7631098
8 0.6946806
62
5. CONCLUSÂO
O conhecimento sobre o processamento de imagens de satélite (PDI) é
necessário na análise dos dados gerados pela plataforma, mas a sua
elaboração ou construção passa a resumir-se a escolha de uma imagem
objecto de estudo, o processo descrito ao longo deste trabalho, deixa de
requerer conhecimentos específicos para geração de dados de análise (no que
a plataforma abrange até o momento). A construção da memória descritiva
de um projecto em PDI, passa a ser uma função com menor especificidade
técnica, o que disponibiliza maior tempo a funções de carater técnico
científico.
A plataforma (GeoRef) para aquisição de imagens de satélite Landsat, sua
combinação a diversas tecnologias e sua fácil implementação será um
contributo a comunidade cientifica e/ou operadores, em função da
automação de processos hoje executados de forma manual.
Como em todo software, as versões existem de forma a disponibilizar o que já
esta testado e pode ser usado, e o que esta a ser desenvolvido. Um software
“como organismo vivo” esta sempre em mudanças e em constante
actualização, desta forma, na próxima versão novas funcionalidades irão
surgir, reduzindo ainda mais a necessidade de técnicos nesta fase do projeto
e/ou libertando-os para outras tarefas. A automação deste processo permitirá
num futuro, que todo o processo de tratamento de imagens digitais, ou seja,
pré-processamento, processamento e pós-processamento sejam efectuados
em só lugar e com um software.
Funções como conversão de números digitais (DN), em números de radiância
e números de reflectância permitirão a correcção de imagens dos efeitos da
atmosfera (em testes). A plataforma é uma pequena porta que foi aberta, o
futuro dirá sobre sua evolução e aplicação de novas tecnologias.
A construção sobre plataforma open-source abre duas possibilidades, as quais
estão em análise, a liberação da plataforma em open-source a todos na web,
63
onde toda uma comunidade científica pode usufruir e contribuir para
aprimoramento da plataforma, assim como o software LINUX ou a
comercialização da plataforma a empresas e sector público-privado.
64
6. REFERÊNCIAS
Henrik Bengtsson (2015). R.utils: Various Programming Utilities. R package version 2.0.0. http://CRAN.R-project.org/package=R.utils Robert J. Hijmans (2015). Raster: Geographic Data Analysis and Modeling. R package version 2.3-40. http://CRAN.R-project.org/package=raster Oscar Perpinan Lamigueiro and Robert Hijmans (2014), rasterVis. R package version 0.31. doi:10.5281/zenodo.12394 Markus Gesmann and Diego de Castillo. Using the Google Visualisation API with R. The R Journal, 3(2):40-44, December 2011. Markus Loecher and Karl Ropkins (2015). RgoogleMaps and loa: Unleashing R Graphics Power on Map Tiles. Journal of Statistical Software 63(4), 1-18. URL http://www.jstatsoft.org/v63/i04/. Hadley Wickham (2015). httr: Tools for Working with URLs and HTTP. R package version 0.6.1. http://CRAN.R-project.org/package=httr Kun Ren (2015). rlist: A Toolbox for Non-tabular Data Manipulation. R package version 0.4. http://CRAN.R-project.org/package=rlist Jonathan Asher Greenberg and Matteo Mattiuzzi (2014). gdalUtils: Wrappers for the Geospatial Data Abstraction Library (GDAL) Utilities. R package version 0.3.1. http://CRAN.R-project.org/package=gdalUtils Loic Dutrieux, Ben DeVries and Jan Verbesselt (2014). bfastSpatial: Utilities to monitor for change on satellite image time-series. R package version 0.6.1. Rmetrics Core Team, Diethelm Wuertz, Tobias Setz and Yohan Chalabi (2014). fBasics: Rmetrics - Markets and Basic Statistics. R package version 3011.87. http://CRAN.R-project.org/package=fBasics Thomas Nauss, Hanna Meyer, Florian Detsch, Tim Appelhans (2015). Manipulating satellite data with satellite. unpublished, na(na), na-na. URL http://www.environmentalinformatics-marburg.de. INPE – Instituto Nacional de Pesquisas Espaciais
PHP - PHP: Hypertext Preprocessor ; https://secure.php.net/
Formatada: Francês (França)
Código de campo alterado
65
The R Project for Statistical Computing; https://www.r-project.org/
GDAL - Geospatial Data Abstraction Layer; http://www.gdal.org/ USGS – United States Geological Survey; http://www.usgs.gov/
66
7. ANEXOS
Na construção da plataforma, diversos programas foram elaborados, assim
como diversos “chucks”, pedaços de código em R. Os anexos a seguir, não são
o reflexo da totalidade destes, visto representar milhares de linhas de código,
o que seria inviável ser representado neste trabalho, sendo portanto um
pequeno resumo de parte dos programas / scripts mais importantes.
As linhas de código em HTML e JQUERY não serão objecto de anexos.
Anexo 1 – R - Download de metadados
library(R.utils)
library(raster)
library(gdalUtils)
#-----download UGS
down <- function(end,htt){
.exdir = 'D:/xampp/htdocs/terra/carga_dados/' # pasta local que contera
ficheiros USGS
#dir.create(.exdir)
.file = file.path(.exdir, end)
# download file
url = htt # URL dos ficheiros
download.file(url, .file)
}
down('LANDSAT_8_2013_2015.csv','http://landsat.usgs.gov/metadata_servic
e/bulk_metadata_files/LANDSAT_8.csv') #landsat 8
67
Anexo II – R – KML ( Overlays )
library(R.utils)
library(raster)
library(gdalUtils)
setwd("D:/xampp/htdocs/Terra/overlays/kml/")
d =
paste("http://landsat.usgs.gov/ge/usgs_landsat_overlay.php?path=203&row=
34&file=overlay.kml",sep="")
fil = paste("203_34.kml",sep="")
download.file(d, destfile=fil, mode = 'w')
jun<-paste("http://localhost/terra/overlays/kml/",fil,sep="")
library(httr)
BROWSE(jun)
68
Anexo III – PHP – Gerar KML (ETM)
<?php
set_time_limit(0);
$file = 'etm.kml';
$kml = file_get_contents($file);
$kml = '<?xml version="1.0" encoding="UTF-8"?>'. "\n";
$kml .= '<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2"
xmlns:kml="http://www.opengis.net/kml/2.2"
xmlns:atom="http://www.w3.org/2005/Atom">'. "\n";
$kml .= '<Document>' . "\n";
$kml .= '<name>ETM</name>' . "\n";
//$kml .= '<name>'.$ph[$a].'_'.$rw[$a].'</name>' . "\n";
$kml .= '<Style id="sh_info-i">' . "\n";
$kml .= '<IconStyle>' . "\n";
$kml .= '<color>ff0000ff</color>' . "\n";
$kml .= '<scale>1.4</scale>' . "\n";
$kml .= '<Icon>' . "\n";
$kml .=
'<href>http://maps.google.com/mapfiles/kml/pal5/icon52l.png</href>' . "\n";
$kml .= '</Icon>' . "\n";
$kml .= '</IconStyle>' . "\n";
$kml .= '<ListStyle>' . "\n";
$kml .= '</ListStyle>' . "\n";
$kml .= '</Style>' . "\n";
$kml .= '<StyleMap id="msn_info-i">' . "\n";
69
$kml .= '<Pair>' . "\n";
$kml .= '<key>normal</key>' . "\n";
$kml .= '<styleUrl>#sn_info-i</styleUrl>' . "\n";
$kml .= '</Pair>' . "\n";
$kml .= '<Pair>' . "\n";
$kml .= '<key>highlight</key>' . "\n";
$kml .= '<styleUrl>#sh_info-i</styleUrl>' . "\n";
$kml .= '</Pair>' . "\n";
$kml .= '</StyleMap>' . "\n";
$kml .= '<Style id="sn_info-i">' . "\n";
$kml .= '<IconStyle>'. "\n";
$kml .= '<color>ff0000ff</color>'. "\n";
$kml .= '<scale>1.2</scale>' . "\n";
$kml .= '<Icon>' . "\n";
$kml .=
'<href>http://maps.google.com/mapfiles/kml/pal5/icon52l.png</href>' . "\n";
$kml .= '</Icon>' . "\n";
$kml .= '</IconStyle>' . "\n";
$kml .= '<ListStyle>' . "\n";
$kml .= '</ListStyle>' . "\n";
$kml .= '</Style>' . "\n";
//-----------------------------------------------conexao a base de dados
$link = mysql_connect("localhost", "root", "")
or die("Não pude conectar: " . mysql_error());
mysql_select_db("l_all") or die("Não pude selecionar o banco de dados");
70
$sql1 = "select * from etm_kml";
echo $sql1. "<br>";
$result1 = mysql_query($sql1) or die("A query falhou: " . mysql_error());
$num_rows = mysql_num_rows($result1);
echo $num_rows. "<br>";
while ($row1 = mysql_fetch_array($result1)) {
$SCENE[] = trim($row1["sceneID"]);
$b_url[] = trim($row1["browseURL"]);
echo $b_url[0]. "<br>";
$ph[] = trim($row1["path"]);
echo $ph[0]. "<br>";
$rw[] = trim($row1["row"]);
echo $rw[0]. "<br>";
$CENTER_LAT[] = trim($row1["sceneCenterLatitude"]);
echo $CENTER_LAT[0]. "<br>";
$CENTER_LON[] = trim($row1["sceneCenterLongitude"]);
echo $CENTER_LON[0]. "<br>";
$SCENE_UR_CORNER_LAT[] = trim($row1["upperRightCornerLatitude"]);
echo $SCENE_UR_CORNER_LAT[0]. "<br>";
$SCENE_UR_CORNER_LON[] =
trim($row1["upperRightCornerLongitude"]);
echo $SCENE_UR_CORNER_LON[0]. "<br>";
$SCENE_LL_CORNER_LAT[] = trim($row1["lowerLeftCornerLatitude"]);
echo $SCENE_LL_CORNER_LAT[0]. "<br>";
$SCENE_LL_CORNER_LON[] = trim($row1["lowerLeftCornerLongitude"]);
71
echo $SCENE_LL_CORNER_LON[0]. "<br>";
$DWN[] = trim($row1["cartURL"]);
echo $DWN[0]. "<br>";
}
$tam = count($b_url);
echo $tam . "<br>";
for($i=0;$i<$tam;$i++) {
$kml .= '<Placemark id="'.$ph[$i].'_'.$rw[$i].'">' . "\n";
$kml .= '<styleUrl>#msn_info-i</styleUrl>' . "\n";
$kml .= '<name>'.$ph[$i].'_'.$rw[$i].'</name>' . "\n";
$kml .= '<snippet></snippet>' . "\n";
$kml .= '<description><![CDATA[<div class="googft-info-window">' . "\n";
$kml .= '<TABLE border=0' . "\n";
$kml .= '<TR><TD><IMG SRC='.$b_url[$i].' height="220"
width="220"></TD><TR>' . "\n";
$kml .= '<TR><TD><b>PATH:</b>'. $ph[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>ROW:</b>'. $rw[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>SCENEID:</b>'. $SCENE[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>LATITUDE:</b>'. $CENTER_LAT[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>LONGITUDE:</b>'. $CENTER_LON[$i] .'</TD><TR>'.
"\n";
$kml .= '<TR><TD><b>SCENE_UR_CORNER_LAT:</b>'.
$SCENE_UR_CORNER_LAT[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>SCENE_UR_CORNER_LON:</b>'.
$SCENE_UR_CORNER_LON[$i] .'</TD><TR>'. "\n";
72
$kml .= '<TR><TD><b>SCENE_LL_CORNER_LAT:</b>'.
$SCENE_LL_CORNER_LAT[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>SCENE_LL_CORNER_LON:</b>'.
$SCENE_LL_CORNER_LON[$i] .'</TD><TR>'. "\n";
$kml .= '<TR><TD><b>REFERENCE_DATUM:</b>"WGS84"</TD><TR>'. "\n";
//$kml .= '<TR><TD><b>DOWNLOAD:</b>'. $DWN[$i] .'</TD><TR>'. "\n";
$kml .= '</table>'. "\n";
$kml .= '</div>]]>'. "\n";
$kml .= '</description>' . "\n";
$kml .= '<Point>' . "\n";
$kml .=
'<coordinates>'.$CENTER_LON[$i].','.$CENTER_LAT[$i].',0</coordinates>' . "\
n";
$kml .= '</Point>' . "\n";
$kml .= '</Placemark>' . "\n";
}
$kml .= '</Document>' . "\n";
$kml .= '</kml>' . "\n";
file_put_contents($file, $kml);
Formatada: Francês (França)