iDea Plus Geo

Geo ideias em formato aberto

Cálculo de área entre curvas de nível - voltando ao assunto

July 10, 2013 — Eliazer Kosciuk

Buenas, pessoal!

A algum tempo atrás publicamos um tutorial sobre Cálculo de área entre curvas de nível, onde procuramos resolver uma dúvida que surgiu na lista de usuários do gvSIG através da aplicação de vários geoprocessos, e onde pudemos aprender várias técnicas do gvSIG. No entanto, no referido artigo trabalhamos com uma simplificação dos dados, e quando fomos trabalhar com dados “reais”, num segundo momento, percebemos que estavam ocorrendo alguns problemas com o procedimento, e não estava sendo gerado o resultado esperado.

Uma das vantagens de trabalhar em comunidade é que o conhecimento é compartilhado, bem como as tentativas de resolver os problemas que aparecem. E foi com a ajuda do Gustavo Agüero Córdoba, que mantém o excelente blog GvSig Consultores AA, que conseguimos não apenas resolver o problema que apareceu, mas também ampliar os conhecimentos não só sobre o gvSIG, mas também sobre os geoprocessos, o Sextante e outras ferramentas que estão disponíveis para a nossa utilização. O objetivo desse artigo é compartilhar esse conhecimento que foi gerado. Vamos aos fatos:

Revisando a questão geradora apresentada, nosso objetivo será calcular a área existente entre uma série de curvas de nível, que foram digitalizadas na forma de um arquivo shape de linhas. Para isso, teremos que transformar essas linhas em polígonos, para que seja possível medir a área.

Para trabalharmos com dados reais, estarei utilizando os arquivos shapes das curvas de nível do estado do Rio Grande do Sul, obtidos do DVD Base Vetorial Contínua do Rio Grande do Sul – Escala 1:50.000, material editado pelo Laboratório de Geoprocessamento do Centro de Ecologia da URGS. Por razões de direitos autorais, e também de tamanho do arquivo, não estarei disponibilizando o arquivo total, e sim apenas um arquivo com os shapes da área de interesse e as respectivas curvas de nível que estão contidas na área de interesse que iremos trabalhar.

Nessa primeira parte do tutorial iremos trabalhar no gvSIG passo-a-passo, executando cada um dos algoritmos necessários para alcançar o nosso objetivo. Em um próximo tutorial mostraremos como automatizar o processo através da execução de um modelo do sextante, que iremos criar.

Buenas… chega de conversa e vamos botar a mão na massa! Em primeiro lugar, vamos criar um projeto, e nele inserir uma nova vista, com projeção WGS84/UTM zone 22S (EPSG 32722), que é o sistema de referência utilizado pelo shape que iremos trabalhar. Nesta vista, inseri o shape das curvas de nivel do RS, e também o shape da área de interesse que queremos trabalhar, conforme pode ser visualizado abaixo:

curvas01

Neste tutorial iremos utilizar apenas os geoprocessos disponibilizados pelo Sextante, muito embora alguns dos algoritmos também estejam disponíveis nas ferramentas de geoprocessamento do gvSIG.

O primeiro processo que iremos aplicar é o Cortar (ou Clip), para podermos selecionar apenas as curvas de nível que estão dentro da nossa área de interesse.

curvas02

Para tanto, abrimos o Sextante e procuramos pelo geoprocesso Cortar (Clip). Na janela que abre, selecionamos a camada das curvas de nível como Camada a recortar, e a camada da área de interesse como Camada de recorte. Em seguida, selecionamos o local e o nome do arquivo que iremos gerar, no campo Camada recortada [vetorial], e clicamos em OK. O geoprocesso Cortar será aplicado, e teremos uma nova camada no nosso TOC, com o resultado: uma camada shape (vetorial) de linhas que representam as curvas de nível existentes na nossa área de interesse. A partir de agora podemos descartar a camada de curvas de nível total, e aproveitar para renomear a camada de resultado para algo mais significativo, de forma a não nos perdermos no processo. Lembramos que o arquivo que está disponibilizado para download contém exatamente esses dois shapes, portanto, você poderá executar o processo com esse material.

curvas03

Muito bem. Teoricamente poderíamos aplicar o geoprocesso Poligonar linhas (Polygonize) diretamente sobre essa nova camada gerada, que teríamos o resultado que buscamos. Vejamos o que acontece. Primeiramente, os dados de entrada:

curvas04

E o resultado obtido:

curvas05

Como podemos ver, não obtivemos o que esperávamos! Mas, por quê? A resposta é simples, e está contida na descrição da rotina que utilizamos: “Este algoritmo converte linhas em polígonos, considerando apenas as bordas (limites ou fronteiras), as quais descrevem áreas fechadas, e sem retornar polígonos sobrepostos”. Ou seja: o algoritmo aplicado fez apenas o que ele foi programado para fazer… converteu apenas as linhas cujas áreas estavam fechadas. As demais não puderam ser transformadas em polígonos por não estarem fechadas.

Para contornarmos esse problema precisamos forçar o fechamento dessas curvas. Como fazer isso? Utilizando o polígono definido pela área de interesse, que contorna a nossa área, e unindo ele com as curvas de nível. Esse processo deve ser feito em dois passos, pois a área de interesse é um polígono, e precisaremos antes transformá-la em uma polilinha, para depois podermos finalmente uni-la com as curvas de nível. Para converter um polígono em polilinhas utilizaremos o geoprocesso… Converter polígono em polilinha (Polygons to polylines):

curvas06

Na seção Entradas, Camada vetorial, definimos como camada de Polígono a ser convertida a camada que contém a área de interesse, e definimos em Resultados, Linhas [vetorial], o caminho e o nome para o arquivo shape que será gerado pelo algoritmo. Ao clicarmos em OK o geoprocesso será aplicado e obteremos como resultado uma nova camada, que contém a nossa área de interesse, agora como uma flamante polilinha:

curvas07

Agora podemos passar para o próximo passo: juntar as duas camadas de polilinhas, de modo a forçar o fechamento das curvas de nível, utilizando o geoprocesso Juntar (Merge):

curvas08

Na janela do algoritmo Juntar (Merge), na seção Entrada, Camada vetorial, definimos como Camada principal a camada que contém as curvas de nível, e como Camadas adicionais selecionamos a camada que geramos no passo anterior, contendo a nossa área de interesse transformada em polilinha. Ao clicarmos em OK o geoprocesso será aplicado e obteremos como resultado uma nova camada contendo a junção das duas camadas que especificamos:

curvas09

Mais uma vez, teoricamente, agora já poderíamos aplicar o geoprocesso Poligonar linhas (Polygonize) e teríamos o nosso resultado esperado. Se os dados com os quais estivermos trabalhando estiverem corrigidos topologicamente, poderíamos estar acabando o nosso trabalho. No entanto, não é esse o caso, como pode ser visto na figura abaixo, que mostra o resultado da aplicação do algoritmo Poligonar linhas (Polygonize) na camada que obtemos no passo anterior:

curvas09a

Isso acontece porque os nossos dados não foram tratados topologicamente, conforme pode ser conferido na próxima figura, onde demos um zoom na área de curvas de nível e selecionamos algumas delas:

curvas10

Como podemos observar, algumas linhas estão “rompidas”. São linhas que, embora pertençam a mesma curva de nível, estão separadas, mas não conseguíamos visualizar isso pela simples observação. Possivelmente esse erro foi gerado no processo de digitalização das curvas de nível. Para alcançarmos o nosso objetivo precisamos aplicar um algoritmo que consiga unir estas linhas, deixando assim o nosso arquivo topologicamente correto.

O algoritmo a ser usado neste caso será o Juntar linhas adjacentes (Join adjacent lines):

curvas11

Na seção Entrada, Camada vetorial, definimos como Camada de entrada a camada que obtivemos no último passo realizado, isto é, a camada de polilinhas resultante da junção das curvas de nível com a área de interesse. Em Opções, definimos o valor de 1.0 para Tolerância. Por último, definimos em Resultados, Resultados[vetorial], o caminho e o nome que será usado para o shape resultante do processo. Clicamos em OK, e teremos o geoprocesso aplicado e obteremos no TOC uma nova camada, agora com as polilinhas das curvas de nível devidamente corrigidas.

curvas12

Finalmente poderemos aplicar o geoprocesso Poligonar linhas (Polygonize) sobre a camada resultante:

curvas13

E obteremos a nossa camada de polígonos, contendo a área entre as curvas de nível:

curvas14

Se selecionarmos alguns dos polígonos poderemos comprovar que agora obtemos os mesmos corretamente:

curvas15

No entanto, não obstantemente… ainda teremos um passo a realizar antes de calcularmos a área entre cada curva de nível:

