sexta-feira, 11 de dezembro de 2015

Dica: Ajuste de curvas utilizando Python script - Parte I: visão geral e exemplos

Olá a todos,

Nesta dica vou ensinar como fazer ajustes de curvas no SciDAVis utilizando scripts em python.
Antes de começarmos, vale lembrar que as primeiras coisas a serem feitas são:
- abrir uma nota no SciDAVis em Arquivo → Novo → Nova nota/script;
- alterar a linguagem de programação para python em Programação → Linguagem de programação (script) → escolha Python e de um OK.

Uma vez que esteja tudo configurado, podemos começar a trabalhar.

De um modo geral, todos os ajustes de curva seguem a sintaxe:

TipoDeAjuste( camada, curva)

Os tipos de ajustes disponíveis para serem utilizados com scripts em python são:
  • LinearFit( camada, curva) - ajuste linear
  • PolynomialFit( camada, curva, ordem) - ajuste polinomial
  • ExponentialFit( camada, curva) - ajuste exponencial
  • TwoExpFit( camada, curva) - ajuste com dois crescimentos/decaimentos exponenciais
  • ThreeExpFit( camada, curva) - ajuste com três crescimentos/decaimentos exponenciais
  • GaussFit( camada, curva) - ajuste gaussiano com fórmula "y0+A*sqrt(2/PI)/w*exp(-2*((x-xc)/w)^2)"
  • GaussAmpFit( camada, curva) - ajuste gaussiano com fórmula "y0+A*exp(-(x-xc)^2/(2*w^2))"
  • LorentzFit( camada,curva) - ajuste lorentziano
  • SigmoidalFit( camada, curva) - ajuste sigmoidal
  • NonLinearFit( camada, curva) - ajuste não linear (pode ser utilizada qualquer fórmula que se desejar)
  • PluginFit( camada, curva) - ajuste utilizando curva definida em um plugin

A seguir vamos dar dois exemplos de como utilizar ajustes. Nos dois casos vamos supor que tenhamos um gráfico, nomeado como Gráfico1, com uma curva rotulada de Tabela1_2 (substitua estes termos conforme o seu caso). Vamos supor também que a curva Tabela1_2 no Gráfico1 seja aproximadamente linear (você pode criar uma curva linear facilmente, não é?).

