Webinar gvSIG 2.0 – Um convite para a comunidade #GEO

Buenas, pessoal!

O iDea Plus Geo vem fazer companhia a Associação gvSIG e ao MundoGEO para convidar toda a comunidade de geotecnologia a participar de um seminário online em Português sobre o novo gvSIG Desktop 2.0.

Com inscrições gratuitas, este webinar destina-se a todos os usuários, desenvolvedores e profissionais que utilizam o gvSIG como ferramenta GIS ou que pretendem utilizá-lo, e apresentará as funcionalidades da versão 2.0 e o seu futuro.

Os participantes poderão interagir com o apresentador, enviando suas questões através do chat. Após o webinar, serão enviados certificados digitais de participação a todos que estiverem online na sessão.

Detalhes do Webinar:

  • Webinar: gvSIG Desktop 2.0 – Em Português
  • Data: 24 de Julho de 2013
  • Horário: 11:00 (horário de Brasília) – 14:00 (UTC)
  • Hora local: http://www.timeanddate.com/worldclock/fixedtime.html?msg=gvSIG+Desktop+2.0+-+Em+Portugu%C3%AAs&iso=20130724T11&p1=45
  • Linguagem: Português
  • Palestrantes: Eliazer Kosciuk, Engenheiro Agrônomo, Extensionista Rural da Emater/RS e coordenador do blog iDea Plus Geo; e Wilson Holler, Engenheiro Cartógrafo, Supervisor do Núcleo de Análises Técnicas da Embrapa Gestão Territorial.
  • Requisitos de Sistema:
    • PC – Windows 7, Vista, XP ou 2003 Server
    • Macintosh – Mac OS X 10.4.11 (Tiger) ou mais recente
    • Mobile iPhone/iPad/Android
    • (pois é… infelizmente não há opção para a plataforma Linux 🙁 )

Fica aqui o nosso convite: participe do nosso Webinar, e venha conhecer as novidades do gvSIG 2.0. As inscrições são gratuitas, mas as vagas são limitadas!

Reserve já seu espaço neste seminário online: https://www2.gotomeeting.com/register/251500890

Minha homenagem a um balzaqueano

Buenas, pessoal! Hoje eu vou sair um pouco da programação “normal” do nosso iDea Plus Geo para fazer uma homenagem a alguém que está completando 30 anos exatamente nesta data.

Peço desculpas aos nossos leitores pela leve alteração de rumo, mas depois de vocês lerem este pequeno artigo certamente vão concordar comigo que a homenagem é merecida. Afinal, se não fosse pelo que aprendi com ele, dificilmente eu estaria escrevendo neste blog hoje…

Como eu não gosto de muita enrolação, vou revelar logo a identidade do homenageado: o padrão MSX de computadores!

–  O quê??!!? O que é que é isso? Uma brincadeira? Que bicho é esse?

Não se assustem! Como eu disse, ele está fazendo 30 aninhos… Exatamente a 30 anos atrás, no dia 27 de junho de 1983, era anunciado o padrão MSX de computadores. Não vou entrar em maiores detalhes aqui sobre este microcomputador de 8 bits, 64 Kb de memória (e você reclamando que o seu PC “só tem 4 Gb”…), cujo “monitor” era uma tela de TV. HD, DVD, pendrive? Nops… só um gravador de fita K7 (o famoso “datacassete”). Só bem mais tarde é que ele adotou os disquetes (primeiro o de 5 1/4 e só depois os de 3 1/2, que alguns dos que leem esse blog talvez conheceram…).

–  Tá bom, mas, o que isso tem a ver com gvSIG e Geoprocessamento?

Nada, ué… e… tudo, também! Porquê através desse “senhor” que está entrando na meia-idade eu comecei a conhecer o fantástico mundo da informática.

Já ouviram falar daquela história de que tudo de importante que a gente precisa aprender nos é ensinado no Jardim da Infância? Aqui o paralelo é verdadeiro: foi nesse “micrinho” que eu aprendi sobre lógica de programação, processadores de textos, planilhas de cálculos e bancos de dados. E podem ter a certeza de que esse aprendizado tem servido em todas as áreas da minha vida…

Mas, mais importante até que esse aprendizado técnico, tem sido o aprendizado social. Foi através do MSX, e da grande comunidade de usuários entusiastas que se criou ao redor dele, que eu aprendi a buscar por contra própria soluções para os problemas enfrentados, a superar dificuldades com os recursos disponíveis (tínhamos que, literalmente, tirar leite de pedra!), a compartilhar o conhecimento e as descobertas que íamos fazendo, a unir forças com outros usuários para transpor barreiras… Ou seja: valores da comunidade open source que já eram praticados antes mesmo que esse termo fosse cunhado!

Se você ficou curioso sobre o MSX, que também é conhecido como “o mais mágico dos microcomputadores”, basta fazer uma pesquisa no Google. Você vai se espantar com a quantidade de links… Mas, como início dessa jornada, recomendo o podcast Retrocomputaria, que tem vários episódios dedicados a esse micro. Aproveite para aprender um pouco sobre a história da computação, e outras linhas de microcomputadores que fizeram parte desses primórdios (Sinclair, ZX Spectrum, TRS, TRS-Color, Amiga, Commodore 64, TK82, ZX-81, TK90X serão alguns nomes que você vai lembrar/conhecer). Não posso deixar de citar o meu próprio blog sobre o MSX, o Klax MSX… está passando por reformas, mas ainda tem alguns conteúdos por lá. (Em breve ele vai voltar a ter todo o conteúdo que estava disponível antigamente. Aguardem!)

