Tratamento de dados na linha SAXS2_110425
Transcrição
Tratamento de dados na linha SAXS2_110425
1 Tratamento de dados na linha SAXS2_120528.doc RESUMO: norm2 amostra.tif darknoise.tif cake amostra_norm.tif branco_norm.tif normall amos*.tif darknoise.tif cake2 amostra_norm.tif branco_norm.tif norm2_frames amostra_01001.tif darknoise.tif cake_frames amostra*_norm.tif agua_norm.tif logplot amostra1*.dat amostra2*.dat agua*.dat 2 Tratamento de dados na linha SAXS2_120528.doc 1. Rotinas “norm” As rotinas “norm” servem para fazer a normalização dos dados em relação à intensidade do feixe, atenuação da amostra e remoção do background do detector. As rotinas “norm” chamam o software fit2D, dividem a imagem pelo valor da intensidade/atenuação, subtraem o darknoise e salvam o resultado em uma subpasta chamada “reduction”. O arquivo resultado vai conter o sufixo “_norm” e extensão “.tif”. Fazer o mesmo procedimento para normalizar a referência (água, buffer, mica...) 1.1 norm2 A rotina norm2 serve para normalizar uma única imagem. Ela necessita dois argumentos. O primeiro é o nome da imagem “.tif” adquirida da amostra a ser normalizada e o segundo é o background do detector (darknoise). Um terceiro argumento, que é a intensidade integrada do feixe dividida pela atenuação da amostra, é também utilizado. O valor da intensidade/atenuação da amostra pode ser encontrado no arquivo “SAXSPAR.DAT”, como mostrado abaixo (onde está selecionado este valor para a imagem “amostra1_600s_002.tif”). Este valor é carregado automaticamente pela rotina norm2, contanto que o nome da amostra no arquivo “SAXSPAR.DAT” e o nome do arquivo “.tif” equivalente sejam o mesmo (sem contar o sufixo “_###” (“_002” no caso acima) dado pelo programa da MARCCD). Note que no arquivo “SAXSPAR.DAT” o valor “_002” não é mostrado, pois este sufixo é colocado automaticamente pelo software da MARCCD no momento da aquisição da imagem, e não pelo software SAXSPAR.EXE. Para adquirir o background do detector é necessário fazer uma medida sem usar o feixe de raios X. Para tanto, basta, por exemplo, retirar uma chave do painel ou não “iniciar experimento” no software SAXSPAR.EXE, assim o shutter não abre e o detector mede sem feixe. O tempo de exposição deve ser o mesmo utilizado para medir a amostra a ser normalizada. No exemplo acima, deve ser de 600 segundos. Salvar o arquivo como “darknoise_600s.tif”, por exemplo. Para utilizar a rotina abra o prompt de comando, na pasta principal do experimento, onde estão armazenados os arquivos das medidas. Normalmente, o nome desta pasta é dado pelo ano, mês e dia do experimento. No exemplo abaixo, 28 de maio de 2012. Na linha de comando, digitar “norm2 nome_da_amostra.tif darknoise.tif”. No exemplo que estamos seguindo, seria “norm2 amostra1_600s_002.tif darknoise_600s.tif”. Nosso exemplo ficaria: 3 Tratamento de dados na linha SAXS2_120528.doc Os dados tratados serão gravados na pasta “reduction”, com o sufixo “_norm” imediatamente antes da terminação “.tif”. Por exemplo, amostra1_600s_002_norm.tif. Problemas: Caso o nome da amostra no arquivo “SAXSPAR.DAT” e o nome do arquivo “.tif” equivalente não sejam o mesmo (sem contar o sufixo “_###” dado pelo programa da MARCCD), o programa norm2 não chamará o fit2D. Ele, então, criará (se ainda não existir) um arquivo chamado “erro.log”onde estarão escritos nomes de arquivos “.tif” os quais não possuem equivalentes escritos no arquivo SAXSPAR.DAT. A rotina norm2 não deve ser utilizada para normalizar um arquivo de uma cinética (frames). 1.2 normall A rotina normall é uma rotina utilizada para normalizar várias imagens de uma só vez. Esta rotina chama a rotina norm2 e faz um loop no primeiro argumento que possui. Ela necessita dois argumentos. O primeiro é um conjunto de nomes de arquivos de imagem do tipo “.tif” adquiridas. Este conjunto de nomes deve ser compreensível pela rotina escrita em “.bat”, ou seja, pode/deve conter os caracteres “*” e/ou “?” (Por exemplo, “teste?_600s*.tif”. O segundo argumento é o background do detector (darknoise). Esta rotina pode, eventualmente, encontrar erros entre os nomes dos arquivos “.tif” (escritos no software da MARCCD) e seus equivalentes (escritos no software SAXSPAR.EXE). O programa rodará até completar todos os parâmetros do primeiro argumento, e todos os erros encontrados serão escritos no arquivo “erro.log”. Como a rotina normall chama a rotina norm2, ela não deve ser utilizada para normalizar dados de uma cinética (frames) Os dados tratados serão gravados na pasta “reduction”, com o sufixo “_norm” imediatamente antes da terminação “.tif”. Por exemplo, amostra1_600s_002_norm.tif, amostra2_600s_003_norm.tif 1.2 norm2_frames A rotina norm2_frames é uma rotina utilizada para normalizar somente os dados de uma cinética (frames). Ela é baseada na rotina norm2, e necessita de dois argumentos. O primeiro é o nome do primeiro arquivo da cinética (geralmente este arquivo possui o sufixo “_01001” seguido da terminação “.tif”), e o segundo é o nome do background do detector (darknoise). Caso os frames não sejam normalizados, veja se os nomes das imagens “.tif” e os nomes contidos no arquivo SAXSPAR.DAT são equivalentes. 4 Tratamento de dados na linha SAXS2_120528.doc 2. Rotinas “cake” As rotinas “cake” servem para fazer a remoção do espalhamento parasita de uma imagem e a realização da integração angular para o cálculo da intensidade espalhada vs. vetor de espalhamento. Elas devem ser rodadas no diretório “reduction”, pois este procedimento deve ser realizado somente com os dados já normalizados, tanto da amostra quanto da referência (espalhamento parasita). O arquivo de saída não será mais uma imagem, mas será da forma intensidade espalhada vs. vetor de espalhamento, e possuirá extensão “.dat”. 2.1 cake A rotina cake necessita dois argumentos. O primeiro é o nome da imagem normalizada da amostra. O segundo é o nome da imagem normalizada da referência (parasita: água, buffer, mica, etc.). Para utilizar é necessário abrir o prompt de comando e ir para a subpasta “reduction”. Na linha de comando, digitar “cake nome_da_amostra_norm.tif espalhamento_parasita_norm.tif”. No exemplo que estávamos mostrando anteriormente, isto seria “cake amostra1_600s_002_norm.tif agua_600s_001_norm.tif”. O nome do arquivo resultante indicará a subtração feita: “amostra1_600s_002_norm_minus_agua_600s_001_norm.dat”. 2.2 cake2 A rotina cake2 é uma pequena variação da rotina cake que remove o cabeçalho provindo do fit2D e em seu lugar coloca “Q(1/nm)” “nome_do_arquivo.dat” como nome das duas colunas. Isso é muito útil quando os dados são importados pelo programa Origin. 2.3 cake2_frames A rotina cake2_frames é utilizada para fazer o cake de várias imagens de uma só vez. Esta rotina chama a rotina cake2 e faz um loop no primeiro argumento que possui. Ela necessita de dois argumentos. O primeiro é um conjunto de nomes de arquivos de imagem normalizada, do tipo “_norm.tif”. Este conjunto de nomes deve ser compreensível pela rotina escrita em “.bat”, ou seja, pode/deve conter os caracteres “*” e/ou “?” (Por exemplo, “agua?_*s_norm.tif”). O segundo argumento é o nome da imagem normalizada da referência (parasita: água, buffer, mica, etc.). A rotina cake_frames pode ser chamada para realizar o cake2 de dados de uma cinética normalmente. 2.4 cake2plot A rotina cake2plot realiza o cake2 e grafica o arquivo “.dat” final chamando a rotina logplot. 5 Tratamento de dados na linha SAXS2_120528.doc 3. Rotina “media” Esta rotina serve para fazer a media entre vários arquivos (já normalizados) para, por exemplo, aumentar a estatística. Para utilizar esta rotina deve-se copiar na pasta “media” os arquivos a serem utilizados, por exemplo, amostra050_norm.tif, amostra070_norm.tif, etc. Abra um prompt de comando e vá para a pasta “media”. Digite “media conjunto_de_imagens(*)_norm.tif nome_do_arquivo_final(sem_extensao)”. Veja o exemplo: A rotina mostra uma lista com todos os arquivos que possuem as primeiras letras que você digitou e pergunta: Deseja criar um arquivo de medias chamado media_amostra.tif com os arquivos acima? (Y/N): Se sim (Y ou y): Gera o arquivo media_amostra.tif 6 Tratamento de dados na linha SAXS2_120528.doc 4. Rotinas “plot” As rotinas “plot” servem para graficar os arquivos de saída das rotinas “cake” utilizando para isso o wgnuplot. Estas rotinas admitem até 10 argumentos. Entretanto, cada argumento pode ser uma lista de arquivos. Como os arquivos tratados estão, geralmente, na pasta “reduction”, ela deve ser chamada no terminal do “cake”. Por exemplo, O programa wgnuplot será chamado para graficar as curvas escolhidas. No caso acima, todas os arquivos bsa*.dat e tampao*.dat serão graficados. Para fechar a janela, basta clicar no “<ok>” Para dar um zoom no gráfico, basta clicar com o botão direito e arrastar para a região de interesse. Para retornar do zoom, basta clicar na tecla “<a>”. A única diferença entre as rotinas plot, logplot e loglogplot são as escalas. A rotina plot grafica na escala linear na intensidade e no vetor de espalhamento. A rotina logplot grafica em escala logarítmica a intensidade, e na escala linear o vetor de espalhamento. Já a rotina loglogplot grafica na escala logarítmica tanto a intensidade quanto o vetor de espalhamento. Por default o nome dos arquivos graficados são colocados na legenda na parte superior direita da janela do wgnuplot. Entretanto, quando o usuário quiser graficar muitos arquivos, esse procedimento não é ideal, pois haverá várias legendas, que podem “poluir” o gráfico. Neste caso, o usuário pode editar a rotina utilizada (plot, logplot ou loglogplot, utilizando um editor de textos comum) para que o wgnuplot não escreva as legendas. Para isso, basta abrir o arquivo “.bat” e apagar o “rem ” da linha grifada na figura abaixo. 7 Tratamento de dados na linha SAXS2_120528.doc Isto fará com que o gráfico não possua legendas. 8 Tratamento de dados na linha SAXS2_120528.doc 5. Créditos 5.1 Rotinas “norm” As rotinas norm e norm_frames, rotinas base para as apresentadas neste manual, foram escritas por Rodrigo Martinez (físico de linha, 2010). As rotinas norm2 e normall foram escritas por Antonio Gasperini (posdoc, 2012). A rotina norm_frames_dat, rotina base para a rotina norm2_frames, foi escrita por Jean Polli (supervisor de instrumentação, 2011) e Antonio Gasperini (posdoc 2012). A rotina norm2_frames foi escrita por Antonio Gasperini (posdoc 2012). 5.2 Rotinas “cake” A rotina cake, rotina base para as apresentadas neste manual, foi escrita por Rodrigo Martinez (físico de linha, 2010) A rotina cake2_frames foi escrita por Carlos Eduardo Vieira (bolsista de verão, 2011) As rotinas cake2 e cake2plot foram escritas por Antonio Gasperini (posdoc 2012) 5.3 Rotina “media” A rotina media foi escrita por Rodrigo Martinez (físico de linha, 2010) 5.4 Rotinas “plot” As rotinas plot, logplot e loglogplot foram escritas por Antonio Gasperini (posdoc, 2012)