Exemplo 1: ajuste linear
Na nota aberta, digite as seguintes linhas (pode ignorar o que estiver depois de um #) 

g = graph("Gráfico1") # para que o Gráfico1 seja acessado na nota
camada =  g.activeLayer() # para acessar a camada ativa do Gráfico1 *
f = LinearFit(camada,"Tabela1_2") # definindo o ajuste como linear
f.fit() # para executar o ajuste

* supondo que a curva Tabela1_2 esteja nesta camada. Se estiver em outra camada, utilize layer(número da camada) no lugar de activeLayer()

Depois disto, execute a nota (tecle Ctrl + Shift + j) e você verá no Gráfico1 que o ajuste de curva foi efetuado com sucesso. Os resultados detalhados do ajuste podem ser vistos no Registro de resultados. Depois do próximo exemplo, diremos como acessar os resultados do ajuste na nota/script.

Exemplo 2: ajuste polinomial
Neste caso, vamos utilizar um ajuste polinomial de ordem 4, apenas como exemplo. Não é muito diferente do primeiro exemplo. Note que no lugar de LinearFit vamos utilizar PolynomialFit, com sua respectiva sintaxe:

g = graph("Gráfico1")
camada =  g.activeLayer()
f = PolynomialFit(camada,"Tabela1_2",4) # definindo o ajuste como polinomial, de ordem 4
f.fit()

Execute a nota (tecle Ctrl + Shift + j) e veja os resultados no Gráfico1 e no registro de resultados.
Bem simples. Não é mesmo?

Depois que um ajuste é executado, existem alguns resultados que podem ser acessados na nota/script. São os seguintes:
  • f.results() - retorna um vetor com os resultados dos parâmetros ajustados
  • f.errors() - retorna um vetor com as incertezas nos parâmetros ajustados
  • f.chiSquare() - retorna o valor do teste de Chi^2
  • f.numParameters() - retorna o número de parâmetros utilizados no ajuste
  • f.parametersTable("params") - abre uma tabela com os parâmetros ajustados e suas respectivas incertezas
  • f.covarianceMatrix("cov") - abre a matriz de covariância do ajuste
Note que, para que os resultados apareçam na própria nota você deve teclar Ctrl + Enter depois de algo como f.results().

Bom, espero que esta dica seja útil! Na próxima dica, mostrarei algumas outras curvas de ajuste e alguns controles a mais no script de ajuste.

Até mais!

quinta-feira, 10 de dezembro de 2015

Atualização disponível - SciDAVis 1.D9 para Linux, Mac e Windows

No dia 24/11/2015 foi lançada a versão 1.D9 do SciDAVis. Esta versão corrige alguns bugs, mas não traz nenhuma novidade para o usuário final. Os pacotes binários para Windows e Mac, e também o código fonte, estão disponíveis em http://sourceforge.net/projects/scidavis/files/SciDAVis/1.D9/. Vale dizer que, infelizmente, o suporte a sctipts em Python na versão para Windows não está funcionando desde a versão 1.D8.

Entre as versões 1.D8 e 1.D9 houveram mudanças na estrutura do código, de modo que praticamente todo o código fonte fosse colocado em uma biblioteca (libscidavis).
Além disto, o código fonte do programa passou a ser armazenado e desenvolvido no GitHub e o repositório SVN no SourceForge foi depreciado. O principal objetivo desta mudança é atrair novos desenvolvedores. Pois, desta forma, qualquer um que queira contribuir precisa apenas criar um fork do projeto, fazer suas alterações e enviá-las de volta via pull request.

Consegui compilar com sucesso a versão 1.D9 do SciDAVis no meu Slackware 14.1. Porém, não pretendo disponibilizar o pacote na minha página de pacotes do SciDAVis para Slackware neste momento. O motivo é que existe um bug relacionado ao não aparecimento dos ícones nesta versão. As figuras abaixo mostram como deveria ser (primeira) e como está na versão 1.D9 (segunda):
Aparentemente, este problema com os ícones afeta Windows (testado via wine) e Linux, mas não a versão para Mac. Se alguém tiver ideia de como resolver isto, por favor, avisem a mim [ou contribuam com o projeto :-) ].

Até mais...


terça-feira, 27 de janeiro de 2015

SciDAVis 1.D8 e estado atual do desenvolvimento

Antes tarde do que nunca - está disponível a versão 1.D8 do SciDAVis:
- Na página de download da versão 1.D8 estão disponíveis o código fonte, o instalador para Mac e a versão para Windows. NOTA: na versão para Windows o suporte a sctipts em Python não está disponível - por conta da dificuldade dos desenvolvedores em criar pacotes para Windows :-p (alguém se habilita?).
- Pacotes para Slackware (14.1 e 14.1-64bits) também estão disponíveis em minha página de downloads no Google sites.
- A maioria das outras distribuições Linux já tem esta versão disponível em seus repositórios.

Estado atual do desenvolvimento:
O que vem sendo feito atualmente é manutenção e correção de bugs. Algumas mudanças nos sctipts de compilação e na estrutura de diretórios também foram feitas. Foi iniciado o port para a versão 6 do Qwt.
O código está evoluindo devagar. São apenas dois desenvolvedores contribuindo com código. Recentemente, um terceiro programador parece ter se juntado ao time, mas ainda não começou a escrever código.

Como eu já disse anteriormente:
"Na minha opinião, a manutenção deste software (o SciDAVis) é muito importante, pois ele é uma das melhores alternativas livres,  senão a melhor, aos softwares comerciais de análises de dados científicos (sabemos que me refiro ao Origin® ;-D)."
Muitas universidades (no Brasil e no mundo) já adotaram o SciDAVis como ferramenta para análise de dados científicos. Algumas delas adotaram como ferramenta de ensino: por não poderem pagar pelo Origin® ou outro similar, ou como alternativa mesmo.
Por estas coisas, gostaria de ver mais desenvolvedores se juntando ao time, fazendo este projeto evoluir e se consolidar como um dos melhores softwares da categoria.
Potencial existe. Espaço tem. Só precisamos de pessoas com boa vontade para que as coisas aconteçam.

