Arquivo mensais:abril 2013

Errata no Exemplo Prático do Uso da Calculadora de Campos no gvSIG

Buenas, pessoal! Retornamos mais cedo do que eu pensava, para corrigir um pequeno erro no artigo do Exemplo Prático do Uso da Calculadora de Campos no gvSIG. Afinal, parafraseando um versículo da Bíblia:

Errais por não ler o manual, e por não saber tudo o que o gvSIG pode fazer…

Muito embora o manual do usuário do gvSIG não seja exatamente claro quanto ao que vamos tratar, é sempre bom dar uma consultada na seção que fala sobre as Tabelas, pois sempre podemos aprender muita coisa consultando o manual!  😉

Na verdade não chega a ser um erro, mas sim a correção sobre o fato de termos que usar uma “gambiarra” (o famoso “jeitinho brasileiro”) para editarmos uma tabela não vinculada a um shape no gvSIG. Se vocês lembrarem, para fazer isso no artigo citado, eu lancei mão do truque de inserir a tabela na Vista através da rotina de “Adicionar camada de eventos“.

Pois bem, nada disso é necessário… Na verdade, o procedimento correto para editarmos uma tabela não vinculada a um shape seria:

  • Abrir o Gestor de Projetos.
  • Na seção “Tabela”, inserir a nova tabela.
  • Ao inserirmos a nova tabela, automaticamente o gvSIG abrirá a mesma, para visualizarmos os seus atributos.
  • Neste momento, basta clicar no menu “Tabela > Iniciar edição”, para termos acesso, a partir daí, a todas as ferramentas de edição de tabelas que utilizamos no artigo anterior, inclusive a Calculadora de Campos.

errata_01

Isso significa que podemos aplicar todos aqueles procedimentos de manipulação e transformação dos dados da tabela diretamente na sessão “Tabela” do Gestor de Projetos, não sendo necessário criar uma Vista só para fazer esse trabalho.

Inclusive, para converter uma tabela no formato “CSV” para o formato “DBF”, basta abrirmos a tabela em “CSV” e, com a janela de atributos da tabela aberta, clicarmos no menu “Tabela > Exportar para > DBF”.

Obs.: Uma dica sobre tabelas no formato CSV que recebi do Prof. Marco Aurélio Painelli Marsitch, do Centro Universitário Fundação Santo André: 

Infelizmente o gvSIG não importa campos numéricos via CSV: ele só reconhece as variáveis numéricas quando são advindas do formato DBF.

O CSV nos impede de fazermos mapas temáticos, calcularmos novos campos e montarmos expressões nas janelas de filtros.

Portanto, antes de trabalhar com dados numéricos em tabelas no formato CSV, precisamos necessariamente convertê-los para DBF, através do menu “Tabela > Exportar para > DBF“.

Por hoje é isso, pessoal! Espero que me desculpem por ter induzido vocês a usarem o “jeitinho brasileiro”, mas, afinal, “é errando que se aprende”… E, para quem ficou curioso para saber qual o versículo da Bíblia que eu parafraseei, aí vai:

Jesus, porém, respondendo, disse-lhes: Errais, não conhecendo as Escrituras, nem o poder de Deus. Mateus 22:29

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!