Modelos Digitais de Elevação e Hidrologia 2
Boa tarde pessoal!
Esta é mais uma tarde em aeroporto e mais um postzinho. Desta vez, estou em Guarulhos.
Lembrando o post Modelos Digitais de Elevação e Hidrologia, deixei uma pergunta aos usuários: como um software determina vetores de curso d´água, utilizando somente o raster de fluxo acumulado?

Flow Accumulation (fonte: http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Flow_Accumulation)
Olhe bem para esta superfície: é possível distinguir célular onde a acumulação é maior conseguimos estabelecer visualmente um caminho. Deêm uma olhada na célula amarela (na superfície do lado direito) com o número 20. Isto significa que 20 outras células deságuam nela.
Com um valor limite, o software consegue estabelecer e desenhar, à partir dos centro das células linhas, que posteriormente são vetorizadas. Simples não?
No caso acima, se definissemos o valor mínimo de 4, teríamos os seguintes vetores:
Perceba que o limite estabelecido guia o software à encontrar as células com muito fluxo acumulado, sinalizando portanto, que ali deve ser um curso d´água. O ArcGIS não tem uma função pronta para isso, mas utilizando se a matemática de bandas é possível selecionar as células, com a expressão:
saida = con (fluxo_acumulado > 100, 1)
O que esta expressão faz? Ela diz ao ArcGIS: se a célula tem valor maior do que 100, altere seu valor para 1. Se o valor for menor do que 100, ele será setado para NoData. "Con" vem de condição ou condicional.
Neste momento, teremos um raster especial, onde todas as células são nulas, exceto as que representam um curso d´água. Uma simples conversão de raster para linha transformaria este resultado em vetores
Nota: o resultado da fórmula acima será um raster em memória chamado "saida". Seu raster de fluxo acumulado, deve ter o nome "fluxo_acumulado". A matemática de bandas funciona com o nome das camadas no Table of Contents.
Nota 2: a revista Geo.NET está para sair. Anunciamos ela para o início de abril, mas as coisas ficaram muito mais corridas que o normal e não conseguimos lançá-la no momento previsto. Estamos todos terminando nossos artigos e em breve publicaremos.
Espero que tenham gostado.
Um abraço,
George Rodrigues da Cunha Silva
Modelos Digitais de Elevação e Hidrologia
Boa noite senhores e senhoras.
Vamos falar um pouquinho sobre os tipos de análises realizadas para extração de feições hidrológicas, de forma automática, como delimitação de bacias, ordenação de cursos d´água, construção de rede, entre outras.
Existem alguns conceitos importantes que precisamos dominar antes de sair mexendo com este tipo de ferramental, como o ArcHydro (para ArcGIS) ou o SPRING.
Vamos delimitar os seguintes conceitos:
- Grade regular
- TIN
- DEM/MDT
- Extração automática de feições hidrológicas
Por favor, dê uma olhada também no post Análise Espacial: tipos de Análise para saber sobre análises focais, locais, globais, etc. Estes conceitos também são importantes para ajudar à entender o que veremos à seguir.
Grade Regular
Uma grade regular representa computacionalmente uma superfície contínua, ao contrário de um vetor, capaz de representar somente feições discretas. Uma grade regular é essencialmente uma imagem. É uma matriz x,y,z na qual temos informações de coordenadas e uma terceira dimensão associada aquela célula.
Cada grade regular, ou raster, deve ter: tamanho de célula definido (largura x altura ou resolução espacial), tamanho (altura x largura total, ou a extensão geográfica da grade) e dois pares de coordenadas (geralmente XYmin e XYmax).
Sem estas informações não é possível referenciar esta grade em um software de geoprocessamento, apesar de ainda ser possível realizar operações matemáticas na mesma.
Não necessariamente teremos em uma grade regular, um valor de altimetria associado ao eixo z.
É possível ter qualquer tipo de informação no eixo z, como temperatura, direção do vento, direção do caimento do terreno, informações de classe (pertencimento de uma célula à uma ou outra classe), entre outras (neste caso, onde altimetria não está presente no eixo z, chamamos aquela grade regular de DSM, ou Digital Surface Model).