Até mais.

terça-feira, 22 de abril de 2014

SciDAVis 1.D5 - baixe a versão mais atual (de 21/03/2014)

O instalador mais atual versão 1.D5 do SciDAVis foi disponibilizado para download no dia 21/03/2014. Ele pode ser baixado diretamente deste link ou, de forma ainda mais direta, deste outro link. Você também pode visitar http://sourceforge.net/projects/scidavis/files/SciDAVis/1.D5/ para baixar outros arquivos (código fonte e versão para Mac).
Nota: a versão para Windows pode reportar um arquivo ausente: MSVCR71.DLL. Se isto acontecer, você terá que encontrar uma cópia do tal arquivo e instalá-lo em c:\windows\system32. Aparentemente, este erro só foi reportado no Windows 7.
Veja mais em:  http://www.addictivetips.com/windows-tips/fix-msvcp71-dll-and-msvcr71-dll-missing-error-in-windows-7/, onde podem ser encontrado(s) o(s) arquivo(s) necessário(s). Também há uma dica de como resolver o problema em: http://dbafurushima.com.br/erro_windows_dll_MSVCP71.html

sexta-feira, 21 de fevereiro de 2014

Disponível o SciDAVis 1.D5 para Windows

O instalador da versão 1.D5 do SciDAVis foi disponibilizado para download. Ele pode ser baixado diretamente deste link ou, de forma ainda mais direta, deste outro link. Você também pode visitar http://sourceforge.net/projects/scidavis/files/SciDAVis/1.D5/ para baixar outros arquivos (código fonte e versão para Mac).
Nota: a versão para Windows pode reportar um arquivo ausente: MSVCR71.DLL. Se isto acontecer, você terá que encontrar uma cópia do tal arquivo e instalá-lo em c:\windows\system32. Aparentemente, este erro só foi reportado no Windows 7.
Veja mais em:  http://www.addictivetips.com/windows-tips/fix-msvcp71-dll-and-msvcr71-dll-missing-error-in-windows-7/, onde podem ser encontrado(s) o(s) arquivo(s) necessário(s). Também há uma dica de como resolver o problema em: http://dbafurushima.com.br/erro_windows_dll_MSVCP71.html

segunda-feira, 17 de fevereiro de 2014

Disponível mais uma atualização: 1.D5

Já está disponível a versão 1.D5 do SciDAVis. Esta atualização foi lançada para corrigir alguns bugs que eram considerados críticos pelos desenvolvedores. Na página de download da versão 1.D5 estão disponíveis o código fonte e o instalador para Mac. O instalador para Windows deverá ser adicionado em breve.
Pacotes para Slackware (14.0, 14.1 e 14.1-64bits) também estão disponíveis em minha página de downloads no Google sites.

quinta-feira, 13 de fevereiro de 2014

SciDAVis 1.D4 para Slackware64

Como prometido no post anterior, já está disponível um pacote do SciDAVis (e algumas dependências) para a versão 14.1 do Slackware64. Todos os pacotes necessários (que não são entregues na mídia oficial de instalação do Slackware) estão disponíveis em sites.google.com/site/scidavisslack/dowloads/slack14-1-64.

segunda-feira, 10 de fevereiro de 2014

Notícias recentes: versão 1.D4, pacotes para Slackware e atividades no desenvolvimento

É bom ver o projeto SciDAVis voltando a caminhar, e sem parar, depois de algum tempo. Vamos às boas novas:

- Lançada a versão 1.D4: alguns dias após o lançamento da versão 1.D1, problemas foram notados, reportados e corrigidos. Com isto foi lançada a versão 1.D4, que pode ser baixada a partir de http://sourceforge.net/projects/scidavis/files/SciDAVis/1.D4/. Neste link estão disponíveis o código fonte e os instaladores para Windows e Mac. Pacotes para as distribuições Linux deverão ser adicionados aos seus respectivos repositórios em breve.

- Pacotes para Slackware: para as versões 14.0 e 14.1 (32-bits apenas) já podem ser baixados na minha página de downloads. Em breve, providenciarei também pacotes de 64-bits para a versão 14.1-64.

