Closed DBernardes closed 2 months ago
Dando prosseguimento ao processo de redução dos dados de exemplo apresentados no manual, alguns problemas adicionais foram encontrados. Estes problemas são descritos a seguir:
O comando apresentado a seguir foi executado para realizar a redução dos dados de exemplo fornecidos via linha de comando:
python -W ignore sparc4_mini_pipeline.py --nightdir="20230604" –-params="user_files/my_params.yaml" --target_list="user_files/targets.csv" -pv
Contudo, pela informação de log apresentada na tela do prompt de comando, pode-se constatar que o pipeline não estava encontrando o caminho especificado para o diretório de dados. Ao tentar realizar um print dos argumentos passados para o script sparc4_mini_pipeline.py
, pude recuperar os valores do diretório da noite e da lista de alvos. Contudo, por alguma razão, o valor do argumento --params
sempre retornava vazio, dando a entender que o arquivo de configuração fornecido não estava sendo utilizado. Por este motivo, este método de redução não foi mais utilizado.
Como alternativa à versão via linha de comando, é disponibilizado um arquivo .ipynb com uma redução passo-a-passo dos dados fornecidos. Utilizando o arquivo da redução fotométrica, foi possível obter a curva de luz do objeto. Contudo, utilizando o arquivo para a redução polarimétrica, ocorreu um erro ao tentar reduzir os frames de ciência individuais. Mais especificamente, o código não encontrou uma keyword relacionada ao flat da posição de lâmina 01 (KeyError: 'wppos01_master_flat'
). Infelizmente, isto impediu de executar o restante da redução.
Depurando o pipeline, pude entender o motivo do erro relacionado à keyword wppos01_master_flat
estar acontecendo no notebook de polarimetria. Aparentemente, o código estava tentando gerar uma imagem master flat para cada lâmina utilizada durante a observação. Contudo, inspecionando os dados de entrada, foi possível notar que apenas as imagens de flat para a primeira posição de lâmina foram fornecidas. Para corrigir este problema, foi necessário configurar o valor da variável APPLY_FLAT_PER_WPPOS
para FALSE
na célula de inicialização do notebook de redução. Feito isso, foi possível realizar a redução completa, tanto para o caso da lâmina de meia onda, quanto para o caso de quarto de onda.
Neste post, apresento uma síntese sobre o processo de redução de dados, rodando o pipeline localmente.
Inicialmente, tentei realizar esta redução de dados através dos notebooks de exemplo presentes no repositório. Contudo, este procedimento gerava um erro de excesso de memória ao tentar gerar a imagem da combinação de 300 imagens de bias. Isto provavelmente aconteceu pelo fato do número de imagens utilizadas ser maior do que aquele suportado pelo kernel do notebook. A solução para isso foi fazer a redução através do script sparc4_mini_pipeline.py
.
Ao tentar executar o script sparc4_mini_pipeline.py
, dois problemas foram encontrados. Um deles está relacionado com os parâmetros fornecidos para o pipeline, ao executá-lo via linha de comando, como descrito neste comentário. A solução para isto foi fornecer os parâmetros para o pipeline diretamente dentro do arquivo .py. O segundo problema está relacionado com a variável targe_list
. Esta variável armazena uma string com o caminho para o arquivo .csv contendo as coordenadas dos objetos observados. Por algum motivo, o Python parecia não reconhecer esta variável como uma string, gerando erro durante e execução. A solução para isso foi sobrescrever o valor desta variável no ponto onde o código estava quebrando pela string com o caminho desejado. Estes problemas não foram totalmente entendidos, mas devem estar relacionados com o uso do sistema operacional Windows com o WSL. Felizmente, ao implementar este procedimento, pude realizar a redução de dados, tanto para fotometria, quanto para polarimetria.
Nesta nota, descrevo as dificuldades que encontrei ao tentar executar o pipeline da SPARC4 localmente para a redução de um conjunto de imagens de exemplo, segundo o passo-a-passo apresentado neste documento. Para tanto, estou utilizando um sistema operacional Windows 11 e Python versão 3.12. As seções a seguir estão organizadas de acordo com os principais problemas encontrados desde o processo de instalação do pipeline até a execução do código em si.
Instalando o pipeline
Durante o processo de instalação do pipeline, dois problemas puderam ser identificados. No primeiro deles, não conseguir realizar a instalação das dependências descritas no arquivo .toml do projeto. Aparentemente, existem algumas bibliotecas que são incompatíveis com o sistema Windows. Para solucionar este problema, precisei realizar a instalação do pacote Windows Subsystem for Linux 2 (WSL2), junto da versão do Ubuntu 24.04 LTS.
Feito isso, segui com o procedimento de instalação, executando o comando
pip install -U .
, segundo apresentado no manual. Neste momento, um segundo problema pôde identificado. O pacote twirl não é compatível com as versão mais atual dos pacotes astropy e scipy, os quais estão associados à versão 3.12 do Python. Para solucionar este problema, foi preciso instalar cada dependência individualmente, de modo que o próprio gerenciador de instalação do Python faz o downgrade forçado destas duas bibliotecas, completando a etapa de instalação do pipeline.Executando o script sparc4_mini_pipeline.py
Segundo o manual, o script
sparc4_mini_pipeline.py
é o responsável pela redução de dados. Seguindo o procedimento apresentado, deve-se executar o comandopython -W ignore sparc4_mini_pipeline.py --nightdir=20230604 –pv
. Contudo, ao executar este comando, é gerado um erro relacionado ao caminho utilizado para a importação de diferentes arquivos .py utilizados pelo script. Aparentemente, o script está tentando fazer o import de um arquivo salvo em um diretório diferente e, por isso, não consegue encontrá-lo. Existem diversas formas de corrigir este problema. Talvez a mais simples seria incluir os arquivos .py importados pelo script no arquivo __init__.py do diretóriosparc4
e copiar o script para o diretório raiz do pipeline. Feito isso, o pipeline deve funcionar com os dados de exemplo.