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

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.

Gerar a camada de fluxo:

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

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.

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).

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:

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

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”.

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

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.

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

Podemos perceber que a rede de drenagem já está menos detalhada, apresentando um nível adequado para o trabalho que queremos fazer. Se precisássemos um nível de detalhes ainda menor, bastaria alterarmos novamente o valor de “Thereshold”. Por exemplo, utilizando o valor 1000000.0, praticamente aparecerá na rede de drenagem apenas os canais principais.

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

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”.

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.

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

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)

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.

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

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

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”:

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

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:

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.

 

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

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:

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

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.

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”.

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:

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

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:


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):

No entanto, antes de darmos por terminada esta fase do trabalho, precisamos executar mais um procedimento. Como o Gilberto explica em suas palestras, com muita propriedade: “precisamos ter certeza que uma gota de água (virtual), largada em qualquer ponto do nosso MDT, irá escorrer até o ponto mais baixo, sem se perder em qualquer depressão que pudesse estar presente”.  Para isso, precisaremos aplicar um procedimento de… eliminar as depressões do MDT.

Eliminando as depressões:

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


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.

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!

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.

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!

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

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.

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

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”:

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.

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.

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:

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:

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:

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:

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”.

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.

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

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.

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!

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

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”).

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.

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):

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:

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! (!!!!!!!!)

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:

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

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

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:

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”:

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

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”.

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

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.

Utilizando o GRASS Para Gerar Pontos Aleatórios no gvSIG

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

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

Instalando o GRASS no gvSIG – Windows XP

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!

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

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 😉

Instalando o gvSIG 1.11 no Ubuntu – Um guia visual

Buenas, pessoal!

Como prometido no artigo anterior, onde falei sobre o lançamento da versão 1.11 do gvSIG, eu aproveitei a instalação do mesmo no meu computador, e montei um passo-a-passo visual de como fazer a instalação do gvSIG 1.11 no Ubuntu Linux. Vamos à pratica:

Em primeiro lugar, vamos baixar o arquivo de instalação. Abrindo um terminal, digite:
wget -c http://forge.osor.eu/frs/download.php/1569/gvSIG-1_11-1305-final-lin-i586-withjre-j1_5.bin

Aguarde o download do arquivo. Quando terminar, digite o seguinte comando no terminal, para permitir que o arquivo seja executável:
chmod +x gvSIG-1_11-1305-final-lin-i586-withjre-j1_5.bin

Feito isso, já podemos partir para a execução do programa de instalação, digitando no terminal:
./gvSIG-1_11-1305-final-lin-i586-withjre-j1_5.bin

Na imagem abaixo, veja como deve ter ficado a sequencia de comandos no terminal (clique na imagem para ver em tamanho maior).

gvsig1_11_01 - Share on Ovi

Se você preferir fugir do terminal, acesse a página de downloads do gvSIG, e baixe o arquivo do gvSIG 1.11 no modo “tradicional”. Depois de baixado, vá na pasta onde o arquivo está, clique com o botão direito do mouse em cima do arquivo e, no menu de contexto que se abre, selecione “Propriedades”. Na janela que se abre, clique na opção “Permitir excecução do arquivo como um programa”, e depois clique em “Fechar” para aplicar as alterações.

gvsig1_11_02 - Share on Ovi

Dois cliques no arquivo e você será apresentado a uma janela perguntando se deseja executar o arquivo. Clique em Executar. Daqui em diante o processo será o mesmo, independente da maneira que você resolveu adotar para baixar e executar o arquivo.

Em um primeiro momento, abrirá uma janela sugerindo que o instalador confira se tens todos os pré-requisitos instalados no computador. É interessante aceitar. Estando tudo ok, seremos apresentados a janela de seleção do Java Runtime Enviroment (JRE). Se você, como eu, já tem instalada outra versão do gvSIG, pode deixar a primeira opção selecionada (Usar JRE usada pela versão anterior do gvSIG). Se não for o caso, estará selecionada a segunda opção (instalar uma versão do JRE no diretório /home do usuário). Em ambos os casos, é só clicar em “Continue” e seguir o processo.
gvsig1_11_03 - Share on Ovi

Na próxima janela, selecione o idioma que será utilizado no processo de instalação do gvSIG:
gvsig1_11_04 - Share on Ovi