- Atividades no desenvolvimento: mais um desenvolvedor juntou-se à equipe: Dmitriy (PoZitron é seu nickname). Ele já fez algumas (boas) contribuições ao projeto (que podem ser vistas acessando o repositório svn) e parece estar bastante empolgado.

segunda-feira, 30 de dezembro de 2013

Para terminar o ano bem: Nova atualização do SciDAVis foi lançada

Boa notícia: no dia 27/12/2013, o atual mantenedor do SciDAVis, Russell  Standish, lançou uma nova atualização do software. Por enquanto, a atualização foi liberada apenas em código fonte. Nas próximas semanas deveremos ter pacotes binários para algumas distribuições Linux (Slackware fica por minha conta :-D), para Mac e Windows.
De forma resumida, esta atualização traz:
  • mudança no padrão de enumeração de versões: a última versão lançada havia sido a 0.2.4 e a atual ficou 1.D1 (pra ser sincero, ainda não busquei saber qual será o critério para enumerar novas versões);
  • correções de (alguns) bugs da versão 0.2.4.
Além disso, Russell pretende lançar uma nova atualização a cada 6 meses, aproximadamente.
Na minha opinião, a manutenção deste software (o SciDAVis) é muito importante, pois ele é uma das melhores alternativas livres,  senão a melhor, aos softwares comerciais de análises de dados científicos (sabemos que me refiro ao Origin® ;-D).
Em breve voltarei com mais boas notícias e pacotes para Slackware.
Até mais.

terça-feira, 15 de outubro de 2013

Página no Google Sites para compartilhar pacotes para Slackware + notícias

Olá pessoal! Para aqueles que concordam com a frase "antes  tarde do que nunca", eis aqui o primeiro (e talvez o último :-p) post do ano.

→ Criada uma página de downloads de pacotes para Slackware:
Devido à proximidade do fim de meu vínculo com a UNICAMP (concluirei meu Doutorado em novembro), tenho que encontrar um lugar mais adequado para distribuir os pacotes do SciDAVis para Slackware que eu compilo (os quais estavam hospedados na minha página do IFGW). De preferência um que seja permanente. Em um post anterior eu compartilhei alguns links da minha conta no Dropbox, mas esta opção é muito trabalhosa.
Recentemente "descobri" o Google Sites e, até agora, me parece ser uma opção boa, tanto pelo fato de ser gratuita quanto pela facilidade de utilização. Então, até que seja possível "comprar" um domínio e alugar um servidor próprio, esta será a "nova casa" dos pacotes do SciDAVis que compilo para o Slackware: https://sites.google.com/site/scidavisslack

→ Desenvolvimento do SciDAVis:
Depois que o novo desenvolvedor, Russell Standish, assumiu o projeto foram feitas algumas alterações na estrutura de diretórios do repositório e também modificações no sistema de numeração de versões. Além disso, foram feitos 3 commits no repositório svn do projeto. Ou seja, saímos da revisão 1373 para a 1376, que inclui a correção de um ou outro bug*. O Russel Standish cogitou a possibilidade de disponibilizar uma nova versão do SciDAVis ainda este ano.
Infelizmente, ainda não tive tempo de compilar a revisão 1376, pois, devido à alteração na estrutura de diretórios, o meu BuildScript precisará de alterações.
* Farei um post específico sobre esta revisão depois que conseguir compilá-la.

→ Compilando com muParser, versão 2.2.3:
Em uma máquina virtual com o Slackware-current, o SciDAVis (v. 0.2.4 - r1373) compilou sem problemas com a versão 2.2.3 do muParser. Porém, o problema que ocorria com a versão 1.34 ainda persiste, ou seja, ao abrir um arquivo que contém gráficos com curvas de ajuste, aparecem algumas mensagens de erro e as curvas não são exibidas.
Se este for o único problema ao utilizar a versão mais recente do muParser, quando o Slackware 14.1 for lançado disponibilizarei uma versão do SciDAVis (r1373 e/ou r1376) compilado com o muParser v2.2.3. Pois, acredito que valha mais a pena perder algumas curvas de ajustes, que podem ser obtidas novamente depois, do que ficar com uma versão muito defasada do muParser.

Que surjam boas notícias em breve. Até mais!