Como havíamos comentado anteriormente, algumas curvas de nível tinham erros de restituição, o que gerava problemas de topologia. Ao corrigirmos esses erros com a junção de linhas próximas, conseguimos solucionar os problemas de topologia, mas algumas vezes a aplicação desse processo pode gerar alguns polígonos extras que, mesmo pequenos, alteram a área resultante. Como esse arquivo em que estamos trabalhando parece ter sido afetado por todas as instâncias possíveis da Lei de Murphy, também tivemos presente este problema, como podemos observar neste zoom da aplicação da área de interesse sobre a nossa camada de polígonos final (área em amarelo):

curvas16

Para corrigir este problema basta aplicar novamente o geoprocesso Cortar (Clip), agora usando como Camada a recortar a camada de polígonos que acabamos de gerar, e como Camada de recorte, a camada que contém o polígono da área de interesse. Com isso, conseguimos delimitar os polígonos apenas dentro da área de interesse, conforme podemos visualizar abaixo:

curvas16a

Agora poderemos, finalmente, obter o dado que buscávamos no início do nosso tutorial: calcular qual a área dos intervalos entre as curvas. Para tanto, basta acessarmos o menu Camada > Adicionar informação geométrica e, na janela que se abre, selecionar em Camada a camada relativa aos polígonos das curvas de nível corrigidas e, em seguida, selecionar Área na coluna da esquerda e clicar na seta para a direita, de forma a passá-la para a coluna da direita.

curvas17a

Clicando em Aceitar, a informação referente a área de cada um dos polígonos será acrescentada na tabela de atributos do shape:

curvas17b

Sempre é interessante, em qualquer trabalho que façamos, comprovar a confiança dos resultados obtidos. Neste caso, essa comprovação está diretamente relacionada com a área total da nossa área de interesse. Sendo assim, é importante verificarmos se a soma das áreas das curvas de nível individuais é igual a área da nossa área de interesse (podem ocorrer pequenas variações para mais ou para menos, em virtude das abstrações que foram aplicadas, mas essas diferenças não podem ser significativas).