Grade Regular - pertencimento à classe (fonte: http://www.co.dakota.mn.us/Departments/GIS/Newsletter/Winter2006_GIS101_raster_faster.htm)
Lembrem-se: uma grade regular, sempre será uma superfície contínua.
TIN - Triangular Irregular Network / Rede Irregular Triangular
Um TIN, ao contrário de uma grade regular, é irregular. A principal diferença é que o TIN é feito de alguns nós (com informação no eixo z) e conectores, que não se intereseccionam nunca. As conexões são organizadas de forma à formarem superfícies triangulares únicas (de três em três pontos). Através desta rede triangular, surgirá uma superfície (composta de milhares de outras superfícies triangulares) contínua.
Assim como as grades regulares, não precisamos necessariamente representar elevação no eixo z. Podemos utilizar qualquer informação que varie com o espaço, como temperatura, pressão atmosférica, etc. Nem todas as superfícies modeladas com TINs ficará precisa, portanto é preciso parcimônia e estudo para se decidir entre o TIN e a grade regular no momento de modelar uma superfície.
Os TINs são basicamente construídos por um processo chamando Delaunay triangulation, um processo iterativo que constrói círculos tocantes aos vértices ou nós, sem deixar nenhum ponto dentro de um destes círculos. Se a triangulação não se compromete com este resultado, não pode ser chamada de triangulação de Delaunay.
DEM/MDT
DEM ou MDT é um modelo digital de terreno ou de elevação é uma representação computacional da topografia do terreno.
Técnicas representacionais: grades regulares ou TINs (Triangular Irregular Network).
Como é construído: utilizando-se dados brutos de elevação, como pontos contados, curvas de nível ou qualquer outra informação de altimetria, através de uma interpolação (ou triangulação) e criação de uma superficíe contínua.
Para que utilizar: através de um MDT podemos realizar diversas análises que necessitem de informações altimétricas para funcionarem, como: visibilidade, delimitação de bacias, corte/aterro, entre outras.
Extração automática de feições hidrológicas
Para extrair feições hidrológicas automaticamente, precisamos de um modelo digital de elevação. Por que? Porque a água flui sempre pelo caminho de menor esforço, ou seja, sempre de cima para baixo e sempre pelo caminho de maior declive. É importante entendermos isto e nos lembrarmos sempre quando estivermos trabalhando com hidrologia. Parece básico, mas já vi muita gente se esquecendo. É por esta premissa que todas as ferramentas de geoprocessamento para esta área funcionam. Não devemos esquecê-la né?
Todos os processamentos aqui apresentados são válidos apenas para rasters ou grades regulares. TINs precisam ser convertidos para rasters, senão não é possível realizar estes procedimentos.
Um software não consegue entender a realidade como os seres humanos, portanto algumas ferramentas foram criadas para traduzir nosso entendimento matemático e físico de que a água sempre corre pelo caminho de menor fluxo. Estas ferramentas, aplicadas nesta ordem em particular irão nos ajudar.
- Flow Direction
- Flow Accumulation
Com estas duas simples ferramentas conseguimos identificar onde o fluxo se acumula. Vamos falar sobre cada uma delas:
Flow Direction
Esta é uma ferramenta de focal analysis que percorre janelas no raster de acordo com um kernel (veja o post mencionado lá em cima, que ele explica quase tudo
). Cada célula é comparada com seus vizinhos e determina-se a direção do fluxo.
Existe um modelo para identificarmos as direções neste caso (para o ArcGIS e ArcHydro), chamado D8 Model (ou Eight Direction Model).

Matriz de Direção de Fluxo (fonte: http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Flow_Direction)
Lembrem-se que estamos analisando a célula em branco. Uma fórmula matemática é aplicada à cada par de células (a célula central + célula adjacente) para se determinar o fluxo.
(hMax - hMin / distância) * 100
O maior valor resultante determina para qual célula o fluxo continua. Por que esta fórmula? A água sempre escorre pelo caminho de menor esforço e o caminho de menor esforço é do maior declive (ou não existiriam cachoeiras!).
Por isto a diferença de altura entre as células é levada em conta. Mas e a distância, o que tem à ver? Como podemos calcular declive (um ângulo) sem usar a distância? É uma relação trigonométrica, rise over run, "subida sobre corrida".
Todos os cálculos de declividade entre células é realizado com distâncias ideais, para não sobrecarregar e aumentar o tempo de processamento. A distância considerada é tomada entre os centros de cada célula e supondo que o tamanho de cada célula seja 1x1 unidade, a distância horizontal ou vertical entre cada célula é 1 e a distância entre células em diagonal: ?2 (raiz de 2) - ou 1.414. Não nos importa aqui o tamanho real da célula, pois ele é constante, correto? Estamos falando de grades regulares.
Como cada célula é processada de acordo com seus vizinhos (existem algumas exceções para células de borda, geralmente fluindo obrigatoriamente para dentro da grade regular) e teremos no final, o seguinte resultado:

Direção de Fluxo (fonte: http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=How%20Flow%20Direction%20works)
Temos aí nosso raster de direção de fluxo. Acima, temos também a expressão que calcula a direção do fluxo na ferramenta Raster Math do ArcGIS.
Flow Accumulation
Esta ferramenta irá determina por onde o fluxo se acumula. Ela é muito importante e é o pivô da delimitação automática de bacias e cursos d´água. Alguém tem um palpite como ela funciona?
Cada célula de nosso raster é visitada, comparada com seus vizinhos e então contamos quantos vizinhos fluem para a mesma. Este valor é assinalado para a célula. O interessante deste processo é sua progressão: conforme a análise é realizada já temos um panorama do resultado final. O algoritmo é confiável, pois não considera a célula atual no cálculo, portanto não importa de onde comecemos o processamento, o resultado é o mesmo.
Células que não recebem fluxo são assinaladas o valor zero. Por que? Pois identificam cristas e topos de morro. A água nunca irá subi-los!

Flow Accumulation (fonte: http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Flow_Accumulation)
Com esta superfície de fluxo acumulado podemos visualizar como a água escorre pelo terreno. Simples não?
Para estudos: O Help do ArcGIS (tanto do 9.2 quanto do 9.3 - são muito bons) em: Extensions > Spatial Analysis > Hydrologic Analysis e o poderoso site do ArcHydro e CRWR (Center for Research in Water Resources).
O senhor responsável pelo desenvolvimento do ArcHydro trabalha neste centro de pesquisa e recebe orientandos do mundo todo. Vale a pena dar uma conferida.
Agora fica uma pergunta para vocês: como é possível delimitar automáticamente os cursos d´água utilizando-se somente a superfície de fluxo acumulado?
Não existe nada de muito complicado nisso, é apenas o uso inteligente de conceitos e idéias existentes à muitos milhares de anos
.
Espero que tenham gostado.
George R. C. Silva