E, se você for o feliz possuidor de um MSX, em qualquer dos seus “sabores” (MSX 1, MSX 2, MSX 2+ ou MSX TurboR), faça um favor a você mesmo: tire ele da caixa, dê um abraço de felicitações nele, e passe um bom tempo com o seu amigo!

Agora, se você tem um MSX em casa (ou qualquer outro microcomputador clássico, ou qualquer material relacionado com ele, como livros, revistas, mídias, periféricos), e acha que ele está apenas ocupando espaço, faça um msxzeiro feliz: aproveite o dia, faça uma doação, e dê um destino mais nobre para ele! Se quiser um voluntário para receber essas doações, pode usar o nosso formulário de contato para isso, que eu dou um jeito…  😉

Um abraço a todos, e voltemos a nossa programação normal!

P.S.1: eu tenho alguns “fãs” do meu mascote/avatar, o pinguim que aparece no cabeçalho do site. Muitos pensam que ele foi inspirado no Tux, do Linux. Ledo engano! Sinto muito em informar, mas o meu avatar foi inspirado em um pinguim gaudério, que por sua vez foi inspirado no Pentarou, o pinguim que foi criado pela Konami, e que apareceu pela primeira vez no jogo “Konami’s Ping Pong”, de 1985, e que ficou famoso quando teve seu próprio jogo, o “Penguin Adventure”:

tuxs

P.S.2: muitos não irão acreditar, mas podem conferir: nesses 30 anos o MSX é notícia novamente! Podem conferir, por exemplo, a reportagem no The Wall Street Journal, que saiu ontem… Esse press release foi organizado e divulgado pela turma que organiza o portal msx.org

[maio/2013] Atualização da Coletânea de Links Sobre o gvSIG

tux_gvSIG_coletanea

Buenas, pessoal

Depois de mais de um ano sem mexer na Coletânea de Links Sobre o gvSIG, voltamos à carga, trazendo uma nova atualização. Desta vez fiz uma revisão completa, corrigindo links quebrados, duplicados e/ou com problemas. Além disso, procurei acrescentar todos os links que consegui coletar neste meio tempo.

Terminado o trabalho, deixo aqui algumas constatações:

  • A lista cresceu! Não só em número, mas principalmente em qualidade. Podemos constatar um amadurecimento muito grande nos tutoriais que vem sido disponibilizados, o que só vem a colaborar para o crescimento da comunidade.
  • Por outro lado, o número de colaboradores não aumentou na mesma proporção. Precisamos reverter esta situação, incentivando cada vez mais o compartilhamento de conhecimentos.
  • Com o crescimento do número de links, tive que fazer uma reestruturação na divisão da classificação. Procurei reproduzir o máximo possível a estrutura do Manual do usuário do gvSIG, acrescentando algumas categorias complementares, a maioria já existente na coletânea anterior.
  • Após esta reestruturação, resolvi retirar aquele efeito “sanfona” entre as categorias. Muito embora a lista tenha ficado com uma aparência mais extensa, facilita o trabalho de quem quer pesquisar alguma referência através da busca do navegador (o famoso CTRL+F).
  • Por falar em pesquisa, observem que procurei manter o título original do artigo, inclusive preservando a língua no qual ele foi escrito. Levem isso em consideração em suas buscas, pois temos tutoriais em português, espanhol, inglês, francês, italiano, …
  • Com o lançamento da aguardada versão 2.0 do gvSIG, estão surgindo muitos tutoriais voltados para esta versão, principalmente vindos do Blog do gvSIG. Em princípio, todos os artigos que apareceram por lá até o dia de hoje sobre esta versão estão listados. Procurarei atualizar a lista conforme forem sendo lançados outros artigos, sem maiores avisos aqui no blog…
  • Na medida do possível procurei destacar quando o link é referente a uma versão específica do gvSIG, ou é aplicável a partir de uma certa versão. Por exemplo, todos os links para artigos referentes ao gvSIG 2.0 levam o nome da versão no texto descritivo do link. Não venci colocar esta informação em todos os links, mas irei padronizando com o passar do tempo.
  • Por favor, se encontrarem algum link quebrado ou qualquer outro erro, me avisem! Usem o formulário de contato, ou até mesmo o sistema de comentários do blog. E, como sempre, sugestões são sempre bem vindas!

Creio que para o momento é isso, pessoal. Por favor, usufruam da Coletânea de Links sobre o gvSIG, que já é um verdadeiro “FAQ” sobre o gvSIG ou, em outras palavras, um ponto de partida para quem quer descobrir a resposta para a pergunta: “Como eu faço isso no gvSIG?”…

Acrescentando novas rampas de cores ao gvSIG

Buenas, pessoal! Procurando manter ao menos uma postagem semanal sobre o gvSIG 😉