Aparecerá a janela de informações sobre o programa, bastando selecionar a opção “Próximo” (depois de ler todas as informações, é claro ;) ):
gvsig1_11_05 - Share on Ovi

A próxima janela é a da licença. Selecionar a opção “Eu concordo com este contrato de licença” e clicar em “próximo”:
gvsig1_11_06 - Share on Ovi

Aparecerá a tela de seleção das extensões a serem instaladas. Como queremos o gvSIG completo, não há nada a fazer aqui, a não ser clicar em “Próximo” novamente:
gvsig1_11_07 - Share on Ovi

A próxima tela nos permite selecionar a pasta onde o gvSIG será instalado:
gvsig1_11_08 - Share on Ovi

Por opção pessoal, costumo deixar o gvSIG instalado em uma pasta com o nome da versão principal (gvSIG1.11, no caso), o que facilita se for lançada alguma versão de correção do programa. Mas você é livre para instalar ele onde quiser…
gvsig1_11_09 - Share on Ovi

Se o diretório ainda não existir, seremos alertados que ele será criado. Basta clicar em “Ok”:
gvsig1_11_10 - Share on Ovi

Em seguida, começa o processo de instalação propriamente dito. Só nos resta aguardar o término:
gvsig1_11_11 - Share on Ovi

Quando a instalação termina, aparece esta tela, e devemos clicar em “Próximo”:
gvsig1_11_12 - Share on Ovi

Esta tela deveria fazer parte da criação automática do lançador no menu, mas [ainda] não funciona corretamente no Linux. Clica-se em “Próximo”:
gvsig1_11_13 - Share on Ovi

E somos então apresentados a tela final da instalação. Para terminar, basta clicar em “Fechar”.
gvsig1_11_14 - Share on Ovi

Já estamos com o gvSIG instalado e operante, mas ainda não temos uma entrada no menu para acessá-lo. Vamos continuar nossa tarefa:
Clique com o botão direito do mouse em cima do menu “Aplicativos” e, no menu de contexto que se abre, clique em “Editar menus”:
gvsig1_11_15 - Share on Ovi

Quando a janela “Menu principal” abrir, você verá dois campos, um chamado “Menus:” e outro “Itens:”. Em Menus, clique uma vez sobre no ícone “Aplicativos” e, em seguida, no lado direito da janela, clique em “Novo Menu”.
gvsig1_11_16 - Share on Ovi

Na janela “Propriedades do Diretório” nomeie este novo menu como Geoprocessamento (ou outro nome de sua preferência). Aproveite e, se quiser, troque o ícone padrão da pasta por outro do seu gosto, e termine esta fase clicando em “OK”.
gvsig1_11_17 - Share on Ovi

Clique sobre este novo menu que você acabou de criar e, no lado “Itens”, adicione um “Novo Item”.
gvsig1_11_18 - Share on Ovi

Uma nova janela se abrirá, ela chama-se Criar Lançador. No campo Nome, digite gvSIG; no campo comando, navegue até a pasta onde o programa foi instalado. No meu caso, ficou em “/home/user/gvSIG_1.11/bin/”. Selecione o arquivo gvSIG.sh e mande abrir.
gvsig1_11_19 - Share on Ovi

Para colocar o ícone do gvSIG, clique no ícone do lançador e, na janela que se abre, navegue até a pasta /home/[usuário]/gvSIG1.11/bin e selecione o ícone do gvSIG:
gvsig1_11_20 - Share on Ovi

O resultado final deverá ser parecido com esse, bastando clicar em “OK”:
gvsig1_11_21 - Share on Ovi

Voltando a tela de edição dos menus, verificamos que a entrada correspondente já está lá, bastando então clicar em “Fechar”:
gvsig1_11_22 - Share on Ovi

E aí está o nosso atalho para abrirmos o programa:
gvsig1_11_23 - Share on Ovi

Clicando no menu, logo vemos a tela de abertura do programa:
gvsig1_11_24 - Share on Ovi

E aí está o resultado final:
gvsig1_11_25 - Share on Ovi

Buenas, vamos aproveitar que este artigo já está quilométrico e resolver uma dúvida recorrente: o que fazer quando o gvSIG não abre na tradução pt-br. Em primeiro lugar, vamos em Menu > Janela > Preferências:
gvsig1_11_26 - Share on Ovi

Na janela que se abre, vamos abrindo a árvore de opções: Geral > Idioma:
gvsig1_11_27 - Share on Ovi