Para obtermos essa comprovação devemos utilizar uma das ferramentas que nos possibilitam obter a soma de um campo de uma tabela, como por exemplo, as estatísticas de tabela. Conforme podemos visualizar abaixo, no nosso caso está tudo “nos conformes” (a diferença está na :

curvas18

Antes de encerrarmos essa parte do tutorial, cabe uma pequena mas importante observação: muito embora todos esses procedimentos tenham sido executado no gvSIG 1.12, eles podem ser completamente reproduzidos utilizando o gvSIG 2.0, pois todos os recursos aqui utilizados estão disponíveis e funcionais na nova versão do gvSIG.

E por hoje é só, pessoal! No próximo artigo veremos como utilizar o modelador do sextante para fazermos o mesmo processo de forma automatizada. Voltamos em breve!

Tags: geoprocessamento, geoprocessos, gvSIG, modelador, sextante, tutorial

gvSIG: Processamento em Lote no Sextante

June 01, 2013 — Eliazer Kosciuk

_gvSIG_processamento_em_lote1

Conheça algumas ferramentas do Sextante que podem ser utilizadas no pré-processamento de um Modelo Digital de Elevação (MDE). Neste tutorial em vídeo, vamos  produzir alguns procedimentos manuais para tratamento do DEM. Os próximos vídeos farão uso do Processamento em Lote e Construtor de Modelos (Model Builder).

Assista o Vídeo no Youtube:

gvSIG: Processamento de um Modelo Digital de Elevação (MDE)

Informações Adicionais

Este tutorial foi realizado no gvSIG 1.12 Portable. Faça o download  desta versão através do site oficial: http://goo.gl/wzep1 | Disponível para os Sistemas Windows e Linux.

Códigos EPSG Nacionais

É preciso conhecer o código EPSG associado a um Datum para definir a projeção da Vista (Viewer) e realizar operações de troca de projeções no gvSIG. No Brasil, os códigos EPSG mais utilizados foram catalogados na tabela abaixo.

CÓDIGO EPSG PROJEÇÃO/DATUM
4225 GCS Corrego Alegre
4618 GCS SAD69
4674 GCS SIRGAS 2000
4326 GCS WGS84
22521 Corrego Alegre / UTM zone 21S
22522 Corrego Alegre / UTM zone 22S
22523 Corrego Alegre / UTM zone 23S
22524 Corrego Alegre / UTM zone 24S
22525 Corrego Alegre / UTM zone 25S
29168 SAD69 / UTM zone 18N
29188 SAD69 / UTM zone 18S
29169 SAD69 / UTM zone 19N
29189 SAD69 / UTM zone 19S
29170 SAD69 / UTM zone 20N
29190 SAD69 / UTM zone 20S
29191 SAD69 / UTM zone 21S
29192 SAD69 / UTM zone 22S
29193 SAD69 / UTM zone 23S
29194 SAD69 / UTM zone 24S
29195 SAD69 / UTM zone 25S
31972 SIRGAS 2000 / UTM zone 18N
31978 SIRGAS 2000 / UTM zone 18S
31973 SIRGAS 2000 / UTM zone 19N
31979 SIRGAS 2000 / UTM zone 19S
31974 SIRGAS 2000 / UTM zone 20N
31980 SIRGAS 2000 / UTM zone 20S
31981 SIRGAS 2000 / UTM zone 21S
31982 SIRGAS 2000 / UTM zone 22S
31983 SIRGAS 2000 / UTM zone 23S
31984 SIRGAS 2000 / UTM zone 24S
31985 SIRGAS 2000 / UTM zone 25S
32618 WGS 84 / UTM zone 18N
32718 WGS 84 / UTM zone 18S
32619 WGS 84 / UTM zone 19N
32719 WGS 84 / UTM zone 19S
32620 WGS 84 / UTM zone 20N
32720 WGS 84 / UTM zone 20S
32721 WGS 84 / UTM zone 21S
32722 WGS 84 / UTM zone 22S
32723 WGS 84 / UTM zone 23S
32724 WGS 84 / UTM zone 24S
32725 WGS 84 / UTM zone 25S

Sobre o GDAL

GDAL (http://www.gdal.org/) é uma biblioteca de dados geoespaciaais utilizada para interpretação e processamento de vários tipos de arquivos raster. As últimas versões do GDAL são atualizadas constantemente no site Mapserver and GDAL. Fiz um download de um executável para Windows 64 Bits e coloquei no Dropbox.

O GDAL opera através de linha de comando. Estes são os comandos utilizados no tutorial: http://goo.gl/0tfYH

Sobre o DEM Topodata

TOPODATA (http://www.dsr.inpe.br/topodata) é um MDE baseado no SRTM e processado pelo Instituto Nacional de Pesquisas Espaciais (INPE). Possui Resolução Espacial de 30 metros com cobertura para o território brasileiro. Faça o download da Grade Topodata Escala 1:250.000 | http://goo.gl/jlTjM | Formato Shapefile.

Tags: gvSIG, sextante, geoprocessamento, tutorial

gvSIG: Construtor de Modelos do Sextante (Model Builder)

May 29, 2013 — Eliazer Kosciuk

gvSIG_banner001600x300

Olá pessoal,
Neste tutorial vamos conhecer o Construtor de Modelos do Sextante. Através deste modelador, é possível pode construir sistemáticos procedimentos para processamento de dados vetoriais e matriciais em cadeia.

O desafio consiste em estruturar tarefas de geoprocessamento de modo que diversas interações possam gerar produtos, e estes, novos dados. Ao executar o modelo, o operador tem a opção de manter ou suprimir os dados intermediários resultantes destas interações.

ModelodoSextante

Para ser bem sucedido durante a construção dos modelos, é fundamental conhecer os algoritmos do Sextante para alcançar um resultado satisfatório. Nós utilizamos como exemplo as ferramentas para realizar uma conversão de Float 32 bits para Signed Integer 16 bits, Reprojeção, Mosaico e Cálculo de Estatísticas no Modelos Digitais de Elevação (MDEs). Utilize esta dica para construir modelos e agilizar suas tarefas de geoprocessamento.

Assista o Vídeo no Youtube:

Informações Adicionais

Este tutorial foi realizado no gvSIG 1.12 Portable. Esta versão pode ser acessada através do site oficial: http://goo.gl/wzep1 | Disponível para os Sistemas Windows e Linux.

Códigos EPSG Nacionais

No Brasil temos uma lista dos códigos EPSG mais utilizados. Acesse a lista através desse link: http://goo.gl/WLncr | É preciso conhecer o código EPSG associado a um Datum para definir a projeção da Vista (Viewer) e realizar operações de troca de projeções no gvSIG.

Sobre o DEM Topodata

TOPODATA (http://www.dsr.inpe.br/topodata) é um MDE baseado no SRTM e processado pelo Instituto Nacional de Pesquisas Espaciais (INPE). Possui Resolução Espacial de 30 metros com cobertura para o território brasileiro. Faça o download da Grade Topodata Escala 1:250.000 | http://goo.gl/jlTjM | Formato Shapefile.

Tags: gvSIG, geoprocessamento, sextante, tutorial

Calculando a área entre curvas de nível

May 02, 2013 — Eliazer Kosciuk

Buenas, pessoal!

O artigo de hoje foi inspirado em uma dúvida que surgiu na Lista de Usuários do gvSIG: como calcular a área entre curvas de nível. Explicando de forma simples, temos um shape com diversas curvas de nível (que são concêntricas, obviamente), e queremos calcular a área da superfície existente entre duas cotas das curvas de nível.

area_curvas_nivel_01

Para resolver essa questão, vamos lançar mão da ferramenta Sextante. No gvSIG 1.12 (e nas versões anteriores) o procedimento é o seguinte: Com o shape das curvas de nível selecionado no TOC, acesse o Sextante (Menu SEXTANTE > Caixa de Ferramentas). Navegue na árvore de processos até encontrar a ferramenta Polygonize (SEXTANTE > Tools for line layers > Polygonize)

area_curvas_nivel_02

Com dois cliques sobre o nome do processo abrirá uma nova janela, onde poderemos preencher os parâmetros para a aplicação do mesmo. Em princípio, podemos aceitar as opções que vem preenchidas por padrão: Na aba “Parameters”, seção “Inputs”, selecionamos a nossa camada de curvas de nível como geradora das Polylines; na seção “Outputs”, estamos solicitando que o arquivo resultante seja gerado em um arquivo temporário (ou poderíamos selecionar o caminho e o nome do arquivo a ser gerado, se quisermos salvar o mesmo); Na aba “Output Region” podemos deixar na opção padrão, “Fit to input layers”.

area_curvas_nivel_03

Ao clicarmos em “OK”, o processo é aplicado e obtemos uma nova camada, com os polígonos referentes a superfície entre as curvas de nível.

area_curvas_nivel_04

Para calcularmos a área, com a nova camada selecionada no TOC, clicamos em Menu > Camadas > Adicionar informação geométrica.

area_curvas_nivel_05

Abrirá uma nova janela, onde poderemos selecionar a informação geométrica que queremos adicionar à tabela de atributos do shape, neste caso, apenas a Área:

area_curvas_nivel_06

Clicando em “Aceitar“, o processo será aplicado, aparecendo então uma janela comunicando este fato.

area_curvas_nivel_07

Clicando novamente em “Aceitar” voltamos a nossa Vista. Podemos então conferir na tabela de atributos do shape que a informação da área foi adicionada na tabela (Menu Camada > Ver tabela de atributos).

area_curvas_nivel_08

Observe que o valor da Área estará na unidade de área selecionada nas preferências da Vista. Então, devemos ter selecionado esta unidade no formato desejado, antes de executarmos esse processo.

Para os que já estão utilizando o gvSIG 2.0 o procedimento será um pouco diferente, devido ao diferente agrupamento de ferramentas adotado. Vejamos como proceder:

Em primeiro lugar, a ferramenta Sextante mudou de endereço: encontraremos ela agora no menu Tools > Geoprocessing > Toolbox (utilizarei a tradução em inglês, já que a tradução para o pt-br ainda não está completa):

area_curvas_nivel_09

Aberta a Caixa de ferramentas de geoprocessamento, observe que todos os geoprocessos foram agrupados nesta janela. Esta é uma das novidades do gvSIG 2.0. Devemos navegar novamente na árvore de geoprocessos, até encontrar a ferramenta desejada (ou utilizar a ferramenta de busca, na parte de baixo da janela). O detalhe é que se tentarmos utilizar o processo Polygonize ocorre um erro, conforme pode ser visto abaixo:

area_curvas_nivel_10

Felizmente temos outro processo que faz o mesmo trabalho: “Polylines to polygons“. Navegue na árvore de processos até encontrar o mesmo (Sextante > Tools for line layers > Polylines to polygons):

area_curvas_nivel_11

Selecionado o processo, os passos são os mesmos anteriormente seguidos: preencher os parâmetros

area_curvas_nivel_12

e clicar em “OK” para aplicar o processo. Obteremos o mesmo resultado:

area_curvas_nivel_13

Agora, mais uma mudança: para calcularmos a área, devemos selecionar a nova camada criada e clicar no menu Table > Add measure > Area:

area_curvas_nivel_14

Abrirá uma janela de alerta, avisando que será criado um novo campo na tabela e solicitando a nossa anuência. Basta clicar em “Yes“.

area_curvas_nivel_15

Aplicado o processo, podemos conferir o resultado na tabela de atributos do shape:

area_curvas_nivel_16

É isso aí, pessoal! Por hoje é só… 😉

Tags: geoprocessamento, gvSIG, sextante, tutorial

Diagrama de Voronoi no gvSIG + Sextante (#SLGeoTbFaz)

January 30, 2013 — Eliazer Kosciuk

Buenas, pessoal!

Mais um ponto para o software livre: a integração entre os vários projetos, agregando diversas ferramentas e potencializando o resultado final, o que nos permite obter o mesmo resultado utilizando caminhos diversos.

Hoje voltamos ao Diagrama de Voronoi. No artigo anterior vimos como gerá-lo através da extensão de Topologia do gvSIG. Hoje veremos como obter o mesmo resultado no gvSIG através das rotinas disponibilizadas pela extensão Sextante.

Iniciando a partir do resultado que obtivemos no último artigo, vamos abrir a extensão Sextante, clicando em “SEXTANTE > Caixa de ferramentas” ou clicando no ícone correspondente:

voronoi_sextante01

Será aberta a janela da ferramenta Sextante:

voronoi_sextante02

Para facilitar a localização, vamos utilizar o campo de busca (“Search“), fazendo uma busca pela palavra “voronoi“:

voronoi_sextante03

Podemos notar que aparecerão apenas a rotina referente ao Diagrama de Voronoi. Poderíamos achar a mesma ferramenta seguindo o caminho: “Algorithms > SEXTANTE > Tools for point layers > Voronoi tesellation

Basta então clicar sobre o nome da rotina que será aberta a janela correspondente. Na primeira aba precisamos definir dois parâmetros: a camada de pontos, que será o shape “parada_bus.shp”, e também o nome e o caminho do arquivo que será gerado:

voronoi_sextante04

Na segunda aba devemos definir o tamanho do arquivo que será gerado. Podemos escolher se o diagrama será gerado em relação à camada de entrada, se será defina pelo usuário, se levará em consideração o tamanho de uma vista, ou será gerada em relação ao tamanho de uma camada. Podemos selecionar a primeira opção, que gerará o Diagrama de Voronoi levando em consideração o tamanho da camada de entrada:

voronoi_sextante05

Selecionados os parâmetros que a rotina necessita, podemos clicar no botão “OK”, e o Diagrama de Voronoi será gerado, sendo automaticamente inserido na vista que estamos trabalhando:

voronoi_sextante06

Alterando os parâmetros da simbologia, podemos ver o nosso resultado final, agora gerado no gvSIG através da extensão Sextante:

voronoi_sextante07

Por hoje é isso pessoal.

Tags: geoprocessos, geoprocessamento, gis, gvSIG, sextante, SLGeoTbFaz, tutorial

Delimitação de Microbacias Hidrográficas com o gvSIG: Parte IV

November 22, 2011 — Eliazer Kosciuk

Buenas, pessoal!

Finalmente entramos na reta final deste tutorial sobre a delimitação de Microbacias Hidrográficas (MBH) com o gvSIG. Nesta última parte faremos a delimitação propriamente dita.

Havíamos encerrado o post anterior com as sub-bacias hidrográficas de nossa área de estudo caracterizadas e devidamente vetorizadas:

simbologiasb041

Vamos prosseguir a partir daqui:

Selecionar as sub-bacias que pertencem à MBH de interesse:

Em primeiro lugar, vamos alterar a ordem das camadas que estão presentes no TOC, de modo que a camada vetorial da rede de drenagem esteja por cima da camada vetorial das sub-bacias hidrográficas. Além disso, é interessante alterar a simbologia da rede de drenagem, mudando a cor e a espessura da linha, de modo em a rede de drenagem possa ser facilmente visualizada por cima da camada das sub-bacias. Esse procedimento irá ajudar bastante na análise visual.

Em seguida, precisamos identificar a região da área de estudo em que está localizada a MBH que queremos delimitar, e dar um zoom na área, de modo a enquadrá-la na área de trabalho, facilitando procedimento de seleção.

Confirmamos que a camada vetorial das sub-bacias está selecinada no TOC, e passamos para a fase da seleção propriamente dita. Neste momento faremos uso das ferramentas de seleção de feições: 

ferramentas_selecao

Uma dica é utilizar primeiramente a ferramenta “Seleção por polígono”, procurando fazer o contorno da área de interesse. Quando terminar  a seleção, basta dar um “duplo clique” para fechar o polígono de seleção, e toda a área interna ao polígono desenhado será selecionada. Bastará então utilizar a ferramenta de “Seleção por ponto” para selecionar  as eventuais áreas que ficaram fora da seleção anterior, tomando o cuidado de pressionar simultaneamente a tecla “Ctrl”, para que as feições selecionadas sejam adicionadas à seleção já existente. O mesmo pode ser feito para remover a seleção de alguma sub-bacia que eventualmente não faça parte da MBH em questão: basta clicar sobre ela com a ferramenta de “Seleção por ponto”, sempre com a tecla “Ctrl” pressionada, que será removida a seleção da sub-bacia.

No final do trabalho de seleção deveremos ter uma camada semelhante a da figura a seguir:

selecionarbacia01

Vamos agora exportar essa seleção para uma nova camada: acessamos o menu Camada > Exportar para > SHP, e definimos um nome e o caminho para o arquivo shape que será gerado. Ao clicarmos em “Aceitar” aparecerá uma mensagem informando o número de feições que serão exportadas, e perguntando se desejamos continuar:

selecionarbacia03

Após clicarmos em “Sim”, a seleção será exportada para um novo shape, e seremos questionados se queremos inserir a nova camada na Vista, ao que devemos responder novamente “Sim”. E seremos apresentados ao shape das sub-bacias que compõe a nossa MBH:

selecionarbacia04

Precisamos agora gerar um shape que contenha todas as sub-bacias, delimitando assim a área da MBH. Para isso, vamos…

Aplicar o geoprocesso “dissolver”:

Clicamos com o botão direito sobre camada da MBH que acabamos de criar e, no menu contextual que é aberto, clicamos na opção “Iniciar edição”. Em seguida, clicaremos no ícone “Mostrar atributos”, para que possamos ter acesso à tabela de atributos do shape da MBH. Acessamos então o menu Tabela > Modificar estrutura da tabela, pois precisaremos acrescentar um campo à estrutura da tabela que contenha um mesmo valor em todos os elementos da tabela para podermos aplicar o geoprocesso dissolver.

Na janela do “Editor de campos” que se abre vamos selecionar a opção “Novo campo”. Podemos alterar o “Nome do campo” (utilizei o nome “dissolver”); em “Tipo” vamos deixar selecionada a opção “string”; em “Tamanho” alteramos para o valor “1”; e, finalmente, em “Valor padrão” escolhemos um valor que aparecerá automaticamente preenchido em todos os elementos da tabela no novo campo que estamos inserindo.

dissolvermbh04

Ao clicarmos em “Aceitar” o campo será inserido, e poderemos conferir este fato na listagem dos campos da tabela de atributos do shape que nos é apresentada:

dissolvermbh05

Podemos então clicar em “Aceitar”, fechamos a Tabela de atributos e, no TOC, clicamos com o botão direito na camada que estávamos editando, e selecionamos a opção “Termina a edição”.

Em seguida, vamos acessar o menu Vista > Gestor de geoprocessos. Na janela de Geoprocessos que se abre, selecionaremos: Geoprocessos > Análises > Agregação > Dissolver

dissolvermbh06

Ao selecionarmos a opção “Abrir Geoprocesso”, abrirá a janela de configuração da ferramenta, onde selecionaremos as seguintes opções: em “Camada de entrada” selecionamos o shape da MBH; podemos conferir se o número de elementos selecionados está correto; em “Campo para dissolver” selcionaremos o campo que acabamos de criar (“dissolver”, no meu caso); finalmente, em “Camada de saída”, vamos nomear arquivo e definir o caminho onde o mesmo será salvo.

dissolvermbh07

Ao clicarmos em “Aceitar” o geoprocesso dissolver será aplicado, e teremos o resultado desta operação:

dissolvermbh08

Podemos perceber que todas as feições foram dissolvidas e temos agora um shape que contém apenas uma feição, correspondente a área total da nossa MBH. Podemos agora agregar algumas informações a este shape, como por exemplo:

Calcular a área e o perímetro da MBH:

Para agregar essas informações ao shape que acabamos de criar vamos acessar o menu Camada > Adicionar informação geométrica.

areaeperimetro01

Na janela “Adicionar informações geométrica” que se abre vamos selecionar o shape que acabamos de criar no passo anterior em “Camada”; selecionamos as informaçôes geometricas “área” e “perímetro”, clicando em seguida no ícone “Adiciona os ítens selecionados”:

areaeperimetro02

Após clicarmos em “Aceitar” serão calculados a área e o perímetro da nossa MBH, com as unidades de medida definidos na configuração inicial das propriedades da Vista. Os valores estarão na tabela de atributos do shape, e podemos consultá-los através do ícone “Tabela de atributos:

areaeperimetro03

Recortar a rede de drenagem da microbacia hidrográfica:

Como último passo deste tutorial vamos recortar a rede de drenagem, de forma a termos separada apenas a rede de drenagem da MBH que nos interessa. Para tanto, acessaremos o menu Vista > Gestor de geoprocessos e, na janela do Gestor de Geoprocessos, acessaremos o caminho: Geoprocessos > Análises > Sobreposição > Recortar.

Clicamos em “Abrir Geoprocesso” e, na janela de opções da ferramenta, aplicaremos as seguintes configurações: em “Camada de entrada” selecionamos o shape da rede de drenagem; selecionamos como “Camada de recorte” o shape do limite da MBH; e, em “Camada de saída” definimos o nome e o caminho do arquivo que será gerado.

recortedrenagemmbh01

Após clicarmos em “Aceitar”, o geoprocesso será aplicado e obteremos o nosso resultado:

recortedrenagemmbh02

Na próxima imagem apresento a MBH devidamente delimitada, juntamente com sua rede de drenagem, que é o nosso resultado final, já com a simbologia alterada para uma melhor apresentação visual:

recortedrenagemmbh03

A partir deste momento poderemos gerar o mapa da MBH, para ser impresso ou salvo como um arquivo pdf, mas esse não é o objetivo deste tutorial. Para quem quiser fazer esse trabalho indico o excelente tutorial sobre o “Modo layout no gvSIG“, do meu amigo Esdras, no blog Geo para Linux

Tags: geoprocessamento, gis, gvSIG, MDT, sextante, SLGeoTbFaz, tutorial, geoprocessos

Delimitação de Microbacias Hidrográficas com o gvSIG: Parte III

November 21, 2011 — Eliazer Kosciuk

Buenas, pessoal!

Vamos agora para a terceira parte do tutorial sobre delimitação de Microbacias Hidrográficas (MBH) com o gvSIG. Na segunda parte do tutorial vimos como gerar o MDT a partir de um arquivo shape contendo curvas de nivel da região de interesse. Neste momento, estamos com o MDT pronto e processado, de modo a não apresentar depressões. Retomamos o trabalho a partir deste ponto.

mnt07

Gerar a camada de fluxo:

Para início de conversa, abriremos a ferramenta Sextante: SEXTANTE > Basic hydrological analysis > Flow accumulation

fluxo01

Na janela da ferramenta que se abre, vamos efetuar as seguintes configurações: Na aba “Parameters”, seção “Inputs – Raster layers”, em “Elevation” selecionaremos a camada que foi gerada após o processamento de eliminação das depressões; em “Weight” deixamos sem seleção (Not selected); na seção “Options”, em “Method” selecionamos a opção “MFD (Multiple Flow Directions)”; em “Convergence factor (MFD), colocamos o valor de “1.1”; na seção “Outputs”, como de praxe, selecionamos o nome e caminho onde o arquivo resultante será salvo.

fluxo02

Na aba “Output region” deixaremos selecionada a opção “Fit to input layers” (nota: de agora em diante essa será a opção “padrão”, quando não nos referirmos a ela nas próximas fases. Se houver alguma necessidade de alterar essa opção, eu avisarei).

fluxo03

Ao clicarmos em “OK” a rotina de acúmulo de fluxo será aplicada, e obteremos como resultado final um arquivo raster que representa o acúmulo de fluxo da nossa área de estudo:

fluxo04

Podemos agora partir para a geração da rede de drenagem.

Gerar a rede de drenagem:

Abrimos novamente a ferramenta Sextante: SEXTANTE > Basic hydrological analysis > Channel network

rededrenagem01

Definindo as opções da ferramenta: Na aba “Parameters”, seção “Input – Raster layers”, vamos definir que em “Elevation” será utilizada a camada raster do MDT processado (sem depressões); em Threshold layer, selecionaremos a camada de fluxo, gerada na fase anterior; na seção “Options”, primeiramente não mexeremos nas opções apresentadas: em “Criteria” está selecionado “Greater than”, e em Threshold está o valor de “10000.0”; na seção “Outputs, o diferencial agora é que será gerada uma camada no formato raster e outra no formato vetorial. Definimos aqui nome e caminho para caminho para cada um dos arquivos que será gerado. Na aba “Output region”, como comentamos anteriormente, deixaremos selecionada a opção “Fit to input layers”.

rededrenagem02

Ao rodarmos a rotina clicando em “OK”, seremos apresentados ao arquivo resultante: a rede de drenagem da nossa área de estudo:

rededrenagem04

Como podemos observar, a rede de drenagem ficou muito detalhada. Se aplicarmos a rotina de geração de sub-bacias neste arquivo, receberemos como resultado centenas de sub-bacias, referentes a cada contribuinte da rede de drenagem, por menor que seja. Co mo não é esse o objetivo neste momento, vamos alterar os parâmetros para obter uma rede de drenagem com menos detalhes:

Abrindo novamente a ferramenta “Channel ntetwork” do Sextante, vamos alterar apenas a opção “Threshold”, da seção “Options” da aba “Parameters”. Como uma primeira aproximação, vamos alterar o valor de “10000.0” para “100000.0”; não alteraremos as demais opções.

rededrenagem05

Pressionado “OK”, a rotina será aplicada novamente, e obteremos nossa nova rede de drenagem:

rededrenagem06

Com a rede de drenagem gerada, podemos passar para o próximo passo:

Gerar as sub-bacias hidrográficas:

Acessamos novamente a ferramenta Sextante: SEXTANTE > Basic hydrological analysis > Watersheds

subbacias01

Configurando a ferramenta: na aba “Parameters”, seção “Inputs – Raster layers”, em “Elevation” selecionamos a camada raster do MDT processado (sem depressões); em “Chanel network” selecionamos a camada da rede de drenagem que geramos no passo anterior; na seção “Options”, em “Minimum watershed size [cells]” podemos definir o tamanho mínimo, em células, que a sub-bacia pode ter. Neste caso, deixamos o valor padrão (“0”); Na seção “Outputs”, definimos o nome do arquivo e o caminho onde ele será salvo. Na aba “Output region”, deixamos selecionada a opção “Fit to input layers”.

subbacias02

Ao clicarmos em “OK”, seremos apresentados ao nosso resultado final: um arquivo raster representando todas as sub-bacias hidrográficas da nossa área de estudo.

subbacias04

Na próxima imagem podemos conferir a rede de drenagem sobreposta às sub-bacias hidrográficas:

subbacias05

Para os próximos passos no trabalho de delimitação das MBH, precisaremos converter este arquivo raster em um arquivo vetorial:

Vetorizar as sub-bacias hidrográficas:

Pela última vez neste tutorial, vamos acessar a ferramenta Sextante: SEXTANTE > Vectorization > Vectorize raster layer (polygons)

vetorizarsb01

Precisamos definir apenas dois parâmetros: em “Input layer”, selecionamos a camada raster que queremos vetorizar (a camada das sub-bacias hidrográficas que acabamos de gerar), e em “Outputs – Result[vector]” definimos o nome do arquivo e o caminho onde ele será salvo.

vetorizarsb02

Novamente clicando em “OK” seremos apresentados ao arquivo vetorial simbolizando as sub-bacias da nossa área de estudo:

vetorizarsb03

Como último passo desta parte do tutorial, vamos alterar a simbologia da camada de sub-bacias hidrográficas, para facilitar os trabalhos seguintes:

Aplicar simbologia nas sub-bacias hidrográficas:

Selecionamos no TOC a camada “Result” (gerada no passo anterior), e, clicando com o botão direito do mouse sobre ela, selecionamos no menu contextual que se abre a opção “Propriedades”. Na aba “Simbologia”, selecionamos Categorias > Valores únicos

simbologiasb01

Em “Campo de classificação” escolhemos o campo pelo qual iremos aplicar a simbologia (Watersheds, neste caso); em “Esquema de cores”, escolhemos um gradiente de cores que nos agrade, de preferência com uma grande variação de cores (selecionei o esquema “purple-red+stripes”); em seguida, clicamos em “Adicionar todos”. Aparecerá a mensagem de alerta: “mais de 100 símbolos não contribuem para uma clara informação em um mapa”:

simbologiasb02

Podemos clicar em “Yes”, pois neste caso o que queremos é apenas facilitar a diferenciação das diferentes áreas.

simbologiasb03

Clicando em “Aplicar” teremos um “preview” e, se o resultado nos agradar, podemos clicar em “Aceitar”. Seremos então apresentados ao nosso arquivo vetorial, já com a simbologia aplicada:

simbologiasb04

Com isto terminamos esta terceira parte do nosso tutorial sobre delimitação de Microbacias Hidrográficas com o gvSIG. Na próxima (e última) parte iremos finalmente selecionar as sub-bacias que compõe a nossa MBH, e executar os procedimentos que nos permitirão delimitá-la.

Tags: geoprocessamento, geoprocessos, gis, gvSIG, MDT, sextante, SLGeoTbFaz, tutorial

Delimitação de Microbacias Hidrográficas com o gvSIG: Parte II

November 18, 2011 — Eliazer Kosciuk

Buenas, pessoal!

Estamos de volta com a segunda parte do tutorial de delimitação de Microbacias Hidrográficas (MBH) com o gvSIG. Para darmos continuidade precisaremos do arquivo shape contendo as curvas de nível da nossa área de interesse, que foi obtido no final da primeira parte deste tutorial:

inicial13

Passaremos agora a gerar o modelo digital do terreno a partir destas curvas de nível.

Rasterização das curvas de nível:

Como primeiro passo, precisamos transformar os vetores em um arquivo raster. Para tanto, acessamos novamente a ferramenta Sextante: SEXTANTE > Rasterization and interpolation > Rasterize vector layer

rasterizacao01

Na janela de configuração da ferramenta que se abre vamos alterar os parâmetros da primeira aba (“Parameters”): na seção “Inputs – Vector layer”, em Vector Layer selecionamos a camada de entrada, que nesse caso é a camada que contém o recorte das curvas de nível; em Field, precisamos definir qual o campo da tabela contém os dados de altitude (cota) dos vetores que, no nosso caso, está em “CODIGO”; na seção “Outputs”, definimos o arquivo em que será salvo o resultado da operação. Deixei marcada a opção de salvar para um arquivo temporário, mas podemos selecionar o caminho e definir o nome para o arquivo se quisermos salvá-lo.

rasterizacao02

Na aba “Output region” vamos selecionar a opção “Use extent from layer”, selecionando em seguida a camada do recorte das curvas de nível como base. Em seguida, alteramos a opção “Cell size” para o valor “20.0”, e clicamos em “OK”.

rasterizacao03

Será processada a rasterização da camada de vetores, e no final obteremos um arquivo raster equivalente ao arquivo vetorial das curvas de nível:

rasterizacao04

Como podemos notar, temos duas situações neste arquivo: pixels da imagem onde estão as curvas de nível contém informações da altitude das mesmas (cotas), enquanto que nas áreas pretas da imagem estão pixels que não contém informações. Precisamos preencher esses “vazios”, de forma que cada pixel da imagem contenha uma informação de altitude, através de um processo de interpolação. Usaremos outra rotina do Sextante para preencher as células sem dados

Preenchendo as células sem dados:

Voltamos a abrir o Sextante: SEXTANTE > Basic tools for raster layers > Void Filling

mnt01

Na janela de opções da ferramenta que é aberta, precisamos apenas conferir se em “Layer” está selecionada a camada que foi rasterizada no passo anterior, e podemos deixar o valor default de “0.1” em “Tension thershold”. Em “Outputs – Filled layer[raster], podemos definir o nome e o caminho onde o arquivo gerado será salvo:

mnt02

Após clicarmos em “OK”, o arquivo raster será processado pela rotina, e teremos no final um arquivo onde cada célula (pixel) contém uma informação de altitude (cota), representando assim o Modelo Digital do Terreno (MDT):

mnt03

Eliminando as depressões:

Voltemos à nossa ferramenta Sextante: SEXTANTE > Basic hydrological analysis > Sink filling

mnt04

Novamente, na janela da ferramenta que é aberta, vamos definir alguns parâmetros: em “Input – Raster layers”, vamos tomar o cuidado de observar se está selecionada a camada raster gerada no passo anterior (rasterizada e preenchida); em “Min. angle between cells [deg]” podemos deixar o valor default de “0.01” e, como sempre, em “Outputs – Preprocessed[raster]”, definiremos o nome e o caminho onde será salvo o arquivo que será gerado pela rotina. É importante que salvemos este arquivo, pois o mesmo será utilizado para os procedimentos subsequentes.

mnt05

Após clicarmos em “OK” será iniciado o processamento. E aqui cabe uma ressalva importante: esse processo é demorado! Para fins de comparação, o processo demorou 50 minutos em um computador com processador Intel Core 2 Quad e 8 Gb de RAM. Portanto, tenha paciência, saia para fazer um lanche, e aguarde o término do processamento!

mnt06

Finalizado o processamento seremos apresentados ao resultado final. Aparentemente, não há diferenças entre esse e o arquivo anterior, mas agora temos certeza que todas as depressões do terreno foram eliminadas.

mnt07

Terminamos aqui a segunda parte deste tutorial. Na próxima parte estaremos trabalhando com a geração da camada de acúmulo de fluxo, a geração da rede de drenagem e, finalmente, a geração das sub-bacias hidrográficas. Aguardem!

Tags: geoprocessamento, gis, gvSIG, geoprocessos, MDT, sextante, SLGeoTbFaz, tutorial

Delimitação de Microbacias Hidrográficas com o gvSIG: Parte I

November 17, 2011 — Eliazer Kosciuk

Buenas, pessoal!

Recentemente tive que lidar no meu trabalho com o desafio de delimitar uma microbacia hidrográfica (MBH, de agora em diante), pois precisava conhecer qual seria a área abrangida por tal MBH, quais os moradores que faziam parte desta MBH, etc. Digo desafio porque nunca havia realizado tal procedimento com o gvSIG. Nesta série de artigos venho compartilhar os procedimentos que adotei, pois certamente poderão ajudar outros usuários. Além disso, esse é mais um artigo que pode ser enquadrado na Série #SLGeoTbFaz… 😉

Antes de começar, gostaria de ressaltar que praticamente toda a sequencia de procedimentos que eu segui está descrita na apostila “Introdução ao gvSIG portable v1.11 SIG-RB, Módulo Básico”, disponibilizado de forma aberta pelo pessoal do Sistema de Informações do Ribeira de Iguapé e Litoral Sul. A apostila pode ser baixada gratuitamente mediante um rápido cadastro na área de capacitação do site. Feitas estas primeiras considerações, vamos ao tutorial, propriamente dito:

Nesta primeira fase, vamos preparar o ambiente para o trabalho que virá a seguir. Os dados que iremos utilizar foram obtidos do DVD “Base cartográfica vetorial contínua do Rio Grande do Sul – escala 1:50.000”, produzido pela UFRGS – IB. Centro de Ecologia – Laboratório de Geoprocessamento, e pode ser adquirido no site da Editora UFRGS. Vale cada centavo investido!

Com o gvSIG aberto, vamos criar uma nova Vista, definindo nas propriedades da mesma o Sistema de Coordenadas EPSG 32722 (WGS 84 / UTM zona 22S). Abrimos a Vista e inserimos o arquivo shape do estado do Rio Grande do Sul, já reprojetado para o Sistema de Coordenadas adotado.

inicial01

Com a ferramenta de seleção, selecionamos o município que será trabalhado. No caso, o município de Seberi, no noroeste gaúcho:

inicial02

Com a área de interesse selecionada, vamos no menu Camada > Exportar para > SHP, e exportamos a feição selecionada para um novo arquivo shape, com o qual iremos trabalhar. Salvo o arquivo, respondemos “sim” à mensagem que nos pede se queremos inserir o novo shape na Vista. Na próxima figura podemos conferir o shape dos limites do município, após clicarmos com o botão direito do mouse no nome da camada no TOC e, no menu contextual que se abre, selecionar “Zoom na camada”:

inicial03

Como estaremos trabalhando com dados em uma escala maior, vamos criar um buffer para garantir que todos os detalhes que queremos trabalhar estarão incluídos. Para tanto, acessamos o menu Vista > Gestor de geoprocessos.

inicial04

Na árvore de seleção de geoprocessos à esquerda da janela aberta selecionamos Geoprocessos > Análises > Proximidade > Buffer (área de influência) e clicamos em “Abrir geoprocesso“.

Na janela que se abre precisaremos definir alguns dados: na “Camada de entrada”, selecionamos o shape do limite do município; selecionamos a opção “Buffer definido por uma distância”, definindo o valor de 500 m; em “Criar Buffer” selecionamos a opção “Fora do polígono”; em “Número de anéis concêntricos” deixamos o valor “1” e, finalmente, definimos um arquivo onde o buffer resultante será salvo, clicando em “Abrir” e definindo o nome do arquivo e selecionando o caminho onde o mesmo será salvo.

inicial05

Com todas as opções definidas clicamos em “Aceitar” e será gerado um shape com uma área de buffer externo de 500m ao redor do shape dos limites do município de Seberi:

inicial06

Podemos agora descartar as camadas que não serão mais utilizandas, deixando apenas a camada gerada pelo geoprocesso Buffer: selecionando-as no TOC, clicamos com o botão direito do mouse e escolhemos a opção “Remover camadas” no menu contextual que aparece.

Precisamos agora definir um retângulo envolvente que englobe toda a área do município. Para tanto, clicamos em SEXTANTE > Toolbox e, na janela que se abre, selecionamos Sextante > Tools for vector layers > Bounding Box:

inicial07

Na janela da ferramenta “Bounding Box” que é aberta, definimos na aba “Parameters”, em “Layers”, a camada que será utilizada para gerar o retângulo envolvente (no caso, a camada do buffer), e definimos também o arquivo que será gerado. Clicando em “OK” a rotina será aplicada, e obtemos um shape com o retângulo envolvente:

inicial08

Definida a nossa área de interesse podemos inserir no projeto a camada com o shape das curvas de nível da região, tomando o cuidado de selecionar o arquivo com a projeção do projeto:

inicial09

Vamos agora fazer um recorte da área que nos interessa. Para tanto, vamos no menu Vista > Gestor de geoprocessos e na janela do gestor de geoprocessos selecionamos Geoprocessos > Sobreposição > Recortar, clicando em seguida em “Abrir geoprocesso”.

inicial10

Na janela de opções da ferramenta Recortar que se abre, selecionamos as opções: em “Camada de entrada” escolhemos a camada das curvas de nível que queremos recortar; em “Camada de recorte” selecionamos a camada do retângulo envolvente que criamos, que é a nossa área de interesse e, finalmente, em “Camada de saída” definimos o arquivo que será gerado.

inicial11

Clicando em “Aceitar” o geoprocesso será realizado, resultando em um shape contendo as curvas de nível apenas da área que nos interessa:

inicial12

Na próxima figura temos o nosso arquivo shape final, contendo apenas as curvas de nível da região do município gaúcho de Seberi, que servirá de base para as próximas fases do tutorial. Se, por um acaso, você gerou o arquivo apenas na memória, poderá salvar agora o resultado obtido selecionando a camada no TOC e clicando no menu Camada > Exportar para > SHP.

inicial13

Não tenho como disponibilizar o arquivo shape das curvas de nível do estado do Rio Grande do Sul, até por questões autorais, mas creio que não haverá problemas maiores em disponibilizar apenas o arquivo shape final obtido, para que os nossos leitores possam acompanhar os próximos passos do tutorial (se houver alguma infração, peço que os responsáveis entrem em contato, que retirarei o arquivo).

Na próxima parte da série abordaremos a geração do Modelo Digital de Terreno no gvSIG, feito a partir das curvas de nível que obtemos neste tutorial. Até breve!

Tags: geoprocessamento, gis, gvSIG, MDT, geoprocessos, sextante, SLGeoTbFaz, tutorial

Visualizar orientação da declividade no gvSIG (Série #SLGeoTbFaz)

November 10, 2011 — Eliazer Kosciuk

Buenas, pessoal!

Bastante atrasado, mas antes tarde do que nunca! Por uma série de motivos que não precisam ser explicitados por aqui, acabei atrasando bastante o “reply” da postagem da Série “Quebrando Tabus – Software Livre Também Faz”, iniciada pelo nosso amigo Luís Lopes, que mantém o blog Geotecnologias Luís Lopes (@geoluislpes). O desafio da vez foi visualizar orientação da declividade, sendo que o Luis explicou os procedimentos utilizando o Quantum GIS, que logo foi apresentado também os utilzando o SAGA GIS, pelo Esdras Andrade (@geoparalinux), no seu blog Geoprocessamento para Linux.

Chega de enrolação, e vamos ao procedimento para visualizar a orientação da declividade utilizando o gvSIG:

Vamos utilizar o mesmo SRTM que foi utilizado nos outros tutoriais, e que pode ser baixado do site Brasil em Relevo, da Embrapa Monitoramento por Satélite. No gvSIG, criaremos uma nova Vista, tendo o cuidado de selecionar o Sistema de Coordenadas WGS84 (EPSG 4326) nas Propriedades da Vista, pois é o Sistema de Coordenadas em que o SRTM está.

Criada a nova Vista, podemos abrí-la e inserir o SRTM em uma nova camada (Vista > Adicionar Camada, lembrando de selecionar “raster” em “Tipo de arquivo”).

declividade01

Inserido o SRTM, vamos abrir a ferramenta SEXTANTE, através do ícone

(SEXTANTE Tool Box). Em seguida, vamos abrindo a “árvore” de scripts: SEXTANTE > Geomorphometry and terrain analysis > Aspect, para selecionarmos a ferramenta que iremos trabalhar.

declividade02

Com um duplo clique em Aspect abrirá o diálogo de opções da ferramenta, onde na primeira aba (Parameters) poderemos selecionar a camada que será utilizada para gerar a visualização da declividade (em Elevation), se as unidades estarão em radianos ou em graus (Units), o método que será utilizado para a geração (Method) e também selecionar o arquivo de saída, com o resultado (deixei marcado para gerar o arquivo na memória, mas poderíamos designar uma arquivo onde salvar o resultado):

declividade02a

Na segunda aba, podemos selecionar a região que será utilizada para a visualização/geração do resultado. Deixei marcada a opção de utilizar os parâmetros de entrada, mas poderíamos determinar que fosse utilizado uma região definida pelo usuário, ou selecionarmos uma Vista, para que fosse utilizada a sua extensão, ou ainda selecionarmos uma camada para o mesmo fim:

declividade03

Ao clicarmos em “OK”, o SEXTANTE irá processar o SRTM com os parâmetros selecionados e, em seguida, seremos apresentados ao resultado: uma imagem… totalmente branca! (!!!!!!!!)

declividade04

Calma! Não entre em desespero! Não aconteceu nada de errado, muito pelo contrário. As informações que queremos estão todas lá, basta alguns “pequenos ajustes” 😉

Com o botão direito do mouse, vamos ao TOC, e clicamos sobre a nova camada gerada, e em seguida selecionamos “Propriedades do Raster”, no menu contextual que aparece:

declividade04a

Na janela que se abre, vamos na aba Realce. Normalmente está selecionada apenas a opção “Ativar”:

declividade05

Basta selecionarmos também a opção “Remover extremos” e voilà! Finalmente podemos visualizar a declividade da região do nosso SRTM:

declividade05a

Para efeito de comparação, apresento abaixo o arquivo SRTM original e a visualização da orientação da declividade, obtida após o processamento:

declividade06

Neste momento, por pura falta de tempo, vou ficar devendo a visualização em modo colorido. Prometo completar o artigo mais tarde. Para os apressadinhos, deixo a dica de que é preciso usar a rotina de “Tabelas de Cor”:

Como próximo passo, vamos aplicar agora um esquema diferente de cores, para ressaltar a visualização da declividade. Para tanto, com a camada “Aspect” gerada pelo SEXTANTE selecionada no TOC, vamos acessar as ferramentas raster; primeiro selecionamos o ícone “Camada Raster” e, em seguida, no ícone ao lado, selecionamos a opção “Tabelas de cor”:

declividade07

Abrirá a janela “Tabelas de cor”, onde poderemos fazer o ajuste que queremos.

tabeladecores02

Em primeiro lugar, precisamos clicar em “Ativar tabelas de cor” ([1], na figura abaixo) e, em seguida, escolher o estilo de cores que iremos aplicar, na lista disponível em “Biblioteca” ([2]). Selecionei o estilo “Mac-style”, que é o que mais se aproxima ao proposto pelo Luís. Por último, devemos alterar o valor de “Mínimo” ([3]), que está negativo, para zero e, em seguida, clicar em “aceitar”.

tabeladecores02b

Na próxima figura temos o resultado final, já com o esquema de cores aplicado:

tabeladecores03

Por enquanto é isso, pessoal! Se alguém quiser se aprofundar um pouco mais na teoria, recomendo a leitura dos dois artigos “irmãos” que foram citados anteriormente. E, para você acompanhar a Série “Quebrando Tabus” no twitter, basta fazer uma pesquisa pela hashtag #SLGeoTbFaz 😉

Em tempo: quero registrar aqui que esse tutorial não teria saído se não fosse o apoio e as dicas do Carlos, da Gauss (@gaussgeo) e do Gilberto, do SIG da Bacia Hidrográfica do Ribeira de Iguape e Litoral Sul.

Tags: geoprocessamento, gis, gvSIG, sextante, SLGeoTbFaz, tutorial, geoprocessos

Utilizando o GRASS Para Gerar Pontos Aleatórios no gvSIG

August 30, 2011 — Eliazer Kosciuk

Buenas!
Recentemente descrevemos como gerar pontos aleatórios em polígonos utilizando a extensão SEXTANTE no gvSIG. Neste tutorial faremos uso de um algoritmo do GRASS no gvSIG para obter um resultado semelhante. Usei o termo “semelhante” porque o resultado final obtido não é igual ao do tutorial anterior, uma vez que este algoritmo gera pontos aleatórios a partir de uma vista ou de um shape, mas não permite especificar o número de pontos que serão gerados por polígono, que foi a proposta inicial do exercício feito pelo @geoluislopes. No entanto, este algoritmo é muito interessante, podendo gerar não apenas pontos aleatórios em 2D, mas também em 3D. Ou seja: certamente tem o seu momento de aplicação.
Feita esta ressalva, vamos ao tutorial propriamente dito, assumindo que você já está com o GRASS instalado no gvSIG:

Inicialmente, baixe o shape dos municípios do RS, que usaremos neste tutorial. Crie uma nova vista com a projeção WGS 84 (EPSG 4326), abra a mesma e insira o shape.

ptos_aleat01g

Apliquei um zoom na área de interesse, onde quero que os pontos sejam gerados (neste caso, na região central do RS).

ptos_aleat02g

Acessamos a extensão SEXTANTE, através do ícone “SEXTANTE Toolbox”. Na janela da extensão, navegamos até encontrar os algorítimos do GRASS.

ptos_aleat03g

Utilizando a árvore de algorítimos, vamos navegando até encontrar o algorítimo desejado: GRASS > Vector (v.*) > v.random

ptos_aleat04g

Um clic duplo no nome do algorítimo irá abrir a sua janela de entrada de dados, onde poderemos configurar as opções disponíveis. Na primeira aba, “Parameters”, vamos alterar apenas o “n”, que determina o número de pontos a serem gerados, que fixei em 50. As demais opções não nos interessam neste momento, a não ser “v.random: output(vector)”, que detemina se a camada resultante será gerada em um arquivo temporário ou se iremos salvá-la para um arquivo específico. Podemos deixar a opção default de gerar para um arquivo temporário.

ptos_aleat05g

Na segunda aba, “Region”, iremos defenir a região onde o algorítimo será aplicado. Existem 3 opções:

  1. “User defined”, onde podemos determinar manualmente o local de aplicação, alterando os parâmetros “Range X” e “Range Y”.
  2. “Use extent from view”, onde poderemos escoher uma vista para aplicar o algorítimo (a visualiação atual da mesma fixará os parâmetros “Range X” e “Range Y”).
  3. “Use extent from layer”, onde poderemos esolher uma camada onde o algorítimo será aplicado (somente em toda a extensão da camada).

Escolhi a segunda opção, para gerar os pontos aleatórios na visualização da vista que estava ativa.

ptos_aleat06g

Ao clicarmos em “Ok” o algorítimo será aplicado conforme os parâmetros escolhidos, e o resultado aparecerá em uma nova vista. Devemos então selecionar a camada gerada e exportá-la Camada > Exportar para > SHP.

ptos_aleat08g

Depois de exportar a camada podemos fechar a vista gerada e, voltando para a vista anterior, adicionamos a camada que salva para visualizar os resultados.

ptos_aleat09g

Para conhecer maiores detalhes do algorítimo v.random, basta acessar a página do mesmo no manual online do GRASS.

Tags: geoprocessamento, geoprocessos, gis, GRASS, gvSIG, sextante, tutorial

Instalando o GRASS no gvSIG: Windows XP

August 29, 2011 — Eliazer Kosciuk

Buenas! Para utilizar os algoritmos do GRASS no gvSIG, obviamente antes é preciso instalá-lo. Você pode fazer isso seguindo o tutorial do Jorge Santos, para windows, usando o gvSIG OADE, ou o tutorial do Esdras Andrade, ensinando a instalação no linux, também utilizando para isso o gvSIG OADE. Outro tutorial pode ser achado no blog Fuguraro GIS, que explica a instalação do GRASS tanto para o windos7 quanto para o linux, sem a necessidade de instalar o gvSIG OADE. Foi esse o procedimento que adotei, mas vou aproveitar para explicar como resolver certos “problemas” que apareceram no processo.

Para início de conversa, vá até a página de download do GRASS e baixe a última versão estável do programa. Execute o arquivo baixado, e nos depararemos com a seguinte tela:

grass_gvsig01

Clique em “Next”, e seremos apresentados a tela de licença do GRASS.

grass_gvsig02

Clique novamente no botão “Next”, e veremos a tela de escolha do local de instalação do programa. Pode aceitar a localização sugerida. Clique em “Next” mais uma vez.

grass_gvsig03

Na próxima tela, faremos a seleção do que será instalado. Se você quiser lidar diretamente com o GRASS e fazer os tutoriais de exercícios propostos, pode instalar também os dados de exemplo. No meu caso, deixei desmarcado.

grass_gvsig04

Clicando no botão “Install”, começará o processo de instalação propriamente dito:

grass_gvsig05

Terminado o processo de instalação (que é bastante demorado, não se assuste…), chegamos à seguinte tela:

grass_gvsig06

Ao clicar em “Next”, seremos apresentados à tela final da instalação do GRASS:

grass_gvsig07

Para os fins aqui propostos não precisaremos abrir o GRASS, bastando clicar em “Finish” para sair da instalação.

Vamos agora abrir o gvSIG, e ativar a extensão SEXTANTE, clicando no ícone “SEXTANTE Toolbox”

grass_gvsig08

Com o SEXTANTE aberto, vamos clicar no botão de configuração da extensão:

grass_gvsig09

Seremos apresentados à tela de configurações do SEXTANTE:

grass_gvsig10

Ao clicar na aba GRASS, seremos apresentados à tela de configuração do GRASS:

grass_gvsig11

Na opção “GRASS GIS instalation folder”, vamos selecionar o caminho da instalação do GRASS. No meu caso, C:\Arquivos de Programas\GRASS 6.4.1

Na opção “Shell interpreter (sh.exe)”, vamos localizar o caminho do interpretador de comandos do Shell. No meu caso, encontrei ele sob C:\Arquivos de Programas\GRASS 6.4.1\mysys\bin\sh.exe

Terminado este passo, basta clicar em “Setup GRASS”, torcer os dedos e esperar que tudo dê certo…

Se você é um cara extremamente sortudo, tudo terá ocorrido sem maiores problemas, e você receberá a seguinte tela, avisando que o GRASS já está instalado no SEXTANTE, e que agora contamos com mais 187 algoritmos de geoprocessamento dentro do gvSIG:

grass_gvsig12

Agora, se você é como eu, certamente vai receber uma grande quantia de mensagens de erro!

A primeira delas nos avisa que a MicoSoft não instalou no seu Windows XP a seguinte dll: “MSVCP71.dll“. Aí não tem jeito… tem que ir para a internet e baixar a dita cuja dll (um dos links que eu achei) e colocá-la na pasta “C:\WINDOWS\system32“. Feito isso, já podemos passar para as próximas mensagens de erro…

O que virá a seguir é uma grande série de avisos de que estão faltando mais… dll’s! E o pior: agora a internet já não nos ajuda tanto! A não ser por uma dica que encontrei nas listas de usuários do gvSIG: na verdade, o que acontece é que o instalador do SEXTANTE procura essas dll’s na pasta padrão do GRASS, a pasta “lib“, mas as ditas cujas estão na pasta “extralib“. Basta você copiar todas as dll’s da pasta “extralib“, e colá-las na pasta “lib” (tudo isso dentro da pasta de instalação do GRASS, que no meu caso foi “C:\Arquivos de Programas\GRASS 6.4.1“). Quando você fizer isso e clicar no “OK” da mensagem de erro que estava aparecendo no gvSIG, automagicamente desaparecerão as mensagens de erro, e seremos brindados com 0 acesso aos 187 algoritimos do GRASS no gvSIG, a partir da extensão SEXTANTE, como pode ser comprovado na próxima tela:

grass_gvsig13

Ufa! Demorou, mas conseguimos! Em breve postarei um artigo utilizando o GRASS para gerar pontos aleatórios no gvSIG. Aguardem!

Tags: geoprocessamento, gis, GRASS, gvSIG, sextante, tutorial

Geração de Pontos Aleatórios em Polígonos no gvSIG

August 25, 2011 — Eliazer Kosciuk

Buenas, retornamos para mais um artigo da Série “Quebrando Tabus: SL também faz!“, lembrando que esta série de artigos foi uma idéia do Luís Lopes (@geoluislopes), e até o momento está contando também com a adesão dos geoblogueiros Anderson Medeiros (@ClickGeo), Esdras Andrade (@geoparalinux) e do Sadeck (@sadeckgeo), que vem reproduzindo os artigos nos mais diversos Softwares Livres de Geo, comprovando que é possível realizar nesses programas atividades de geoprocessamento que antes só eram encontradas nos softwares proprietários.

Antes de começar com o tutorial propriamente dito, vamos a um pequeno esclarecimento: como o gvSIG também possui embutida a extensão SEXTANTE, o procedimento que iremos seguir é o mesmo do tutorial feito pelo Anderson Medeiros, “Kosmos GIS: Geração de Pontos Aleatórios em Polígonos“. Em outro tutorial, que farei em breve, demonstrarei como utilizar os algoritmos disponibilizados pelo GRASS, que também podem ser rodados no gvSIG através da extensão SEXTANTE.

Primeiramente, baixe o arquivo shapefile que será usado neste tutorial, contendo os limites de 5 municípios da região do Piemonte da Diamantina – Bahia. Em seguida, abra o gvSIG e crie uma nova vista, com o sistema de coordenadas do shape, WGS 84 (EPSG 4326). Abra a vista e insira o shapefile que foi baixado. Deveremos ter uma tela semelhante a esta:

ptos_aleat01 - Share on Ovi

Em seguida, vamos acessar a extensão SEXTANTE. Para isso, clique no ícone Sextante Toolbox, localizado na barra de ícones:

ptos_aleat02 - Share on Ovi

Abrirá a janela do SEXTANTE:

ptos_ale_sextante01 - Share on Ovi

 Navegue na árvore de Algoritmos: SEXTANTE > Tools for polygon layers > Adjust n point to polygon

ptos_ale_sextante02 - Share on Ovi

 Com um clic duplo no algoritmo, abre-se a janela de configuração do mesmo, onde podemos ajustar os parâmetros:

ptos_ale_sextante03 - Share on Ovi

 Na parte referente aos parâmetros de entrada, selecionamos a camada que contém os polígonos onde a operação será realizada (piemont_chapada.shp, neste caso). Nota-se ainda que poderíamos criar os pontos baseados em um valor existente em um campo da tabela de atributos do shape.

Nas opções, digitamos o número de pontos por polígono que queremos que seja gerado, e o método (“random”, para que os pontos sejam aleatórios).

Nos parâmetros de saída, podemos escolher se queremos gerar a nova camada como um arquivo temporário, ou se queremos salvar para um novo arquivo.

Ao clicarmos em “OK”, o SEXTANTE irá executar o algoritmos com os parâmetros que foram selecionados e irá inserir a camada criada na vista ativa. Ao fecharmos a janela do SEXTANTE veremos o nosso resultado final:

ptos_ale_sextante04 - Share on Ovi

 Lembre-se de salvar a nova camada, selecionando-a no TOC e, em seguida, clicando em Camada > Exportar para… > SHP.

Por enquanto é isso, pessoal. Em breve estarei postando o artigo que executa uma função semelhante, mas utilizando os algoritmos do GRASS dentro do gvSIG.

Em tempo: para o pessoal que acompanha a Série “Quebrando Tabus: SL também faz!” pelo twitter, criamos uma hachtag especial para as twittadas sobre o assunto: #SLGeoTbFaz. Assim, fica mais fácil de acompanhar as postagens e de realizar buscas sobre o assunto.

Tags: geoprocessamento, gis, gvSIG, sextante, SLGeoTbFaz, tutorial