Uma das grandes reclamações dos usuários do gvSIG é quanto as rampas de cores (ou gradientes de cores, como soa melhor em português): embora funcionais, os gradientes disponibilizados por padrão no gvSIG não são um primor de beleza. Mesmo com o lançamento do gvSIG 2.0 essa situação não mudou.

A um tempo atrás o usuário Kevin Weels havia liberado um novo arquivo na lista de usuários do gvSIG, com novas rampas de cores, que complementavam as nativas do gvSIG, e o nosso amigo Jorge Santos, do blog Processamento Digital criou um tutorial ensinando a instalar essas novas rampas de cor. Infelizmente o arquivo anexo a lista não está mais disponível, e ficamos novamente “a ver navios”…

Depois de algum trabalho de garimpagem, o Jorge conseguiu localizar um backup do referido artigo, e me repassou. Aproveitando a boa vontade do nosso amigo, estudei um pouco o formato utilizado para criar os gradientes, e acrescentei aos esquemas por ele disponibilizados todos os gradientes de cores que estão no site Colorbrewer: Color  Advice for Maps, que é uma das principais referências quanto a esquemas de cores para mapas.

Pois bem. Chega de conversa e vamos aos fatos: para testar os novos gradientes, primeiramente baixe o arquivo palettes.zip e extraia o arquivo “palettes.xml” que está no mesmo. Em seguida, com o gvSIG fechado, acesse a pasta de configuração do gvSIG, cuja localização varia conforme o sistema operacional que você usa:

Windows XPC:\Documents and Settings\”username”\gvSIG
Windows SevenC:\Users\”username”\gvSIG
Linux:   /home/”username”/gvSIG

Substitua o arquivo “palettes.xml” existente nesta pasta pelo arquivo novo que foi baixado no passo anterior.

Por último, delete as pastas “colortable” e “ColorSchemes” que estão na mesma pasta (em algumas instalações a pasta “ColorSchemes” não está presente).

palettes01

Feito isso, já podemos abrir o gvSIG e desfrutar os novos gradientes de cores que estão disponíveis a partir de agora.

palettes02

É interessante ressaltar algumas observações que o Kevin fez, e que continuam pertinentes:

As rampas de cores são projetadas para trabalhar com dados raster e vetores, embora algumas sejam melhores para dados raster e algumas são melhores para dados vetoriais. O número de classes em cada rampa está entre parênteses como parte do nome da rampa.
No Windows, as rampas de cores são ordenadas alfabeticamente e sua visualização é agradável, durante a escolha de uma rampa. No Linux é diferente, pois não consigo ordenar as rampas de cores no Linux. Elas parecem aleatórias e sua visualização não é tão agradável quando as rampas são ordenadas como um grupo.
No entanto, eles estão completamente funcionais no Linux.
Para restaurar a cor padrão das rampas de cores, apague o arquivo “palettes.xml” e as pastas “ColorSchemes” e “Colortable”. Em seguida, reinicie gvSIG. O arquivo original “palettes.xml”e as pastas serão recriadas.

Espero que vocês gostem.

Calculando a área entre curvas de nível

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ó… 😉

 

Anúncio: disponível a nova versão gvSIG 2.0 final

Deixo abaixo a tradução da notícia que foi disponibilizada hoje de manhã:

A Associação gvSIG anuncia a publicação da versão final do gvSIG 2.0 [1]. A principal novidade desta versão é sua nova arquitetura, que foi redesenhada de forma tal que o gvSIG maneja as fontes de dados com o objetivo de melhorar tanto a confiabilidade como a modularidade, beneficiando assim tanto aos usuários como aos desenvolvedores. Além de permitir uma maior facilidade de manutenção e evolução da tecnologia. Tem sido, por tanto, uma aposta de futuro com o objetivo de não limitar a evolução tecnológica e assentar as bases para uma rápida evolução. 

Não obstantemente, esta nova versão do gvSIG Desktop traz também uma série de novas funcionalidades:
  – Novo instalador, que suporta instalação típica ou personalizada.
  – Administrador de complementos, que permite instalar novas extensões e personalizar nosso gvSIG dentro da própia aplicação.
  – Algumas mudanças na interface das ferramentas de manejo de dados como:
       · Importação/exportação de arquivos.
       · Operações com tabelas.
       · Nova camada.
  – Melhoras no rendimento de abertura das camadas.
  – Suporte de WMTS (Web Map Tiled Service).
  – Cache de dados raster.
  – Interface de geoprocesamento unificada.
  – Importador de símbolos, facilitando a geração de bibliotecas de símbolos. 
  – Exportador de símbolos, que permite compartilhar com facilidade bibliotecas de símbolos completas com outros usuários. 
  – Contorno de scripting (linguagens: Jython, Groovy e Javascript).

Apesar de ser a última versão do gvSIG, temos que ter em conta que realmente nos encontramos diante em um novo gvSIG, pelo que notaremos que a mesma não conta com algumas das funcionalidades do gvSIG 1.12. Estas funcionalidades serão incorporadas em sucessivas e contínuas atualizações, conforme forem sendo migradas para a nova arquitetura. As principais funcionalidades não disponíveis são:
  – Georreferenciamento
  – Legendas por símbolos proporcionais, graduados, densidade de pontos, quantidades por categoria e por expresões
  – Extensões: Análises de redes e 3D.