Normalmente, quando o “problema” acontece, é porque não está selecionada a opção “Portugues – Brasil”. Basta selecionar esta opção em “Ativar” e clicar em “Aceitar”. Quando o gvSIG for reiniciado, já voltará no idioma tupiniquim!

Por hoje é só, pessoal! Espero que esse tutorial ajude alguém!

Junção Espacial (Spatial Join) no gvSIG

Buenas, pessoal!

Semana passada surgiu na Lista gvSIG_BR a dúvida se o gvSIG tem a opção de executar o geoprocesso Junção Espacial (Spatial Join). A necessidade que gerou a dúvida era a seguinte situação: havia um shape de polígonos, com a sua tabela de atributos vinculada, e um shape de pontos, sobrepostos aos polígonos. O que precisava ser feito era transferir os dados do shape de polígonos para o shape de pontos, de forma que os pontos que caem dentro de um polígono assumam os valores daquele polígono.

Esta situação pode ser resolvida com o geoprocesso Junção Espacial (Spatial Join), que está disponibilizado em todas as versões do gvSIG. Este geoprocesso é similar a um Join entre tabelas alfanuméricas, permite transferir os atributos de uma camada para outra com base em uma característica comum. A diferença entre o “Join Tradicional” e um Join Espacial é que as características comuns consideradas, não são que “um” ou “muitos” atributos das tabelas possuam o mesmo valor (ex: chaves primárias), mas sim as características espaciais. A junção de tabelas já foi muito bem explicada pelo Esdras no artigo Relacionar tabelas no gvSIG. Vamos ao tutorial, então:

Aberto o gvSIG, no Gestor de Projetos, criamos uma nova Vista, com as devidas configurações de suas propriedades. Para os fins do tutorial estou chamando esta vista de “Junção Espacial”.

juncao01 - Share on Ovi

Abrimos a Vista, e vamos adicionar os shapes em questão, clicando em Vista > Adicionar camada (ou utilizar o atalho Alt+O, ou ainda clicando no ícone correspondente). Na janela que se abre, na aba Arquivos, clicar em Adicionar, escolher o caminho onde estão armazenados os shapes e selecionar os dois shapes. Aqui estou usando um shape de polígonos, contendo a divisão municipal do RS, e um shape de pontos, com alguns pontos indicando as sedes dos municípios de meu interesse.

juncao03 - Share on Ovi

Só para facilitar o entendimento, essa é a tabela de atributos do shape de polígonos (visualizada através da opção Camada > Ver tabela de atributos, ou do ícone Ver tabela de atributos).

juncao04 - Share on Ovi

E essa é a tabela de atributos do shape de pontos:

juncao05 - Share on Ovi

Como pode ser visto, não há nenhum campo em comum entre as tabelas, pelo qual pudéssemos fazer a junção das tabelas.
Vamos ao geoprocesso: clicamos em Vista > Gestor de geoprocessos e, na árvore de geoprocessos que está a esquerda da janela que se abre, vamos abrindo as opções, até encontrar a desejada: Geoprocessos > Análises > Proximidade > Junção espacial

juncao06 - Share on Ovi

No lado direito da janela aparece uma descrição do geoprocesso, explicando a sua aplicação e as opções existentes. Clicamos em Abrir geoprocesso, na parte debaixo da janela. Abrirá uma nova janela: Ferramentas de análise.

juncao07 - Share on Ovi

Aqui é que está o coração do processo, No primeiro campo, Camada de entrada, definimos qual a camada que servirá como origem (a camada que irá receber os atributos, neste caso, a camada do shape de pontos). Se deixarmos marcada a opção “Usar somente os elementos selecionados” o geoprocesso será realizado somente para os elementos que estiverem previamente selecionados na camada. Não selecionaremos esta opção, pois queremos que a Junção espacial seja feita para todos os pontos do shape.

No segundo campo, Camada de recorte, selecionamos a camada que será juntada a primeira, cedendo os atributos de sua tabela. No nosso caso, a camada do shape de polígonos. Deixamos a opção “Usar o mais próximo” marcada, indicando que queremos uma relação 1 -> 1.

Por último, no campo Camada de saída, clicamos em Abrir e escolhemos o nome do shape que será gerado e o local de armazenamento do mesmo. Definido este ítem, basta clicar em Aceitar para que o geoprocesso seja executado.

De volta a janela principal, teremos a nova camada já inserida na Vista, como um novo shape.