Do mesmo modo, existem diversos projetos baseados nesta nova arquitetura, que permitirão que nos próximos meses apareçam novas funcionalidades e melhoras diretamente sobre o gvSIG 2.0.

Da mesma forma, temos que lembrar que o nível de estabilidade desta nova versão não é tão alto como gostaríamos, considerando-a uma versão final para efeito de que a comunidade possa começar a utilizá-la de forma oficial e, principalmente, abordar os novos desenvolvimentos sobre ela. 

Por tudo isso convidamos você a experimentá-la e a relatar os erros que encontrarem, de maneira que possamos ir corrigindo-os nas sucessivas atualizações. Os erros conhecidos desta versão podem ser consultados em [2].

Nesta versão foram habilitados também vários mirrors para a descarga dos complementos a partir do gvSIG. Estes mirrors estarão disponíveis dentro de alguns dias.

Esperamos que gostem das novidades desta nova versão e que nos ajudem a melhorá-la.

Exemplo prático do uso da Calculadora de Campos no gvSIG

Buenas, pessoal!

A dica de hoje nasceu de uma necessidade específica: estava a procura da relação do valor do Módulo Fiscal por município do RS, e o local onde eu encontrei essa relação foi em um site (Módulos Fiscais no RS), mas a mesma estava no formato texto, e não em uma tabela, como eu precisaria.

Em um primeiro momento pensei em utilizar a excelente dica do @geojcarlos, do blog Carta Geográfica[DICAS EXCEL] Como separar números e textos em duas colunas. No entanto, esta dica só funciona se o campo a ser separados estiver no início da string e se o mesmo tiver um comprimento fixo (o mesmo para todas as linhas da tabela). Não era o meu caso, pois na minha relação o campo que eu queria separar (o valor do módulo fiscal) estava no final da string e não tinha tamanho fixo (variava entre 1 a 3 caracteres), e ainda havia o agravante de que a primeira parte da string (o nome do município) também variava muito, podendo ser composto de um a quatro ou mais nomes, todos separados por espaços, o que complicava também o uso do espaço como separador de campos.

Buenas, foi aí que veio a ideia de utilizar a Calculadora de Campos como ferramenta para fazer o trabalho, pois, como explicamos no último artigo da série “Calculadora de Campos no gvSIG – Operações com Textos”, ela nos permite a execução de scripts em Python/Jython. Pois bem, mesmo não sendo um programador Python, procurei a ajuda dos “universitários” (neste caso, quem me ajudou foi o @Vegetando, amigo de outras paradas). Com um pouco de lógica e pesquisa nas funções de manipulação de strings do Python, chegamos ao seguinte script:

# Esta rotina serve para separar de uma string tudo que está antes do carctere separador '?'; neste caso, o nome do Município
def extrair_nome(campo):
	return campo[0:campo.rfind('?')]
# Esta rotina serve para remover a última parte de uma string, que está depois do caractere separador '?'; neste caso, o valor do Módulo Fiscal
def extrair_numero(campo):
	return campo[campo.rfind('?')+1:len(campo)]

Copie o texto do script e cole no processador de textos de sua preferência, salvando posteriormente como “modulofiscal.py”. Irei comentando o funcionamento do script conforme for explicando o procedimento que adotei.