juncao08 - Share on Ovi

Se abrirmos a tabela de atributos do novo shape, veremos que ocorreu a junção das tabelas, que era o nosso objetivo inicialmente proposto.´

juncao09 - Share on Ovi

Por enquanto é isso, pessoal…
Até a próxima! ;)

Maemo Mapper – lista de repositórios de mapas

Um dos assuntos que mais gerou questionamentos sobre o meu artigo anterior, “Usando o N810 como GPS de navegação“, foi o uso do programa Maemo Mapper. Confesso que na primeira vez que utilizei o mesmo apanhei bastante. Até hoje não exploro todo o potencial do programa, mas já consigo me virar bem, e estou preparando um artigo com as principais dicas para quem também quiser utilizá-lo.

Por enquanto vou responder sobre a dúvida mais recorrente: os repositórios de mapas. O Maemo Mapper permite trabalhar com vários servidores de mapas, como por exemplo o OpenStreetMap e o Google Street, para citar apenas dois.

Ao instalarmos o Maemo Mapper, é normal ele vir configurado para acessar o servidor do OpenStreetMap. Para ampliar a seleção de servidores disponíveis, basta uma sequencia de comandos simples: estando conectado à internet, abrir o programa, clicar em Menu > Maps > Download Sample Repositories… Ele irá avisar que fará o download de uma lista de servidores, que poderá duplicar as entradas no repositório local. Se você só tem o OpenStreetMap instalado, basta dar ok, e ele irá instalar a lista. Caso você já tenha feito este procedimento antes, é melhor limpar primeiro a lista do repositório para depois efetuar o download.

Instalada a nova lista, é recomendável que se faça alguns ajustes. Vamos em Menu > Maps > Manage Repositories… É de bom tom conferir os links com a relação abaixo, pois muitas vezes ocorrem erros no download. Acessei todos os repositórios da lista hoje e todos funcionaram, mas podem ocorrer alterações nas urls de acesso com o passar do tempo.

Outra providencia é trocar a pasta onde ficam armazenados os CacheDB, ou seja, os mapas que são baixados para uso offline. Por padrão está selecionada a pasta Maps, em Documentos, da memória do dispositivo. É melhor escolher uma pasta no cartão interno ou no cartão externo, pois o arquivo pode ficar grande rapidamente, conforme o tamanho dos mapas que você baixar. Esse procedimento deve ser repetido para cada entrada da lista de repositórios.

Agora basta dar ok, e voltar para a tela principal. Se a opção de “Auto-download” estiver ativada, os mapas da região em questão serão baixados. Fica a ressalva de que nem todos os níveis de zoom tem mapas disponíveis.

Por hoje é isso, pessoal. Nos próximos artigos exploraremos outros tópicos deste versátil programa. Se alguém quiser se aventurar por conta própria, já citei no artigo N810 – primeiras impressões – parte 2 o excelente tutorial Maemo Mapper HowTo. Boa sorte!

Ah, sim! Ia esquecendo… A lista:
OpenStreet:
http://tile.openstreetmap.org/%0d/%d/%d.png
Google Street:
http://mt.google.com/vt?z=%d&x=%d&y=%0d
Google Satellite:
http://khm.google.com/kh/v=51&z=%d&x=%d&y=%0d
Google Terrain:
http://mt.google.com/vt/v=w2p.115&z=%d&x=%d&y=%0d
VE Street:
http://r0.ortho.tiles.virtualearth.net/tiles/r%0s.png?g=45
VE Satellite:
http://a0.ortho.tiles.virtualearth.net/tiles/a%0s.jpeg?g=50
VE Hybrid:
http://h0.ortho.tiles.virtualearth.net/tiles/h%0s.jpeg?g=50
Yahoo Street:
http://us.maps1.yimg.com/us.tile.maps.yahoo.com/tl?v=4.1&x=%d&y=%-d&z=%d
Yahoo Satellite:
http://us.maps3.yimg.com/aerial.maps.yimg.com/ximg?v=1.7&t=a&s=256&x=%d&y=%-d&z=%d

Bem que a Nokia podia liberar o acesso aos mapas do OviMaps. Estive conferindo por lá, e os mapas deles estão muito bons!

Só para constar: este artigo foi totalmente editado e publicado com um N810, assim como a maioria dos últimos artigos. Acho que vou começar a destacar isso! ;)