Atenção: por algum motivo o WordPress “engole” a formatação do texto, e o Python é muito chato quanto a indentação das linhas. Na segunda linha de cada função (a que começa com “return”, você deverá dar um <TAB> no início da linha, ou o Python não irá interpretar corretamente o script e acusará erro. Desculpem pelo inconveniente, e obrigado ao Alejandro por ter me alertado do erro.

Obs.: espero ter corrigido o problema com a instalação de um plugin para usar a sintaxe de códigos de programas no WordPress (o WP-Syntax). Mesmo assim, tomem cuidado com a formatação!

Em primeiro lugar, para transformar a listagem em formato texto para uma tabela no formato do tipo .dbf, que é o formato que o gvSIG trabalha, precisaremos lançar mão do OpenOffice Calc ou do seu equivalente, o LibreOffice Calc. Como tenho o último instalado nos meus micros com Ubuntu Linux, foi o que eu utilizei, mas é indiferente.

Para seguir o passo a passo, acesse primeiramente a página Módulos Fiscais no RS, selecione toda a relação de municípios e copie a mesma. Com o LibreOffice Calc aberto, clique na segunda linha da planilha e use o comando para colar. A listagem será colada na planilha, cada município ocupando uma linha da planilha, que é o que precisamos. Usaremos a primeira linha para escreveremos o nome da coluna (usei “MUNMOD”), que será usada no nosso arquivo .dbf.

modulo_fiscal_01

Neste momento, se você está usando Windows, basta apenas “Salvar como…”, selecionar “dbf” como tipo de arquivo, e tomar o cuidado de selecionar a opção “Western Europe (Windows-1252/WinLatin1)” na janela de definição da codificação de caracteres, para que não haja problemas de exibição de caracteres estranhos depois, quando abrirmos a tabela no gvSIG.

modulo_fiscal_02

Se você conseguiu salvar o arquivo como .dbf, não precisará fazer o próximo passo, podendo pular para o seguinte.

O problema que eu encontrei, usando o LibreOffice no Ubuntu Linux, foi que eu não consegui salvar como .dbf, pois ocorria um erro geral, sem muitas especificações:

modulo_fiscal_03

Como não tive tempo de procurar a correção do erro, parti para encontrar outro caminho para fazer o que eu queria: salvei o arquivo no formato .csv, que também é importado como tabela no gvSIG. O procedimento é semelhante: de posse da planilha, vá em “Salvar como…” e escolha o formato .csv. A única diferença aqui é que, no momento da seleção da codificação do arquivo, haverá mais algumas opções, relativas ao caractere separador entre os campos. Podemos deixar as opções como vem por padrão no LibreOffice, somente tomando o cuidado de selecionar “Western Europe (Windows-1252/WinLatin1)” como padrão de codificação para o arquivo. Salvo o arquivo, seja como .dbf ou .csv, podemos fechar o LibreOffice e abrir o gvSIG.

Aberto o gvSIG, no Gestor de Projetos, vamos selecionar os documentos do tipo “Tabela“:

modulo_fiscal_05

 

Ao clicarmos no botão “Novo“, abrirá uma janela onde poderemos clicar no botão “Adicionar” para selecionar o arquivo .csv que acabamos de salvar. Selecionado o arquivo, ele aparecerá no campo de texto “Tabelas“, e podemos clicar em “Aceitar” para que a tabela seja importada no gvSIG. Se tudo deu certo, o nome do arquivo que acabamos de importar (Mun_Mod_RS.csv, no meu caso) aparecerá no Gestor de Projetos. Clicando no menu “Camada > Ver tabela de atributos” ou no ícone correspondente na barra de ferramentas, poderemos conferir que a tabela foi importada, e que nossos dados estão lá:

modulo_fiscal_06

Observe que, mesmo tendo escolhido a codificação “Cp1252“, aparece um caractere estranho no meio da string. Não consegui determinar o porque de ter ocorrido esse problema com o caractere separador, mas creio que é algum problema de codificação na página da internet onde baixamos os dados (possivelmente foi usado um “Tab“). De qualquer forma, essa será uma informação importante, como veremos mais adiante.

Importada a tabela, precisaremos transformá-la em um arquivo shape, para podermos lidar com a mesma no gvSIG. Normalmente o gvSIG não permite esse tipo de transformação, mas vamos usar um pequeno truque para enganá-lo. Volte ao Gestor de Projetos, e crie um novo documento do tipo “Vista“. Abra a Vista que acabamos de criar e, acesse o menu “Vista > Adicionar camada de eventos” ou clique no ícone correspondente na barra de ferramentas:

modulo_fiscal_07

Abrirá o diálogo de “Adicionar camada de eventos“, bastando clicarmos em “Aceitar“, sem alterarmos nenhuma das opções:

modulo_fiscal_08

Será criada uma nova camada de eventos, contendo apenas um ponto, onde estarão vinculados todos os campos da nossa tabela. Essa informação não teria muito valor, exceto pelo fato de que agora poderemos trabalhar com a tabela na vista do gvSIG.

Mas, antes, precisamos transformar o arquivo .csv em um arquivo .dbf. Para tanto, com a janela de atributos da tabela aberta, acesse o menu “Tabela > Exportar > DBF“:

modulo_fiscal_10

 

E já temos nossa tabela no formato .dbf. Para quem conseguiu exportar no LibreOffice/OpenOffice, pode retomar o tutorial a partir daqui. Para não criar alguma confusão, remova a vista que havíamos criado, bem como a tabela .csv que havíamos importado anteriormente. Assim, teremos a mesma área de trabalho para ambos os casos.

No Gestor de Projetos, em “Tabelas“, crie uma nova tabela, e adicione a tabela “mun_mod_rs.dbf” que acabamos de criar. Note que agora, na tabela aberta, o caractere separador passou a ser “?“. Pode acontecer de aparecer outro caractere, mas o importante é identificar qual caractere é o separador, pois é o que será usado pela rotina para fazer a separação dos campos. Posicione o cursor dentro de uma das linhas da tabela, copie e cole em um editor de textos, selecione o caractere separador (o que está entre o nome do município e o número) e cole no script “modulofiscal.py“, em todos os lugares onde aparecer a sequencia ‘?’, e depois salve novamente o script.

modulo_fiscal_11

De volta ao Gestor de Projetos, crie uma nova Vista e insira nela a tabela .dbf que criamos através do menu “Vista > Adicionar camada de eventos“, conforme já explicado anteriormente. Feito isso, crie a camada shape, através do menu “Camada > Exportar para… > SHP“.

modulo_fiscal_12

Depois de exportar, insira a camada exportada na Vista, e delete a camada .dbf que tínhamos no ToC.

Selecione a camada criada e clique com o botão secundário do mouse em cima da mesma. No menu suspenso que abre, selecione a opção “Iniciar edição“, para entrar no modo de edição. Visualize os atributos da tabela (“Camada > Ver tabela de atributos“, ou o ícone correspondente na barra de ferramentas). Selecione a única coluna que temos na tabela, e clique em “Tabela > Modificar a estrutura da tabela“:

modulo_fiscal_13

 Vamos criar dois novos campos na tabela: MUN, do tipo string, de tamanho 80, e MOD_FISC, também string, e tamanho 3.

modulo_fiscal_14

Criados os campos, clique em “Aceitar” para voltar para a janela de atributos da tabela. Selecione a coluna “MUN“, e clique no menu “Campo > Expressão” ou no ícone correspondente, para abrir a Calculadora de Campos. Agora é que a diversão vai começar realmente 😉

Na Calculadora de Campos, clique na aba “Avançada” e, clicando no botão “Explorar“, encontre o arquivo “modulofiscal.py” que salvamos no início deste tutorial. Depois de aberto, deverá aparecer o caminho completo do arquivo no campo de textos. Clique no botão “Avaliar” para que o gvSIG reconheça o script.

modulo_fiscal_15

Feito isso, volte para a aba “Geral” e no campo de expressões digite a seguinte expressão: “extrair_nome([MUNMOD])"

modulo_fiscal_16

Ao clicarmos em “Aceitar” a expressão será aplicada, e o resultado será colocado na coluna “MUN“, conforme solicitamos:

modulo_fiscal_17

Para separar o valor do módulo fiscal, selecione a coluna “MOD_FISC” e repita o processo, aplicando a expressão extrair_numero([MUNMOD]). No final, deveremos ter o seguinte resultado:

modulo_fiscal_18

Como último passo, precisamos converter os valores que estão na coluna “MOD_FISC” de string para número, para que possamos realizar operações com os mesmos. Para fazer isso, crie um novo campo na tabela, nome “MOD_FIS“, tipo Integer, tamanho 3. De volta a janela de atributos da tabela, clique na coluna que acabamos de criar e abra a Calculadora de Campos. Agora não precisaremos usar a aba “Avançada“, pois a função que iremos usar já está disponível na Calculadora de Campos do gvSIG. Dê um duplo clique na função “toNumber” na coluna de Comandos e, colocando o cursor dentro dos parênteses da expressão, dê um duplo clique no Campo “MOD_FISC” (ou digite diretamente a expressão “toNumber([MOD_FISC)]” no campo “Expressão“). Ao clicarmos no botão “Aceitar“, a expressão será aplicada e teremos no campo “MOD_FIS” os valores dos módulos fiscais de cada município, agora transformados em números.

Para terminar o nosso trabalho podemos voltar a editar a estrutura da tabela e deletarmos os campos “MUNMOD” e “MOD_FISC“, que não serão utilizados, e ficaremos com a tabela “mun_mod_rs.dbf” final, totalmente editada através da Calculadora de Campos do gvSIG.

Guarde esta tabela, pois iremos utilizá-la nos próximos artigos, que virão em breve. Por enquanto é isso, pessoal!

P.S.: Fiquei devendo a explicação do script. Não esperem grandes comentários, até porque como programador Python eu sou um ótimo encanador…

A base da rotina é o método  rfind() do Python. Este método retorna a localização da última posição de uma substring dentro de uma string. No nosso caso, queremos localizar a última posição do caractere separador dentro da nossa string.

Vejamos a expressão que separa o nome do município:

def extrair_nome(campo):
	return campo[0:campo.rfind('?')]

Na primeira linha, definimos o nome da função e o parâmetro que devemos passar (uma string de nome “campo”, na nossa rotina). Na segunda linha, estamos solicitando que a rotina nos retorne a substring da string “campo”, que está compreendida entre a primeira posição (0) e a posição anterior a do caractere que determinamos como separador.

Agora a expressão que separa o valor do módulo fiscal por município:

def extrair_numero(campo):
	return campo[campo.rfind('?')+1:len(campo)]

A primeira linha é a mesma explicação da anterior. Já na segunda linha estamos solicitando que a rotina nos retorne a substring da string “campo”, que está compreendida entre a primeira posição após o caractere separador (por isso o +1) até o fim da string.

Em linhas gerais, é isso. Não é uma explicação muito técnica (que me perdoem os programadores de plantão), mas creio que já é possível entender a lógica da ideia…  😉

Calculadora de campos no gvSIG – Operações com textos – parte 3

Buenas, pessoal!

Como prometido nos artigos anteriores desta série, nesta última parte sobre o uso da Calculadora de campos na manipulação de strings no gvSIG, vamos abordar a aba “Avançada”:

calculadora-de-campos_txt_3_00

 Para quem perdeu o restante da série, é bom dar uma revisada antes de prosseguirmos:

Um breve “histórico” sobre o porque deste último artigo na parte de operações com textos no gvSIG: quando comecei a desenvolver esta série de artigos, tomei por base a série homônima que o Jorge Santos, do blog Processamento Digital, criou para o ArcGIS. Tanto que enquadrei o artigo com a hashtag #SLGeoTbFaz. No primeiro artigo da série sobre operações com textos ele abordou o uso do VBScrip para preenchimento de campo com valores baseados em outro campo, e fiquei bastante frustado ao perceber que, em um primeiro momento, eu não via a possibilidade de replicar esta parte do tutorial no gvSIG, pois o mesmo não permite o uso de scripts em VisualBasic.

No segundo artigo, ele fez uso das funções “left” e “right”, que também não estão disponíveis no set de funções para manipulação de strings disponibilizadas na Calculadora de campos do gvSIG. Esta  aparente dificuldade foi contornada com o uso da função “subString”, que permite retornar partes de uma string, mas ficava o desafio de replicar essas funções do ArcGIS que aparentemente não estariam disponíveis no gvSIG.

A solução veio exatamente ao estudar um pouco sobre a aba “Avançada” da Calculadora de campos do gvSIG. Embora pouco documentada, essa é uma característica poderosa que foi disponibilizada, pois nos permite executar scripts em Python ou Jython, o que nos abre um novo (e poderoso) campo de exploração para o uso da Calculadora de campos com o gvSIG.

O próprio Jorge Santos nos dá um exemplo do uso avançado de scripts Jython no gvSIG com o artigo Classificação de campos numéricos com Jython. Mas exploraremos a partir de agora algumas das possibilidades que nos são abertas com esta ferramenta:

Em primeiro lugar, vamos abrir o gvSIG e criar uma nova vista, com a projeção SAD69/UTMzone23S (código EPSG 29183). Nesta nova vista, inserimos o arquivo shape que podemos baixar aqui: ARQUIVO2. (obs.: se você já tiver este shape, proveniente dos outros tutoriais que estivemos trabalhando, basta criar novos campos para acompanhar o trabalho que iremos desenvolver. Como são poucos registros, podemos inclusive apagar os dados dos campos que iremos trabalhar).

Em seguida, selecionamos o shape no ToC do gvSIG, e entramos no modo de edição. Selecione o campo [PREFIXO] e acesse a Calculadora de campos. Deveremos ter uma área de trabalho semelhante a essa:

calculadora-de-campos_txt_3_01

Antes de prosseguirmos, baixe o seguinte script em Python: strings.py, e salve o arquivo em um local onde você possa acessá-lo posteriormente. Você pode até criar uma pasta de scripts dentro da sua pasta de trabalhos do gvSIG, para facilitar o acesso.

Segue abaixo o conteúdo do arquivo “strings.py“. Como você pode conferir, estaremos adicionando 5 novas funções à nossa Calculadora de Campos: right, left, toTitle, toPhrase e toSwapCase. Para os curiosos e fuçadores, deixo abaixo o código python que está neste script:

# Função right: separa n caracteres a partir da direita de uma string
def right(string,number):
return string[-number:]
# Função left: separa n caracteres a partir da esquerda de uma string
def left(string,number):
return string[:number]
# Função toTitle: transforma uma string em título (primeira letra de cada palavra em maiúscula)
def toTitle(string):
return string.title()
# Função toPhrase: transforma qualquer string para uma frase (primeira letra maiúscula e as restantes minúsculas)
def toPhrase(string):
return string.lower().capitalize()
# Função toSwapCase: transforma a string: o que for maiúsculo vira minúsculo e vice-versa
def toSwapCase(string):
return string.swapcase()

Outra dica importante é sempre documentar muito bem o seu código através do uso de comentários (linhas começando com o caractere “#”), explicando o que cada trecho do código faz. No momento da criação do código pode parecer não ter importância, mas quando você (ou outra pessoa) for usar novamente, vai agradecer muito por não ter que ficar “quebrando a cabeça” para entender o que aquela função faz.

Voltando ao gvSIG e ao nosso tutorial, na janela “Calcular Expressão” clique na aba “Avançada” e, em seguida, no botão “Explorar“. Navegue até o local onde você salvou o arquivo “strings.py“, selecione-o e clique em “Abrir“. O caminho para o arquivo deverá aparecer no campo de texto.

 calculadora-de-campos_txt_3_02

Por último, clique no botão “Avaliar“. Se não aparecer nenhuma mensagem de erro, é porque está tudo ok com nossas rotinas em python, e podemos continuar o nosso processo, agora contando com novas funções na nossa Calculadora de Campos. Note que as novas funções não irão aparecer na listagem dos Comandos.

Vamos [finalmente] fazer uso das nossas funções desenvolvidas: na área de textos “Expressão“, digite a seguinte expressão:

left([FONE],4)

e clique em “Aceitar“.

calculadora-de-campos_txt_3_03

No campo “PREFIXO” da nossa tabela, deverão aparecer os prefixos dos telefones que tínhamos cadastrado no campo “FONE”. Isso porque, através da expressão acima, estamos solicitando para a Calculadora de Campos do gvSIG que ela separe os 4 primeiros caracteres do campo “FONE”, a contar da esquerda, e coloque eles no campo “PREFIXO”.

calculadora-de-campos_txt_3_04

Agora, vamos usar a função “right” para obter apenas o número do telefone, sem o prefixo. Na tabela, selecione a coluna “TEL” e abra a Calculadora de Campos. Na área de textos “Expressão“, digite a seguinte expressão:

right([FONE],9)

e clique em “Aceitar” para conferir o resultado.

calculadora-de-campos_txt_3_05

Para testarmos as outras funções que estão disponíveis neste pequeno script precisaremos criar um novo campo na nossa tabela (se você não sabe como fazer, consulte os artigos anteriores). Crie o campo “NOME2”, do tipo “String”, com “69” caracteres de comprimento (o mesmo comprimento do campo “NOME” da nossa tabela).

Criado o campo, selecione a nova coluna “NOME2” que apareceu na tabela e abra a Calculadora de Campos.

Primeiramente testaremos a função “toSwapCase“, que faz a seguinte transformação na string: o que for maiúsculo vira minúsculo e vice-versa. Para tanto, digite a expressão:

toSwapCase([NOME])

E confira o resultado:

calculadora-de-campos_txt_3_06

Como todos os caracteres do campo “NOME” estão em maiúsculas, com a aplicação da função eles passam a ser minúsculas.

Ainda com a coluna “NOME2” selecionada, abra novamente a Calculadora de Campos e aplique agora a função “toTitle“, que transforma uma string em título (primeira letra de cada palavra em maiúscula). Para tanto, digite a expressão:

toTitle([NOME])

e veja que agora o campo “NOME2” foi alterado:

calculadora-de-campos_txt_3_07

Finalmente, vamos testar a função “toPhrase“, que transforma qualquer string para uma frase (primeira letra maiúscula e as restantes minúsculas). Mesmo procedimento das anteriores, agora digitando a expressão:

toPhrase([NOME])

E podemos conferir que agora, no campo “NOME2”, os endereços estão apenas com a primeira letra maiúscula e as demais em minúsculo:

calculadora-de-campos_txt_3_08

E chegamos ao fim de mais um tutorial, encerrando assim a análise do uso da Calculadora de Campos do gvSIG na manipulação de campos do tipo “string” (campos de textos). Estes artigos apenas “arranharam” as possibilidades que são abertas com o uso desta ferramenta na manipulação de dados, principalmente se considerarmos os recursos que nos são disponibilizados pelo uso de scripts python/jython, que podem facilitar muito nosso trabalho quando trabalhando com dados em tabelas.

Nos próximos tutoriais devemos começar a trabalhar com o uso da Calculadora de Campos na manipulação de campos numéricos. Nos vemos em breve (espero)!

Comunidades gvSIG brasileiras: espaços onde compartilhar conhecimento

Buenas, pessoal!

Como sempre, ando meio sumido, mas volta e meia eu “apareço”. (BUUU :P)

Hoje estou aproveitando para divulgar alguns novos espaços para a comunidade gvSIG brasileira (e outros nem tão novos, mas pouco divulgados…):

Vou começar com uma comunidade que criei a pouco tempo: gvSIG Brasil no Google+

Se você se inscrever por lá, tenha um pouco de paciência para receber a liberação para acesso, porque eu não tenho acesso ao G+ no trabalho… se alguém se voluntariar a ajudar no gerenciamento desta comunidade, entre em contato comigo que eu providencio os ajustes.

Outra comunidade brasileira do gvSIG foi criada para os usuários do Facebook (essa não fui eu…). Se você está no Facebook e quiser participar, acesse o grupo gvSIG Brasil.

Temos também a comunidade gvSIG no GeoConnect do Mundo Geo. Muito embora não seja uma comunidade específica para os brasileiros, são aceitas postagens em qualquer língua.

Divulgo ainda, para quem não conhece, a Lista de emails da Comunidade gvSIG-BR. Esta é a lista oficial da comunidade de usuários brasileiros, e é o espaço destinado para tirar dúvidas, divulgar trabalhos e estimular a adoção do gvSIG aqui no Brasil.

É isso aí, pessoal. Espaço para divulgar e compartilhar conhecimento é que não falta. O que falta são pessoas dispostas a criar e, principalmente, compartilhar o conhecimento!

Instalando o gvSIG 2.0 versões RC (release candidate)

Buenas, pessoal!

O desenvolvimento da versão 2.0 do gvSIG está andando a passos largos. Montei este tutorial com a versão RC3, mas já recebi a notícia de que já está disponível para download a versão RC4. Não haverá maiores problemas pois o procedimento é o mesmo, bastando substituir o nome do arquivo para a última versão disponível.

Há uma grande expectativa da comunidade de usuários gvSIG quanto ao lançamento da versão 2.0, e se você quiser testar a nova versão, poderá seguir os passos que estão demonstrados neste tutorial. Ressaltamos que esta é uma versão beta, destinada a testes, e que não deve ser utilizada como ambiente de trabalho “normal”. Este tutorial está sendo feito considerando a instalação do gvSIG 2.0 RC3 em um PC com Linux Ubuntu 12.04. Para outras versões do Linux e/ou de outros sistemas operacionais o procedimento pode variar um pouco, mas segue a mesma lógica.

A partir da versão 2.0 teremos duas possibilidades de instalação: a tradicional (completa e com todos os pré-requisitos de instalação), que é opção recomendada, e a instalação online, que requer uma conexão com a internet para ser completada (recomendo uma conexão com a internet estável e de boa velocidade, pois o número e tamanho dos arquivos a baixar é considerável). Na medida do possível, procurarei abordar ambos os processos de instalação.

Como o tutorial ficou bem “grandinho”, optei por colocar uma divisão no texto. Na página principal você verá até essa parte, e, clicando no link abaixo, poderá visualizar o tutorial completo.

Continuar lendo